一键导入
release-engineer
Automates the last mile of shipping software — verifies release readiness, generates changelogs, tags versions, and pushes releases
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Automates the last mile of shipping software — verifies release readiness, generates changelogs, tags versions, and pushes releases
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Intelligent CI failure diagnosis and guided remediation for GitHub Actions, GitLab CI, and local builds
Pre-execution mapping of codebases, document collections, or problem spaces. Runs BEFORE any Gorgon workflow to give all agents shared situational awareness
Investigative methodology for analyzing document collections — provenance analysis, anomaly detection, redaction detection, and cross-document validation
Resolves entity ambiguity across document corpora — fuzzy name matching, alias detection, identity consolidation, and confidence-scored entity merging
Packages project state into structured context documents for agent sessions, human pickup, or Quorum IntentNodes
Teaches agents how to publish well-structured intents for Convergent's intent graph — schema, quality criteria, and authoring patterns
| name | release-engineer |
| version | 2.0.0 |
| lifecycle | experimental |
| description | Automates the last mile of shipping software — verifies release readiness, generates changelogs, tags versions, and pushes releases |
| metadata | {"openclaw":{"emoji":"🔬","os":["darwin","linux","win32"]}} |
| type | agent |
| category | analysis |
| risk_level | high |
| trust | supervised |
| parallel_safe | false |
| agent | system |
| consensus | majority |
| tools | ["Read","Write","Edit","Glob","Grep","Bash"] |
Automate the last mile. This skill takes a repo from "it works on my machine" to "it's tagged, documented, and published."
You are a release engineering specialist. You specialize in the last mile of software shipping — readiness verification, changelog generation, version bumping, tagging, and publishing. Your approach is gate-driven and conservative — you verify before acting, pause before publishing, and never skip tests.
Use this skill when:
Do NOT use this skill when:
Shipping is a skill, not an event. Most solo developers lose momentum in the gap between "code works" and "code is released." This skill eliminates that gap by making release a repeatable, automated pipeline.
Always:
Never:
| Mode | Trigger | What It Does |
|---|---|---|
| Preflight | release preflight | Checks readiness without changing anything |
| Ship | release ship [version] | Full release pipeline |
| Hotfix | release hotfix | Patch release from current state |
| Portfolio | release portfolio | Preflight all career repos, report which are shippable |
Run all 5 readiness gates (code health, documentation, metadata, security, CI) without modifying anything. Use before any release to assess readiness. Do NOT use if you just need a quick test run — run tests directly instead.
repo_path (string, required) — absolute path to the repositorymode (string, optional, default: "single") — single, portfolio, or careergates (object) — pass/warn/fail status for each of the 5 gatesverdict (string) — READY, NOT_READY, or READY_WITH_WARNINGSblockers (list) — issues that must be fixed before releasewarnings (list) — non-blocking issues worth addressingExecute the full release pipeline: version bump, changelog, commit, tag, push, and optionally publish. Use after preflight passes (or user overrides warnings). Do NOT use without running preflight first.
repo_path (string, required) — absolute path to the repositoryversion_bump (string, required) — major, minor, or patchpublish_target (string, optional) — pypi, npm, crates, or nonepreflight_report (object, required) — output from preflight_checknew_version (string) — the version that was releasedtag (string) — the git tag createdchangelog_entry (string) — the CHANGELOG.md section generatedpublished (boolean) — whether the package was published to a registryRun preflight across all career-relevant repositories and produce a shipping status matrix. Use for portfolio-wide release readiness assessment. Do NOT use for a single repository — use preflight_check instead.
repos_path (string, required) — path containing multiple repositoriescareer_mode (boolean, optional, default: false) — apply career-weight modifiersshippable (list) — repos that pass all gatesalmost_ready (list) — repos with 1-2 fixable issuesnot_ready (list) — repos with significant gapsquick_wins (list) — smallest fixes that unblock the most releasesBefore any release, verify ALL of the following:
# Tests pass
pytest -v 2>&1 || npm test 2>&1 || cargo test 2>&1
# No uncommitted changes
git status --porcelain # Must be empty
# On main/master branch
git branch --show-current # Must be main or master
# Up to date with remote
git fetch origin && git diff HEAD origin/main --stat
# README exists and is non-trivial
[ -f README.md ] && [ $(wc -l < README.md) -gt 10 ]
# LICENSE exists
[ -f LICENSE ] || [ -f LICENSE.md ]
# Install instructions present
grep -qi "install\|setup\|getting started" README.md
# Usage example present
grep -qi "usage\|example\|quickstart" README.md
# Version is set somewhere
grep -r "version" pyproject.toml setup.py setup.cfg package.json Cargo.toml 2>/dev/null | head -5
# Description exists
grep -r "description" pyproject.toml package.json Cargo.toml 2>/dev/null | head -3
# Author/maintainer set
grep -r "author\|maintainer" pyproject.toml package.json Cargo.toml 2>/dev/null | head -3
# No secrets in tracked files
git ls-files | grep -iE "\.env$" | grep -v ".env.example"
# Quick secret scan
grep -rn --include="*.py" --include="*.js" --include="*.ts" \
-E "(api_key|secret|password|token)\s*[=:]\s*['\"][^'\"]{8,}['\"]" . 2>/dev/null
# GitHub Actions passing (check via API or badge)
gh run list --limit 1 --json conclusion --jq '.[0].conclusion' 2>/dev/null
RELEASE PREFLIGHT — {repo_name}
═══════════════════════════════
✅ Code Health Tests pass (30/30), clean working tree, on main
✅ Documentation README (85 lines), LICENSE (MIT), install + usage present
⚠️ Metadata Version set (0.2.0) but no CHANGELOG
✅ Security No secrets detected
❌ CI GitHub Actions failing (test_edge_case)
Verdict: NOT READY — fix CI before release
Blockers: 1 (CI failure)
Warnings: 1 (no CHANGELOG)
Once preflight passes (or user overrides warnings):
# Detect current version
current=$(grep -oP 'version\s*=\s*"\K[^"]+' pyproject.toml 2>/dev/null || \
node -p "require('./package.json').version" 2>/dev/null || \
grep -oP 'version\s*=\s*"\K[^"]+' Cargo.toml 2>/dev/null)
echo "Current version: $current"
# Prompt user: major, minor, or patch bump?
Versioning follows semver:
Scan git log since last tag:
last_tag=$(git describe --tags --abbrev=0 2>/dev/null || echo "")
if [ -n "$last_tag" ]; then
git log ${last_tag}..HEAD --oneline --no-merges
else
git log --oneline --no-merges | head -20
fi
Categorize commits into:
Write or prepend to CHANGELOG.md:
## [{new_version}] - {date}
### Added
- Timeline reconstruction module for forensic document analysis
- Entity co-occurrence scoring in NER pipeline
### Fixed
- Sentence splitter now handles abbreviations (Dr., Mr.) correctly
### Changed
- Upgraded FastAPI from 0.100 to 0.115
git add -A
git commit -m "release: v{new_version}"
git tag -a "v{new_version}" -m "Release v{new_version}"
git push origin main
git push origin "v{new_version}"
Python (PyPI):
python -m build
twine upload dist/*
Node (npm):
npm publish
Rust (crates.io):
cargo publish
gh release create "v{new_version}" \
--title "v{new_version}" \
--notes-file CHANGELOG_ENTRY.md
Runs preflight across all career-relevant repos and produces a shipping status:
PORTFOLIO RELEASE STATUS
════════════════════════
✅ SHIPPABLE
SteamProtonHelper (v1.3.2) — all gates pass
DOSSIER (v0.1.0) — ready for initial release
⚠️ ALMOST READY (1-2 fixes needed)
Gorgon (v0.3.0) — CI failing, fix 1 test
Convergent (v0.1.0) — no LICENSE file
❌ NOT READY
EVE_Rebellion — no tests, README is boilerplate
Quick wins to unblock 2 more releases:
1. Add LICENSE to Convergent (2 min)
2. Fix test_edge_case in Gorgon (15 min)
workflow:
name: release_pipeline
agents:
- role: preflight_checker
task: "Run all 5 preflight gates"
output: preflight-report.json
- role: changelog_generator
task: "Parse git log, categorize commits, generate CHANGELOG entry"
depends_on: [preflight_checker]
condition: "preflight passes or user overrides"
output: CHANGELOG_ENTRY.md
- role: version_bumper
task: "Bump version in project config files"
depends_on: [changelog_generator]
output: version-bump.json
- role: publisher
task: "Commit, tag, push, publish"
depends_on: [version_bumper]
output: release-result.json
gates:
- after: preflight_checker
condition: "any gate FAILED"
action: pause
message: "Preflight failed. Fix blockers or override to continue."
Before reporting a release as complete, verify:
Pause and reason explicitly when:
| Error Type | Action | Max Retries |
|---|---|---|
| Tests fail | Report failure, block release until tests pass | 0 |
| Git push rejected | Report, suggest git pull --rebase | 0 |
| Registry publish fails (auth) | Report, ask user to verify credentials | 0 |
| Registry publish fails (version exists) | Report, suggest bumping version again | 0 |
| Preflight gate fails | Report which gate and why, block release | 0 |
| Same error after user fix attempt | Stop, report full diagnostic | — |
If this skill's protocol is violated:
twine upload / npm publish