agentleFS
spirosbaxspirosbax/insaight/skills/reflect/SKILL.md

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

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.
  • ianclearySkill

    poteto-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

  • bnemaSkill

    setup-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

  • eryzerzSkill

    make-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

  • ianclearySkill

    principle-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

  • jaydubya818Skill

    automate-me

    Use when the user wants working preferences captured in a reusable mode skill.

    Also in 39 projects that use this

  • jaydubya818Skill

    poteto-mode

    Use when non-trivial work should follow the smallest rigorous Jstack workflow.

    Also in 27 projects that use this

  • +6 more from jaydubya818

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
  1. Distinctive:

    Read the full text of the sends that got replies, positives and meetings, and a sample of the ghosted ones too.

    line 28
  2. Distinctive:

    Look for what the buckets miss: personalization depth, message length against outcome, follow-up timing, seniority of the target.

    line 47
  3. Distinctive:

    Read the reply snippets. Rates say *that* something worked.

    line 49
  4. Distinctive:

    Keep low-n hypotheses in the file — they are how the next reflection knows what to look for.

    line 62
  5. Distinctive:

    If the user rejects everything, make no calls at all.

    line 103

“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.

Keep what fits and drop the rest. Your version, ready for your agents.
Files
SKILL.md

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 + outcomes

Cite 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, variant and channel from 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:

  1. What changes — sections added, updated or removed, briefly.
  2. The evidence — the counts and quotes behind each change.
  3. 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.

Download now (ZIP)

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
What did you use it for? e.g. Reviewing pull requests in a Rails app

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.