一键导入
release
Create a GitHub issue, commit, tag, and push a release. Detects repo type and runs mode-specific pre-flight checks with user confirmation at every step.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Create a GitHub issue, commit, tag, and push a release. Detects repo type and runs mode-specific pre-flight checks with user confirmation at every step.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Create Bruno .bru request files for API endpoints found in the project source code. Use when the user asks to generate Bruno API files from source code, mentions the Bruno API client, or wants to scaffold .bru files for HTTP requests.
Migrate .env secrets to 1Password using the op CLI, replacing plaintext values with op:// references (Japanese). Use when the user wants to move .env secrets into 1Password, mentions the 1Password CLI, or asks to replace environment variables with vault references.
Create a GitHub issue, commit, tag, and push a release. Detects repo type and runs mode-specific validation checks with user confirmation at every step.
DevelopersIO article writing and Contentful publishing assistant. Use "/devio article <topic>" to draft a new article, or "/devio publish <file>" to publish to Contentful.
Bedrock KB + S3 data pipeline management with safety guardrails. S3 sync (with force-upload for content-only changes), KB ingestion status polling, cost monitoring. Enforces identity verification, dry-run, and confirmation for all write operations.
Generate Draw.io XML architecture diagrams with accurate AWS service icons. Use when the user asks to create, update, or visualize an AWS architecture diagram, or mentions Draw.io diagrams for AWS infrastructure.
| name | release |
| description | Create a GitHub issue, commit, tag, and push a release. Detects repo type and runs mode-specific pre-flight checks with user confirmation at every step. |
| user-invocable | true |
Orchestrate a full release: repo detection, pre-flight, GitHub issue, commit, tag, push.
IMPORTANT: Every interaction with the user MUST go through AskUserQuestion. Never
prompt with plain text and wait for a reply — always use the tool.
SKILLS_DIR = .claude/skills/releaseCONFIG_FILE = .claude/skills/release/config.jsonRead CONFIG_FILE at startup if it exists:
cat .claude/skills/release/config.json 2>/dev/null
Schema:
{
"language": "en",
"repo_mode": "skills-gems",
"preflight_confirm": false
}
| Field | Effect when set |
|---|---|
language | Skip Step 1.5 — use this language directly |
repo_mode | Skip detection — use this mode directly; pre-flight still runs |
preflight_confirm: false | Skip the confirmation gate — pre-flight runs silently without asking "Proceed?" |
All fields are optional. Missing fields fall back to the interactive flow.
If repo_mode is set in config: skip detection, use the configured mode. State: "Using configured mode: <mode>."
Otherwise, run detection:
ls package.json pyproject.toml uv.lock skills/ 2>/dev/null
git status --short
Classify into one or more modes:
| Signal detected | Mode |
|---|---|
skills/ directory exists AND changed files are under skills/ | skills-gems |
package.json exists | npm |
pyproject.toml or uv.lock exists | python |
| Two or more of the above | monorepo |
| None of the above | generic |
If preflight_confirm is false in config: skip the confirmation gate, announce mode in plain text and proceed directly to Phase 1.
Otherwise, use AskUserQuestion to confirm:
"Detected: <mode>. Pre-flight will run: <summary from pattern file>. Proceed?"
Options:
Read and follow SKILLS_DIR/patterns/<mode>.md.
Pre-flight always runs for the configured/detected mode — preflight_confirm: false only
skips the confirmation gate, not the pre-flight itself.
If pre-flight passes, continue to Phase 2. If pre-flight fails, stop — do not continue until resolved.
From the session, identify:
Use AskUserQuestion:
Store the selected language. Apply it to all generated content: plan file, issue title, issue body, acceptance criteria, and release notes. Commit messages always stay in English regardless of this setting (git convention).
Use AskUserQuestion:
Use AskUserQuestion with multiSelect=true:
git describe --tags --abbrev=0 2>/dev/null || echo "none"
Treat missing tags as v0.0.0. Use AskUserQuestion:
Always prefix with "v". Store the selected version for later steps.
Read SKILLS_DIR/templates/plan.md for the template and rules.
Create .plans/<slugified-title>.md filled with real content from the session.
Write all narrative content (Context, Approach, Changes, Guard Rails, Verification)
in the language selected in Step 1.5. Section headings may stay in English for
template consistency, but all prose must be in the selected language.
gh api repos/{owner}/{repo}/milestones --jq '.[] | select(.title == "<version>") | .title'
If missing:
gh api repos/{owner}/{repo}/milestones -f title="<version>" -f state="open"
Read SKILLS_DIR/templates/issue-body.md for the body format.
gh issue create \
--title "<title>" \
--label "<labels>" \
--assignee "@me" \
--milestone "<version>" \
--body "<body>"
Omit --milestone if version was skipped.
feat(<scope>): <description> (#<issue-number>)
Use fix() for bugs, docs() for documentation, refactor() for refactoring.
Output: Issue created: <url> — proceeding with release automation...
git fetch
git rev-list --count HEAD..@{u}
If remote has new commits, use AskUserQuestion:
Pull: git pull --rebase — stop on merge conflicts.
Check whether README.md and CHANGELOG.md need updating based on the changes in this release:
README.md — check for:
CHANGELOG.md — check for:
If updates are needed, make them now before committing — so docs land in the same commit as the code. If README and CHANGELOG are already accurate, state so and continue.
git status --short
Use AskUserQuestion:
If custom: use AskUserQuestion "Other" for free input.
git add .
git commit -m "<message>"
Skip if version was skipped. Otherwise:
git tag v<new-version>
Use AskUserQuestion:
git push && git push --tags
On failure: show manual command.
Skip if version was skipped.
gh release create v<version> \
--title "<version> - <plan-title>" \
--notes "<plan-content-without-header>"
Write release notes in the language selected in Step 1.5.
gh issue close <issue-number> --comment "Released in v<version>"
# or if skipped:
gh issue close <issue-number> --comment "Shipped in <commit-sha>"
If config did not exist at startup, use AskUserQuestion:
.claude/skills/release/config.json", "No, ask me each time"If yes, write CONFIG_FILE with the language and mode used this run, and preflight_confirm: false.
If version was tagged, output as plain markdown prose (not a fenced code block). Use markdown link syntax so URLs are clickable in the IDE:
Release complete!
- Issue:
[#N](full-issue-url)- Version: old → new
- Tag:
vX.Y.Z- Release:
[vX.Y.Z](full-release-url)
If version was skipped, output as plain markdown prose:
Changes committed and pushed!
- Issue:
[#N](full-issue-url)- Commit:
commit-messageNo version tag or GitHub release (skipped).
| Scenario | Action |
|---|---|
| Remote fetch fails | Warn and continue |
| Pull conflicts | Stop, instruct to resolve manually |
| Pre-flight fails | Stop, AskUserQuestion: skip or fix |
| Commit fails | Stop (likely pre-commit hook) |
| Tag already exists | Stop, AskUserQuestion with next version suggestion |
| Push fails | Warn, show manual command |
| gh not installed | Warn, provide manual release URL |