skills/create-release-branch/SKILL.md
Create a release/vX.Y.Z branch from origin/master (default), any branch, or a specific tag using [email protected] syntax
npx skillsauth add nexus-a1/claude-skills create-release-branchInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
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. This script fetches remote tags first so the suggestion is based on the authoritative tag set. Watch its stderr: if it emits a [stale-tags] or [no-remote] marker, the tag fetch failed or was skipped — surface that marker to the user before presenting the recommendation, since the suggested version may be based on stale local tags. Do not block on it; continue to the recommendation.
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 [email protected] 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.development
Add a new entry to the product knowledge base. Wizard-guided — prompts for category, title, and content, then writes a structured markdown file and rebuilds the manifest.
data-ai
Show all active work sessions across brainstorms, requirements, proposals, and epics. Supports --update to advance lifecycle on one session and --sync to sweep them all.
documentation
Review and update project documentation using an agent team. Inventories docs, identifies gaps and drift, updates technical and API docs in parallel.
tools
Annotate an active work session with a note, scope change, or new finding. Auto-detects the active session, synthesizes the salient points of the current conversation, and appends a timestamped entry to state.json after a single target confirmation. Use mid-session when you learn something that should be preserved.