Self Retrospective
kid0317/crewai_mas_demo
Agent 自我复盘:读取 L2/L3/L1 日志,调用 LLM 生成结构化改进提案, 写入 proposals.json 并发通知至 human.json 等待审批。
Guided experiment-loop retrospective over the ax agent-experience graph.
$ npx skills add Necmttn/ax --skill retro -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install Necmttn/ax retro --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/Necmttn/ax.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/retro .claude/skills/retro && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "retro" agent skill from https://github.com/Necmttn/ax/tree/main/skills/retro into .claude/skills/retro/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "retro", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/Necmttn/ax/tree/main/skills/retroType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add Necmttn/ax --skill retro -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install Necmttn/ax retro --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Necmttn/ax.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/retro .agents/skills/retro && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "retro" agent skill from https://github.com/Necmttn/ax/tree/main/skills/retro into .agents/skills/retro/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "retro", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Necmttn/ax --skill retro -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install Necmttn/ax retro --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Necmttn/ax.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/retro .cursor/skills/retro && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "retro" agent skill from https://github.com/Necmttn/ax/tree/main/skills/retro into .cursor/skills/retro/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "retro", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/Necmttn/ax.git --path skills/retro--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add Necmttn/ax --skill retro -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install Necmttn/ax retro --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Necmttn/ax.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/retro .gemini/skills/retro && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "retro" agent skill from https://github.com/Necmttn/ax/tree/main/skills/retro into .gemini/skills/retro/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "retro", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install Necmttn/ax retroInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add Necmttn/ax --skill retro -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/Necmttn/ax.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/retro .github/skills/retro && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "retro" agent skill from https://github.com/Necmttn/ax/tree/main/skills/retro into .github/skills/retro/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "retro", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add Necmttn/ax --skill retro -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install Necmttn/ax retro --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/Necmttn/ax.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/retro .opencode/skills/retro && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "retro" agent skill from https://github.com/Necmttn/ax/tree/main/skills/retro into .opencode/skills/retro/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "retro", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
retroGuided experiment-loop retrospective over the ax agent-experience graph.
Retro is an agent skill from Necmttn/ax. Guided experiment-loop retrospective over the ax agent-experience graph. Walks the user through their open proposals (accept-with-scaffold or reject), pending verdicts (confirm the suggested verdict or override), and recent harness-hook effectiveness signal. Triggers when the user says "let's do an ax retro", "ax retrospective", "review my ax proposals", "triage proposals", "experiment loop status", "lock pending verdicts", "hook effectiveness review", "intervention review", "self-improvement session", or invokes…
Its SKILL.md is about 3.5k tokens, which your agent loads only when the skill is triggered. It is a single SKILL.md file with no bundled scripts.
It sits in Product & Project Management, covering Retrospectives and Proposals and quotes. The repository describes itself as: the agent experience layer · observability + memory for AI coding agents (Claude Code + Codex) · local-first, typed, yours. The licence is AGPL-3.0.
6 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit fca259c. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
jqFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Retro loads about 3.5k tokens when it runs. Until then it costs about 159 tokens; SKILL.md has 1,701 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from Necmttn/ax at commit fca259c, republished under its AGPL-3.0 licence (© Necmttn). 1,701 words, ~3,541 tokens.
.claude/skills/retro/SKILL.md (or your agent's skills folder).Closes the self-improvement loop. Claude orchestrates ax improve …
commands; the user decides each row.
Assumes ax (axctl) is on PATH. If ax improve list fails, tell the user
to check docs/development.md#setup (DuckDB dylib setup - no daemon
required) and stop.
ONLY fire on explicit triggers:
/ax:retro slash command (if the plugin marketplace publishes one)Do NOT fire on a generic "look at my recent work" - that risks dragging unrelated context into the loop.
accept emits, and verdict locks.Before the proposal queue, check whether prior sessions still owe a retro. This is the "quota arbitrage" path - idle Opus budget chews through the backlog so the experiment loop has signal next time.
Run:
ax retro pending --since=7 --idle-min=30 --jsonReturns sessions in the last 7 days that have no reviewed graph
edge yet AND look finished (explicit ended_at, or last turn is
30min idle). If the list is empty, skip to Step 1.
Show the list to the user as 1 line per session (project · turns · model · reason). Ask:
N session(s) pending retro. Want me to dispatch the retro-reviewer subagent for all of them in parallel, or pick a subset?
On all or <subset>: for each chosen session, write a brief:
ax retro brief --session=<session_id>This writes .ax/tasks/retro/<key>.md with frontmatter (transcript
path, suggested model, turn count, etc.) and a body that tells the
reviewer what to do.
Dispatch one retro-reviewer subagent per brief, in parallel. Pass
each brief path in the prompt; let the subagent's frontmatter pin
model: opus (override per session if suggested_model differs and
the user asked you to economize).
If the retro-reviewer subagent type doesn't resolve (not installed,
or the active harness is not Claude Code), read and review the brief INLINE
using its required-output instructions instead of abandoning the backlog.
Wait for all subagents. Aggregate results: counts of retros emitted, proposals recommended, model-fit suggestions. Render as a short summary. The user does not approve retro emissions per row - the subagent already wrote them. The user DOES decide on resulting proposals in Step 2.
The reviewed edge now exists for each drained session, so a
re-run of ax retro pending should show fewer rows.
If the user declines Step 0, move on. The backlog stays - next retro picks it up.
Measure first, then read. The checkpoint pass is what turns due windows into current ones; a verdict read taken before it reports whatever the last run happened to leave behind.
Run the prerequisite ALONE and wait for it:
AX_NO_AUTO_INGEST=1 ax improve checkpoint --jsonIt reads the published snapshot and writes checkpoint judgments only -
no transcript parsing, no guidance edits, no verdict locks. Leave
--force out of an ordinary retro; it rewrites unreviewed windows that
are already current.
On success, run the reads (parallel is fine). Prefix EVERY command - a prefix on the first one leaves the freshness drive on for the rest:
AX_NO_AUTO_INGEST=1 ax improve list --status=open --json
AX_NO_AUTO_INGEST=1 ax improve list --status=accepted --json
AX_NO_AUTO_INGEST=1 ax improve verdict --json
AX_NO_AUTO_INGEST=1 ax retro list --since=7 --json # cluster-derived friction summary
AX_NO_AUTO_INGEST=1 ax hooks summary --since=7 --tail=20 # optional; tolerate failureIf the checkpoint run fails, tell the user measurement is unavailable and continue with proposal review only. Any suggestion already stored belongs to an earlier run - report it as that, and skip the verdict step.
If the checkpoint result reports cacheRefreshRequired above zero, the
opportunity evidence needs deriving; say so, and treat those
experiments as unmeasured. When the user asks for current evidence, run
three operations in order, each awaited on its own: ax ingest (wait
for successful publication), the checkpoint prerequisite, then the
reads.
ax retro list reflects three pattern types now:
Pre-<Tool> guard proposalsCLAUDE.mdAddress recurring <kind> friction proposalsIf any of those surfaced, mention them so the user knows to triage in Step 2.
Compute counts: open proposals (by form), accepted experiments with
locked_verdict IS NONE, and - separately - experiments whose current
view carries a current_reason (insufficient data or a lifecycle state).
Then render to the user as 2-4 lines, e.g.:
7 open proposals (3 skill, 4 guidance). 2 accepted experiments are waiting on a verdict. Hook activity last 7d: 142 invocations, 3 blocking errors. Want to triage proposals first, lock the pending verdicts, or skim hook signals?
If both proposal/verdict queues are empty: tell the user nothing's due
and offer ax ingest --derive-only to refresh evidence.
Order open proposals by frequency desc. For each, in turn:
Run ax improve show <dedupe_sig> --json (or reuse the row from
step 1).
Render as 3-5 lines. Example for a skill proposal:
Schema change guardrail (skill · freq=9 · confidence=high) Hypothesis: schema edits often surface in fix-chains within ~14d. Trigger: fix commits overlap schema files. Behavior: run schema lint + one read/write smoke before edit.
Ask the user: accept, reject, or skip.
Branch:
ax improve accept <dedupe_sig>.
By default this emits a TASK BRIEF and returns its task_path; it
does not install the artifact. Report that path.
Offer: "Want me to implement the brief now?"
If yes: implement it, then run ax improve lint so ax reconciles the
marker it finds on disk and records the installed artifact. Until
lint records one, the experiment has no measurable installation.ax improve reject <dedupe_sig> --reason "<reason>".After the loop, summarize: "Accepted 3, rejected 1, skipped 2."
For each experiment whose latest checkpoint is unlocked
(locked_verdict IS NONE), in age order:
Run AX_NO_AUTO_INGEST=1 ax improve verdict <dedupe_sig> to fetch the
experiment + checkpoint history.
When the current view carries a current_reason, there is no
suggestion to confirm. Report the reason as it is - no opportunities in the window, no detector for this form, retired - and move to
the next experiment. A suggestion in the checkpoints history is
history, not a recommendation.
Otherwise render the current checkpoint as 2-3 lines:
Schema change guardrail - +30s checkpoint 12 opportunities in window, 8 addressed (66%) - observed use. Suggested: adopted.
Ask the user to confirm the suggested verdict OR override:
adopted (artifact is doing real work)ignored (user wrote it but never invoked it)regressed (it made things worse)partial (mixed signal)no_longer_needed (pattern self-resolved; trigger stopped firing)Run ax improve verdict <dedupe_sig> --set <verdict> to lock it. All
five values stay available to the user by hand, including
no_longer_needed, which the algorithm never suggests on its own.
Only run if the user asked for hook review OR if step-1 found ≥3 blocking errors. Light touch - this section is read-only.
Show top hooks from ax hooks summary --since=7 --tail=20 if not
already shown.
If a hook keeps blocking, ask: "Want to inspect a recent
invocation?" Then run
ax hooks invocations --command="<hook>" --tail=5 and render.
Backtest known feedback cases:
ax hooks cases enforce-worktree --tail=50 --window=3Treat each backtest result as one case type. Report pass/fail/ inconclusive counts.
Interpretation:
hook_progress without a terminal success/blocking event is a
telemetry gap unless correlated with visible behavior.ax hooks init, write a defineHook hook in ~/.ax/hooks/, ax hooks backtest it against history, then ax hooks install --providers=claude,codex.Output a one-paragraph summary:
experiment.created_at + 7d among accepted-but-unlocked
experiments, formatted as "next retro suggested around YYYY-MM-DD".Then ask whether the user wants to commit the scaffolded skill files + proposal-status changes (DB is local, but SKILL.md files are on disk and may belong in version control).
The retro itself produces durable signal that the experiment loop already captures:
Acceptance rate by form - after the session, derive from
proposal.status. If skill-form gets accepted 80% but guidance gets
rejected 80%, the derive-proposals stage is over-eager on the wrong
form. Surface as an observation.
Reject reasons - proposal.reject_reason is a free-text corpus.
After the session run:
ax improve list --status=rejected --json | jq '.[].reject_reason'Look for repeated phrases ("duplicate of existing hook"). When a pattern emerges, the derive-proposals stage should dedupe against it
Verdict surprises - when the user overrides a suggested verdict, note it. Repeated overrides mean the verdict math is biased.
These are observations, not actions. Report in the close-out; don't write to insight tables.
ax improve list [--form=skill|subagent|hook|guidance|automation] \
[--status=open|accepted|rejected|superseded|all] [--json]
ax improve show <dedupe_sig> [--json]
ax improve accept <dedupe_sig> [--force]
ax improve reject <dedupe_sig> --reason "<text>"
ax improve verdict [<dedupe_sig>] [--set <verdict>] [--json]
ax improve checkpoint [--force] # Step 1 prerequisite; --force only on request
ax improve reset --yes # destructive; only when user requests
ax retro pending [--since=N] [--idle-min=N] [--json] # Step 0 backlog
ax retro brief --session=<id> [--out-dir=<path>] [--json]
ax retro emit --session=<id> [--source=<src>] [--from-file=<json>]
ax retro list [--since=N] [--limit=N] [--json]
ax hooks summary [--since=N] [--tail=N]
ax hooks invocations [--command="<name>"] [--tail=N]
ax hooks cases <case-name> [--tail=N] [--window=N]--force on accept overwrites an existing SKILL.md scaffold. Only use
when the user explicitly says so.
reset --yes wipes ALL proposal/experiment/checkpoint state. NEVER run
without explicit user confirmation in this session.
ax improve list returns empty → run ax ingest --derive-only once,
retry. If still empty, evidence is genuinely thin; tell the user.ax improve accept reports scaffold_exists → ask the user if they
want --force or to abandon.ax improve verdict --set reports verdict_locked → that experiment
is already finalized; show the locked value and move on.ax improve checkpoint fails → measurement is unavailable for this
retro. Say so, skip Step 3, and keep Step 2 going.ax hooks summary returns nothing → retry with --since=30; if
still empty, the hook telemetry pipeline is idle, surface as a TODO.docs/development.md#setup
(AX_DUCKDB_DYLIB).ax improve accept for every open proposal in a batch; the
user must say yes per row.~/.claude/skills/ directly. The CLI handles that.© Necmttn, AGPL-3.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in skills/retro of Necmttn/ax.
Open the folder on GitHubat commit fca259c
Retro next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Retro this skillNecmttn/ax | 116 | — | ~3.5k | Automated safety check: Pass | AGPL-3.0 | |
| Self Retrospectivekid0317/crewai_mas_demo | 164 | — | ~505 | Automated safety check: Pass | None | |
| Harness ReckoningFairladyZ625/harness-anything | 225 | — | ~768 | Automated safety check: Pass | AGPL-3.0 | |
| Weekly Engineering Retrogarrytan/gstack | 136k | — | ~2.4k | Automated safety check: Pass | MIT | |
| Dough Execute Planterryyin/lizard | 2.6k | — | ~4.3k | Automated safety check: Pass | Custom licence | |
| Oral Paper SkillAdkid-Zephyr/oral-paper-skill | 350 | — | ~1.9k | Automated safety check: Pass | None |
kid0317/crewai_mas_demo
Agent 自我复盘:读取 L2/L3/L1 日志,调用 LLM 生成结构化改进提案, 写入 proposals.json 并发通知至 human.json 等待审批。
FairladyZ625/harness-anything
Run and interpret a read-only retrospective over Harness ledger projections, then prepare evidence-backed mechanism fixes, deletion candidates, or time-bounded rule proposals for human adjudication.
garrytan/gstack
Builds a weekly engineering retrospective from git history: commit counts, per-person contributions, work patterns and code quality numbers over a chosen window.
terryyin/lizard
Executes one selected story or bounded retrospective correction through an executable plan, or one authorized planless slice from a selected simple story or a contextual instruction, with…
Adkid-Zephyr/oral-paper-skill
Help authors learn from exemplary ICLR, ICML, and NeurIPS papers through source-linked manuscript comparisons, concrete writing and experiment suggestions, and guided reflection.
asheshgoplani/agent-deck
Run a fully local agent-deck retrospective over the user's own transcripts, Recall index and logs.
Necmttn/ax
Retrospective on one coding session that proposes changes to the agent's environment (hooks, checks, steering files, tool access) and files each as an ax proposal.
Necmttn/ax
Write the agent-generated narration of the current session - the reviewable story of what changed, including what never reaches a PR (user corrections, abandoned attempts, tool failures).
Necmttn/ax
Star the ax repo, file an issue / bug report, or fork-and-open-a-PR against github.com/Necmttn/ax on the user's behalf, by shelling out to the gh CLI.
Necmttn/ax
Draft or revise ax release announcements and website changelog pages.
Necmttn/ax
Deep retro of retros - investigation pass that surfaces improvements across older retros and the current ax setup.
Necmttn/ax
Install + verify ax (the agent experience layer). An agent skill from Necmttn/ax.
Categories
Guided experiment-loop retrospective over the ax agent-experience graph. Retro is an agent skill from Necmttn/ax. Guided experiment-loop retrospective over the ax agent-experience graph.
Retro fits situations like: the user says lets do an ax retro; ax retrospective; review my ax proposals; triage proposals.
Run `npx skills add Necmttn/ax --skill retro -a claude-code`. Or copy the skill folder (skills/retro in Necmttn/ax) into .claude/skills/retro in your project. Claude Code loads it when a task matches its description.
Run `npx skills add Necmttn/ax --skill retro -a codex`. Or copy the skill folder (skills/retro in Necmttn/ax) into .agents/skills/retro in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add Necmttn/ax --skill retro -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/retro, .gemini/skills/retro, .github/skills/retro and .opencode/skills/retro in your project.
Going by SKILL.md and its folder, Retro needs the command-line tools its instructions call (jq).
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
Retro is published under the AGPL-3.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.5k tokens (SKILL.md is roughly 14k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with Retro: Self Retrospective (kid0317/crewai_mas_demo, 164 stars), Harness Reckoning (FairladyZ625/harness-anything, 225 stars), Weekly Engineering Retro (garrytan/gstack, 136k stars) and Dough Execute Plan (terryyin/lizard, 2.6k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
Necmttn (a GitHub user) maintains it in Necmttn/ax, which has 116 GitHub stars. The repository holds 12 skills in this directory. The repository was last updated on October 7, 2026.
Source: Necmttn/ax on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.