Installs into .claude/skills of the current project.
Are you the author of Retro?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/easyinplay-retro)
---
name: retro
description: |
Standalone post-④ Verify retrospective workflow — gstack /retro 经验教训 / 决策 / lessons
系统总结 (项目 / 里程碑结束可选, bundled milestone-close retrospective cadence)
+ planning-with-files RETROSPECTIVE.md 持久化 (sister Phase
v2.0-2.5 RETROSPECTIVE pattern)。Capability ref retro-gstack alias suffix per Pattern A
E.2 LOCK (NOT bare retro 避免 standalone workflow / capability namespace 冲突)。
schema_version: harnessed.workflow.v3 with disciplines_applied (6 default) + tools_available
(retro-gstack + planning-with-files) + 2 phase (01-retro gstack invoke + 02-persist
RETROSPECTIVE.md sink)。Triggered by harnessed CLI `harnessed retro --milestone <name>` or
slash command `/retro` after `harnessed setup`.
trigger_phrases:
- "项目总结"
- "里程碑结束"
- "经验教训"
- "retro"
---
# retro workflow (v3 NEW standalone)
## Overview
2-phase standalone workflow mapping CLAUDE.md "项目 / 里程碑结束: 可选跑 /retro 总结" onto
harnessed runtime (Phase v3.0-3.4 W1.2 — D-04 NEW v3 standalone workflow + Pattern A E.2
retro-gstack alias suffix LOCK)。
| phase | id | upstream | model | capability / invokes | artifacts |
| ----- | -- | -------- | ----- | -------------------- | --------- |
| 1 | `01-retro` | gstack | opus | `{{ capabilities.retro-gstack.cmd }}` | gstack /retro 经验教训系统总结 |
| 2 | `02-persist` | planning-with-files | haiku | `{{ capabilities.planning-with-files.cmd }}` + `invokes: /plan` | `artifacts_expected: [RETROSPECTIVE.md]` |
Per-phase config loads from `workflows/retro/workflow.yaml`; engine spawns phase 01 gstack
`/retro` (alias resolve to retro-gstack carrier per capabilities.yaml entry), phase 02
planning-with-files `/plan` invoke 持久化 RETROSPECTIVE.md sink。
## Capability refs (Pattern A E.2 LOCK)
Sister `workflows/capabilities.yaml` entries:
- `retro-gstack` — Bucket 7 gstack optional **alias suffix** per Pattern A E.2 LOCK
(impl: gstack, cmd: /retro, aliases to harnessed-bundled /retro, fires_when: is_milestone_close)
— 解决 namespace 冲突 (NOT bare `retro` capability 因 standalone workflow 已占 retro 名)
- `planning-with-files` — Bucket 4 核心 capability (impl: claude-code-plugin, cmd: /plan)
## Routing rules (sister CLAUDE.md "项目 / 里程碑结束")
- ✅ **触发**: 项目结束 / 里程碑结束 / 用户明示 "复盘 / retro / lessons learned"
- ❌ **跳过**: 日常 PR / 单 phase 完成 (常规 verify-progress 已够用)
## How to invoke
!`harnessed checkpoint intent retro`
> The banner above (when present) means this invocation is REGISTERED with the engine (an intent marker) — not yet compliant: the steps below (prompt → spawn → checkpoint complete) resolve it, and a per-turn `<workflow-intent>` reminder persists until they run.
The numbered sequence below **is** the state machine — execute it with Bash. Do NOT improvise
an equivalent flow from the Overview above: freelancing bypasses the engine (no ledger, no
evidence guard). harnessed gives you the spawn-ready prompt; YOU spawn the subagent with a
{{ host.native }} {{ host.spawn_subagent }} (keeps the session responsive + lets clarification round-trips reach the user).
Do NOT pipe to `harnessed run retro` — that is the CI/headless path ({{ host.harnessed_run_warning_note.execution_tail }}
1. Bash: `harnessed prompt retro --task "$ARGUMENTS" --json` → parse `{prompt, max_iterations, model}`.
2. Spawn a {{ host.native }} subagent ({{ host.spawn_subagent }}) with that `prompt` and `model`, then drive delivery with harnessed's own completion gate:
- on return, write the subagent's final output to a file and run `harnessed checkpoint complete retro --result-file <path>` — it is fail-closed on the declared artifacts, the TDD boundary, and the verbatim `<promise>COMPLETE</promise>`.
- if it blocks, run `harnessed checkpoint fail retro --failing-tests <n>` to record the attempt; it prints BUDGET-EXHAUSTED / NO-PROGRESS / BREAK-LOOP when a stop condition is reached.
- respawn ONLY while none of those three has fired. Any one of them means stop: re-scope the subtask, fix the blocker, or escalate to the user. Never respawn past a stop directive.
3. If the output contains `STATUS: NEEDS_CLARIFICATION` + a question list: STOP, relay them verbatim via {{ host.ask_user }}, append the answers to the spec, then re-spawn the same sub.
4. On `<promise>COMPLETE</promise>`: write the subagent’s final output to a file, then Bash `harnessed checkpoint complete retro --result-file <path> --summary "<one-line>"`. Fail-CLOSED — it blocks unless every declared `artifacts_expected` file exists, the TDD boundary passes (non-empty evidence / both the red and green sides present / the test file was not deleted), and the result carries a verbatim `<promise>COMPLETE</promise>` (or a structured COMPLETE status). `--result <text>` is the inline variant; `--result-file` wins and is quoting-safe on Windows. `--force` records an audited override (`evidence_status=overridden`) — it does not silently pass.
5. If the complete gate blocked: Bash `harnessed checkpoint fail retro --failing-tests <n>` to record the attempt. It prints `BUDGET-EXHAUSTED` / `NO-PROGRESS` / `BREAK-LOOP` once a stop condition is reached. Respawn ONLY while none of those three has fired; any one of them means STOP — re-scope the subtask, fix the blocker, or escalate to the user.
<!-- harnessed-generated:v4.12.0 -->
## References
- D-04 NEW v3 standalone workflow (research v3 bump + retro NEW)
- Pattern A E.2 LOCK — 2 alias suffix `-gstack` 解决 namespace 冲突 (retro-gstack + investigate-gstack)
- Pattern A reconcile D.2 — gstack 30 optional naming bare 例外
- workflows/capabilities.yaml — retro-gstack (alias suffix) + planning-with-files
- workflows/defaults.yaml — ralph_max_iterations.retro.* values (W2.2 backfill)
- sister Phase v2.0-2.5 RETROSPECTIVE.md sink pattern