loop-retro
Skill2 starsChanged 4 months agoMITView on GitHub
Post-run retrospective for an agent loop — close the improvement flywheel. Reads the ACTUAL run artifacts (structured event log / progress view / state files / PLAN history / loop-docs) and produces: an evidence-cited diagnosis, concrete harness revision proposals, gotcha eval cases from real failures, and SPEC/STANDARDS revision proposals for human ratification. Trigger AFTER a loop has run: "loop 跑完了帮我复盘", "看看运行记录哪里出问题", "这个循环为什么 thrash / 超预算了", "分析一下 run log", "post-mortem my loop", "did my loop actually do a good job". Not for auditing a loop prompt BEFORE it runs (loop-review), operating/scheduling a loop (loop-ops), or building one (loop-spec / loop-engineering).
1 other project uses a version of this.
Adopted by
Most recently taken up by
- patr-coder/robobuilder-protheir own version, first seen Jul 3, 2026
Other versions1 project uses a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 1
- patr-coder/robobuilder-pro★ 0same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository6 other files it gives its agents.
- loop-engineeringSkill
- loop-evalSkill
- loop-opsSkill
- loop-reviewSkill
- loop-specSkill
- skill-craftSkill
The file
We split this skill into the rules it gives an agent
6 rules. About 0 are common, 3 are distinctive, and 3 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈3
Distinctive · estimate
This author's own choices. Worth a look.
3
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 31
Every finding cites a concrete line from the artifacts — no vibes-based diagnosis.
- Distinctive: line 35
Never invent hypothetical failures — that's loop-eval's job, done before the run.
- Very specific: line 36
Prefer immutable event IDs and evidence references from run-events.jsonl.
- Very specific: line 69
Read the harness component manifest before requesting optional evidence.
- Very specific: line 122
Write RETRO.md in the loop's directory using assets/retro-template.md (summary → vitals → findings w/ evidence → the triad → decision list).
- Distinctive: line 128
When fixes are approved, apply one conceptual harness change at a time and rerun the reproducing gotcha plus a small regression set.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Loop Retro — the improvement flywheel
A loop that runs and is never read back teaches you nothing. This skill turns one real run into three upgrades: a harder harness, a gotcha eval that keeps the failure from recurring unnoticed, and sharper standards. Run it after every significant run — especially the bad ones, but not only the bad ones.
Report in the user's language. Skill internals stay English.
Iron law
EVIDENCE ONLY. PROPOSE, DON'T EDIT. REAL FAILURES ONLY.
- Every finding cites a concrete line from the artifacts — no vibes-based diagnosis.
- Ratified documents (SPEC/STANDARDS/GOALS) and the harness prompt are never silently modified — you produce proposals; the human ratifies.
- Gotcha eval cases record only failures that actually happened in this run. Never invent hypothetical failures — that's loop-eval's job, done before the run.
- Prefer immutable event IDs and evidence references from
run-events.jsonl. Human-readable Markdown is a view, not sufficient proof for retry, budget, approval, verifier, or crash-recovery claims. If structured evidence was not captured, report the metric asunknownand make observability finding #1.
Prerequisites
- Run artifacts exist and are readable: progress log / run-log, state files (task list / manifest), PLAN.md history if present. (Verify: list the loop's working directory.) If nothing was persisted, say so — that IS finding #1 (the harness failed the state-externalization bar) — and stop there.
- The harness prompt itself (to propose revisions against).
- loop-docs (SPEC/STANDARDS/GOALS) if the loop was interview-ratified.
Process
Step 1 — Collect evidence
Inventory the artifacts, then extract the run's vitals (script the counting where possible — read the whole log via commands, not by skimming the tail):
increments attempted/completed/failed · retries per item (max & distribution) · human-gate hits and outcomes · budget burned vs. cap · wall-clock · verifier activity (how many verdicts, any failures caught?) · resume events (crashes, and whether resume was clean).
Also record the run's harness, tool-interface, controller, permission-profile,
model-policy, and language identities. A changed or missing identity makes the
comparison STALE or unknown, not evidence of model improvement/regression.
For FLOW, inspect whether side effects were serialized. For shared/team runs,
verify that runtime and persisted authority contexts matched and that no
cross-namespace memory or credential access occurred.
Read the harness component manifest before requesting optional evidence. When
DEVIATIONS was selected, consume its structured mismatch ledger as defined in
../loop-engineering/assets/components/deviations.md. When EXPLAIN was
selected, consume its evidence-linked claims and comprehension gate as defined in
../loop-engineering/assets/components/explainer.md. Do not require either
evidence class when its component was not selected. If a selected component lacks
its structured evidence, record an observability finding and leave the affected
metric or conclusion unknown.
Checkpoint: a vitals table with numbers, each traceable to the log.
Step 2 — Diagnose against the failure taxonomy
Walk the taxonomy; for each hit, cite the evidence line:
| Failure class | Signature in the log |
| Thrash | same item retried with the same error, no new information |
| Drift | quality/consistency degrades across increments (early vs. late samples differ) |
| Gate misfire | human gate fired on trivia (false positive) or missed a risky act (false negative) |
| Standard too loose/strict | verifier passed something a human would fail, or blocked reasonable work |
| Verifier rubber-stamping | 100% pass verdicts, near-zero verdict variance, or a pass on later-known-broken work |
| Resume failure | duplicate/missing items after a restart; state file corruption |
| Budget overrun | spend exceeded cap, or cap hit with disproportionate progress |
| Comprehension debt | for a substantial merge/ship, neither comprehension nor an explicit recorded waiver exists |
| Effect race | side-effecting calls overlap, share a sequence, or mutate without lease/fencing/transaction evidence |
| Authority drift | tenant/channel/principal, memory namespace, connector identity, or permission snapshot changes across a run |
| Interface confound | result changes after tool/controller/permission/model-policy identity changes but is attributed to the model alone |
| Language regression | paired deployment-language cases disagree on a safety or control invariant |
Apply comprehension review only to substantial merge/ship delivery. An explicit recorded waiver satisfies the gate and remains visible for diagnosis. Do not force a comprehension gate on report-only, research, simple, or insubstantial work.
Also mine the non-failures (this is not optional): cost per increment vs. expectation, standards that never once failed (possibly too loose to matter), gates never hit (possibly miscalibrated), increments that were trivially small (cap too conservative).
Step 3 — Produce the flywheel triad
- Harness revision proposals — for each diagnosis, a concrete before→after edit to the harness prompt (quote the current line, give the replacement).
- Gotcha eval proposal(s) — for each real failure, one runnable eval case in
the manual format (
category: "gotcha", prompt reproducing the situation, assertions phrased as "没有重复<the observed failure>"). Show the patch forloop-docs/gotchas.json; append only after the user approves it. - SPEC/STANDARDS revision proposals — marked explicitly "需人工签核"; listed separately, never applied.
Step 4 — Report and hand decisions to the human
Write RETRO.md in the loop's directory using assets/retro-template.md
(summary → vitals → findings w/ evidence → the triad → decision list). Present
the user a compact decision list: which revisions to apply, which proposals to
ratify. Applying ratified harness edits is loop-review --fix territory or a
follow-up request — not something you do unasked.
When fixes are approved, apply one conceptual harness change at a time and rerun the reproducing gotcha plus a small regression set. This preserves attribution: you can tell which component was load-bearing instead of replacing the harness wholesale.
Rationalizations table
| The excuse | Why it's invalid |
| "Log 太长,看看结尾就行。" | Vitals need the full pass — thrash and drift live in the middle. Count with commands if reading is impractical. |
| "这个失败是偶发的,不值得记 gotcha。" | It happened, so it's real — that's the whole bar. One line of eval today beats re-debugging it next month. |
| "顺手把 harness / STANDARDS 改了吧,反正结论明确。" | Ratified artifacts are human-owned. Propose with before→after; let the human apply or ratify. |
| "循环成功结束了,没什么可复盘的。" | Success hides miscalibration: standards that never failed, gates never hit, budget 3× oversized. Mine the non-failures. |
| "凭整体印象给结论就够了。" | A finding without a cited log line is an opinion. Evidence only. |
Exit conditions
All boxes ticked before you call the retro done:
- Vitals table extracted, numbers traceable to artifacts.
- Every finding cites concrete evidence (line/quote).
- Triad produced: harness revisions (before→after) + ≥0 gotcha cases (every real failure captured, none invented) + standards proposals (marked 需签核).
- Nothing ratified was edited;
RETRO.mdwritten; decision list presented.
Assets
assets/retro-template.md— the RETRO.md structure.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
Reviews can't be read right now.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

