By zolat
Auto-captures a retrospective at the end of every substantive Claude Code session via a Stop hook that spawns a fork-resumed `claude -p` subprocess. The fork inherits the parent's full transcript so retros have real subjective signal. Provides /retro for scrum-style review of accumulated retros, surfacing patterns and proposing structural follow-ups (CLAUDE.md edits, memory entries, skill changes, tooling unblocks). Retros are stored at ~/.claude/retros/.
npx claudepluginhub zolat/claude-code-retros --plugin retrosWrite a retrospective on the Claude Code session you just completed. Invoke after finishing a meaningful unit of work — a planning + implementation + verification cycle, a tricky debug, a refactor, or anything else that produced learnings. Skip for conversational turns, quick lookups, or trivial fixes.
Scrum-style review of unprocessed session retrospectives — surface patterns, propose actions, mark processed.
Share bugs, ideas, or general feedback.
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge.
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge.
Sign in to claimManus-style persistent markdown files for planning, progress tracking, and knowledge storage. Works with Claude Code, Kiro, Clawd CLI, Gemini CLI, Cursor, Continue, Hermes, and 17+ AI coding assistants. Now with Arabic, German, Spanish, and Chinese (Simplified & Traditional) support.
Complete PRP workflow automation - plan, implement, debug, review, commit, and PR commands with specialized agents
Efficient skill management system with progressive discovery — 410+ production-ready skills across 33+ domains
Complete collection of battle-tested Claude Code configs from an Anthropic hackathon winner - agents, skills, hooks, and rules evolved over 10+ months of intensive daily use
AI-supervised issue tracker for coding workflows. Manage tasks, discover work, and maintain context with simple CLI commands.
A Claude Code plugin that auto-captures session retrospectives so observations don't evaporate when sessions end.
After every substantive Claude Code session, a Stop hook spawns a backgrounded claude --resume --fork-session -p subprocess. The forked session inherits the parent's full transcript, picks a topic slug, captures observations (learnings, dead ends, mental-model corrections, capability gaps, etc.), and writes a markdown retro to ~/.claude/retros/. Parent session is never blocked.
Periodically you run /retro — Claude groups unprocessed retros into bodies of work, surfaces patterns, discusses contributions to friction, and proposes structural follow-ups (CLAUDE.md edits, memory entries, skill changes, tooling unblocks). You confirm; the actions land. Reviewed retros get a ## Processed: section appended in place.
The two stages are deliberately decoupled: capture is cheap and unilateral (just writes a file), action is human-gated.
~/.claude/settings.json already has:
"extraKnownMarketplaces": {
"claude-code-retros": {
"source": { "source": "directory", "path": "/Users/<you>/projects/claude-code-retros" }
}
},
"enabledPlugins": {
"retros@claude-code-retros": true
}
git clone <this-repo> ~/projects/claude-code-retros~/.claude/settings.json:
"extraKnownMarketplaces": {
"claude-code-retros": {
"source": { "source": "directory", "path": "/Users/<you>/projects/claude-code-retros" }
}
},
"enabledPlugins": {
"retros@claude-code-retros": true
}
(Or push to GitHub and use a "source": "github" form — see below.)/capture-retro and /retro should appear in the skill list.Push this repo to GitHub, then on each machine:
"extraKnownMarketplaces": {
"claude-code-retros": {
"source": { "source": "github", "repo": "<you>/claude-code-retros" }
}
}
/capture-retro — manually invoke a retro for the current session. Picks a topic slug, computes a filename, captures observations, writes the file. Normally fires automatically; manual invocation is for edge cases./retro — review unprocessed retros. Loads everything in ~/.claude/retros/ lacking a ## Processed: section, groups by body of work, surfaces patterns, proposes actions. Bias is toward discussion over action.The plugin can't own your status line because it's a single user-level setting. Add this snippet to ~/.claude/statusline-command.sh if you want a retros:N indicator:
# Build unprocessed-retros segment: count retro files lacking a `## Processed:` section.
retro_part=""
retro_dir="$HOME/.claude/retros"
if [ -d "$retro_dir" ]; then
unprocessed=$(grep -L "^## Processed:" "$retro_dir"/*.md 2>/dev/null | wc -l | tr -d ' ')
if [ "${unprocessed:-0}" -gt 0 ] 2>/dev/null; then
retro_part="retros:${unprocessed}"
fi
fi
Then append [ -n "$retro_part" ] && parts+=("$retro_part") wherever your script assembles its parts array.
hooks/auto-retro-stop.sh — Stop hook. Five guards (loop guard, transcript exists, trivial-skip, session_id, marker dedup). Spawns nohup claude -p --resume <sid> --fork-session --settings '{"disableAllHooks":true}' --strict-mcp-config --permission-mode bypassPermissions --allowedTools "Bash,Read,Write,Glob,Grep" -- "<prompt>" &. Exits 0 — never blocks parent.commands/capture-retro.md — the skill the fork (or you) invokes. Picks topic slug, runs date, writes ~/.claude/retros/<datetime>-<slug>.md.commands/retro.md — the review facilitator.~/.claude/retros/<datetime>-<topic-slug>.md — markdown, append-only.~/.claude/retros/.captured-<session-id> — hidden, one per session./tmp/retro-fork-<session-id>.log.--resume (so retros have real subjective signal, unlike a cold-start subagent).--settings '{"disableAllHooks":true}' — no recursion, no Warp notification per retro.~/.claude/retros/ regardless of project — project-scoped storage is a known follow-up; today everything is user-level.