retro
The retro agent's procedure — walk fresh head transcripts and the memory search log, find concrete failures (an answer given from a canon fact without a…
Skill by vladmesh
Chalk Labs
Need help deploying retro?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/vladmesh-retro
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: agent-building
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md and code. Checked Oct 26, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/retro
What's inside
- Skill name
retro- Description
- The retro agent's procedure — walk fresh head transcripts and the memory search log, find concrete failures (an answer given from a canon fact without a memory_search and wrong, a repeat of a known mistake, a loop, an empty session) and file them as PROPOSALS in the board's first column. It implements nothing itself and moves no card to Ready. The third plugin of the ummanu runtime, launched daily by the `ummanu-retro` systemd timer in the retro workspace.
- License
- Apache-2.0
- Instructions
- 137 lines in SKILL.md · view on GitHub
Files (1)
- SKILL.md
SKILL.md (first lines)
# Retro — the feedback loop You look at the traces of the heads' work and find where the system got it wrong, so it can be fixed. You fix nothing yourself. Your output is **proposals**: cards in the `Issues` column of the board. You do not move them to `Ready`; a PO or a person does that. `Issues` is also the Product backlog, and a Product issue is not yours to create: you cannot choose its product, kind and priority. Your card is a different record in the same column, typed as an execution task awaiting triage, and `ummanu task create --role retro --state issues` is the only way you write one: the board refuses a retro card in any other column. The Python side does not analyse transcript content — all the judgement is here, in the skill. The helpers only collect the redacted batch and the tail of the search log. ## What you look for (failure patterns) - **An answer from memory without a memory_search, and wrong.** A head answered about a fact that exists in the canon without calling `memory_search` nearby, and got it wrong. Correlate against the search-log tail: if there was no search inside the turn's window and the answer contradicts the canon, this is it. - **A repeat of a known mistake.** A head walked into something the canon already has a fact about. - **Looping.** The same kind of action round and round with no progress. - **An empty session.** Many turns, zero result (context burned for nothing). - **Canon memory hygiene.** A canon card has gone stale (it describes a state that was removed, with no `supersedes`), duplicates another card in meaning, is built entirely around a pull request, card number or exact date instead of the current state, or is too small and specific to be useful in a month. You look for this pattern in the canon itself rather than in the batch of turns: walk the cards on the topics the current batch touched (or wider, if it has been a while) through `memory_search` and `memory_list`. The retro standing head has installation-wide launch-bound read for this canon-hygiene check. Do not pass `caller` or retry a denied search without a scope. The signs: several neighbouring cards about one subsystem that could be merged into one, or a card whose fact rests on a pull request number or an exact merge time rather than on how the system works now. Set a high bar: propose only what is concrete and reproducible. Skip a vague "this could be better". A verdict of "no failures" beats noise. ## Procedure ### 1. Take the batch ``` python3 -P -m ummanu automations retro harvest ``` Run it from your own workspace (the run's starting working directory is the retro worktree). **Do not `cd`** into other repositories: the code and the watermark are taken from the workspace. The helper returns a redacted batch (secrets already stripped) of new turns since the last watermark, plus the tail of the memory search log over the batch's time window, so you can judge whether a `memory_search` happened near an answer. "No new turns" means there is no work, but still go through to step 5 (`advance`); it answers that nothing is pending. The helper does NOT move the watermark past the turns it hands you: it keeps them in a pending record, and repeating `harvest` before `advance` returns that same batch. Do not edit or delete the pending file; if `harvest` or `advance` refuses it, stop and let the operator resolve it. ### 2. Judge Walk the batch against the failure patterns above, correlating turns with the search-log tail. Before any conclusion of the form "the fact is in the canon and the head did not know it", verify through the `memory` MCP server that the fact really is in the canon. Do not draw the conclusion without that check. ### 3. Deduplicate Before wording the proposals, load the current cards: ``` python3 -P -m ummanu task list --state issues --state ready ``` Add `--project <canonical-id>` to narrow the list to the project you are about to file against. Do not file a card if such a proposal is already in one of those lists in meaning, not in wording (do not breed duplicates on rephrasings), comparing title and description. If it matches, skip that failure and create nothing. ### 4. File the proposals If there are no failures, say so in your output, create nothing and go to step 5. Otherwise file one card per failure in `Issues` through the board CLI (board credentials are already injected by the role environment; there is nothing to source separately): ``` python3 -P -m ummanu task create --role retro --state issues --type code \ --project <the project whose skill or infrastructure is being fixed> \ --title "retro: <short failure pattern>" \ --description "$(cat <<'EOF' Pattern: <which of the failure patterns above> Source: session <first 8 characters of the id> Proposal: <the concrete change to a skill, persona or infrastructure> EOF )" ``` `--type code` fits a change to a skill, persona or code; use `--type research` when the proposal is an investigation rather than a change. `--project` is not the project where the failure happened, but the project whose skill or infrastructure you propose to fix (usually the product itself, when the fix belongs in the runtime's persona, hook or provisioning). Keep raw secrets out of the description: redaction already happened at harvest and the command scrubs the text again, but if you see a raw key in the text, still do not carry it over. The `retro` role can only file proposal cards on the board: `task create` refuses any `--state` other than `issues` for it, and the role may move no card. The card it creates is typed as an execution task record, so a PO moves it to `Ready` the normal way instead of triaging it as an unclassified legacy card. For the canon-hygiene pattern, target the project that owns the memory canon, and make the proposal concrete rather than general: list the specific canon files (path or slug) and the action for each — `delete` (remove with no replacement), `supersede` (a new card replacing one or more old ones), `merge` (compress a cluster into one card) or `rewrite` (same file, new content). You do not touch or commit the canon yourself; that is the curator's work once the card is taken into `Ready`. Afterwards you can record what you found: ``` python3 -P -m ummanu automations retro log-proposal --ref <project>-<id> [--ref <project>-<id> ...] ``` ### 5. Move the watermark ``` python3 -P -m ummanu automations retro advance ```
From vladmesh/ummanu, Apache-2.0.
More from vladmesh/ummanu
- 0.609score
observe-sprint
vladmesh
Run an open sprint as the observer head the dispatcher launched: recover semantic state from the sprint entity and board, cut one card at a time, classify…
SkillAFreshness: A★ 4Claude Code +9 - 0.609score
open-issue
vladmesh
File a product issue on the board as the PO: check the product and the open issues for a duplicate, choose kind, priority, title and description yourself, and…
SkillAFreshness: A★ 4Claude Code +9 - 0.609score
knowledge-doc
vladmesh
Keep a long recoverable document (a brainstorm, a decision log, an incident write-up) in `state/knowledge` of the private instance repository through `ummanu…
SkillAFreshness: A★ 4Claude Code +9 - 0.609score
open-sprint
vladmesh
Open a sprint as a board entity: gather live context, finish grilling the unresolved product forks, fix the goal, Definition of Done and repositories, create…
SkillAFreshness: A★ 4Claude Code +9 - 0.606score
curate
vladmesh
The memory curator's procedure — pull durable facts out of fresh transcripts, deduplicate them, and write them into the canon through `curator memory-write`.
SkillAFreshness: A★ 4Claude Code +9 - 0.331score
steward
vladmesh
No description from the publisher yet.
SkillAFreshness: A★ 4Claude Code +9
Signals
- Stars
- 4
- Forks
- 0
- Open issues
- 3
- Last commit (this folder)
- Oct 6, 2026 (25 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/vladmesh/ummanu
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from vladmesh
- 0.609score
observe-sprint
vladmesh
Run an open sprint as the observer head the dispatcher launched: recover semantic state from the sprint entity and board, cut one card at a time, classify…
SkillAFreshness: A★ 4Claude Code +9 - 0.609score
open-issue
vladmesh
File a product issue on the board as the PO: check the product and the open issues for a duplicate, choose kind, priority, title and description yourself, and…
SkillAFreshness: A★ 4Claude Code +9 - 0.609score
knowledge-doc
vladmesh
Keep a long recoverable document (a brainstorm, a decision log, an incident write-up) in `state/knowledge` of the private instance repository through `ummanu…
SkillAFreshness: A★ 4Claude Code +9 - 0.609score
open-sprint
vladmesh
Open a sprint as a board entity: gather live context, finish grilling the unresolved product forks, fix the goal, Definition of Done and repositories, create…
SkillAFreshness: A★ 4Claude Code +9 - 0.606score
curate
vladmesh
The memory curator's procedure — pull durable facts out of fresh transcripts, deduplicate them, and write them into the canon through `curator memory-write`.
SkillAFreshness: A★ 4Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get retro running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
retro skill. Agent Mart. https://agentmart.dev/skills/vladmesh-retro (last updated 2026-10-24)