con un clic
release
Automated release workflow with version bump, tag, publish, and GitHub release
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Menú
Automated release workflow with version bump, tag, publish, and GitHub release
Instalar con Codex o Claude Copia este prompt, pégalo en Codex, Claude u otro asistente, y deja que revise la página de la skill y la instale por ti.
Basado en la clasificación ocupacional SOC
UI/UX design intelligence with searchable database
Generate comprehensive implementation plans through systematic discovery, synthesis, verification, and decomposition into beads. Use when asked to plan a feature, create a roadmap, design an implementation approach, or decompose work into trackable issues. Do NOT use for simple one-step tasks, quick fixes, or when the user just wants to execute an existing plan — use the work skill instead.
Execute a plan or direct task with worker delegation and verification.
Deep investigation mode. Gather context, analyze, synthesize recommendations without making code changes.
Fetch up-to-date library documentation via Context7 MCP. Use when working with external libraries, APIs, or frameworks.
Start interview-driven planning with Prometheus. Asks clarifying questions before generating implementation plan.
| name | release |
| description | Automated release workflow with version bump, tag, publish, and GitHub release |
| argument-hint | <version|patch|minor|major> [--dry-run] |
| disable-model-invocation | true |
Run a safe, project-agnostic release pipeline: preflight, version bump, commit, tag, optional push, optional publish, optional GitHub release.
<version> — Explicit version (for example 1.2.3) or bump type (patch, minor, major)--dry-run — Show what would happen without making changesAskUserQuestion.--dry-run never edits files, commits, tags, pushes, publishes, or creates releases.Check for manifests in this order (first match wins as primary type; still collect all present manifests for version updates):
package.json → npm/bun projectsetup.py or pyproject.toml → Python projectCargo.toml → Rust project.claude-plugin/plugin.json → Claude pluginUse Glob to detect files. If none found, stop and report unsupported project type.
Read the primary manifest and extract current version:
package.json → versionpyproject.toml → [project].version (or tool-specific version field if present)setup.py → version= valueCargo.toml → [package].version.claude-plugin/plugin.json → versionIf current version cannot be determined, stop and report exactly which file failed parsing.
Search for files that contain the exact current version string and are likely version-bearing project files.
Suggested search strategy:
Glob (manifests, docs, lock/config metadata).Grep for the exact current version string.Always include detected manifest files in the candidate list, even if formatting differs.
Run the first applicable project test command:
# JavaScript/TypeScript (prefer bun when available)
bun test || npm test
# Python
pytest || python -m pytest
# Rust
cargo test
Rules:
From <version> argument:
1.2.3) → use as-ispatch → X.Y.(Z+1)minor → X.(Y+1).0major → (X+1).0.0If argument is missing or invalid, stop and report valid forms.
Update version values in every file from preflight version discovery:
Use minimal edits only for exact old→new version changes.
Before any commit/tag action, display a concise diff summary of updated files and the old/new version replacements for user review.
Stage only the files changed for this release bump, then commit:
git add <changed files>
git commit -m "chore(release): v<version>"
If commit fails, stop and report the error.
Create the release tag:
git tag v<version>
If tag already exists, stop and ask user whether to reuse, replace manually, or choose a new version.
Ask for explicit confirmation:
AskUserQuestion(
questions: [{
question: "Push commit and tag to remote? This will push to origin/<branch> and tag v<version>.",
header: "Push",
options: [
{ label: "Yes, push", description: "Push commit and tag to origin" },
{ label: "Skip", description: "Skip push (you can push manually later)" }
],
multiSelect: false
}]
)
If confirmed:
git push origin <branch>
git push origin v<version>
If skipped, continue and mark push as skipped in summary.
Determine publish command based on detected project type and available tooling:
npm publish (or bun publish if project uses bun publish flow)uv publish (fallback to project-standard publish command if uv publish is not configured)cargo publishAsk confirmation:
AskUserQuestion(
questions: [{
question: "Publish package to registry?",
header: "Publish",
options: [
{ label: "Yes, publish", description: "Run the project's publish command" },
{ label: "Skip", description: "Skip publishing" }
],
multiSelect: false
}]
)
If confirmed, run the selected publish command. If skipped, continue.
Ask confirmation:
AskUserQuestion(
questions: [{
question: "Create GitHub release for v<version>?",
header: "Release",
options: [
{ label: "Yes, create release", description: "Create GitHub release with auto-generated notes" },
{ label: "Skip", description: "Skip GitHub release" }
],
multiSelect: false
}]
)
If confirmed:
gh release create v<version> --title "v<version>" --generate-notes
Capture and report the release URL from command output.
If --dry-run is present, execute only analysis/reporting actions:
Always end with:
## Release Summary
**Version**: v<version>
**Project type**: <type>
**Files updated**: <count>
**Tests**: PASS/FAIL/SKIP
**Pushed**: Yes/No/Skipped
**Published**: Yes/No/Skipped
**GitHub Release**: Yes/No/Skipped
Release URL: <gh release URL if created>
If dry run:
DRY RUN.No changes were made.