reflect
Skill32 starsChanged 2 months agoMITView on GitHub
Run a reflection over the Insaight outreach ledger: analyze recent sends and their outcomes, then propose evidence-backed updates to the two memory files (style.md — the user's voice; playbook.md — the strategies that get replies). Every proposal is shown with the counts and quotes behind it and is applied only on approval, never silently. Trigger this whenever insaight:record_outcome returns reflection_due=true (offer it, don't just note it), and whenever the user asks what is or isn't working in their outreach — including 'run a reflection', 'reflect on my outreach', 'update my style memory', 'analyze my reply rates', 'what's working in my outreach', 'why is nobody replying', 'should I change my approach', 'which messages actually got responses', 'is my outreach working'. Also trigger after a run of logged outcomes when the user seems ready to draw conclusions from them. This is the only thing that improves future drafts, so favor offering it over staying quiet.
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 repository8 other files it gives its agents.
- CLAUDE.mdCLAUDE.md
- draft-outreachSkill
- draft-postSkill
- research-companySkill
- research-personSkill
- research-postSkill
- save-notionSkill
- track-outreachSkill
The file
We split this skill into the rules it gives an agent
5 rules. 0 are common, 5 are distinctive, and 0 are very specific to this project.
0
Common
Most of the 163 edited versions we read keep these.
5
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 28
Read the full text of the sends that got replies, positives and meetings, and a sample of the ghosted ones too.
- Distinctive: line 47
Look for what the buckets miss: personalization depth, message length against outcome, follow-up timing, seniority of the target.
- Distinctive: line 49
Read the reply snippets. Rates say *that* something worked.
- Distinctive: line 62
Keep low-n hypotheses in the file — they are how the next reflection knows what to look for.
- Distinctive: line 103
If the user rejects everything, make no calls at all.
“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
Insaight — Reflect
Distill raw outreach history into the two memory files that insaight-draft-outreach reads on every draft. The loop is: gather evidence → propose → user approves → save.
Load the tools first: tool_search(query="insaight").
Step 1 — Gather evidence
insaight:get_outreach_stats() → deterministic counts
insaight:get_memory() → current style + playbook
insaight:list_outreach(limit=30, full=true) → recent messages + outcomesCite the stats tool's counts rather than tallying rows yourself — hand-counted numbers drift from what the product reports elsewhere, and the whole value of this memory is that the user can trust its arithmetic.
Read the full text of the sends that got replies, positives and meetings, and a sample of the ghosted ones too. A list of winners alone tells you what the user writes; the contrast with the silent sends is the only place the signal lives.
Step 2 — Analyze
style.md — the user's voice, how they write:
- Opening moves, tone register, typical length per channel, sign-offs, language choice, recurring phrases, and the things they never do.
- Learn style from all sends. Voice is not a function of outcome, and letting results shape the voice file turns a description of how the user writes into a theory about what wins — which is the playbook's job, not this file's.
playbook.md — the strategies that get replies:
- Compare reply rates across
hook_type,variantandchannelfrom the stats. - Look for what the buckets miss: personalization depth, message length against outcome, follow-up timing, seniority of the target.
- Read the reply snippets. Rates say that something worked; the snippets are the only record of what the person reacted to.
Keeping the evidence honest
The user will act on this file for months, and an overstated pattern is worse than no pattern — it retires an approach that was only unlucky. So:
- Carry the evidence inline with each claim: "question hooks: 4/9 replied vs statement hooks: 1/8". A reader who disagrees should be able to see the numbers without leaving the file.
- Below roughly n=10 in a bucket, a difference is as likely to be noise as signal, so label it a hypothesis to keep testing rather than a rule. Keep low-n hypotheses in the file — they are how the next reflection knows what to look for; just don't let them read as settled.
- Exclude pending sends from every rate you cite. A message sent yesterday hasn't failed yet, and counting it as a non-reply makes recent activity look like a slump.
- With fewer than about 5 resolved outcomes there is nothing to distill. Say so and stop: "not enough evidence yet, keep logging." Inventing a pattern here poisons the memory that every future draft is built on.
Step 3 — Propose (nothing is saved yet)
For each file you want to change, show:
- What changes — sections added, updated or removed, briefly.
- The evidence — the counts and quotes behind each change.
- The full proposed file content, in a fenced block.
Structure the playbook as three sections: What's working (with evidence), Hypotheses being tested (the low-n patterns), and Retired (approaches the evidence killed — one line each, so they don't quietly get re-tried later).
Then ask: "Apply these updates?" The user may approve one file and not the other, or edit the proposal first. Show the full content rather than a summary, because approval only means something if they can see exactly what they are agreeing to overwrite.
Step 4 — Save on approval
insaight:update_memory(kind="style", content="full file")
insaight:update_memory(kind="playbook", content="full file", mark_reflection_done=true)mark_reflection_done=true belongs on the LAST call only — it resets the
outcomes-since-reflection counter. If the user approves just one file, put it
on that one.
If the user rejects everything, make no calls at all. The reflection stays due and can be re-run once more outcomes have landed.
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.

