| name | release |
| description | Combined RELEASE stage (ship + retrospective) in a single artifact. Triggers: "/release", "end sprint", "ship and reflect". Replaces the retired ship skill.
|
| allowed-tools | ["Bash","Read","Write","Edit","Grep","Glob"] |
| when_to_use | Use to close a sprint: version bump, changelog, tag, push, publish, and retrospective — all in one artifact.
|
| argument-hint | [version] |
| disable-model-invocation | true |
| produces | docs/superomni/releases/release-[branch]-[session]-[date].md |
| consumes | ["docs/superomni/evaluations/evaluation-[branch]-[session]-[date].md","docs/superomni/production-readiness/production-readiness-[branch]-[session]-[date].md"] |
Preamble (Core)
Status protocol — end every session with one of: DONE (evidence provided) · DONE_WITH_CONCERNS (list each) · BLOCKED (state what blocks you) · NEEDS_CONTEXT (state what you need).
Auto-advance — pipeline: THINK → PLAN → REVIEW → BUILD → VERIFY → RELEASE. Only human gate is spec approval at THINK. On DONE at other stages, print [STAGE] DONE -> advancing to [NEXT-STAGE] and invoke the next skill. On any non-DONE status at any stage, STOP.
Output directory — all artifacts go in docs/superomni/<kind>/<kind>-[branch]-[session]-[date].md. See CLAUDE.md for the full directory map.
TACIT-DENSE — before high-tacit decisions, classify D1 (domain expertise) · D2 (user-facing UX) · D3 (team culture) · D4 (novel pattern). On hit, output TACIT-DENSE [D#]: [question] — My default: [recommendation]. See reference for actions.
Anti-sycophancy — take a position on every significant question. Name flaws directly. No filler ("that's interesting", "you might consider", "that could work").
Telemetry (local only) — at session end, log bin/analytics-log. Nothing leaves the machine.
See preamble-ref.md for detailed protocols.
/release — Release & Retrospective
Goal: Close the sprint by shipping the software and capturing what was learned — in one combined step.
Iron Law: Release Evidence Required
Never mark RELEASE as DONE without both sections populated in the artifact.
## Release without ## Retrospective is incomplete. Both are required.
Phase 1: Pre-Release Assessment
Current State (auto-injected at skill-load)
The !`` syntax is Anthropic's dynamic context injection — runtime resolves each command before the skill body reaches the LLM.
- Current version: !
grep '"version"' package.json | head -1
- Working tree: !
git status -s
- Recent commits since last tag: !
git log --oneline $(git describe --tags --abbrev=0 2>/dev/null || echo HEAD~10)..HEAD 2>/dev/null | head -10
- Unpushed commits: !
git log --oneline @{u}..HEAD 2>/dev/null | wc -l
- CHANGELOG top entry: !
head -15 CHANGELOG.md 2>/dev/null | tail -12
- Latest evaluation path: !
ls -t docs/superomni/evaluations/evaluation-*.md 2>/dev/null | head -1
Manual fallback (when not in dynamic-context mode)
git status --short
git log origin/main..HEAD --oneline
git stash list
Confirm:
Phase 2: Release Section
Version Bump
cat package.json 2>/dev/null | grep '"version"'
cat VERSION 2>/dev/null
Determine next version (semver: MAJOR.MINOR.PATCH).
Changelog
Update CHANGELOG.md. First scaffold the entry from Conventional Commits in the range last-tag..HEAD:
npm run gen:changelog -- --version <X.Y.Z> > /tmp/changelog-draft.md
Then paste the draft into CHANGELOG.md and complete the Why this matters, Verified, and Deferred subsections manually (the human-synthesis 40%). Manual fallback template (when the tool is unavailable):
## [vX.Y.Z] — YYYY-MM-DD
### Added
- [New features]
### Fixed
- [Bug fixes]
### Changed
- [Behavior changes]
LAST_TAG=$(git describe --tags --abbrev=0 2>/dev/null || echo "")
[ -n "$LAST_TAG" ] && git log "${LAST_TAG}..HEAD" --oneline
Tag & Publish
VERSION="v$(cat package.json | grep '"version"' | cut -d'"' -f4)"
git tag -a "${VERSION}" -m "Release ${VERSION}"
git push origin HEAD && git push origin "${VERSION}"
gh release create "${VERSION}" --title "Release ${VERSION}" --latest 2>/dev/null || true
Verify Deployment
gh release view "${VERSION}" 2>/dev/null || echo "No GitHub release (OK if not using gh)"
Phase 3: Retrospective Section
Tacit Gap Mining
for review in docs/superomni/reviews/review-*.md; do
[ -f "$review" ] && grep -h "^- " "$review" 2>/dev/null
done | sort | uniq -c | sort -rn | head -10
for exec in docs/superomni/executions/execution-*.md; do
[ -f "$exec" ] && grep -h -A1 "CONCERN\|DEVIATION\|override" "$exec" 2>/dev/null
done | head -10
Sprint Evidence
SINCE="7 days ago"
git log --oneline --since="${SINCE}" 2>/dev/null | head -20
find docs/superomni -name "*.md" -newer docs/superomni/plans/plan-*.md 2>/dev/null | head -10
Retrospective Analysis
Answer these with evidence:
- What went well? (cite specific steps or artifacts)
- What slowed us down? (cite blockers or deviations)
- What process rule should change? (cite root cause)
- What tacit knowledge was surfaced? (D1-D4 categories)
Phase 4: Write Combined Artifact
_REL_BRANCH=$(git branch --show-current 2>/dev/null | tr '/' '-' || echo "unknown")
_REL_SESSION="<kebab-case-from-context>"
_REL_DATE=$(date +%Y%m%d)
mkdir -p docs/superomni/releases
_REL_FILE="docs/superomni/releases/release-${_REL_BRANCH}-${_REL_SESSION}-${_REL_DATE}.md"
Write $_REL_FILE with this structure:
# Release: [session] — [version]
**Date:** [date]
**Branch:** [branch]
## Release
### Version
[vX.Y.Z]
### What Shipped
[bullet points from changelog]
### Deployment Evidence
[tag created, release URL, health check result]
### Rollback Plan
[how to revert if needed]
## Retrospective
### What Went Well
- [item with evidence]
### What Slowed Us Down
- [item with evidence]
### Process Changes
- [proposed rule change or Iron Law update]
### Tacit Knowledge Captured
- [D1/D2/D3/D4 gap → proposed rule]
### Next Sprint Suggestions
- [actionable item]
Phase 5: Report
RELEASE COMPLETE
════════════════════════════════════════
Version: [vX.Y.Z]
Artifact: [release file path]
## Release: [populated ✓]
## Retro: [populated ✓]
Status: DONE | DONE_WITH_CONCERNS
Concerns:
- [any post-release concerns]
════════════════════════════════════════