reflect
ONLY on /reflect or retro step 4. Propose skill improvements.
SKILL.md.claude/skills/reflect/SKILL.md
GitHubReflect Skill
Analyze the current session and propose improvements to skills based on what worked, what didn't, and edge cases discovered.
Trigger
Run /reflect or /reflect [skill-name] after a session where you used a skill.
Additional commands:
/reflect on- Enable automatic end-of-session reflection/reflect off- Disable automatic reflection/reflect status- Check if auto-reflect is enabled
Workflow
Step 1: Identify the Skill
If skill name not provided, ask:
Which skill should I analyze this session for?
- frontend-design
- code-reviewer
- [other]
Step 2: Analyze the Conversation
Look for these signals in the current conversation:
Corrections (HIGH confidence):
- User said "no", "not like that", "I meant..."
- User explicitly corrected output
- User asked for changes immediately after generation
Successes (MEDIUM confidence):
- User said "perfect", "great", "yes", "exactly"
- User accepted output without modification
- User built on top of the output
Edge Cases (MEDIUM confidence):
- Questions the skill didn't anticipate
- Scenarios requiring workarounds
- Features user asked for that weren't covered
Preferences (accumulate over sessions):
- Repeated patterns in user choices
- Style preferences shown implicitly
- Tool/framework preferences
Step 3: Propose Changes
Present findings using accessible colors (WCAG AA 4.5:1 contrast ratio):
┌─ Skill Reflection: [skill-name] ───────────────────┐
│ │
│ Signals: X corrections, Y successes │
│ │
│ Proposed changes: │
│ │
│ 🔴 [HIGH] + Add constraint: "[specific constraint]"│
│ 🟡 [MED] + Add preference: "[specific preference]"│
│ 🔵 [LOW] ~ Note for review: "[observation]" │
│ │
│ Commit: "[skill]: [summary of changes]" │
│ │
└────────────────────────────────────────────────────┘
Apply these changes? [Y/n] or describe tweaks
User Response Options:
Y– Apply changes + integrate surrounding instructions, then commit locally (user pushes from host)n– Skip this update- Or describe any tweaks to the proposed changes
Step 4: If Approved
- Read the current skill file at its canonical dotfiles path (
~/projects/dotfiles/skills/[skill-name]/SKILL.md) — CLAUDE.md § Dotfile symlink discipline. - Apply the changes using the Edit tool.
- Integrate — no contradictions left behind. Before committing, sweep the surrounding instructions (other steps in the file; numbering/range references like "Steps 2–4"; silence/close/scope notes;
and every other file that names the changed behaviour —
grepthe concept) and update them in the same burst so nothing now contradicts, double-counts, or dangles against the edit. Full discipline →~/.claude/references/skills-management.md§"Integrate Every Edit". A partial edit that leaves a contradiction is a defect. - Commit locally (dotfiles repo):
git -C ~/projects/dotfiles add … && git -C ~/projects/dotfiles commit -m "[skill]: [change summary]". Do NOTgit pushfrom the session — the user pushes dotfiles from the host (CLAUDE.md "Git push credentials"). - Confirm: "Skill updated + committed to dotfiles — push from host when ready."
Step 5: If Declined
Drop it. If it must survive the session, stage it as a type: feedback memory file — that layer already has a drain (a later /retro graduates it into its target once that target is reachable). Never open a per-skill observations log: nothing reads it, nothing prunes it, and no admission rule governs it.
Toggle Commands
/reflect on
Enable automatic end-of-session reflection:
- Create/update
~/.claude/reflect-skill-state.jsonwith{"enabled": true, "updatedAt": "[timestamp]"} - Confirm: "Auto-reflect enabled. Sessions will be analyzed automatically when you stop."
/reflect off
Disable automatic reflection:
- Update
~/.claude/reflect-skill-state.jsonwith{"enabled": false, "updatedAt": "[timestamp]"} - Confirm: "Auto-reflect disabled. Use /reflect manually to analyze sessions."
/reflect status
Check current status:
- Read
~/.claude/reflect-skill-state.json - Report: "Auto-reflect is [enabled/disabled]" with last updated timestamp
Note: The state file is saved in the global Claude user directory (~/.claude/) so it persists across plugin upgrades.
Important Notes
- Always show the exact changes before applying
- Never modify skills without explicit user approval
- Every applied change integrates with its surroundings — no contradictions left behind (Step 4.3)
- Commit messages should be concise and descriptive
- Commit locally; the user pushes dotfiles from the host (never
git pushfrom the session)