Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Use when product-lead is about to run a release retrospective after a successful MAJOR or MINOR release push (PATCH skipped). Provides applicability gate, pre-conditions, 7-step execution sequence, anti-patterns, and the verification gate before commit. Pairs with template docs/reviews/retro-_TEMPLATE.md and slash /agf-release-retro.
.claude/skills/pcliangx-agf-running-release-retro/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-07 | ✗→✓ | ▲ Improved | 10% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 42% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 83% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 165% | 0% |
| case-13 | ✗→✓ | ▲ Improved | 165% | 0% |
Use this skill when:
vX.0.0) or MINOR (vX.Y.0) release tag and created the GitHub release/agf-release-retro vX.Y.Z and the slash dispatched hereParse vX.Y.Z to gate execution:
> retro 是 release 后的建议复盘(非强制 gate,见 versioning.md step 7);本 skill 在用户主动触发 /agf-release-retro 时运行。
Y=0 ∧ Z=0 → MAJOR, retro applies — proceedY>0 ∧ Z=0 → MINOR, retro applies — proceedZ>0 → PATCH, abort with message: "PATCH release — retro not applicable per versioning.md, exiting."If the version is PATCH, do not proceed.
All must pass before the execution sequence. On any failure, SendMessage product-lead the specific failure and do not proceed:
## [vX.Y.Z](不再要求"pushed to origin"——下条 gh release view 已隐含 release 必须可见于 GitHub)git tag -l vX.Y.Z returns the taggh release view vX.Y.Z returns the releaseCopy docs/reviews/retro-_TEMPLATE.md to docs/reviews/retro-vX.Y.Z-YYYY-MM-DD.md (use today's date). Pre-fill:
gh release view --json createdAt)[vX.Y.Z](../../CHANGELOG.md)Read CHANGELOG ## [vX.Y.Z] section and any linked PRD / ADR. Write §1 with:
Use Agent({subagent_type: ..., prompt: ...}) to send parallel self-report prompts to roles that contributed to this release:
code-reviewer — code review severity distribution, rejection rates, SIT Audit verdicts (Pass / Pass with concerns / Redo SIT counts)qa-engineer — E2E / UAT failure counts, AC gaps missed until production (SIT is dev-owned; not in qa scope)backend-dev / frontend-dev / ai-agent-dev / ml-engineer / any miniapp-*) — implementation blockers, rework root causestech-lead — only if this release contains an ADR changeEach role returns ≤3 highlights / ≤3 pains / ≤3 Action item candidates.
Read each returned self-report and integrate into:
/usage 的 4 类 token 字段(input_tokens / output_tokens / cache_creation_input_tokens / cache_read_input_tokens)+ 总 cost + cache hit ratio,按 cost-budget.md 分档明确写"本 release 落 Small / Medium / Large 哪档"(或"不涉 cost")。这是跨 release 对比与 sweet-spot 判定的唯一数据来源。/usage 实数强制:4 类实数由用户在会话里跑 /usage 贴给 product-lead(/usage 是 Claude Code 交互命令,agent 无法自跑);§3 缺任一实数则本 retro 不得标记完成、不得进 Step 7——SendMessage 用户索要后等待。
Deduplicate Action item candidates and draft §5 (Action Items table)。§5 表必须带「继承次数」列:新项 = 0;承自上一轮 §5 的项 = 上一轮该项值 +1。
> 项目声明不统计 Velocity / Burndown(见 product-workflow.md §4.4),但跨 retro 的"起点 → tag 日期"数据天然存在。累计 ≥3 个 retro 后强制做趋势评估,作为 Velocity 的隐式形式。
执行:
ls docs/reviews/retro-v*.md | sort 列出全部历史 retro写入 §1 末尾或 §4 流程协作节,不另起独立小节,避免文档膨胀。
任一 action 继承次数已 ≥2(上一轮 §5 该项「继承次数」列 ≥2)时,本轮必须二选一,不得再入 §5:
done 并附证据链接dropped:§0 标 dropped + 一句话放弃理由本轮 §5 出现「继承次数」≥3 的行即非法(= 第三次继承),verification gate 直接 fail。
release 时跑 codemap bloat-snapshot --note vX.Y.Z 记一帧膨胀指标(dup_rate / 复杂度 / 死代码 + LOC context)到 .agf/bloat-trend.json(committed、append-only)。retro 可选 codemap bloat-trend --render md 看趋势——判断膨胀是否在长。LOC 是「上下文·非目标」虚荣指标,看趋势时关注质量(重复率 / 复杂度 / 死代码)而非 LOC。
≥3 帧后可在 §1 或 §4 写一句趋势结论(稳定 / 恶化 / 改善);<3 帧写 "数据点不足"。趋势回归(PR 让质量指标退步)由 agf-bloat-trend-precheck.sh 在 dev 报告前 advisory 提示(串 agf-advisory.sh,命中进 review-checklist §7)。
Decide: 是 (public) or 否 (not public).
content-writer to produce docs/content/internal/[YYYY-MM-DD]-[slug].md from this retro as source material按 skill agf-skill-stocktake 对 .claude/skills/agf-*/SKILL.md 做内容质量盘点(5 维度 checklist + Keep/Improve/Update/Retire/Merge 裁定)。可选步骤、不进 verification gate——跳过不影响 retro 完成;产出的 Update/Retire 项作为 §5 Action item 候选。
All must pass before commit:
done + 证据)或 (b) dropped + 理由,禁止第三次继承/usage 4 类 token 实数(input / output / cache_read / cache_create,用户贴入);缺任一实数 retro 不得标记完成If any check fails, do not proceed to Step 7.
bashgit add docs/reviews/retro-vX.Y.Z-YYYY-MM-DD.md git commit -m "docs(retro): vX.Y.Z release retrospective"
Do not push.
dropped,见 §4.2)/usage 4 类 token 实数仍把 retro 标记完成(实数由用户贴入,缺则等待)docs/reviews/retro-vX.Y.Z-YYYY-MM-DD.mddocs/content/internal/[YYYY-MM-DD]-[slug].md (if §6 = 是)| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-07 | fail→pass | 18,141 | 3,066 | -83% | 1 | 1 | 0% | 2,670 | 2,949 | +10% | 0 | 0 | — |
case-16 | pass→pass | 10,526 | 5,643 | -46% | 1 | 1 | 0% | 1,636 | 3,241 | +98% | 0 | 0 | — |
case-01 | fail→fail | 7,239 | 5,431 | -25% | 1 | 1 | 0% | 350 | 2,716 | +676% | 0 | 0 | — |
case-02 | fail→fail | 4,962 | 5,596 | +13% | 1 | 1 | 0% | 272 | 2,775 | +920% | 0 | 0 | — |
case-03 | fail→fail | 3,853 | 5,487 | +42% | 1 | 1 | 0% | 299 | 2,831 | +847% | 0 | 0 | — |
case-04 | fail→pass | 13,025 | 2,159 | -83% | 1 | 1 | 0% | 1,958 | 2,773 | +42% | 0 | 0 | — |
case-05 | pass→fail | 13,908 | 3,267 | -77% | 1 | 1 | 0% | 1,968 | 2,845 | +45% | 0 | 0 | — |
case-06 | fail→fail | 7,928 | 7,645 | -4% | 1 | 1 | 0% | 1,283 | 2,890 | +125% | 0 | 0 | — |
case-08 | fail→fail | 11,273 | 6,679 | -41% | 1 | 1 | 0% | 1,733 | 2,817 | +63% | 0 | 0 | — |
case-09 | pass→pass | 7,412 | 5,287 | -29% | 1 | 1 | 0% | 1,207 | 3,315 | +175% | 0 | 0 | — |
case-10 | pass→pass | 15,970 | 5,172 | -68% | 1 | 1 | 0% | 2,535 | 3,324 | +31% | 0 | 0 | — |
case-11 | fail→pass | 10,930 | 3,368 | -69% | 1 | 1 | 0% | 1,630 | 2,983 | +83% | 0 | 0 | — |
case-12 | fail→pass | 7,932 | 3,796 | -52% | 1 | 1 | 0% | 1,132 | 2,995 | +165% | 0 | 0 | — |
case-13 | fail→pass | 8,641 | 6,882 | -20% | 1 | 1 | 0% | 1,380 | 3,657 | +165% | 0 | 0 | — |
case-14 | pass→pass | 5,406 | 3,687 | -32% | 1 | 1 | 0% | 761 | 3,053 | +301% | 0 | 0 | — |
case-15 | fail→pass | 9,288 | 4,867 | -48% | 1 | 1 | 0% | 1,446 | 3,294 | +128% | 0 | 0 | — |
case-17 | fail→pass | 13,678 | 5,764 | -58% | 1 | 1 | 0% | 2,104 | 3,443 | +64% | 0 | 0 | — |
case-18 | fail→pass | 8,106 | 1,950 | -76% | 1 | 1 | 0% | 1,391 | 2,767 | +99% | 0 | 0 | — |
case-19 | fail→pass | 8,572 | 3,037 | -65% | 1 | 1 | 0% | 1,215 | 2,928 | +141% | 0 | 0 | — |
case-20 | pass→pass | 3,518 | 3,034 | -14% | 1 | 1 | 0% | 559 | 2,970 | +431% | 0 | 0 | — |
case-21 | fail→pass | 7,442 | 1,998 | -73% | 1 | 1 | 0% | 1,227 | 2,828 | +130% | 0 | 0 | — |
case-22 | fail→pass | 8,499 | 3,307 | -61% | 1 | 1 | 0% | 1,490 | 2,996 | +101% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 17 counted toward the lift figure. The other 5 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of +45 percentage points is the difference between those two pass rates over the 17 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.