| name | harness-release |
| description | Generic release automation for projects using Keep a Changelog + GitHub. Single confirmation gate then end-to-end automation: bump detection, CHANGELOG promotion, PR/main merge, tag, GitHub Release. Trigger: release, version bump, publish. Do NOT load for: implementation, review, planning, setup. |
Harness Release (æ±çš)
Keep a Changelog + GitHub ã䜿ããããããããžã§ã¯ãåãã®æ±çšãªãªãŒã¹èªååã¹ãã«ã
èšèšåå: åäžç¢ºèªã²ãŒãããŠãŒã¶ãŒã¯ 1 åã ãå
šäœèšç»ãèŠãŠæ¿èªãããæ¿èªåŸã¯ãã¡ã€ã«æžãæã â commit â branch push â PR äœæ/æŽæ° â default branch ãž merge â default branch äžã§ tag â GitHub Release ãŸã§ãäžæãªãå®è¡ããã
Release complete ã®å®çŸ©: release ã¯ãtag ãš GitHub Release ãäœã£ããã ãã§ã¯å®äºã§ã¯ãªãã察象 work ãš release bump ã default branchïŒéåžž mainïŒã« merge æžã¿ã§ãrelease tag ã default branch å°éå¯èœ commit ãæããGitHub Release ããã® tag ãå
¬éããŠããç¶æ
ãå®äºãšããã
PR ready vs release ready
Harness V2 ã§ã¯ PR closeout ãš release closeout ãæ··åããªãã
| Gate | æå³ | å¿
é æ¡ä»¶ | 忢 lane |
|---|
| PR ready | ãã©ã³ãã review å¯èœã§ merge 倿ã§ãã | harness-review APPROVEãfocused tests PASSãevidence pack å®åïŒaccepted/rejected findingsãtestsãrelease-preflight warnings åŠçãresidual riskïŒ | [lane:fast] / [lane:gate] ã¯ããã§åæ¢å¯ |
| release ready | å
¬éé
åž path ã preflight ãéé | PR ready æ¡ä»¶ + version surface sync + tag + GitHub Release + CI/public artifact æ€èšŒ | [lane:release] ã®ã¿ |
- PR ready ã¯
harness-review APPROVE + evidence pack ã§å€å®ãããharness-review ãã push / PR / merge ã¯ããªãã
- release ready ã¯
harness-release ã® Preflight / Post-Gate ã ããå€å®ãããversion bump / tag / GitHub Release 㯠release lane å°çšã
- local tests passed ã ãã§ã¯ PR ready ã§ã release ready ã§ããªãïŒ
not_observed != absentïŒã
Literal invocation note: ãã® skill ã®å
¥å£ã¯ harness-release, /release, /release patch, /release --dry-run ã®ãã㪠literal command ããã®ãŸãŸäœ¿ãã
CC runtime hard floor ãšã®é¢ä¿
Claude Code 2.1.183+ ã® runtime hard floor 㯠GitHub CLI release publish ç³»ã³ãã³ããæ§é çã« deny ãã (Anthropic 補å仿§ãsettings.json ã® permissions.ask ã§èŠããªã)ãæ¬ skill 㯠publish èªäœãå®è¡ããã.github/workflows/release.yml (tag push trigger) ã«å§è²ãããskill 㯠tag push ãŸã§ã§è²¬åãå®äºãããã®åŸ scripts/release-verify-publish.sh ã§ workflow ã«ããå
¬éã verify ããã
Revert æ¡ä»¶: CC ã runtime hard floor ã« user explicit approval path ãæäŸããããPost-Gate ã«çŽæ¥ publish step ãæ»ãããšãæ€èšããã
Bare invocation contract
if $ARGUMENTS == "":
â ãä»ãŸã§ã®äœæ¥ãã³ãããããPR/main åæ ãŸã§å®äºããŠãªãªãŒã¹ãããããšè§£éããReview Gate æ€åºãå®è¡ãã
â 察象 work ã 1 ã€ã«ç¢ºå®ã§ããå Žåã ã Step 0 (Review Gate) ãžèªåé²è¡ãã
â 察象ãäžæãŸã㯠review state ãç¡ãå Žå㯠AskUserQuestion ã§éžæè¢ãåºããŠããé²ãã
åŒæ°ãªãåŒã³åºãæã®æåã®å¿çã§å¿
ãæ¬¡ã® literal marker ãåºåãã:
RELEASE_AUTOSTART: target=<work-summary>, base_ref=<ref>, mode=<patch|minor|major|auto>
ãã¿ã¹ã¯ãäžæç¢ºããæç€ºãåŸ
ã¡ãŸãããã¿ã¹ã¯ããããŸãããã远å ã®æç€ºããåŸ
ã¡ããŸããã¯çŠæ¢è¡åã
Output Contract (P35: ãæ¢ãŸã£ãããã«èŠãããUX 察ç)
skill çµè«æã® output ã® æåŸã® 1 è¡ã¯å¿
ãæ¬¡ã® literal ãå«ãã:
âãã®çµæã¯ Claude ãèŠçŽããŸããEnter ããŒã§æ¬¡ãžé²ãããæ°èŠ prompt ã§å¥ã®æç€ºãåºããŠãã ããã
ãã㯠<local-command-stdout> çµç±ã§ text response ãšããŠè¡šç€ºããããš user ããæ¢ãŸã£ãããšæãã UX åé¡ãžã®æç€ºç㪠instruction (patterns.md P35)ã
harness-release / /release ã ããå
¥åãããå Žåãããã¯
ãä»ãŸã§ã®äœæ¥ãã³ãããããPR/main åæ ãŸã§å®äºããŠãªãªãŒã¹ãããã ãšããæå³ãšããŠæ±ãã
æ§è¡šçŸã® ãä»ãŸã§ã®äœæ¥ãã³ãããããŠãªãªãŒã¹ãããã ãåãæå³ã ããå®äºæ¡ä»¶ã«ã¯ PR/main åæ ãå¿
ãå«ããã
ãã¿ã¹ã¯ããããŸããããæç€ºãåŸ
ã¡ãŸããã§æ¢ãŸã£ãŠã¯ãããªãã
bare release ã§ã¯ãéåžžã® release preflight ã®åã« Review Gate ãš Work Commit Gate ãå®è¡ããã
Review Gate 㯠release ready åãã[lane:fast] / [lane:gate] ã® PR ready ã ããå¿
èŠãª work ã«ã¯ããŠãŒã¶ãŒã release ãæç€ºããªãéã harness-release ãèµ·åããªãã
git status --porcelain ãš git log @{upstream}..HEAD / main..HEAD ã確èªãããä»ãŸã§ã®äœæ¥ãã®å¯Ÿè±¡ãç¹å®ãã
.claude/state/review-result.json ãš .claude/state/review-approved.json ã確èªãã察象 work ã« APPROVE æžã¿ review ãš evidence pack ãããã確èªãã
- APPROVE æžã¿ review ãç¡ãå Žåã¯
AskUserQuestion ã§ç¢ºèªãã
- ãŠãŒã¶ãŒããã¬ãã¥ãŒããéå§ããéžãã ãã
harness-review ãèµ·åããAPPROVE ã«ãªããŸã§ release ãžé²ãŸãªã
harness-review ã REQUEST_CHANGES ãè¿ããå Žå㯠release ãä¿çããharness-work ã§ä¿®æ£ããŠãã harness-review ãåå®è¡ãããããã APPROVE ãŸã§ã«ãŒããã
harness-review ã APPROVE ãè¿ããåŸãworking tree ã®äœæ¥ commit ãäœã
- working tree clean ã«ãªã£ãŠããéåžžã® release preflight / confirmation gate / PR merge / tag / GitHub Release ãžé²ã
Review Gate AskUserQuestion
harness-release å®è¡æã« review approval ã確èªã§ããªãå Žåã¯ãæšæž¬ã§ release ããªãã
次㮠Ask ãåºãã
question: "harness-release ã¯ä»ãŸã§ã®äœæ¥ãã³ãããããŠãªãªãŒã¹ããŸããããã®äœæ¥ã® APPROVE review ãèŠã€ãããŸãããã©ãé²ããŸããïŒ"
options:
- label: "ã¬ãã¥ãŒããéå§ (Recommended)"
description: "harness-review ãå®è¡ããAPPROVE ã«ãªã£ãå Žåã ã commit/release ãžé²ã¿ãŸãã"
- label: "release dry-run"
description: "ãã¡ã€ã«ãæžãæãããrelease èšç»ãšäžè¶³ gate ã ã確èªããŸãã"
- label: "äžæ¢"
description: "review ã release ãè¡ããæ¢ããŸãã"
ãŠãŒã¶ãŒããã¬ãã¥ãŒããéå§ããéžãã å Žåã¯ãåãã»ãã·ã§ã³å
ã§ harness-review ããå§ããã
harness-review ã®å¯Ÿè±¡æ±ºå®ã¯ harness-review åŽã® bare review contract ã«åŸãã
review ã APPROVE ãªãããã®ãŸãŸ harness-release ã® Work Commit Gate ãžæ»ãã
review ã REQUEST_CHANGES ãªã release ã¯ä¿çããharness-work ã§ä¿®æ£ããŠãã harness-review ãåå®è¡ããã
ãã®ä¿®æ£åŸåã¬ãã¥ãŒ loop 㯠APPROVE ãŸã§ç¶ç¶ããã
ãŠãŒã¶ãŒã«æ»ããŠããã®ã¯æ¬¡ã®å Žåã ãã
- ä¿®æ£ã«ä»æ§æ£æ¬ / Plans.md / API / permission / migration / billing ãªã©ã®æææ±ºå®ãå¿
èŠã§ã
AskUserQuestion ãå¿
èŠ
- ä¿®æ£æ¹éãè€æ°ãããã©ããæ¡ããã§ãŠãŒã¶ãŒäŸ¡å€ãäºææ§ãå€ãã
- ãŠãŒã¶ãŒã Ask ã§
release dry-run ãŸãã¯ äžæ¢ ãéžãã
REQUEST_CHANGES åäœãæçµåæ¢çç±ã«ããŠã¯ãããªãã
Work Commit Gate
bare release ã§ working tree ã«æªã³ããã倿Žãããå Žåãrelease version bump commit ãšã¯å¥ã«ã
review æžã¿ work commit ãå
ã«äœãã
git status --short
git diff --stat
git add <reviewed files>
git commit -m "<type>: <summary>"
commit message 㯠review summary / Plans.md task / branch name ããçãçæããã
倿ã§ããªãå Žå㯠AskUserQuestion ã§ 2ã3 åã® commit message åè£ãåºãã
work commit äœæåŸã« .claude/state/review-result.json ã® commit_hash ã確èªãŸãã¯æŽæ°ãã
release preflight ãžé²ãã
éåžžã® release preflight ã«å
¥ã£ãåŸã¯ããããŸã§éã working tree dirty ã fail ãšããã
dirty tree ã®ãŸãŸ version bump / tag / GitHub Release ã«é²ãŸãªãã
Quick Reference
/release
/release patch
/release minor
/release major
/release --dry-run
åææ¡ä»¶
ãã®ã¹ãã«ãåããããžã§ã¯ãã¯ä»¥äžãæºããå¿
èŠããããŸã:
CHANGELOG.md ã Keep a Changelog 圢åŒ
[Unreleased] ã»ã¯ã·ã§ã³ãååšãã
- 以äžã®ããããã® version file ãæã€:
VERSION (åç¬ãã¡ã€ã«)
package.json (npm)
pyproject.toml (Python, [project] ãŸã㯠[tool.poetry])
Cargo.toml (Rust, [package])
gh CLI ãã€ã³ã¹ããŒã«æžã¿ã§ãèªèšŒæžã¿
- git ãªã¢ãŒã
origin ã GitHub ãæã
- Claude Code plugin project ã®å Žåã¯ã
claude CLI ã plugin validate ããµããŒãããŠãã
ããããæºããããªãå ŽåãPreflight ã§ detect ã㊠abort ããŸãã
prUrlTemplate ã«ãã multi-host review URL ã¯å°æ¥åè£ãšããŠèªèãããã
ãã®ã¹ãã«ã® release automation ã¯ä»ã gh CLI ãš GitHub remote ã primary path ãšããã
owner / branch / release asset / CI metadata ã®èªåååŸã¯ host ããšã®å·®ã倧ãããããPhase 56.2.3 ã§ã¯ docs-only ã«çããã
åäžã²ãŒããããŒ
Bare releaseïŒ0. Review Gate â 0.5 Work Commit GateïŒâ
Pre-GateïŒ1. Preflight â 2. Version file æ€åº â 3. ããŒãžã§ã³èªã¿åã â 4. plugin version sync preflight â 5. bump æšå® â 6. æ°ããŒãžã§ã³ç®åº â 7. CHANGELOG ãã©ãã â 8. Release notes ãã©ããïŒâ
åäžç¢ºèªã²ãŒãïŒäžèšãConfirmation Gateãåç
§ãyes / <ä¿®æ£æç€º> / cancel ã® 3 æïŒâ
Post-GateïŒ9. Version file æžãæã â 10. CHANGELOG ææ Œ â 11. commit â 12. branch push â 13. PR äœæ/æŽæ° â 14. default branch merge â 15. å°éå¯èœæ§ç¢ºèª â 16. semver tag â 17. tag push â 18. workflow publish verify â 19. å®äºå ±åïŒ
ã® 3 段éã§é²ããåæ®µã®è©³çްã¯ãPre-Gate 詳现ããConfirmation GateããPost-Gate 詳现ããåç
§ã
Pre-Gate 詳现
1. Preflight
release ready gate: PR ready æ¡ä»¶ã«å ããversion / tag / GitHub Release / CI artifact path ã確èªããã
command -v gh >/dev/null || { echo "gh CLI ããããŸãã"; exit 1; }
command -v python3 >/dev/null || { echo "python3 ãå¿
èŠã§ã"; exit 1; }
if [ -n "$(git status --porcelain)" ]; then
echo "working tree ã«æªã³ããã倿ŽããããŸã"; exit 1;
fi
[ -f CHANGELOG.md ] || { echo "CHANGELOG.md ããããŸãã"; exit 1; }
grep -q "^## \[Unreleased\]" CHANGELOG.md || { echo "[Unreleased] ã»ã¯ã·ã§ã³ããããŸãã"; exit 1; }
scripts/release-preflight.sh
ãã® working tree clean check ã¯éåžž release preflight ã® gate ã§ããã
bare release ã§ãä»ãŸã§ã®äœæ¥ãã commit ãããå Žåã¯ããã® check ã®åã« Review Gate ãš Work Commit Gate ãå®äºãããã
æªã¬ãã¥ãŒã® dirty tree ããã® check ã ãã§ abort ããŠçµããããŠã¯ãããªãã
scripts/release-preflight.sh 㯠tag äœæåã« opencode/, skills-codex/, codex/.codex/skills/ ã® mirror drift ãæ€åºãããnode scripts/build-opencode.js ãå·®åãçæããå Žå㯠release ãæ¢ãããã®å·®åã commit ããŠãã tag ã«é²ãã
release preflight 㯠host workflow smoke ã REQUIRED=1ïŒfail-closedïŒã§å
š dist host ã«å¯ŸããŠå®è¡ããã1 host ã§ã FAIL ãªã release ãæ¢ããããã㯠multi-host bar H7ïŒrelease-preflight consumes host gates fail-closedïŒã®å
è¶³é
ç·ã§ãããscripts/release-preflight-host-smoke.sh åç
§ãfail-closed ã®æ£æ¬ã¯ operator ãã·ã³ã® preflight ã§ãããGitHub runnerïŒGITHUB_ACTIONS=trueïŒã§ã¯ CLI æª provision ã® host ãæç€º SKIP è¡ã€ãã§é£ã°ãïŒtag-triggered workflow ã®åå®è¡ãå
š release ãå¡ããªããããv5.3.0 run 29679591686 ã® regression 察å¿ïŒã
2. Version File èªåæ€åº
VERSION â package.json â pyproject.tomlïŒ[project] / [tool.poetry]ïŒâ Cargo.toml ã®åªå
é ã§æ¢çŽ¢ããæåã«èŠã€ãã£ããã®ãæ£æ¬ãšããã
æ€åºã¹ããããã»èªã¿åãããžãã¯ã®è©³çް: version-files.md
3. Claude Plugin Version Sync Preflight
.claude-plugin/plugin.json ãååšãã project ã§ã¯ãsemver tag ãåãåã« plugin manifest ã® validation ãšå
š version surface ã®åæã確èªããã
plugin tag ({plugin-name}--v{version}) 㯠2026-08-17 ã«å»æ¢ãmarketplace.json ã® source ãçžå¯Ÿãã¹ ("./") ã§ install 㯠tag ãåç
§ããªããããå®å¹æ§ãç¡ããŸãŸ v5.6.0 以é 3 ãªãªãŒã¹é£ç¶ã§æ¬ çªã«ãªã£ãŠãããGitHub Release çš semver tag vX.Y.Z ã«äžæ¬åãã (decisions.md D69)ã
Pre-Gate ã§ã¯ãã¡ã€ã«ãæžãæããã以äžã確èªããã
version sync 㯠grep / sed ã§æŸãããJSON 㯠structured parser ã§èªã:
command -v claude >/dev/null || { echo "claude CLI ããããŸãã"; exit 1; }
claude plugin validate .claude-plugin/plugin.json
HARNESS_PLUGIN_ROOT="${CLAUDE_PLUGIN_ROOT:-.}"
python3 "${HARNESS_PLUGIN_ROOT}/scripts/check-release-version-sync.py" --root .
${HARNESS_PLUGIN_ROOT}/scripts/check-release-version-sync.py ã¯ãååšãã release surface ããã¹ãŠèªã¿åããcanonical ã VERSION > package.json > .claude-plugin/plugin.json > .codex-plugin/plugin.json ã®é ã§æ±ºããã
ãã®ããã§ã以äžã®äžäžèŽã»æ¬ èœã 1 ã€ã§ãããã° tag / release ã«é²ãŸãªã:
VERSION
package.json ã® .version
.claude-plugin/plugin.json ã® .version
.codex-plugin/plugin.json ã® .version
.claude-plugin/marketplace.json ã® .metadata.version
.claude-plugin/marketplace.json ã® .plugins[].versionïŒé
åå
ã®å plugin entryïŒ
äžäžèŽæã¯ãã©ã® surface ã canonical ãšéããããŸãã¯ã©ã® field ã missing / invalid ãã衚瀺ããã
æ©æ¢°åŠçã CI ã§èªãå Žå㯠--json ã䜿ã:
python3 "${HARNESS_PLUGIN_ROOT}/scripts/check-release-version-sync.py" --root . --json
ãã® check 㯠3 ã€ã®äºæ
ãé²ãããã«ãã:
VERSION ãš .claude-plugin/plugin.json ã® version ãããããŸãŸ tag ãåãäºæ
package.json / marketplace entry ã® version ãå€ããŸãŸ release workflow ã«é²ãäºæ
- plugin manifest / marketplace entry ã® validation ãéãããããšã§ plugin install / update åŽã§è©°ãŸãäºæ
ãã® check ã®çµæ (canonical version ãšå surface ã®äžèŽ) ã Confirmation Gate ã® plan ã«å«ããã
4. Bump èªåæšå®
[Unreleased] çŽäžã®èŠåºãïŒ### Breaking Changes/### Removed â majorã### Added â minorã### Fixed/### Changed/### Security ã®ã¿ â patchã空ã»ã¯ã·ã§ã³ â errorïŒãè§£æã㊠bump level ãæ±ºå®ããã
ãŠãŒã¶ãŒã /release patch|minor|major ã§æç€ºæå®ããå Žåã¯ãã¡ããåªå
ã
詳现: bump-detection.md
5. CHANGELOG ãã©ããäœæ (ã¡ã¢ãªäž)
[Unreleased] ã®å
容ãåãåºãã[<new>] - YYYY-MM-DD ã»ã¯ã·ã§ã³ãš compare link ãçµã¿ç«ãŠãïŒãŸã æžã蟌ãŸãªãïŒã
詳现: release-notes.md
6. Release Notes ãã©ããäœæ (ã¡ã¢ãªäž)
## [<new>] ã»ã¯ã·ã§ã³ã®å
容ãå
ã«ãGitHub Release çšã®ããŒã¯ããŠã³ïŒWhat's Changed / Before-After / Added-Changed-Fixed / ããã¿ãŒïŒãçæããã
å¿
é èŠçŽ ã»çææ¹æ³ã»æ€èšŒãã§ãã¯ã®è©³çް: release-notes.md
Confirmation Gate
ãã¹ãŠã®ãã©ãããæã£ããããŠãŒã¶ãŒã« 1 åã ãæç€º:
âââââââââââââââââââââââââââââââ
Release Plan: v<old> â v<new> (<bump>)
âââââââââââââââââââââââââââââââ
Version file: <detected file>
Bump reason: <why this level was chosen>
CHANGELOG changes:
[Unreleased] ã« <N> é
ç®ã®å€æŽãæ€åº
[<new>] - YYYY-MM-DD ãšããŠç¢ºå®
Compare link ã远å
GitHub Release notes preview:
<æåã® 10 è¡>
...
Files to modify:
- <version file>
- CHANGELOG.md
Final actions:
- git commit -m "chore: release v<new>"
- git push origin <release-branch>
- gh pr create/update + gh pr merge into <default-branch>
- git fetch origin <default-branch> && git checkout <default-branch>
- git tag -a v<new> # GitHub Release çš semver tagãdefault branch äžã§äœæ
- git push origin <default-branch> --tags
- (tag push åŸã¯ GitHub Actions release workflow ãèªåã§ release å
Ž)
Proceed? [yes / cancel / <ä¿®æ£æç€º>]
Post-Gate 詳现
æ¿èªåŸã¯äžæãªãã§å®è¡ã倱ææã¯ä»¥äžã®æ¹é:
| 倱æç®æ | åŸ©æ§ |
|---|
| ãã¡ã€ã«æžãæã倱æ | ããã§ abortãããŒã«ã«ã¯ dirty ãªãŸãŸäººéã倿 |
| commit 倱æ | hook æåŠçããŠãŒã¶ãŒã«åå ãæç€ºããŠä¿®æ£ãä¿ã |
| PR äœæ/merge 倱æ | release ãæªå®äºãšããŠåæ¢ãtag / GitHub Release ã«ã¯é²ãŸãªã |
| plugin version sync 倱æ | VERSION / .claude-plugin/plugin.json / marketplace entry ã®äžäžèŽãä¿®æ£ããtag äœæã«ã¯é²ãŸãªã |
| push 倱æ | ãªã¢ãŒãåŽã®åé¡ãããŒã«ã« commit/tag ã¯æ®ã |
PR / Main Merge Gateãsemver tagãVerify Publish
Post-Gate ã® release commit åŸãtag ãäœãåã« GitHub PR ã default branch ãž merge ããïŒgh pr create â gh pr merge --merge â default branch fetch/checkout ã§ release commit ã®å°éå¯èœæ§ã確èªïŒãrelease branch äžã ãã«ååšãã commit ãæã tag ã§ GitHub Release ãäœã£ãŠã¯ãããªãã
.claude-plugin/plugin.json ããã project ã§ã¯ãmerge åŸã« default branch äžã§ version sync ãå確èªããŠãã semver tag vX.Y.Z ãäœã (plugin tag 㯠2026-08-17 廿¢ãD69)ã
tag push åŸã¯ bash scripts/release-verify-publish.sh ã§ .github/workflows/release.yml ã®å
¬éçµæã verify ããïŒ5 ç§éé à 60 å pollingãexit 0=PASS / 2=WARN(timeout) / 3=ERRORïŒã
ã³ãã³ãå
šæã»å€±ææã®å€æåºæºã¯ post-gate-detail.md ãåç
§ã
--dry-run ã¢ãŒã
Pre-Gate å
šãŠãå®è¡ããConfirmation Gate ãŸã§ã®å
容ã衚瀺ããããgate ã§æ¢ãŸã Post-Gate ã«é²ãŸãªãã
Claude plugin project ã®å Žåãdry-run ã§ã python3 "${HARNESS_PLUGIN_ROOT}/scripts/check-release-version-sync.py" --root . ãå®è¡ããcanonical version ãšå surface ã®äžèŽã衚瀺ãããããã§ VERSION / package.json / .claude-plugin/plugin.json / .codex-plugin/plugin.json / .claude-plugin/marketplace.json ã® version surface ãäžäžèŽãŸãã¯æ¬ èœããŠããã°ãdry-run ã®æç¹ã§æ¢ããã
ç°å¢å€æ°
ãããžã§ã¯ãããšã®èª¿æŽã«äœ¿çš:
| 倿° | 説æ |
|---|
HARNESS_RELEASE_PROJECT_ROOT | ãªããžããªã«ãŒã (ããã©ã«ã: $(pwd)) |
HARNESS_RELEASE_BRANCH | push 察象ãã©ã³ã (ããã©ã«ã: çŸåšã®ãã©ã³ã) |
HARNESS_RELEASE_DEFAULT_BRANCH | PR merge å
default branch (ããã©ã«ã: main) |
HARNESS_RELEASE_HEALTHCHECK_CMD | Preflight ã§è¿œå å®è¡ããã³ãã³ã |
HARNESS_RELEASE_SKIP_GH | 1 ã§ GitHub Release äœæãã¹ããã |
CHANGELOG æžãæ¹ã«ãŒã«
[Unreleased] ã»ã¯ã·ã§ã³ã¯ KaCL æšæºãµãã»ã¯ã·ã§ã³ïŒ### Added=minor / ### Changedã»### Fixedã»### Security=patch / ### Deprecated=minor / ### Removedã»### Breaking Changes=majorïŒã®ãããããæã€å¿
èŠãããã
ãã®ã¹ãã«ã¯ãããã®èŠåºããæ©æ¢°çã«è§£æãããããè¡šèšæºãïŒ### Fix / ### Bug Fixes çïŒã¯èªèã§ããªãã
GitHub Release notes ã®å¿
é ãã©ãŒãããã»CHANGELOG ã®ãä»ãŸã§/ä»åŸãèšæ³ã»merge æ¹åŒïŒsquash äžæ¡çšïŒã®è©³çްã¯
github-release.md ãåç
§ã
SemVer å€å®åºæºã»ããããªãªãŒã¹æ¹éã»Release Train Proposal ã®è©³çްã¯
versioning.md ãåç
§ã
åºè·åã®åãå
¥ã倿ïŒéãšã³ãžãã¢åãïŒ
ãªãªãŒã¹ç¢ºå®ã®åã« harness-accept ãææ¡ãããååæ Œæ¡ä»¶ãæºããããããš ship/wait/reject ã®
æšå¥šã 1 æã® HTML ã«ãŸãšãããåãå
¥ã倿ãç»é¢ã§ãçºæ³šè
ãå°éç¥èãªãã§åºè·å¯åŠã倿ã§ããã
é¢é£ã¹ãã«
harness-release-internal - æ¬äœ claude-code-harness ã®ãªãªãŒã¹æã«è¿œå ã§èµ°ããã harness åºæ preflight/finalizationïŒé
åžå¯Ÿè±¡å€ïŒ
harness-plan - Plans.md 管ç
harness-review - ãªãªãŒã¹åã®ã³ãŒãã¬ãã¥ãŒ
harness-accept - åãå
¥ã倿 HTMLïŒéãšã³ãžãã¢åãããªãªãŒã¹åã«ææ¡ïŒ
èšèšææ³
- PR ready / release ready åé¢: PR ready 㯠review + evidence packãrelease ready 㯠version/tag/GitHub Release/CI ãŸã§ãlane:fast / lane:gate 㯠PR ready ã§æ¢ããŠãã
- åäžã²ãŒã: ãŠãŒã¶ãŒã®å€æã¿ã€ãã³ã°ã¯ 1 åã ããmini-confirmation ãæããšã©ããŒã¹ã¿ã³ãåããŠæå³ã倱ã
- äºåã«å
šãŠæã: Post-Gate ã«å
¥ã£ãŠããã®ãèãçŽãããçŠãããGate åã«å
š draft ãæãã
- main åæ ãå®äºæ¡ä»¶: release tag / GitHub Release 㯠default branch åæ åŸã«ã ãäœããbranch-only release ã¯æªå®äºãšããŠæ±ã
- 倱æã¯ transparent: éäžã§å€±æãããèªåããŒã«ããã¯ã¯è©Šã¿ãããŠãŒã¶ãŒã«çŸç¶ãæç€ºããŠå€æããã
- ãããžã§ã¯ãéäŸå: VERSION file 圢åŒãmirrorãresidue check ãªã©ç¹å®ç°å¢ã®åæãæããªããæ¬äœ harness åºæã®åŠçã¯
harness-release-internal ã«åé¢