retro
Conduct a retrospective on a coding session. Use before each push or PR to the protected branch (after /code-review and /opt-tokens), when a phase or milestone closes, or when the user asks for a retr
Files2
View on GitHubSKILL.mdskills/retro/SKILL.md
GitHubIf .claude/gw/retro.md exists in the project, read it first: it holds what is specific to the project.
Original skill by Matt Pocock (mattpocock/skills, MIT).
The user has asked for a retrospective. You are suggesting improvements to the coding agent's environment to improve future runs.
Steps
Call the Skill tool with
writing-for-agentsfor the writing style guide.Read the primary sources for the session the user specifies. This may mean searching through session logs on this machine. If the user doesn't specify a session, default to the current one.
Look for candidates for improvement in these categories.
- Navigation: how easy was it for the agent to find the right files? Are there hidden dependencies between files? Would a navigation pointer make it easier? Use when the session took a long time to find a piece of information.
- Automated checks: are there automated checks that could catch errors the agent made? Linting, typing, tests, filesystem linters? Read the repo's own check command first (its
package.json/build-toollint/checkscripts, its CI workflow), so a check that already exists but sits unwired or silently broken is the finding, not a reinvention. A repo with no guardrail (no pre-commit hook and no CI job running its lint/typecheck/test command) is itself a finding: an un-linted repo is a standing missed opportunity, not a neutral default. Use when the agent made a mistake an automated check could have caught, or the repo has no guardrail at all. - Coding standards: should the reviewer agent be given a new rule to enforce? Should an existing rule be removed or clarified? Classify the violation first: a mechanical one (a fixed syntactic pattern, a banned API, an import shape, a file-location rule) gets a deterministic check, full stop: a custom rule in the repo's own linter, a new pre-commit hook, or a new CI job, whichever the repo's language and existing guardrail make cheapest. Default to building the check over writing the rule. Reserve
CODING_STANDARDS.mdfor genuine judgement calls (cross-file consistency, "matches the surrounding style," anything no guardrail could ever substitute for). Use when the reviewer agent failed to catch a mistake. - Global AGENTS.md: are there any steering instructions that should be moved to coding standards (or automated checks) instead? Use when the AGENTS.md file is particularly large - in the repo OR the user's global scope.
- Tool economy: did the agent make expensive tool calls that could be streamlined? Is there any custom tooling (CLI's, MCP's) that is particularly token-inefficient? Use when the agent made an expensive tool call.
- No-ops: look for instructions in steering files that don't modify the agent's behavior. Use when the steering files are large and unwieldy.
- Information access: look for opportunities to increase the agent's access to information. Teeing dev server logs, readonly access to third-party services. Use when a crucial piece of information was not available to the agent.
- Present these candidates to the user, in order of severity.
Reference
Implementation vs Review
Remember that all work goes through two stages: implementation and review. The implementation agent has the most context pressure. They are responsible for exploration, writing code, and debugging failures.
The review agent has the least context pressure - it receives a diff, so no exploration needed. It often does not need to write code or debug.
This means that the review agent should be responsible for imposing coding standards, not the implementation agent.
Files
You have access to several files in the repo:
CLAUDE.md/AGENTS.md: these files are pushed to the context window of any agent working in this repo. They should be used incredibly sparingly, usually only for navigation pointers to other files.CODING_STANDARDS.md: this file is read during review, not implementation. Add navigation pointers to docs folders if the standards file gets more than 1,000 lines long.- Docs: use docs as references files, pointed to by other files. Look for existing docs before writing new ones.
- Skills: use skills for docs (since their description goes into the agent's context window), or for user-invoked commands. Follow the advice in the
writing-for-agentsskill.
In a Galivelop-workflow project
This section is the only change to the upstream skill.
- The reviewer's standards file is
REVIEW.md, notCODING_STANDARDS.md; the hand-off log path islogin.claude/gw.json. - Save the retro as a dated file next to the log (for example
docs/registros/retro-YYYY-MM-DD-<topic>.md) with a**Estado:**/**Status:**line;revisado.shmay require one whenrequireRetrois set. - The exact form of that line, which
revisado.shreads: it starts the line (**Estado:** …/**Status:** …) and its paragraph (up to the next blank line) holds a whole word amongaplicad*,rechazad*,aplazad*,decidid*,aprobad*(applied,rejected,deferred,decided,approved), for example**Estado:** aprobada y aplicada (P1, P2); P3 rechazada. The wordspendiente,pending,undecided,sin decidir,aún noandnot yetanywhere in that paragraph cancel it, so write the decisions that are still open in another paragraph. The retro file must be new on the branch. - Sort each candidate into one of two outlets and say which:
- Project-specific (paths, stack, domain rules): propose the patch in this repo.
- General (would help any project using the workflow: a skill, a hook, a template, a rule in
AGENTS.md): propose it to the workflow itself as an issue or PR on theGalivelop-workflowrepository, or leave it in the retro file under a## For Galivelop-workflowheading sogw-harvestcollects it. Do not patch the copied workflow files locally; local edits drift and are overwritten by the next update.
- Review the project's own skills too. Look at how
selector,orchestrate-dealer,opt-tokens,pr, the code review and this retro performed; read the skill list before proposing. When a skill failed, the proposal changes that skill (or proposes the change to the workflow), not a loose new rule inAGENTS.md/CLAUDE.md. - Present the retro before the PR, even when the user said "merge directly": that skips waiting for reviews, not
the retro. Its
**Estado:**/**Status:**line records what the user decided (applied, rejected, deferred), not just "done";revisado.shchecks it whenrequireRetrois set. - The person asked for the protected branch but is not there to decide the retro: leave everything ready and stop
before
revisado.sh. Ready means the retro written with**Status:** pending(revisado.shrefuses it), the check green on the merge with the protected branch, and the PR description. Tell them their decision on the retro is the one missing step; when it arrives, write it into the**Status:**line and runrevisado.sh. Never fill in the decision for them.