This skill should be used when the user asks to 'release a project', 'create a release', 'bump version', 'publish to GitHub', 'prepare a release', 'run release validation', or needs to perform SDLC-compliant releases for Claude Code plugins, Python, Node.js, Go, or Rust projects. Provides comprehensive pre-release validation including tests, lint, coverage, and security checks.
This skill executes comprehensive release workflows with SDLC validation for multiple project types. It prevents broken, untested, or insecure code from being released.
| Type | Detection | Version Tool | Validators |
|------|-----------|--------------|------------|
| Claude Plugin | .claude-plugin/plugin.json | bump-my-version | plugin.json, agents, skills, commands |
| Python | pyproject.toml, setup.py | bump-my-version | pytest, ruff, mypy, bandit, pip-audit |
| Node.js | package.json | npm version | npm test, eslint, npm audit |
| Go | go.mod | manual | go test, golangci-lint, go vet |
| Rust | Cargo.toml | cargo-bump | cargo test, clippy, cargo audit, cargo fmt |
# Interactive release (prompts for type)
/agents:release
# Specific release types
/agents:release patch # Bug fixes (0.7.1 → 0.7.2)
/agents:release minor # New features (0.7.1 → 0.8.0)
/agents:release major # Breaking changes (0.7.1 → 1.0.0)
# Options
/agents:release --dry-run # Preview without changes
/agents:release --pr # Create PR instead of push
/agents:release --force # Continue despite warnings
/agents:release --coverage=80 # Override coverage threshold
Execute these phases in order:
Detect project type using cascade detection:
if [ -f ".claude-plugin/plugin.json" ] || [ -f "plugin.json" ]; then
PROJECT_TYPE="claude-plugin"
elif [ -f "pyproject.toml" ] || [ -f "setup.py" ]; then
PROJECT_TYPE="python"
elif [ -f "package.json" ]; then
PROJECT_TYPE="nodejs"
elif [ -f "go.mod" ]; then
PROJECT_TYPE="go"
elif [ -f "Cargo.toml" ]; then
PROJECT_TYPE="rust"
else
PROJECT_TYPE="generic"
fi
Verify repository state:
echo "Branch: $(git branch --show-current)"
git status --porcelain
git log --oneline @{u}..HEAD 2>/dev/null || git log --oneline -5
CRITICAL: Run comprehensive validation before any release.
Use the release validator script:
VALIDATOR="${SKILL_DIR}/scripts/release_validator.py"
python3 "$VALIDATOR" . --coverage-threshold=${COVERAGE:-95} --verbose
The validator checks:
If validation fails without --force, prompt:
AskUserQuestion:
- question: "Validation found issues. How to proceed?"
- options:
- "Fix issues first (Recommended)"
- "Continue anyway"
- "Abort release"
If uncommitted changes exist:
git diff --statfeat(agents):, feat(skills):, fix(commands):feat:, fix:, refactor:, docs:Never commit sensitive files: .env*, *.key, *.pem, *credentials*
Execute version bump using appropriate tool:
| Project | Tool | Command |
|---------|------|---------|
| Claude Plugin | bump-my-version | bump-my-version bump $TYPE |
| Python | bump-my-version | bump-my-version bump $TYPE |
| Node.js | npm | npm version $TYPE |
| Go | manual | Edit go.mod |
| Rust | cargo-bump | cargo bump $TYPE |
For --dry-run, show preview without executing.
Default (no --pr):
git push --follow-tags
With --pr flag:
BRANCH="release/$(date +%Y%m%d)-v${NEW_VERSION}"
git checkout -b "$BRANCH"
git push -u origin "$BRANCH"
gh pr create --title "chore(release): v${NEW_VERSION}" --body "..."
Display release summary:
The validator recommends version type based on changes:
| Detected | Recommendation |
|----------|---------------|
| Breaking changes (deleted/renamed files) | major |
| New features, significant additions | minor |
| Bug fixes, docs, maintenance | patch |
Breaking change detection analyzes git diff since last tag for:
Default: 95% coverage required.
Override methods:
--coverage=80COVERAGE_THRESHOLD=80--force to continue or abortgit pull --rebasescripts/release_validator.py - Comprehensive SDLC validation scriptreferences/sdlc-requirements.md - Detailed validation requirements per project typereferences/version-management.md - Version bump tool configurationsexamples/plugin-release.md - Example Claude plugin release outputexamples/python-release.md - Example Python package release outputSearch for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Interact with GitHub using the `gh` CLI. Use `gh issue`, `gh pr`, `gh run`, and `gh api` for issues, PRs, CI runs, and advanced queries.
Create or update AgentSkills. Use when designing, structuring, or packaging skills with scripts, references, and assets.
Start voice calls via the OpenClaw voice-call plugin.
Notion API for creating and managing pages, databases, and blocks.
Gemini CLI for one-shot Q&A, summaries, and generation.
Category:developer