agentleFS
Nicolas-RigaudyNicolas-Rigaudy/cr-0w/.claude/skills/retro/SKILL.md

retro

Skill1 starsChanged 7 days agoMITView on GitHub

Retrospective of one finished session. Finds where the user corrected, redirected or finished the work themselves, plus recurring tool friction. Applies the lessons to local-only files (runbooks, skills, memories), proposes anything tracked, and writes a short report. Runs as one daily batch from crow-retro (batch=<manifest>); use it by hand with "/retro <transcript.jsonl>" or "retro the last session in <project>".

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

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

  • 0

    Common

    Most of the 171 edited versions we read keep these.

  • 3

    Distinctive

    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
  1. Very specific:

    Read the digest. Open the raw transcript only to check one specific moment (rg on it, never read it whole).

    line 16
  2. Distinctive:

    Read every 👤 User message, and the 🤖 message just before it.

    line 19
  3. Distinctive:

    Before writing, look at what the next session would load:

    line 32
  4. Very specific:

    Before writing, check local/owner-prefs.md: a rule already there that the session broke means a repeat, so say so in the report and move it …

    line 38
  5. Distinctive:

    Never commit in project repos, never push, post or message anyone.

    line 61
  6. Very specific:

    Write local/state/retros/YYYY-MM-DD-<project>-<session8>.md, at most 30 lines:

    line 64

“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

Goal: the next session in that project does better without the user repeating themselves. Be selective: one real lesson beats five generic ones. Don't invent problems.

Input

digest=<path> transcript=<path> cwd=<project dir> session=<id>. Given only a transcript, run bin/crow-digest <transcript> to build the digest yourself. Batch mode: batch=<manifest> (written by crow-retro run). The manifest lists the window, the report path and one ### <project> <session8> block per kept session (session, account, cwd, digest, transcript, pre-filter signals). Run steps 1–3 for each session in turn with its own digest, transcript and cwd, then write the batch report (step 4).

Read the digest. Open the raw transcript only to check one specific moment (rg on it, never read it whole).

1. Find the signals

Read every 👤 User message, and the 🤖 message just before it. Look for:

  • Correction: "no", "not X but Y", a fix to wording, language or format ("une MR", "shorter commit").
  • Redirection: the user asked for something the agent didn't offer, or changed the plan.
  • Stopped short: the user had to ask for a step the agent should have done ("push it", "I thought you had done this").
  • Overreach: the agent did something the user then undid or refused.
  • Repeated question: the agent asked something already answered in memory, a skill or CLAUDE.md.
  • Friction: ⚠️ tool errors that repeat or cost several calls (missing binaries, wrong paths, expired auth, sandbox HOME), and workarounds found.
  • Risk left behind: state that will bite later (work in /tmp or a scratchpad, uncommitted changes, unresolved threads, a missing reminder).
  • Already learned: the session already saved a lesson itself (skill, memory). Check the file really holds it, then count it as captured, not as a new finding.

Also check upstream: did a prompt written by the hub (a pasted handoff or a dispatch prompt) cause the problem? If so, the lesson goes to the hub.

2. Check what already exists

Before writing, look at what the next session would load:

  • Project: <cwd>/CLAUDE.md, <cwd>/.claude/skills/*/SKILL.md, <cwd>/.claude/skills/*/*.md
  • Project memory: <claude config dir>/projects/<slug>/memory/ (the config dir is the parent of projects/ in the transcript path) with MEMORY.md (slug = cwd with every / replaced by -)
  • Hub: runbooks/README.md, local/runbooks/README.md, .claude/skills/
  • Earlier retros: rg -l "<keyword>" local/state/retros/*.md to count recurrences.

Before writing, check local/owner-prefs.md: a rule already there that the session broke means a repeat, so say so in the report and move it higher or sharpen it.

A lesson that exists but was ignored needs a sharper wording or a better place (skill step > memory > runbook), not a duplicate.

3. Decide and apply

For each finding, choose one:

FindingWhere it goes
How to do a task in that repo (steps, format, approval flow)the repo's skill, if git check-ignore -q <file> says it's ignored. Otherwise propose
User preference or correction for that projectproject memory (one file + MEMORY.md line, per the memory format)
Cross-project preference or repeated correctionlocal/owner-prefs.md (one line, existing section). Project memory is per folder and is not loaded in other projects, so never leave a cross-project rule only there
A hub prompt that caused the issuehub: local/context.md or a hub skill
Mechanical friction with a fix (path, binary, auth step)the runbook where the task lives (runbooks/ generic, local/runbooks/ private), or a bin/ script if it repeats ≥2 times
Same lesson in ≥2 retrospromote: a skill step, a checklist line, or a script. Mention it in the report
A review session (threads addressed, MR opened)check the ledgers in local/reviews/ were updated for every thread, and the mr pattern gate ran before opening; fill gaps yourself
One-off, already fixed, or no lessonignore (list it in the report in one line)

Apply directly to: files git ignores in project repos, memories, and this hub's runbooks, skills and local/. Keep edits small and in the file's existing style. Never delete or rewrite content you didn't write, only add or sharpen. Generic vs private: runbooks/ is tracked and published, so it holds only generic steps. Any project, company, person, vendor, ticket or account name goes in local/runbooks/ (same file name, linked from local/runbooks/README.md). Check each runbook line you add against that before saving; do not rely on the pre-commit check to catch it. Propose everything else (tracked files in project repos, CLAUDE.md, code): append to local/state/retros/proposals.md as - [ ] YYYY-MM-DD <project> <file>: <change> (from <report>).

Commit your own hub edits at the end, one commit per repo: the hub repo for runbooks/ and .claude/skills/, the private local/ repo for local/. Stage only the files you edited (git add <path>..., never -A), keep the hub's commit format (chg[MD]: add retro lessons to ...), and list the commits in the report. If the pre-commit check rejects a private name, move that line to local/runbooks/ and commit again. Leave files someone else changed alone. Never commit in project repos, never push, post or message anyone. Never add AI attribution anywhere.

4. Report

Write local/state/retros/YYYY-MM-DD-<project>-<session8>.md, at most 30 lines:

# Retro: <project>, <date> (<session8>)
Task: <one line>
Outcome: <done / partly / abandoned, one line>

## Findings
| # | Signal | What happened | Lesson | Action |
|---|---|---|---|---|
| 1 | Stopped short | ... | ... | ✅ applied: <file> / 📝 proposed / ✔️ already captured / – ignored |

## Hub handoff
- <the prompt that started the session came from the hub (pasted handoff, dispatch, /retro)? did its wording cause any finding? "no hub prompt" / "ok" / "caused #n → <hub fix>">

## Risks left
- ... (only if any)

Batch mode: write the single report path named in the manifest (local/state/retros/YYYY-MM-DD-batch.md) instead, titled # Retro batch: <date>, with one ## <project> <session8> section per session holding the Task / Outcome / Findings / Hub handoff / Risks left lines above (at most 30 lines each). Don't write a skipped list: the script appends it. One activity line for the whole batch: - HH:MM [retro] batch: <n> sessions, <n> applied, <n> proposed.

Then append - HH:MM [retro] <project> <session8>: <n> applied, <n> proposed to today's activity log (local/state/activity/YYYY-MM-DD.md). Final message: the report path and one line per applied change.

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.