agentleFS
JoelQJoelQ/skills/retro/SKILL.md

retro

Skill44 starsChanged 4 months agoMITView on GitHub

Analyze a coding session for the moments a human had to intervene, then propose durable harness improvements — extracted skills, hooks, deterministic verifiers, generators, connectors, domain-specific scripts. Use when the user says /retro, asks for a retrospective, asks how a session went, or asks what could be automated or extracted from the work just done. Also offer after long or friction-heavy sessions.

193 other projects use a version of this.

Adopted by

Most recently taken up by

Used with

Projects with it also use plan-tune, ios-clean and 10 more.

Other files people use alongside this one.

Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
  • ShreyRaviSkill

    plan-tune

    Self-tuning question sensitivity + developer psychographic for gstack (v1: observational). Review which AskUserQuestion prompts fire across gstack skills, set per-question preferences (never-ask / always-ask / ask-only-for-one-way), inspect the dual-track profile (what you declared vs what your behavior suggests), and enable/disable question tuning. Conversational interface — no CLI syntax required.

    Also in 9 projects that use this

  • Saqlain-811Skill

    ios-clean

    Remove the DebugBridge SPM package and all #if DEBUG wiring from an iOS app. (gstack)

    Also in 5 projects that use this

  • Saqlain-811Skill

    ios-fix

    Autonomous iOS bug fixer. (gstack)

    Also in 5 projects that use this

  • seek888Skill

    pair-agent

    Pair a remote AI agent with your browser. One command generates a setup key and prints instructions the other agent can follow to connect. Works with OpenClaw, Hermes, Codex, Cursor, or any agent that can make HTTP requests. The remote agent gets its own tab with scoped access (read+write by default, admin on request). Use when asked to "pair agent", "connect agent", "share browser", "remote browser", "let another agent use my browser", or "give browser access". (gstack) Voice triggers (speech-to-text aliases): "pair agent", "connect agent", "share my browser", "remote browser access".

    Also in 11 projects that use this

  • ShreyRaviSkill

    landing-report

    Read-only queue dashboard for workspace-aware ship. Shows which VERSION slots are currently claimed by open PRs, which sibling Conductor workspaces have WIP work likely to ship soon, and what slot /ship would pick next. No mutations — just a snapshot. Use when asked to "landing report", "what's in the queue", "show me open PRs", or "which version do I claim next". (gstack)

    Also in 8 projects that use this

  • timurgaleevSkill

    document-generate

    Generate missing docs for a feature, module or project as tutorials, how-tos, reference and explanation.

    Also in 7 projects that use this

  • +1 more from Saqlain-811
  • +2 more from ShreyRavi

The file

We split this skill into the rules it gives an agent

7 rules. 0 are common, 7 are distinctive, and 0 are very specific to this project.

  • 0

    Common

    Most of the 171 edited versions we read keep these.

  • 7

    Distinctive

    This author's own choices. Worth a look.

  • 0

    Very specific

    Tied to their project's names, files or tools. Probably skip.

  • Common
  • Distinctive
  • Very specific
  1. Distinctive:

    Default to the current session.

    line 21
  2. Distinctive:

    Use both sources: the transcript carries the narrative arc (user messages, re-prompts, what was said out loud), the live context carries …

    line 25
  3. Distinctive:

    Run each root cause down this funnel.

    line 71
  4. Distinctive:

    If not, the mechanism is unfinished: add the hook, the allowed command, the connector.

    line 80
  5. Distinctive:

    Repair a blind sensor before adding a layer on top of it: If a check fired and the agent misread it, the fix is that check's output — a …

    line 100
  6. Distinctive:

    Cost: Every mechanism costs wall-clock time on every run, or agent attention on every turn, forever.

    line 132
  7. Distinctive:

    Keep it dense. No preamble, no recap of the session's content.

    line 144

“Common” is measured: kept by at least 6 in 10 of the 171 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

Retro

