reflecting-on-changes
Skill0 starsChanged 50 days agoMITView on GitHub
Use when code has just been written or modified and the work is about to be reported as done — the self-review pass over your own unstaged changes.
In this repository20 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- templates/CLAUDE.mdCLAUDE.md
- capturing-decisionsSkill
- choosing-subagent-modelsSkill
- committing-changesSkill
- debugging-systematicallySkill
- delegating-workSkill
- designing-changesSkill
- exploring-a-codebaseSkill
- injecting-dependenciesSkill
- planning-changesSkill
- pruning-testsSkill
- resolving-conflictsSkill
- reviewing-codeSkill
- verifying-changesSkill
- writing-commentsSkill
- writing-logsSkill
- writing-project-instructionsSkill
- writing-skillsSkill
- writing-testsSkill
The file
We split this skill into the rules it gives an agent
2 rules. About 0 are common, 1 is distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈1
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 40
Leave alone what is only taste, and what the project does consistently another way.
- Very specific: line 51
Every pass that changed code gets its checks re-run — vvkit:verifying-changes.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Reflecting on changes
The first version that works is rarely the one to keep. It carries the scaffolding of how it was
found. Read it once more as a reader, not its author. This does not replace an independent review —
vvkit:reviewing-code.
Scope: the unstaged diff
git diff --name-only
git diff- Staged changes are out of scope — staging is the human's mark that they looked. So is every line the change did not touch.
- Nothing unstaged, or only docs and config: say there is nothing to reflect on, and stop.
- Read each changed file whole. A hunk cannot show that its new helper exists forty lines up.
What to look for, in order
- Subtraction. Could the change remove something instead of adding? A requirement bolted onto the old shape, where reshaping it would have needed less code.
- Simplification. Repeated lines that are a loop or helper; a variable used once and named no better than its expression; a conditional an early return flattens; a hand-rolled version of something the language or project has.
- Readability. Nesting past three levels; a name that needs its comment. Shorter is not the goal — a pass that only makes code denser made it worse.
- Dead code. Unused variables, imports, parameters, functions; commented-out attempts.
- Failure paths. An error swallowed at a boundary; outside input reaching a query, shell or path unchecked.
- Waste. An allocation in a loop; two passes where one does.
- Counterfeit values. Your data hand-built into a type another part of the system owns, to reuse a function. Give that function a sibling that takes your type.
Leave alone what is only taste, and what the project does consistently another way.
Fix, then look again
- Fix in place. Noting an improvement and leaving the code hands the reader work you already did.
- Report instead of fixing anything that changes behavior or lies outside your lines — those are the human's decisions.
- Re-run the loop over what the fixes changed; a fix is new code.
- A pass that finds nothing ends the loop — say so in one line.
- Three passes is the cap. Still improving on the third means a shape problem; say what keeps recurring.
- Every pass that changed code gets its checks re-run —
vvkit:verifying-changes. An untested simplification is an untested behavior change.
Before reporting done
- Every changed file was read whole, after the last edit
- The last pass found nothing, or the cap was reached and said so
- Nothing staged and nothing outside the diff was touched
- Tests were re-run after the last pass that changed code
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

