
Retro
- 16 installs
- 3 repo stars
- Updated August 4, 2026
- netresearch/retro-skill
Helps with ai & agent building tasks.
About
retro is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted coding.
- retro
- AI & Agent Building
- AI-coding skill
Retro by the numbers
- 16 all-time installs (skills.sh)
- +2 installs in the week ending Aug 4, 2026 (Skillselion tracking)
- Ranked #11,068 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 5, 2026 (Skillselion catalog sync)
npx skills add https://github.com/netresearch/retro-skill --skill retroAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 16 |
|---|---|
| repo stars | ★ 3 |
| Last updated | August 4, 2026 |
| Repository | netresearch/retro-skill ↗ |
What it does
Helps with ai & agent building tasks.
Files
Retro — LLM-driven Session Retrospection
One efficient LLM pass over a session (or the stored memory backlog) detects friction, classifies it into one of six destinations, and materializes approved learnings.
Core principle: No silent writes — every materialization needs explicit per-proposal approval.
Modes
Detail per mode in references/workflow.md; full pipeline + commands in commands/retro.md.
- `/retro` — Sweep: the whole current session.
- `/retro "<problem>"` — Spotlight: one described issue.
- `/retro outcome [session-id|--since N]` — replay a past session by what
happened to its output (reverts, rejected PRs, follow-up fixes).
- `/retro audit [--scope project|repo|skill]` — cross-session architectural
drift, not per-session friction.
- `/retro promote` — inventory already-written local memory (all slugs) and
re-home each note upward (skill-update › project-rule › user-memory; never project-local memory), draining the source only after the upward write is verified. See references/promote-mode.md.
- Auto — optional SessionEnd hook (
hooks/session-end.json), off by default.
Pipeline (all modes)
1. Mechanical pre-pass — scripts/detect-mechanical.py (Promote substitutes scripts/scan-memory-inventory.py). 2. LLM enrichment — add inferential signals; filter false positives. 3. Cross-session enrichment (optional) — Coach events.sqlite or JSONL scan. 4. Discover skills — scripts/find-org-skills.py (installed + org catalogue); find the owning skill first. 5. Classify (classification-heuristic.md) to the broadest useful scope; never project-local memory. 6. Eval consultation — read a matched skill's evals/; propose a TDD stub. 7. Proposal generation — prose Why + How-to-apply, grouped, ≤10. 8. Approval — approve / edit / reject per proposal. 9. Materialize per destination; for Promote, drain the source last (verified). 10. Report.
Boundaries
Always: LLM is primary classifier. Patches go to source repos, never the cache. Per-private-repo confirmation. Conventional Commits. DCO sign-off (git commit -s). Preserve commit signing.
Ask first: skill-match ambiguity, auto-mode activation, private-repo targets, dirty-worktree fallback, any promotion that makes a private note team-visible.
Never: auto-merge, silent writes, bot attribution, skip hooks (--no-verify), patch the cache, hardcode a static skill list, rm a drained memory (tombstone).
References
| File | Purpose |
|---|---|
references/friction-catalog.md | All ~32 friction signals (Schichten A/B/C) |
references/destination-taxonomy.md | The six destinations |
references/classification-heuristic.md | Friction → destination mapping |
references/skill-discovery.md | Finding skills at runtime |
references/patch-workflow.md | Source-repo patching (never cache) |
references/eval-integration.md | Evals for context and TDD stubs |
references/promote-mode.md | Promote: scan, classify, materialize-then-drain |
references/workflow.md | All modes + pipeline phase selection |
version: 1
skill_id: retro
preconditions:
- type: command
pattern: "python3 --version"
desc: "python3 available for mechanical pre-pass"
mechanical:
- id: RT-01
type: file_exists
target: skills/retro/SKILL.md
severity: error
desc: "SKILL.md exists"
- id: RT-02
type: file_exists
target: commands/retro.md
severity: error
desc: "/retro command definition exists"
- id: RT-03
type: file_exists
target: scripts/detect-mechanical.py
severity: error
desc: "Mechanical pre-pass script exists"
- id: RT-04
type: command
pattern: "python3 -m py_compile scripts/detect-mechanical.py"
severity: error
desc: "Mechanical pre-pass script is syntactically valid Python"
- id: RT-05
type: file_exists
target: scripts/find-installed-skills.sh
severity: error
desc: "Skill discovery helper exists"
- id: RT-07
type: command
pattern: "python3 -m unittest discover -s tests -q"
severity: error
desc: "Detector test suite passes (guards A1/A14 signal regressions)"
- id: RT-06
type: command
pattern: "bash -n scripts/find-installed-skills.sh"
severity: error
desc: "Skill discovery script is syntactically valid bash"
- id: RT-10
type: file_exists
target: "{references/friction-catalog.md,references/destination-taxonomy.md,references/classification-heuristic.md}"
severity: error
desc: "Core reference docs exist (catalog, taxonomy, heuristic)"
- id: RT-11
type: file_exists
target: "{references/skill-discovery.md,references/patch-workflow.md,references/workflow.md}"
severity: error
desc: "Workflow reference docs exist (discovery, patch, workflow)"
- id: RT-20
type: file_exists
target: hooks/session-end.json
severity: warning
desc: "Optional SessionEnd hook template provided"
- id: RT-21
type: command
pattern: "jq -e . hooks/session-end.json > /dev/null"
severity: error
desc: "SessionEnd hook JSON is valid"
- id: RT-30
type: file_exists
target: docs/specs/retro-skill.md
severity: warning
desc: "Spec mirror exists for traceability"
- id: RT-40
type: file_exists
target: scripts/validate-evals.py
severity: error
desc: "Eval validator script exists"
- id: RT-41
type: command
pattern: "python3 -m py_compile scripts/validate-evals.py"
severity: error
desc: "Eval validator script is syntactically valid Python"
- id: RT-42
type: command
pattern: "python3 scripts/validate-evals.py"
severity: error
desc: "Retro's own eval scenarios are present (>=5) and well-formed (id/trigger/expected/negative_expected)"