Find every moment a human had to step into the loop, and propose the mechanism that makes each one unnecessary next time. The fix for a bad session is a missing part of the harness, not a better prompt — so every finding must end at something that can be built, wired, and run without the user remembering to ask.

An observation with no proposal is a failed retro. So is a proposal the user cannot act on without a follow-up question.

Produce the report in one pass. Do not interview the user first and do not ask permission to begin.

1. Scope the session

Default to the current session. Locate its transcript the way this harness exposes one — a transcript store, a resume listing, a log directory — rather than assuming a path. Find an earlier session the same way.

Use both sources: the transcript carries the narrative arc (user messages, re-prompts, what was said out loud), the live context carries tool calls, results, and reasoning. If the session was compacted, say so in the report and treat tool-level detail from before the boundary as unreliable — compaction is itself a finding (§2).

2. Find the interventions

Scan for every point where a human had to act for the system to keep making progress:

Signature in the transcriptIntervention typeWhat it implies
User negates, redirects, or asks for a redoCorrectionA constraint the system never enforced
User pastes a command's output, an error, a log, a screenshotPlumbingA signal the agent could not reach itself
User states a convention, invariant, or file locationContext supplyKnowledge that lives nowhere the agent looks
The same instruction appears twice, or is one the user gives every sessionRecurring steerThe strongest candidate for a durable mechanism
A check fired and the agent misread it, patched around it, or thrashedBlind sensorThe sensor exists but its output is not agent-actionable
A defect reached human review with no check that could have caught itSensor gapNothing in the system was watching
Long read/grep/probe sequences before finding the target, or reasoning about system state the agent cannot observeFlailingMissing vocabulary and missing observability
Work was thrown away and redoneReworkSteps ran in the wrong order; a workflow problem
Context was compacted, or quality degraded in late turnsContext pressureThe session held more than it could use

Record each with its turn and one sentence of what happened. The count matters less than whether each one is likely to recur.

Note briefly which existing mechanisms caught something before the user had to. Those are the parts of the harness paying off and worth extending.

3. Diagnose each intervention

Answer one question: what did the system not know, not check, or not reach?

  • Not know — information existed somewhere but never reached the agent. Missing feedforward.
  • Not check — the agent produced something wrong and nothing tested it. Missing feedback.
  • Not reach — the information or tool existed but the agent had no way to touch it, so the user became the wire. Missing capability.

Name the root cause, not the symptom. "The agent wrote a bad migration filename" is a symptom; "the filename algorithm lives in a generator the agent never ran" is the cause, and it points at a different mechanism.

4. Choose a mechanism

Run each root cause down this funnel. Stop at the first level that can carry the judgment.

  1. Encode it deterministically, if the judgment can be. Inference is inconsistent; compile yesterday's judgment into tomorrow's tooling.
  2. Constrain what gets made, or verify what was made? Constraining is cheaper — a generator, template, or schema means the agent never has to know the rule. Verifying is a linter, test, or check.
  3. Can the agent invoke it, and does its output flow back without a human? If not, the mechanism is unfinished: add the hook, the allowed command, the connector. A tool the user has to run and paste is still plumbing.
  4. Can a narrow agent judge it after the fact? A review skill with a single thesis of quality, run as a subagent so it does not spend the main context.
  5. Instruction text, only if none of the above reach — and only as a routing line ("when touching X, run Y"), never a transfer of judgment.

Tag every proposal with its quadrant (model from Birgitta Böckeler):

ComputationalInferential
FeedforwardGenerator, template, scaffold, schema constraint, setup script, blocking hookInstruction line, project doc, nearby example code
FeedbackLinter rule, test, type check, security scanner, dev logs, browser test, verifier scriptReview skill, subagent audit, LLM-as-judge

Inferential feedforward is the trap: the one quadrant that is never enforced, only hoped for. If most proposals land there, the analysis stopped too early — go back to §4.1.

