From nexus
Create a release/vX.Y.Z branch from origin/master (default), any branch, or a specific tag using tag@vX.Y.Z syntax
npx claudepluginhub nexus-a1/claude-skills --plugin nexusThis skill is limited to using the following tools:
> Workflow: **`/create-release-branch`** → `/create-release` → `/merge-release` → `/release`
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
Workflow:
/create-release-branch→/create-release→/merge-release→/release
Working directory: !pwd
Repository: !git rev-parse --show-toplevel 2>/dev/null || echo "(not in a git repository)"
Current branch: !git branch --show-current 2>/dev/null || echo "(not in a git repository)"
Arguments provided: $ARGUMENTS
Latest release (deterministic — <kind> <ref> <version>): !bash "${CLAUDE_PLUGIN_ROOT}/shared/resolve-latest-release.sh" 2>/dev/null || echo "(resolver unavailable)"
Release terminology — use the definitions in ${CLAUDE_PLUGIN_ROOT}/shared/release-concepts.md. "Latest release" is the value printed above.
This skill is a thin dispatcher over the deterministic shell library at ${CLAUDE_PLUGIN_ROOT}/shared/release/. Do not re-derive parsing or version logic in prose — call the scripts and surface their structured output.
git rev-parse --is-inside-work-tree 2>/dev/null
If this returns non-zero, stop with the standard "not in a git repository" message that tells the user to cd into a service repo first (see Working directory: in Context above).
Run the parser:
bash "${CLAUDE_PLUGIN_ROOT}/shared/release/parse-args.sh" \
--skill=branch-create --json -- $ARGUMENTS
Possible outcomes:
version, source, source_kind populated.missing array names the field(s) the user didn't supply (typically ["version"]).errors array and stop.If the parser returned exit 10 with missing containing version:
Run bash "${CLAUDE_PLUGIN_ROOT}/shared/release/version-suggest.sh" --json to get a recommended next version grounded in the current repo's tag/branch state.
Use AskUserQuestion to present:
recommended value with its reason as the (Recommended) option.alternatives as additional options.Critical: the suggestion must come from version-suggest.sh run in the current working tree — never carry over a version seen earlier in the conversation from a different repo.
Re-run parse-args.sh with the chosen version included in $ARGUMENTS.
If source was not supplied, default to origin/master (parse-args already does this). The user may override via the second positional argument or the tag@vX.Y.Z syntax.
Run the action script in plan mode:
bash "${CLAUDE_PLUGIN_ROOT}/shared/release/branch-create.sh" \
--version=<v> --source=<s> --source-kind=<k> --plan --json
Print the human-readable plan (re-run without --json for display, or render the JSON yourself). Use AskUserQuestion to confirm before applying.
Pushing to release/* is gated by git-mutation-guard.sh and requires a security-auditor confirmation. Record one immediately before invoking the action script:
bash "${CLAUDE_PLUGIN_ROOT}/hooks/record-audit.sh"
Then run apply:
bash "${CLAUDE_PLUGIN_ROOT}/shared/release/branch-create.sh" \
--version=<v> --source=<s> --source-kind=<k> --apply --json
If --apply exits non-zero, surface stderr to the user verbatim and stop.
On success, show:
✓ Release Branch Created
branch: release/<v>
source: <ref>
Next:
/create-release # open PR to master
/merge-release # merge once approved
/release # tag + GitHub release
$ARGUMENTS to it raw; do not strip or add the v prefix yourself.record-audit.sh must run immediately before the action script; do not run anything between them that could change HEAD or branch.