skills/release-prep/SKILL.md
Validates git state, runs quality checks, updates documentation, and assesses release readiness before the human executes the release command. Invoked when the user asks to "prepare release", "release prep", "ready to release", "pre-release check", "check release readiness", or mentions releasing a package.
npx skillsauth add ddaanet/agent-core release-prepInstall 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.
Validate preconditions, update documentation, and produce a readiness assessment. The actual release command is human-executed (protected by _fail_if_claudecode).
Documentation updates are batched at the end of the development cycle: hack → hack → hack → prep → release. This skill handles the prep stage.
Run git checks in parallel:
# Check git state: branch, tree cleanliness, remote sync, submodules
git branch --show-current
git status --porcelain
git fetch origin --dry-run 2>&1
git log @{u}..HEAD --oneline 2>/dev/null
git submodule status
Check:
main or master. Abort if on feature branch.Read agents/session.md and count unchecked pending tasks (- [ ]):
# Use Grep to find pending task markers
Grep(pattern="^- \\[ \\]", path="agents/session.md", output_mode="count")
Warn if pending tasks exist — may indicate incomplete work that should ship first. This is a warning, not a blocker (user may intentionally release before completing all tasks).
# Run full precommit validation suite
just precommit
If just precommit fails, report the failures and abort. All checks must pass before release.
Read detailed guidance:
# Load documentation update reference
Read("plugin/skills/release-prep/references/documentation.md")
Two audiences:
Human-facing (README.md):
tmp/STYLE_CORPUS if exists, otherwise references/default-style-corpus.mdAgent-facing:
Commit documentation changes before proceeding (release recipe requires clean tree).
Show what changed since the last release:
# Find latest version tag and show commits since then
git tag --sort=-v:refname | head -5
git log $(git describe --tags --abbrev=0 2>/dev/null)..HEAD --oneline
If no tags exist, show all commits on current branch.
Summarize: number of commits, key changes (from commit messages).
Detect project type by checking for:
pyproject.toml — Python projectpackage.json — Node.js projectCargo.toml — Rust projectShow current version from the detected config file.
Check release recipe:
# Look for release recipe
just --list 2>/dev/null | grep -i release
If found, that is the release command. If not found, note that no automated release recipe exists.
Produce a concise readiness report:
## Release Readiness
| Check | Status |
|---------------------|--------|
| Branch | pass/FAIL |
| Clean tree | pass/FAIL |
| Remote sync | pass/warn |
| Quality checks | pass/FAIL |
| Pending tasks | pass/warn (N pending) |
| Documentation | pass/updated (N files) |
**Current version:** X.Y.Z
**Commits since last release:** N
**Key changes:**
- commit summary 1
- commit summary 2
**Release command:**
`just release` # patch bump (default)
`just release minor` # minor bump
`just release major` # major bump
`just release --dry-run` # verify without publishing
If any FAIL: enumerate each failure with specific fix instructions, then STOP. Do not proceed to release command display.
If all pass: confirm ready and show the release command.
After displaying the readiness report:
_fail_if_claudecode guard).|| true, 2>/dev/null, or ignore exit codes (exceptions: token-efficient bash pattern per /token-efficient-bash skill; expected no-upstream in git log @{u} probe)/token-efficient-bash skill pattern for 40-60% token savingsreferences/documentation.md — Detailed documentation update guidance (audiences, audit process, staleness patterns)references/default-style-corpus.md — Default README style reference (used when no project-specific tmp/STYLE_CORPUS exists)tools
Manage git worktrees for parallel task execution. Triggers on "create a worktree", "set up parallel work", "merge a worktree", "branch off a task", or uses the `wt`, `wt merge`, or `wt-rm` shortcuts. Worktree lifecycle: creation, focused sessions, merge ceremony, cleanup, parallel task setup.
testing
Recall behavioral knowledge from project decisions. Triggers on "when to do X", situational patterns, or decision content for recognized situations. Invoke with "/when <trigger>".
tools
Sync edify fragments and portable justfile to match the current plugin version. Detects user-edited files and warns instead of overwriting. Use --force to overwrite conflicts.
testing
Write compact bash scripts using exec tracing pattern. Triggers when writing bash scripts with 3+ sequential commands. The exec 2>&1 + set -xeuo pipefail pattern eliminates echo statements via automatic command tracing, reducing script size by 40-60%.