release
Automate complete release workflow for Spec-Flow package (version bump, CHANGELOG, git tag, GitHub release, npm publish)
mkdir -p ~/.claude/commands && curl -fsSL https://raw.githubusercontent.com/marcusgoll/Spec-Flow/HEAD/.claude/commands/internal/release.md -o ~/.claude/commands/release.mdrelease.md
<context>
Current git status: !`git status --short | head -5`
Current branch: !`git branch --show-current`
Current version: !`node -p "require('./package.json').version" 2>/dev/null || echo "unknown"`
Last git tag: !`git describe --tags --abbrev=0 2>/dev/null || echo "none"`
npm authentication: !`npm whoami 2>/dev/null && echo "✅ Authenticated" || echo "❌ Not authenticated"`
GitHub authentication: !`gh auth status >/dev/null 2>&1 && echo "✅ Authenticated" || echo "❌ Not authenticated"`
Git remote configured: !`git remote -v | grep -q origin && echo "✅ Configured" || echo "❌ Not configured"`
Recent commits (last 10): !`git log -10 --pretty=format:"%s" 2>/dev/null || echo "No commits found"`
README.md Recent Updates (first 50 lines): !`grep -A 50 "## 🆕 Recent Updates" README.md | head -50 2>/dev/null || echo "Section not found"`
</context>
<objective>
Automate the complete release workflow for the Spec-Flow package, ensuring consistency and reducing manual errors.
**What it does:**
1. Pre-flight checks (git, npm, CI status)
2. Version bump detection (conventional commits → MAJOR, MINOR, PATCH)
3. Build validation (dist/ directory with BUILD_REPORT.md)
4. File updates (package.json, CHANGELOG.md, README.md Recent Updates)
5. Git operations (commit, tag, push)
6. GitHub Release creation with CHANGELOG notes
7. npm package publishing
8. Optional X (Twitter) announcement
**README.md updates include:**
- New version section in "Recent Updates" (extracted from CHANGELOG)
- Feature highlights and breaking changes
- Version badge updates for major releases
- Chronological ordering (newest at top)
**Operating constraints:**
- **INTERNAL USE ONLY** — For Spec-Flow workflow development only
- **Pre-flight Blockers** — 5 checks must pass (git remote, main branch, clean tree, npm auth, CI status)
- **Build Validation** — dist/BUILD_REPORT.md must exist (v6.12.0+)
- **Conventional Commits** — Version bump follows semantic versioning rules
- **Git Safety** — Never force push, always verify remote before push
**Dependencies:**
- Git repository with remote configured
- On main branch with clean working tree
- npm authentication configured (npm whoami)
- GitHub CLI authenticated (gh auth status)
- CI passing on latest commit
- Build system configured (npm run build)
</objective>
<process>
1. **Execute pre-flight checks** (5 checks):
- Git remote configured
- On main branch
- Working tree clean (no uncommitted changes)
- npm authenticated (npm whoami)
- CI passing on latest commit (gh run list)
**If any check fails**: Display specific error and exit. User must fix issue before releasing.
2. **Detect version bump** using conventional commits:
- Get current version from package.json
- Get last git tag (or v0.0.0 if none)
- Analyze commits since last tag:
- **MAJOR**: Any commit with "BREAKING CHANGE:" or "!" after type
- **MINOR**: Any commit with "feat:" prefix
- **PATCH**: Any commit with "fix:", "docs:", "chore:", "refactor:", "test:"
- Calculate new version (e.g., 6.11.0 → 6.12.0 for MINOR bump)
3. **Run build system**:
```bash
npm run build
```
- Validate dist/ directory created
- Verify BUILD_REPORT.md exists in dist/
- **If build fails**: Display error and exit
4. **Update package.json**:
- Load current package.json
- Update version field to new version
- Write back with proper formatting (2-space indent + newline)
5. **Update CHANGELOG.md**:
- Read current CHANGELOG.md
- Extract commits since last tag grouped by type (Features, Fixes, Docs, Chores)
- Insert new version section under ## [Unreleased]:
```markdown
## [X.Y.Z] - YYYY-MM-DD
### Features
- feat: description (commit hash)
### Fixes
- fix: description (commit hash)
```
- Write updated CHANGELOG.md
6. **Update README.md**:
- **Recent Updates section**: Insert new version under "🆕 Recent Updates"
- Extract version, date, and highlights from CHANGELOG.md
- Create formatted section with version number, date, and bullet points
- Insert at top of Recent Updates (push older versions down)
- Format: `### vX.Y.Z (Month YYYY)` + feature highlights
- **Version badges**: Update npm version badge if major version change
- **Breaking changes note**: Add breaking changes section if MAJOR bump
- **Keep existing releases**: Preserve all existing version entries
- Example update:
```markdown
## 🆕 Recent Updates
### v10.0.0 (November 2025)
**Git Worktrees & Perpetual Learning** - Parallel development and self-improving workflows
- **Git Worktrees**: Enable multiple Claude Code instances on different epics/features
- Automatic worktree creation per epic/feature
- Shared memory linking for cross-worktree observability
- Automatic cleanup after /finalize
- **Perpetual Learning System**: Continuously improve workflow efficiency
- Performance pattern detection (auto-applied optimizations)
- Anti-pattern detection (failure prevention)
- Custom abbreviation learning (project terminology)
- CLAUDE.md optimization (system prompt improvements with approval)
- **NPM Update Protection**: Learnings persist across package updates via migration system
**Breaking Changes**:
- None (backwards compatible with v9.x.x)
---
### v9.4.0 (November 2025)
...
```
7. **Git commit and tag**:
```bash
git add package.json CHANGELOG.md README.md dist/
git commit -m "chore: release vX.Y.Z"
git tag -a vX.Y.Z -m "Release vX.Y.Z"
```
8. **Push to remote**:
```bash
git push origin main
git push origin vX.Y.Z
```
- Verify remote is origin before pushing
- Use separate commands for branch and tag (safer than --tags)
9. **Create GitHub Release**:
```bash
gh release create vX.Y.Z \
--title "Release vX.Y.Z" \
--notes "{CHANGELOG section for this version}" \Execute multiple sprints in parallel based on dependency graph from sprint-plan.md
Build and validate locally for projects without remote deployment (prototypes, experiments, local-only dev)
Execute multi-sprint epic workflow from interactive scoping through deployment with parallel sprint execution and self-improvement
Execute feature development workflow from specification through production deployment with automated quality gates
Analyze workflow state and provide context-aware guidance with visual progress indicators and recommended next steps
Initialize project documentation, preferences, or design tokens
Implement small bug fixes and features (<100 LOC) without full workflow. Use for single-file changes, bug fixes, refactors, and minor enhancements that can be completed in under 30 minutes.
Enter deep craftsman mode - question everything, plan like Da Vinci, craft insanely great solutions, then materialize to roadmap