Three rules constrain every choice:

  • Repair a blind sensor before adding a layer on top of it. If a check fired and the agent misread it, the fix is that check's output — a clearer failure message, a wrapper reporting the actionable part — not an instruction explaining how to interpret it.
  • Remove the human from the wire before optimizing what flows through it. A plumbing intervention is a capability or wiring problem first.
  • Propose portable mechanisms — a skill, a hook, a script, a doc — not a rule file that only one harness reads.

Mechanism catalog

MechanismReach for it when
Generator / scaffoldA file's shape, name, or wiring follows an algorithm. Running the generator becomes the agent's only job; the algorithm stays out of its head.
Blocking hookA whole class of action should be refused at the boundary. The refusal message must say what to do instead, or the agent routes around the block.
Verifier hookAn existing check should run at a fixed event — before finish, after edit — so its failures land in the loop instead of in the user's lap.
Custom lint ruleA mistake is mechanically detectable. Be ambitious: rules not worth hand-writing are cheap now. Extend the linter already wired in rather than adding a second tool.
Deterministic verifier scriptCorrectness is checkable but no off-the-shelf tool checks it — an invariant across files, a config that must match a schema, a generated artifact that must match its source. Exit non-zero with a message naming the fix.
Domain-specific scriptThe agent flailed reasoning about raw tables, logs, or branches instead of domain concepts. Report the domain's own structure — the funnel, the buckets, the bail points — with hard-coded definitions so runs are comparable.
ConnectorThe agent needed a system it cannot touch: a database, dashboard, API, browser, issue tracker. The user copying data out of one is direct evidence.
Extracted skillA named workflow was latent in the session — a sequence the user steered by hand that will recur. Also: a review pass with one clear thesis.
Orchestration skillThe pieces exist but the user sequenced them manually. Wrap the order into one invocable workflow, delegating expensive passes to subagents.
Test or assertionA regression would be caught by a check that belongs in the suite anyway.
Project docReal knowledge that is not in the code and cannot be encoded — a decision history, an external system's behavior. Scoped and routable, not a brain dump.
Context strategyContext pressure was the root cause: split the work, push a phase into a subagent, or persist state to a file between phases.

5. Filter

Cut proposals that fail any of these:

  • Recurrence. Would this friction plausibly happen again? A one-off misunderstanding needs no mechanism; recurring steers need one most.
  • Cost. Every mechanism costs wall-clock time on every run, or agent attention on every turn, forever. Say the cost out loud for each proposal.
  • Goodhart. Would the agent optimize this against the underlying goal? Proxy metrics — quality scores, coverage thresholds, complexity budgets — are where this bites. Prefer checking a property over scoring one.
  • Buildability. Could the user say yes and get a working thing? If it needs a design conversation first, it is not ready.

Three proposals the user will build beat nine they will skim.

6. Report

Keep it dense. No preamble, no recap of the session's content. Name what went wrong plainly — "opportunity" is not a finding.

## Session

One or two lines: what the work was, where the time actually went,
whether the transcript was complete.

## Interventions

| # | Turn | What happened | Type | Root cause |

## Proposals

For each, in priority order:

### N. <Imperative title>
**Quadrant** · **Cost:** <what it costs on every run>
What it is, in one or two sentences.
**Build:** the concrete artifact — file path, what it checks, what it
refuses, what the failure message says.
**Wiring:** how its output reaches the loop without a human.
**Evidence:** the intervention(s) it removes.

## Considered and rejected

One line each, with the reason.

## Open questions

Only where a recommendation genuinely turns on something the transcript
cannot show. Omit the section otherwise.

Rank proposals by leverage: how much intervention each removes, divided by cost to build and cost to run. Deterministic mechanisms that constrain generation usually win.

7. Build

Close with one line: which to build. On assent, build immediately and fully — write the hook config, the generator, the script, the skill file — and verify it runs. A retro that ends in a list of good intentions has failed the same way one that ends in observations has.

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

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.