From skill-retrospective
Four-phase skill retrospective loop. Collects structured feedback at the end of skill sessions, groups recurring patterns, prioritizes fixes, and tracks resolutions across sessions. Use at the end of any session that used a skill to capture what went well or what could improve, or in a dedicated retro session for grouping and prioritization. Also use when the user says "let's retro", "review how the skill went", "capture feedback", "what went wrong", "log this observation", or "record a resolution".
How this skill is triggered — by the user, by Claude, or both
Slash command
/skill-retrospective:skill-retrospectiveThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Structured feedback loop for improving Claude skills over time. Four phases: collect → group → prioritize → resolve.
Structured feedback loop for improving Claude skills over time. Four phases: collect → group → prioritize → resolve.
All data operations go through the CLI. The script lives alongside this skill:
python scripts/retro_db.py <command> <workspace> [options]
The workspace is the project folder where feedback.csv and resolution.csv will live — use that project's root directory.
If the workspace has not been initialized, run init first:
python scripts/retro_db.py init <workspace>
When the user runs /retro, ask:
AskUserQuestion:
question: "Which phase?"
header: "Retro"
options:
- "Phase 1 — Collect feedback from this session"
- "Phase 2 — Group ungrouped feedback"
- "Phase 3 — Prioritize groups"
- "Phase 4 — Record a resolution"
If args were passed (e.g. /retro group), map them directly:
group → Phase 2prioritize → Phase 3resolve → Phase 4Goal: Append structured feedback rows for the current session before context is lost.
Identify the workspace. Ask: "Which workspace?" — suggest the current working directory. Confirm before proceeding.
Check init. Verify feedback.csv exists. If not, run init first.
Identify the skill. Ask which skill was used in this session (e.g. deep-ideation, ultra-brainstorming). If multiple skills were used, collect feedback for each separately.
Get the session ID. Use the current session identifier (visible in conversation metadata, or ask the user: "What should I use as the session ID? (e.g. today's date + topic)").
Collect observations — one at a time. Ask:
AskUserQuestion:
question: "Anything notable about this session — what went well or what could improve?"
header: "Observation"
options:
- "Something went well"
- "Something could improve"
- "Both"
- "Nothing notable — skip"
For each observation, ask:
Then write the row:
python scripts/retro_db.py feedback_add <workspace> \
--skill "<skill_name>" \
--session-id "<session_id>" \
--sentiment good|improve \
--what-happened "<one sentence>" \
--evidence "<concrete reference>"
Loop. After each row, ask: "Anything else?" Stop when the user says no.
Confirm. Show a summary of rows added. If none were added, confirm that's intentional.
what_happened describes behavior, not a solution. "Scorer exited after 8 ideas" not "Scorer should loop until all ideas are covered."sentiment is strictly good or improve. Don't use other values.Goal: Assign group tags to ungrouped feedback rows, in a dedicated retro session.
Confirm workspace and skill filter. Ask if they want to group all skills or one skill at a time.
Read ungrouped rows:
python scripts/retro_db.py feedback_list <workspace> --ungrouped
Proposed groupings:
scorer-reliability — f001, f007, f012 (scorer exits early in 3 sessions)
id-collision — f002 (row IDs overwritten)
naming-wins — f004, f009 (strong naming output)
Approve, adjust, or suggest different groupings?
Wait for approval before writing anything.
Apply groups for each approved grouping:
python scripts/retro_db.py feedback_set_group <workspace> f001 scorer-reliability
# repeat for each row
good rows get groups too — they are the baseline for what's working.Goal: Set group_priority (1–5) on each group, and identify which to act on.
python scripts/retro_db.py groups_summary <workspace>
For each group, present a one-line pattern summary and proposed priority.
Wait for user to approve or adjust each priority.
Write priorities for approved groups:
python scripts/retro_db.py feedback_set_priority <workspace> --group scorer-reliability --priority 5
good rows generally don't get a priority number — they're reference, not action itemsGoal: Record what changed in the skill and which feedback IDs it addresses.
Ask what was changed. "Which skill was updated, and what changed?"
Show relevant feedback:
python scripts/retro_db.py feedback_list <workspace> --skill <name>
python scripts/retro_db.py groups_summary <workspace>
Ask which feedback IDs this resolution addresses. Space-separated: "f001 f003 f007"
Verify the description. Ask for 1–3 sentences on what changed.
Write the resolution:
python scripts/retro_db.py resolution_add <workspace> \
--feedback-ids "f001 f003 f007" \
--what-changed "<1-3 sentences>" \
--status addressed \
[--notes "<optional>"]
python scripts/retro_db.py resolution_verify <workspace> <resolution_id> --session-id <id>"If the user decides not to fix something, use --status wont_fix and require --notes with the reason.
feedback_set_group.wont_fix without notes. Enforce the reason. Ask before writing.resolution_verify only works on status=addressed. Enforce this.npx claudepluginhub ydmitry/skill-retrospective --plugin skill-retrospectiveRuns agile retrospectives on Claude sessions, reflecting on what worked/didn't, and drives actionable improvements with file changes and archiving.
Captures friction from coding sessions like user corrections, redos, and frustration to log lessons learned and route improvements to context files. Triggers on /retrospective or detected signals.
Analyzes skill outcome logs and user corrections, then proposes self-improvements to skill behavior and description hygiene.