Skill Debrief
What this is
Skills are living documents. Over a working session you correct Claude, explain
things twice, and say preferences out loud — and almost all of that context
evaporates the moment the chat closes. This skill is the debrief: run it when
you're done, and it turns the friction from the session you just had into
precise updates to the skills you actually used, so the same corrections don't
come back next time.
It is deliberately an end-of-session, on-demand ritual. Running this kind of
analysis mid-conversation is disruptive and burns budget on work that isn't the
task at hand. Waiting until the end means the full arc of the session is
available to learn from, and the edits land in one reviewed batch instead of
trickling in while you're trying to get something done.
The mindset (read this first — it governs everything below)
- Evidence over vibes. Every proposed edit must trace back to something that
actually happened in this conversation. If you can't point to the moment,
don't propose the change.
- Surgical, not sweeping. You are making small, targeted edits to lines that
earned them — never rewriting a skill wholesale. A skill the user has tuned
over months encodes taste you can't see; large "improvements" quietly destroy
it. When in doubt, change less.
- Only touch what needs it. Most skills used in a session need no changes.
Silence is a valid, common outcome. Do not invent work to look useful.
- The user has the final say. Default behavior is to show the diff and wait
for approval before writing anything. This is a feature, not friction —
especially for creative and voice-driven skills, where the user may be
choosing imperfection on purpose.
Workflow
Work through these five steps in order. Steps 1–3 are analysis (cheap, do them
fully). Step 4 is where anything gets written, and only with approval.
Step 1 — Scan the session
You already have this conversation in your context, so start by reflecting over
it directly rather than parsing files. Walk the session start to finish and pull
out the raw material:
- Which skills were used? Look back through the conversation for
Skill tool
invocations and note each skill by name. Also include any skill the user named
or clearly leaned on even if it wasn't formally loaded. These are your only
candidates — you improve skills that were exercised this session, nothing
else.
- Where was there friction? Collect concrete moments:
- Corrections — "no, not like that," "actually make it…," a redo, a manual
fix the user applied to something a skill produced.
- Repeated explanations — the user had to say the same thing more than
once, or re-explain context a skill should already have carried.
- Stated-but-unfiled preferences — the user said a preference out loud
("I always want captions lowercase") that isn't written into the skill.
If the session was very long and you suspect earlier context was truncated or
summarized, you can read the raw transcript for completeness — see
references/framework.md for the transcript location and format. This is a
fallback; the in-context reflection is the primary source.
Produce a short, honest inventory. If there was no meaningful friction for a
given skill, say so and move on.
Step 2 — Diagnose into two buckets
For each piece of friction, decide which of two things it's really about. This
split matters because the two halves of a skill get updated differently:
- About you (understanding) — what Claude learned about who the user is,
how they think, what they value, and how they decide. This updates the part
of a skill that models the user: voice, taste, context, priorities. Signal
words: "I prefer," "the way I think about this," "for my brand," reactions
that reveal values.
- Execution (patterns/formats) — a structure, format, step, or output rule
that kept breaking or needs to be locked in. This updates how the skill does
the task: templates, formatting rules, sequences, constraints. Signal:
something was structurally wrong or inconsistent more than once.
Label each finding with its bucket. A single finding occasionally touches both;
that's fine — note both.
Step 3 — Apply the repeat rule
This is the discipline that keeps the skill from overfitting to one bad day.
- Inferred corrections and patterns need to appear twice in this
conversation before they earn an edit. One correction is a note, not a
change — people have off moments, and a single "no, shorter" is not evidence
that the skill's whole length guidance is wrong. If it happened once, name it
in your report as an observation and explicitly do not propose an edit for
it.
- Explicitly stated preferences are fileable on first clear statement. If the
user directly says "always do X" or "never do Y," that's an unambiguous
instruction, not an inference — you don't need a repeat to file it. The
repeat rule exists to protect against you guessing wrong, not against the
user telling you plainly.
Because this skill only looks at the current session, "twice" means twice in
this conversation. That's a deliberate tradeoff for zero setup and no state
files. If a preference shows up only once here, it stays a note — and if it's
real, it'll recur in a future session and earn its edit then.
Step 4 — Show your work, then edit
For every change that survived Step 3, do this before changing anything:
Find the skill's files, however this environment exposes them. A skill is
a SKILL.md (plus any bundled files), but where it lives depends on where
you're running — so adapt rather than assuming one layout:
- With filesystem access (Claude Code, or a connected filesystem) — the
skill is a file on disk. Check the canonical locations in order: project
.claude/skills/<name>/, then ~/.claude/skills/<name>/, then
~/.agents/skills/<name>/. Use Glob/Grep to confirm the path and Read the
current contents. Commit by editing the file in place.
- On the app/upload path (e.g. skills added via Customize in the desktop
app) — the skills you're improving are the ones exposed to this session.
Work with them exactly the way you would if the user asked directly to
"update this skill": open the skill's markdown, make the edit, and update
its package.
Both cases are the same move: get the current SKILL.md, change the exact
lines, and commit the result — by writing the file, or by updating the skill
package. If you genuinely can't reach a used skill's contents in this
environment, don't fake it: put the exact edits in your report for the user to
apply, and say plainly that you couldn't write them yourself.
- Never edit a skill under a plugin/marketplace path (anything inside
plugins/marketplaces/…, or any skill the environment marks as managed or
upstream). Those get overwritten on the next update, so your edit would
silently vanish. Flag it in your report and suggest the user copy it to a
location they own first — don't edit it in place.
Present a grouped diff. Group proposed edits by skill. For each edit show:
the exact current line(s), the exact proposed replacement, and one sentence on
why — tied to the specific moment in the session. Keep edits minimal and
scoped to the lines that earned the change.
Wait for approval, then commit. Do not change anything until the user
confirms. They may accept all, some, or none, and may tweak wording. Apply
only what's approved — writing the file (filesystem) or updating the skill
package (app) — using surgical edits, never full-file rewrites.
Use this shape for the report so it's easy to scan:
## Debrief — skills used this session
### <skill-name> ✎ 2 proposed edits
Bucket: understanding
Evidence: user corrected the caption length twice (turn 4, turn 9)
- Current: Keep captions under 200 characters.
+ Proposed: Keep captions under 120 characters — the user consistently
trims to ~100 and asked for "shorter" twice this session.
Why: locks in a length the user re-applies by hand every time.
### <other-skill> ✓ no changes
Used this session; one-off correction noted (turn 6) but not repeated, so no
edit yet.
### <plugin-skill> ⚠ flagged, not edited
Lives under a marketplace path and would be overwritten on update. Copy it to
~/.claude/skills/ first if you want this change to stick.
Step 5 — Clean house (offer, don't force)
Skills accumulate cruft — rules for tools that changed, examples that no longer
match how the user works, guidance that contradicts newer guidance. When you've
got a skill file open in Step 4, glance for obviously stale content and offer
to cut it, with the same show-the-lines-first discipline. Keep this light: a
debrief is not a rewrite, and removing something the user still relies on is as
harmful as adding something they don't want. Only flag staleness you can
justify; when unsure, leave it.
Optional: autonomous mode
By default this skill shows every diff and waits — the right call for creative,
voice, and brand skills where taste is subjective and the user may want to stay
in the loop. For technical skills with objective right/wrong behavior (a lint
rule, a build step, a formatting convention), the user may prefer to let the loop
run unattended. If the user explicitly asks to "just apply the changes" or "run
it autonomously," you may apply approved-category edits without pausing on each
one — but still (a) obey the repeat rule, (b) never touch plugin/marketplace
skills, and (c) end with a summary of every edit you made so it's reviewable and
reversible. When unsure which mode applies, default to showing your work.
Reference
references/framework.md — the framework in more depth: diagnosis heuristics for
spotting each kind of friction, the exact transcript path/format for the
fallback scan in Step 1, and the full skill-file search order with the rule on
why plugin skills are off-limits.
1---2name: skill-debrief3description: Run this at the END of a conversation to review the skills that were used and propose surgical, evidence-based improvements to them. Use whenever the user says they are done, wants to debrief, wrap up, or close out a session, or asks to review, update, heal, tune up, or improve a skill they just used. Also trigger when they complain that a skill keeps getting something wrong, keeps needing the same correction, or never captured a preference they stated out loud — and on phrases like "debrief this session," "update my skills," "the captions skill still isn't right," "lock this in so I stop repeating myself," or "clean up the skill we used." Reflects over the current conversation with no setup and no dependencies, separates what it learned about how you work from what kept breaking, and only edits a skill when the evidence earns it — showing exact line-level changes for your approval first.4---56# Skill Debrief78## What this is910Skills are living documents. Over a working session you correct Claude, explain11things twice, and say preferences out loud — and almost all of that context12evaporates the moment the chat closes. This skill is the debrief: run it when13you're **done**, and it turns the friction from the session you just had into14precise updates to the skills you actually used, so the same corrections don't15come back next time.1617It is deliberately an **end-of-session, on-demand** ritual. Running this kind of18analysis mid-conversation is disruptive and burns budget on work that isn't the19task at hand. Waiting until the end means the full arc of the session is20available to learn from, and the edits land in one reviewed batch instead of21trickling in while you're trying to get something done.2223## The mindset (read this first — it governs everything below)2425- **Evidence over vibes.** Every proposed edit must trace back to something that26 actually happened in *this* conversation. If you can't point to the moment,27 don't propose the change.28- **Surgical, not sweeping.** You are making small, targeted edits to lines that29 earned them — never rewriting a skill wholesale. A skill the user has tuned30 over months encodes taste you can't see; large "improvements" quietly destroy31 it. When in doubt, change less.32- **Only touch what needs it.** Most skills used in a session need no changes.33 Silence is a valid, common outcome. Do not invent work to look useful.34- **The user has the final say.** Default behavior is to *show the diff and wait35 for approval* before writing anything. This is a feature, not friction —36 especially for creative and voice-driven skills, where the user may be37 choosing imperfection on purpose.3839## Workflow4041Work through these five steps in order. Steps 1–3 are analysis (cheap, do them42fully). Step 4 is where anything gets written, and only with approval.4344### Step 1 — Scan the session4546You already have this conversation in your context, so start by reflecting over47it directly rather than parsing files. Walk the session start to finish and pull48out the raw material:4950- **Which skills were used?** Look back through the conversation for `Skill` tool51 invocations and note each skill by name. Also include any skill the user named52 or clearly leaned on even if it wasn't formally loaded. These are your only53 candidates — you improve skills that were *exercised* this session, nothing54 else.55- **Where was there friction?** Collect concrete moments:56 - **Corrections** — "no, not like that," "actually make it…," a redo, a manual57 fix the user applied to something a skill produced.58 - **Repeated explanations** — the user had to say the same thing more than59 once, or re-explain context a skill should already have carried.60 - **Stated-but-unfiled preferences** — the user said a preference out loud61 ("I always want captions lowercase") that isn't written into the skill.6263If the session was very long and you suspect earlier context was truncated or64summarized, you can read the raw transcript for completeness — see65`references/framework.md` for the transcript location and format. This is a66fallback; the in-context reflection is the primary source.6768Produce a short, honest inventory. If there was no meaningful friction for a69given skill, say so and move on.7071### Step 2 — Diagnose into two buckets7273For each piece of friction, decide which of two things it's really about. This74split matters because the two halves of a skill get updated differently:7576- **About you (understanding)** — what Claude learned about *who the user is,77 how they think, what they value, and how they decide*. This updates the part78 of a skill that models the user: voice, taste, context, priorities. Signal79 words: "I prefer," "the way I think about this," "for my brand," reactions80 that reveal values.81- **Execution (patterns/formats)** — a structure, format, step, or output rule82 that kept breaking or needs to be locked in. This updates *how the skill does83 the task*: templates, formatting rules, sequences, constraints. Signal:84 something was structurally wrong or inconsistent more than once.8586Label each finding with its bucket. A single finding occasionally touches both;87that's fine — note both.8889### Step 3 — Apply the repeat rule9091This is the discipline that keeps the skill from overfitting to one bad day.9293- **Inferred corrections and patterns need to appear twice** in this94 conversation before they earn an edit. One correction is a *note*, not a95 change — people have off moments, and a single "no, shorter" is not evidence96 that the skill's whole length guidance is wrong. If it happened once, name it97 in your report as an observation and explicitly *do not* propose an edit for98 it.99- **Explicitly stated preferences are fileable on first clear statement.** If the100 user directly says "always do X" or "never do Y," that's an unambiguous101 instruction, not an inference — you don't need a repeat to file it. The102 repeat rule exists to protect against *you guessing wrong*, not against the103 user telling you plainly.104105Because this skill only looks at the current session, "twice" means twice in106*this* conversation. That's a deliberate tradeoff for zero setup and no state107files. If a preference shows up only once here, it stays a note — and if it's108real, it'll recur in a future session and earn its edit then.109110### Step 4 — Show your work, then edit111112For every change that survived Step 3, do this before changing anything:1131141. **Find the skill's files, however this environment exposes them.** A skill is115 a `SKILL.md` (plus any bundled files), but *where* it lives depends on where116 you're running — so adapt rather than assuming one layout:117 - **With filesystem access (Claude Code, or a connected filesystem)** — the118 skill is a file on disk. Check the canonical locations in order: project119 `.claude/skills/<name>/`, then `~/.claude/skills/<name>/`, then120 `~/.agents/skills/<name>/`. Use Glob/Grep to confirm the path and Read the121 current contents. Commit by editing the file in place.122 - **On the app/upload path (e.g. skills added via Customize in the desktop123 app)** — the skills you're improving are the ones exposed to this session.124 Work with them exactly the way you would if the user asked directly to125 "update this skill": open the skill's markdown, make the edit, and update126 its package.127128 Both cases are the same move: get the current `SKILL.md`, change the exact129 lines, and commit the result — by writing the file, or by updating the skill130 package. If you genuinely can't reach a used skill's contents in this131 environment, don't fake it: put the exact edits in your report for the user to132 apply, and say plainly that you couldn't write them yourself.133 - **Never edit a skill under a plugin/marketplace path** (anything inside134 `plugins/marketplaces/…`, or any skill the environment marks as managed or135 upstream). Those get overwritten on the next update, so your edit would136 silently vanish. *Flag it* in your report and suggest the user copy it to a137 location they own first — don't edit it in place.1382. **Present a grouped diff.** Group proposed edits by skill. For each edit show:139 the exact current line(s), the exact proposed replacement, and one sentence on140 *why* — tied to the specific moment in the session. Keep edits minimal and141 scoped to the lines that earned the change.1423. **Wait for approval, then commit.** Do not change anything until the user143 confirms. They may accept all, some, or none, and may tweak wording. Apply144 only what's approved — writing the file (filesystem) or updating the skill145 package (app) — using surgical edits, never full-file rewrites.146147Use this shape for the report so it's easy to scan:148149```150## Debrief — skills used this session151152### <skill-name> ✎ 2 proposed edits153Bucket: understanding154Evidence: user corrected the caption length twice (turn 4, turn 9)155156 - Current: Keep captions under 200 characters.157 + Proposed: Keep captions under 120 characters — the user consistently158 trims to ~100 and asked for "shorter" twice this session.159 Why: locks in a length the user re-applies by hand every time.160161### <other-skill> ✓ no changes162Used this session; one-off correction noted (turn 6) but not repeated, so no163edit yet.164165### <plugin-skill> ⚠ flagged, not edited166Lives under a marketplace path and would be overwritten on update. Copy it to167~/.claude/skills/ first if you want this change to stick.168```169170### Step 5 — Clean house (offer, don't force)171172Skills accumulate cruft — rules for tools that changed, examples that no longer173match how the user works, guidance that contradicts newer guidance. When you've174got a skill file open in Step 4, glance for obviously stale content and *offer*175to cut it, with the same show-the-lines-first discipline. Keep this light: a176debrief is not a rewrite, and removing something the user still relies on is as177harmful as adding something they don't want. Only flag staleness you can178justify; when unsure, leave it.179180## Optional: autonomous mode181182By default this skill shows every diff and waits — the right call for creative,183voice, and brand skills where taste is subjective and the user may want to stay184in the loop. For **technical skills with objective right/wrong behavior** (a lint185rule, a build step, a formatting convention), the user may prefer to let the loop186run unattended. If the user explicitly asks to "just apply the changes" or "run187it autonomously," you may apply approved-category edits without pausing on each188one — but still (a) obey the repeat rule, (b) never touch plugin/marketplace189skills, and (c) end with a summary of every edit you made so it's reviewable and190reversible. When unsure which mode applies, default to showing your work.191192## Reference193194`references/framework.md` — the framework in more depth: diagnosis heuristics for195spotting each kind of friction, the exact transcript path/format for the196fallback scan in Step 1, and the full skill-file search order with the rule on197why plugin skills are off-limits.