- name
- squirrel
- description
- Rewrite anything so a distracted reader finishes it — bottom line first, no
preamble, no walls of text, nothing important dropped. Use
on "squirrel", "tldr", "tl;dr", "get to the point", "gttp", "plain terms", "in
plain english", "eli5", "simplify this", "too long", "summarize this", "make
this readable", "I can't focus on this", a named mode (BLUF, STTD, NCNW, TS;WM,
ND;DR, SHOW, ASK, ALL), or a pasted article, email, doc, spec, thread, or error dump. Takes pasted
text, a file path, a URL, or the previous turn. NOT for translating between
languages, refactoring code, ghostwriting a summary the user will publish, or
text already short and clear.
- license
- MIT
- compatibility
- claude-code codex opencode antigravity
- allowed-tools
- ["Read","WebFetch"]
- metadata
- {"version":"3.2.0","category":"productivity","status":"published","tags":"adhd, accessibility, tldr, bluf, plain-language, summarization, anticipation"}
# Squirrel
You already write short. Compressing is where you drift — smoothing away the facts that carry the decision. §4 is the fix.
## 1. Source
text → use · path → read (any file-read tool) · URL → fetch (any web-fetch tool); blocked or thin → `scrapekit` skill if present, else ask them to paste · "this"/∅ → previous turn · many files → ask which
## 2. Off-switch — check before transforming
| Signal | Do |
|---|---|
| "really explain", "walk me through" | everything, in blocks |
| deliverable (email, commit, snippet) | output only the thing, bare |
| order-critical (migration, destructive) | numbered, complete |
| already short and clear | say so, don't restructure it |
| instruction ("go build it") | one line, then do it |
Never announce the mode ("Applying BLUF here"). Never frame the output ("Here's a TL;DR of…") — that wrapper is the preamble you're deleting.
No row matches → continue.
## 3. Shape
Sentence one = verdict, not topic. Then action. Then bold-led blocks, blank line between. No closing summary.
**Bold alone must carry it**: skim bold → gist + recommendation + every warning.
Emoji = anchors, ≤1/line: ⚠️ risk · 🔴 blocker · ⏰ deadline · 💰 cost · ▶︎ next
Pattern: `**<verdict>.** ▶︎ <action>. <support, one block each>.`
Levers — match to what's wrong with the source. Default: whatever it needs. Named mode overrides.
| Wrong | Lever |
|---|---|
| conclusion buried | **BLUF** — verdict first |
| boring open | **STTD** — hook on the live fact |
| wall of text | **NCNW** — blocks, anchors, air |
| passive, nothing to do | **TS;WM** — action verbs |
| jargon | **ND;DR** — plain words |
| shaped content flattened into prose | **SHOW** — draw the shape |
Stacking → conflict order: **safety > BLUF > NCNW > ND;DR/TS;WM**. Safety = numbers, warnings, scoped conditions; always wins.
**SHOW — the source had a shape and lost it.** You hold the whole text, so you
can see what a reader skimming it cannot: four options compared across the same
three axes, spread over six paragraphs. Rebuild the shape.
| In the source | Draw |
|---|---|
| items compared on shared axes | table — items as rows, axes as columns |
| numbers whose proportion is the point | bars `████░░ 840ms`, sorted, longest first |
| nesting, containment, a file layout | tree `├── └──`, annotate only the lines that matter |
| states across items | ✅ done · 🟡 in progress · 🔴 blocked · ⬜ not started |
| a sequence of stages | numbered steps, or `a → b → c` on one line |
The device **replaces** those paragraphs — it never sits on top of them. After
it, write only what it cannot hold: the recommendation, the caveat, the action.
**Only from what the source actually says.** A cell you cannot fill from the text
is not a cell to guess — mark it "not stated" or drop the column. Inventing a
number to complete a row is the §4 failure in table form.
Prose stays the default: one thing described, a cause, an argument → sentences.
A one-row table or a tree of a flat list costs attention and returns nothing.
Mode contracts, guardrails, length targets per source type: `references/modes.md`
## 4. Keep — this is the job
| Keep | Because |
|---|---|
| numbers, dates, thresholds — exact | "14 days" ≠ "a couple weeks" |
| scoped stays scoped | "only accounts <30d" never widens to "accounts" |
| warnings, with their point | last cut, never first |
| contested facts, two-sided | don't resolve by picking |
| names, IDs, errors, code, quotes | verbatim |
| every action + its deadline | it's why they're reading |
Fact changes what they do → it's the point, not detail.
Overflow → top two in full, then **name what you hold and offer it**. Never dump. Never silently drop.
## 5. Anticipate — off by default
**Silence is the default. The block fires on two turns only:**
| Fires | Because |
|---|---|
| you **compressed a source** | they cannot see what you dropped |
| they must **act** on the answer | next step, prerequisite, cost |
| they are **deciding** | what would flip it |
| something **expensive** is unstated | the dependency they can't know to ask about |
| Silent | Because |
|---|---|
| conversational reply | nothing to act on |
| a deliverable | output only the thing |
| you just answered it | the filter already kills half |
| a simple factual answer | no next move exists |
**Silent means no block and no comment about not having one.**
Forced explicitly with `ASK` — then it fires regardless.
### The questions
Max 3. Derived from *this* reply, never stock. Probes ask about **their
situation**, not gaps in the source:
- **so what?** — you stated a fact; what changes for them
- **what now?** — next move, and is its prerequisite stated
- **how sure?** — which assumption, if wrong, flips the recommendation
- **what did I not think to mention?** — cost or dependency they can't know to ask about. Hardest, best
**Delete every question the reply already answers.** Kills ~half. None survive →
no block. Ship one rather than pad to three.
A question the source can't answer is usually the wrong question. "Not covered"
is honest once; twice means you probed the document, not the decision.
### The form
A horizontal rule, then bold question and answer on one line. **Under 12 words
each.** This is the tightest writing in the reply, not the loosest.
```
───────────────
**Force it?** `/squirrel ask`
**Cost?** ~2 min per run.
**Breaks anything?** No, additive.
```
Don't know → "not in the source". Never invent.
Ranking, reasons, failure modes: `references/anticipation.md`
Unsure whether to transform at all, or handling a deliverable? `examples/before-after.md`
## 6. Check
**Re-scan the source, don't check from memory** — dropped facts are invisible from the draft alone.
line one alone = the answer? · bold alone = gist + warnings? · every table cell traceable to the source? · every number, date, threshold, name, ID and warning from the source present and still scoped? · anything withheld, named? · every `Q:` unanswerable from the text above?
## Related
Skill = per-request, anticipates on its own rewrites. Styles = every reply: **Squirrel** (this, no question block) · **Squirrel Rapid-Fire** (+ anticipation always) · **Squirrel Brief** (verdict/confidence up top).
GitHubで見る