From retrospective
This skill should be used when the user asks to "run a retrospective", "review my sessions", "what went well", "what didn't go well", "how can I improve my workflow", "analyze my Claude usage", "suggest skills I should create", "what should I automate", "find workflow improvements", or "review how I work with Claude". Also triggers when the user mentions session analysis, workflow optimization, skill opportunities, subagent suggestions, slash command ideas, or asks about improving their AI-assisted development process. Supports analyzing all dimensions at once or focusing on a single dimension.
npx claudepluginhub florianbuetow/claude-code --plugin retrospectiveThis skill uses the workspace's default tool permissions.
Analyze Claude Code session logs to understand **how the developer-AI collaboration is
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
Analyze Claude Code session logs to understand how the developer-AI collaboration is working — what went well, what didn't, and what can be improved. Produce actionable suggestions for new skills, subagents, slash commands, hooks, and workflow changes based on actual usage patterns.
This is a true retrospective in the agile sense: looking back at past sessions to improve future ones. The analysis examines real session logs, not hypothetical best practices. Each retrospective builds on previous ones — tracking whether past recommendations were acted on and whether the collaboration is actually improving.
Five dimensions, each targeting a different axis of workflow improvement:
| Dimension | Question It Answers | Reference |
|---|---|---|
| What Went Well | Which interactions were efficient, successful, and worth repeating? What strengths can be applied to recurring problems? | references/success-patterns.md |
| What Didn't Go Well | Where did the collaboration break down, waste time, or produce poor results? What is the root cause? | references/failure-patterns.md |
| Skill Opportunities | What repeated requests or workflows should become reusable skills or slash commands? | references/skill-opportunities.md |
| Workflow Optimization | How can subagents, hooks, and automation reduce manual effort? | references/workflow-optimization.md |
| Collaboration Antipatterns | What common developer-AI pitfalls are showing up in these sessions? | references/collaboration-antipatterns.md |
| Session Inventory | What happened in each session? Which sessions need attention? | references/session-inventory.md |
| Command Pattern | Scope | Reference |
|---|---|---|
retrospective / retrospective all | All five dimensions | All references |
retrospective wins / retrospective good | What Went Well | references/success-patterns.md |
retrospective problems / retrospective bad | What Didn't Go Well | references/failure-patterns.md |
retrospective skills | Skill & Slash Command Opportunities | references/skill-opportunities.md |
retrospective workflow / retrospective automation | Workflow Optimization | references/workflow-optimization.md |
retrospective antipatterns | Collaboration Antipatterns | references/collaboration-antipatterns.md |
| retrospective inventory / retrospective sessions | Session catalog only | references/session-inventory.md |
When no subcommand is specified, default to all dimensions plus session inventory. When a dimension is mentioned by name (even without "retrospective"), match it.
MANDATORY. Every agent (main context and every subagent) MUST use a dedicated shell script for ALL Bash operations. No agent may run raw Bash commands like grep, find, jq, cat, rg, or any data extraction directly. Every command goes into the script.
Each Bash tool call requires user approval. Running dozens of individual commands causes confirmation fatigue — the exact antipattern this skill detects. The fix: each agent creates one script and only ever runs that script. When the agent needs different data, it edits the script and re-runs it.
Each retrospective run writes all scripts and intermediate output to a session-scoped directory to avoid write conflicts when multiple agents run in parallel:
/tmp/retro-$$ (where $$ is the shell PID of the main context)
The main context must create this directory (mkdir -p /tmp/retro-$$) before launching
any subagents, and pass the path to every subagent in its prompt.
/tmp/retro-$$/<agent-name>.shbash /tmp/retro-$$/<agent-name>.sh (one approval)bash /tmp/retro-$$/<agent-name>.sh (one approval). Never create a new Bash call.| Agent | Script path |
|---|---|
| Main context (step 1) | /tmp/retro-$$/analyze.sh |
| Inventory subagent (step 4) | /tmp/retro-$$/inventory.sh |
| Success patterns subagent (step 5) | /tmp/retro-$$/success-patterns.sh |
| Failure patterns subagent (step 5) | /tmp/retro-$$/failure-patterns.sh |
| Skill opportunities subagent (step 5) | /tmp/retro-$$/skill-opportunities.sh |
| Workflow optimization subagent (step 5) | /tmp/retro-$$/workflow-optimization.sh |
| Collaboration antipatterns subagent (step 5) | /tmp/retro-$$/collaboration-antipatterns.sh |
| Feedback loop subagent (step 8) | /tmp/retro-$$/feedback.sh |
Everything. File discovery, JSONL parsing, grep/rg searches, jq queries, line counting, pattern extraction — all of it. The script outputs structured results to stdout. The agent reads the output, thinks about it, edits the script for the next query, re-runs.
grep, rg, find, jq, cat, wc, sort, or awk as direct Bash callsSession logs are JSONL files stored at:
~/.claude/projects/<project-path-encoded>/<session-id>.jsonl
To find logs for the current project:
/ with -, strip leading -)~/.claude/projects/<encoded-path>/.jsonl file is one sessionRead all session logs from the last 3 months. Each .jsonl file has a modification
timestamp — include every file modified within the last 90 days. Each line in a file
is a JSON object representing one event.
Use the single-script approach (see "Execution Principle" above). Write the
analysis script to /tmp/retro-$$/analyze.sh, execute it once, then edit and re-run it
as needed to drill into specific patterns. Do not read log files one at a time.
Key event types to extract:
"type": "user" — user messages (requests, corrections, interruptions, feedback)"type": "assistant" — Claude's responses (tool calls, text, thinking)"type": "progress" — hook events, subagent eventsKey fields to examine:
message.content — what the user asked or what Claude saidname and input — which tools were called and how"is_error": true — tool calls that were rejected or failed"isSidechain": true — branched/abandoned conversation pathsEmotional signal detection: Pay attention to user frustration and satisfaction markers in messages:
A user who silently gives up is a worse outcome than one who corrects Claude five times and gets the right result. Frustration and resignation are the highest-priority signals because they represent problems the user stopped trying to fix.
Before analyzing, read the reference file(s) for the requested dimension(s):
references/session-inventory.md — session cataloging methodology and output formatreferences/success-patterns.md — patterns of effective collaborationreferences/failure-patterns.md — patterns of wasted effort and breakdownsreferences/skill-opportunities.md — detecting automatable patternsreferences/workflow-optimization.md — subagents, hooks, automationreferences/collaboration-antipatterns.md — known developer-AI pitfallsFor a full retrospective (retrospective all), read all six.
Check for previous retrospective reports in docs/retrospective/. Read the most recent
3 reports (or fewer if fewer exist). These are needed for the feedback loop in step 8.
If no previous reports exist, this is the first retrospective — skip step 8 and note this in the output.
Launch a dedicated inventory subagent before the dimension subagents. This subagent catalogs every session from the last 3 months, producing the session inventory that serves as the foundation for the pattern analysis.
Read references/session-inventory.md for the complete cataloging methodology,
classification heuristics, and output format.
The inventory subagent must:
references/session-inventory.md for methodology and output format./tmp/retro-$$/inventory.sh using the Write tool. This script handles ALL
data extraction: file discovery, JSONL
parsing, metadata extraction, topic detection, status classification.bash /tmp/retro-$$/inventory.sh (one Bash approval). Analyze the output./tmp/retro-$$/inventory-output.md.This step must complete before step 5 launches. The inventory output is passed to each dimension subagent as input context so they can reference specific sessions in their findings.
Output: The session inventory (summary table + per-session detail blocks +
sessions requiring attention) as specified in references/session-inventory.md.
Launch one subagent per dimension. Do not split work by time period or session count — split by dimension. Each subagent analyzes ALL session logs from the last 3 months but focuses exclusively on its assigned dimension.
For a full retrospective, launch 5 subagents in parallel:
| Subagent | Dimension | Reference File | Script Path |
|---|---|---|---|
| 1 | What Went Well | references/success-patterns.md | /tmp/retro-$$/success-patterns.sh |
| 2 | What Didn't Go Well | references/failure-patterns.md | /tmp/retro-$$/failure-patterns.sh |
| 3 | Skill Opportunities | references/skill-opportunities.md | /tmp/retro-$$/skill-opportunities.sh |
| 4 | Workflow Optimization | references/workflow-optimization.md | /tmp/retro-$$/workflow-optimization.sh |
| 5 | Collaboration Antipatterns | references/collaboration-antipatterns.md | /tmp/retro-$$/collaboration-antipatterns.sh |
Each subagent must follow the script-only rule:
/tmp/retro-$$/inventory-output.md (produced in step 4)
to understand the full session landscape and reference specific sessions by ID./tmp/retro-$$/success-patterns.sh) using the Write
tool. The script must contain ALL
grep, find, jq, cat, rg, awk, wc, and sort operations — no raw Bash calls allowed.bash /tmp/retro-$$/success-patterns.sh (one Bash approval). Analyze the output.What each subagent looks for:
Subagent 1 — What Went Well:
Subagent 2 — What Didn't Go Well:
Subagent 3 — Skill Opportunities:
Subagent 4 — Workflow Optimization:
Subagent 5 — Collaboration Antipatterns:
For a single-dimension retrospective (e.g., retrospective skills), launch only the
relevant subagent.
This step is critical. Do not skip it.
For each pattern identified in step 5, go beyond observation and ask why the pattern exists. The goal is root cause analysis, not symptom listing. Without this step, the retrospective produces shallow observations that recycle from one retrospective to the next — the single most common retrospective failure mode.
For each finding, answer:
For each dimension analyzed, assign a score from 1–5:
| Score | Label | Meaning |
|---|---|---|
| 1 | Poor | Major problems in this area, significant improvement needed. |
| 2 | Fair | Notable issues that regularly cause friction. |
| 3 | Okay | Some issues but generally functional. Room for improvement. |
| 4 | Good | Working well with only minor improvement opportunities. |
| 5 | Excellent | This area is highly effective. Keep doing what you're doing. |
Launch a subagent to perform this comparison. The subagent MUST follow the
script-only rule: write /tmp/retro-$$/feedback.sh using the Write tool, run
bash /tmp/retro-$$/feedback.sh (one Bash approval), edit and re-run as needed. No raw
Bash calls — all grep/find/jq/cat operations go in the script. The subagent should:
If no previous retrospective reports exist, skip this step.
CRITICAL: Keep the analysis methodology unchanged, but change the presentation. The final report must be recommendation-first, scannable in 30 seconds, and use fixed fields per block.
Do not dump raw subagent prose into the main body. Synthesize findings into a fixed structure, then move detailed evidence into a numbered appendix.
Before you draft any section of the report, build a canonical recommendation set from the merged findings. This is the source of truth for BOTH the saved markdown report and the immediate user-facing explanation after the file is written.
Each recommendation in this canonical set must include:
ActionEffortImpactStatus (new or recurring)Problem addressedWhy it mattersExpected outcomeTarget artifactExact content to applyVerificationEvidence refsRules:
Start the report with a table:
| # | Action | Effort | Impact | Status | Evidence Ref(s) |
Rules:
Status must be new or recurring for every recommendation.recurring when step 8 found a materially similar unresolved recommendation.new when no prior equivalent recommendation exists.After the table, include one block per recommendation in strict field order:
Recommendation #
Action:
Effort:
Impact:
Status: (new or recurring)
Problem addressed: (1-2 sentences)
Why it matters: (1-3 sentences, quantify when possible)
Expected outcome:
Evidence refs: (E01, E07, etc.; no inline quote walls)
Provide an implementation block for every recommendation with exact text/config:
Recommendation #
Target artifact: (file path, hook config path, skill file, etc.)
Exact content to apply: (full markdown/json/yaml/code block ready to copy-paste)
Verification: (one concrete check command or acceptance condition)
This section must be immediately usable without interpretation.
Use the feedback-loop output from step 8, but keep it concise and structured:
Include the 1-5 scores from step 7 as a table. Keep to one compact table.
All detailed analysis lives here, after the recommendation sections.
Rules:
E01, E02, ... and reference these IDs from recommendations.Each appendix entry must use fixed fields:
Evidence ID:
Dimension: (inventory, success, failure, skill, workflow, antipattern, feedback)
Sessions:
Observation:
Supporting evidence: (quoted snippets/tool traces)
Root cause:
Impact/cost:
Related recommendation(s): (#1, #3, etc.)
One short paragraph: biggest theme, highest-leverage change, and what to preserve.
Save the merged report to docs/retrospective/YYYY-MM-DD-v1.md. Increment the
version number if a file for today already exists. This is the authoritative record
for the feedback loop — future retrospectives read these files.
After writing the report, immediately explain the recommendations to the user using the same canonical recommendation set from step 9. This explanation is mandatory. Do not merely say "report written" and do not defer explanation to the markdown file.
Required structure for the user-facing explanation:
For each recommendation in the walkthrough, include:
Rules:
These are guidelines, not laws. Apply judgment:
User: retrospective
Claude: