reflect
Skill0 starsChanged 51 days agoMITView on GitHub
Captures lessons from work that succeeded and routes each one to where it should live: a test, a rule, a constraint, a skill, or nowhere. Proposes routings; applies none unasked. Run manually with /reflect after a shipped feature, completed migration, or landed refactor. Not for failures; those belong in `verify`'s incident log.
172 other projects use a version of this.
Adopted by
Most recently taken up by
- Yeachan-Heo/oh-my-claude-sisyphustheir own version, first seen Nov 8, 2026
- Loner1024/skillstheir own version, first seen Nov 8, 2026
- caidanw/skillstheir own version, first seen Nov 8, 2026
- Yeachan-Heo/oh-my-claudecodetheir own version, first seen Nov 8, 2026
- endqwerty/endstacktheir own version, first seen Nov 8, 2026
- tristanphvn/keeltheir own version, first seen Nov 8, 2026
Used with
Projects with it also use poteto-help, setup-pstack and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
ianclearySkillpoteto-help
Guides users through pstack setup, /poteto-mode, and picking the skill, playbook, or principle for a task. Type /poteto-help with a question.
Also in 14 projects that use this
bnemaSkillsetup-pstack
Configure which Pi models pstack uses per role. Detects available provider/model specs and writes pstack's user configuration. Use for /setup-pstack, "configure pstack models", or changing pstack model choices.
Also in 24 projects that use this
eryzerzSkillmake-bot-ui
Use when building a custom UI (page, dashboard, buttons) that should wake a Grok Bot over a webhook, when the user must provide a webhook sender key, or when exposing that UI on Tailscale.
Also in 19 projects that use this
ianclearySkillprinciple-explain-the-number
Apply before you trust, report, or act on a number you measured: a speedup, a regression, a throughput, a latency, or an eval result. Find what limits it, and rule out that it measured something other than the work you think.
Also in 26 projects that use this
jaydubya818Skillautomate-me
Use when the user wants working preferences captured in a reusable mode skill.
Also in 39 projects that use this
jaydubya818Skillpoteto-mode
Use when non-trivial work should follow the smallest rigorous Jstack workflow.
Also in 27 projects that use this
- +6 more from jaydubya818
Other versions172 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 172
- Yeachan-Heo/oh-my-claude-sisyphus★ 41ksame name
- Yeachan-Heo/oh-my-claudecode★ 41ksame name
- github/gh-aw★ 5.6ksame name
- backnotprop/pstack★ 3.8ksame name
- github/squad★ 3.4ksame name
- rilldata/rill★ 3ksame name
- microsoft/waza★ 1.5ksame name
- llama-farm/llamafarm★ 837same name
- haddock-development/claude-reflect-system★ 373same name
- egregore-labs/egregore★ 293same name
162 more not listed
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository9 other files it gives its agents.
- adversarySkill
- claritySkill
- contextSkill
- dev-councilSkill
- handoffSkill
- impactSkill
- scopeSkill
- technical-writingSkill
- verifySkill
The file
We split this skill into the rules it gives an agent
2 rules. 0 are common, 2 are distinctive, and 0 are very specific to this project.
0
Common
Most of the 163 edited versions we read keep these.
2
Distinctive
This author's own choices. Worth a look.
0
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 24
After finishing significant work, not on every task.
- Distinctive: line 32
Before anything gets routed, it has to clear this.
“Common” is measured: kept by at least 6 in 10 of the 163 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Reflect
Work that succeeds still teaches things, and those lessons have no natural home. A failure leaves a bug report, a broken test, an incident. A success leaves nothing but the working code and whatever the person who wrote it happens to remember next month.
The problem class this targets: an abstraction built during a migration that worked (nothing failed, every check passed, the thing shipped), and only afterward does it become clear the abstraction was shaped around the wrong axis. There was no failure to log. The insight arrived with nothing to attach itself to, and got lost.
The boundary, read this before anything else
This skill and verify's incident log split the same territory along one line:
- Something passed its checks and broke anyway →
verify's incident log. That's a verification failure, and its log exists to make future runs check for it. - Work succeeded and taught something worth keeping → here.
The split is by what happened, not by how significant the lesson feels. A lesson from a near-miss that got caught late still belongs in the incident log. A profound realization from a flawless migration belongs here. When a piece of work produced both, split the entry and send each half where it goes rather than filing both in whichever skill you invoked.
When this fires
After finishing significant work, not on every task. Invoked deliberately, never automatically.
Reasonable triggers: a migration completed, a feature shipped that took real design work, a refactor that changed how something is structured, an approach that was corrected partway through and the corrected version generalizes.
Skip when the work was routine. A skill that runs after every task produces a lesson after every task, and lessons that get produced on schedule are not lessons. They're a log with ambition. The bar is that something was actually learned that a competent person on this codebase wouldn't already know.
The bar: one-offs are not learnings
Before anything gets routed, it has to clear this. Ask of each candidate:
- Will this recur, or was it specific to this one change?
- Would someone competent already know it, or is it genuinely particular to this codebase?
- Is it already written down somewhere that a person would actually find?
A thing that fails all three is a memory, not a lesson, and the honest route for it is nothing. Which is a real outcome. See below.
Workflow
1. What happened
Two or three sentences. What was the work, what approach was taken, what did it turn out to be. Written for someone with no memory of it, because in six months that's who's reading.
2. Which assumptions turned out wrong
The highest-value part, and the part most often skipped because successful work makes its own assumptions look retroactively correct. Something was believed at the start that turned out not to hold. The work succeeded anyway, which is exactly why it's easy to miss.
Be specific about what was believed and what was actually true. "The storage layer was assumed to be the varying part; the access pattern turned out to be" is a lesson. "Some assumptions were revisited" is not.
3. What's reusable
What would you tell someone starting similar work tomorrow? Name the transferable part, not the specific fix. A fix applies once; the shape of the problem applies repeatedly.
4. Route each lesson
Seven destinations. Full definitions and selection guidance in references/routing-guide.md:
temporary · documentation · project rule · test · architecture constraint · skill · nothing
Two rules govern the choice:
Prefer the strongest rung that fits. A lesson enforced by something that fails loudly beats one enforced by something a reader has to notice and remember. Roughly strongest to weakest: a state made unrepresentable, then a check that fails CI, then a test, then a documented rule, then a note. If a lesson could be a test or a paragraph, it's a test. The paragraph requires everyone to read it, and the test requires nobody to.
Don't force it. The ladder ranks mechanisms by strength, not by preference, and a judgment call encoded as a lint rule becomes a rule people learn to suppress. If it genuinely requires judgment, write it down prominently with an example of the failure mode, and don't pretend a mechanism can carry it.
"Nothing" is a first-class outcome. Say it plainly and move on when it's right.
A reflection skill that always produces a rule will produce rules that shouldn't exist, and every one of them dilutes the ones that should. Nobody reads the twentieth project rule. If a session's honest output is "we learned something, it doesn't need to be encoded anywhere," that's a successful run of this skill, not a failed one.
5. Propose, don't apply
Present the routing and stop. Nothing gets written to a rules file, a skill, or a test suite until whoever asked has seen the full list and approved it.
This matters most for the skill route. A skill edit changes behavior for every future task, which makes it the highest-leverage and least reversible destination on the list. It gets explicit approval, individually, not as part of a batch.
Show what was dropped, with reasons. The candidates that didn't clear the bar are part of the output. They show where the line was drawn, and let someone overturn a call that was wrong.
Output
REFLECT: [the work being reflected on]
What happened:
[2-3 sentences]
Assumptions that turned out wrong:
- [what was believed] → [what was actually true]
Reusable:
- [the transferable shape, not the specific fix]
Not kept:
- [candidate considered and dropped, and which bar it failed]
Routing:
- [lesson] → [destination]: [why this rung and not a stronger or weaker one]
- [lesson] → nothing: [why it doesn't need a home]
Belongs in `verify`'s incident log instead:
- [any lesson that came from something breaking despite passing checks]
Needs approval before applying: [the skill-route items, listed separately]Interaction with other skills
verify's incident log owns lessons from things that broke despite passing checks, including deciding whether each becomes a test, type, invariant, or CI check. This skill covers the other half of the same territory, and the two should never hold the same entry.impactandadversaryare candidates for the skill route: a lesson about a category of breakage nobody looked for is often best encoded as a line inimpact's surface checklist oradversary's rubrics, rather than as a new rule somewhere nobody reads.
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.

