The per-block gate for durable prose a stranger builds or acts from -- a spec, plan, intent, issue, or checkpoint -- and for the input you build one from. It does NOT govern an ephemeral team post, a status, or a signal note; those stay small -- a terse pointer, or better a directed signal to the one agent who needs it -- never carry-everything. The unit is the block: the writer distills each block as it writes it (one job, every word carrying, standing on the text alone, consistent with the ...
Installs into .claude/skills of the current project.
Are you the author of Legion Distill?
Add the live security badge to your README. It updates with every re-scan.
[](https://www.skillsdirectory.com/skills/runlegion-legion-distill)
---
name: legion-distill
description: The per-block gate for durable prose a stranger builds or acts from -- a spec, plan, intent, issue, or checkpoint -- and for the input you build one from. It does NOT govern an ephemeral team post, a status, or a signal note; those stay small -- a terse pointer, or better a directed signal to the one agent who needs it -- never carry-everything. The unit is the block: the writer distills each block as it writes it (one job, every word carrying, standing on the text alone, consistent with the blocks above), and a block that fails is a stop -- HALT, emit the gap, never smooth it. A separate cold reader backstops what a writer cannot grade in its own work. Run it at the pen, on every input before you build from it, and before anything is stored.
---
# Distill
The failure this stops: writing feels clear to whoever wrote it, true or not -- a model cannot grade its own clarity. So the next reader (a waking agent, a delivery coder, you tomorrow) inherits prose it cannot follow, and either stalls or invents to fill the gap.
Two things stop it: the writer distilling each block at the pen, and a different reader checking after. It is never "do you think it is clear."
## The unit is the block
A block is one carrying unit -- a section, a decision, a numbered rule, a bullet, an open question, a single claim. Distill runs per block, as the block is written, before the next one. It is not a pass over a finished draft. Most of what a later reader would catch, the writer catches at the block if it runs the checks there; the reader is the backstop, not the primary catch.
## The checks, per block
Run all four on each block, in order.
1. **One job.** The block says exactly one thing -- one claim, one step, one fact. Two things are two blocks.
2. **Cut to carry.** Every word belongs to that one thing. Delete preamble, framing, restated context, hedged throat-clearing.
3. **Carry, don't point.** The block stands on the artifact's own text plus the reader's standing vocabulary. Carry inline what the reader must know to act. A bare pointer to another id or document the reader must fetch to act is a stop, not a shortcut. A trailing cite is provenance -- it proves the block is not invented, and never replaces the substance. "Retry per the operator's ruling" stops; "Retry at most 3 times, then Ask [ref]" carries.
4. **Consistent.** The block does not contradict or duplicate a block written above it. A rule settled in one block and open in another is a stop; a fact stated twice is a stop for one of them.
## A stop is a HALT
A block that fails a check is a stop. At a stop, HALT: emit the gap and do not proceed. Do not write the next block over a broken one, and do not smooth the gap into fluent prose. A gap is not a punch-list to write around -- it is a refusal to go on. This holds at every handoff:
- **On the input.** Distill what you are handed -- a brief, an intent, a spec -- before you build from it. If a block of it stops, HALT and send it back; do not write from an input that fails. A writer that finds ten gaps in its brief and writes anyway has already failed.
- **On your own draft, per block,** as you write it.
- **Before it is stored.** The artifact passes only when every block carries.
## The cold reader
For anything another agent will build or act from, a separate reader -- not the writer -- reads it block by block, from the artifact alone, fetching nothing: no recall, no store, no cited id opened. It is the check on the two things a writer cannot grade in its own work: whether its prose is followable, and a cross-block contradiction it wrote past. If the reader cannot act on a block, that block stops -- back to the writer.
The intent review is one such reader: a fresh read of the intent is the intent's cold reader, so it runs this gate and HALTs on a stop rather than reviewing a broken intent.
For a self-note like a checkpoint you cannot spawn the reader; run the per-block checks as if a stranger with no other data will read it, because one will -- the next you.
## Bounds
- It does not judge whether the content is good or true. That is review and verify.
- A trailing cite being present is mechanical; whether the cite supports the block is a read -- the cold reader's and the operator's, not this gate's.
- It catches two things only: a block a later reader cannot follow from the artifact alone, and a claim with no source -- or a source that must be fetched to act, the same failure wearing a cite. The wax and the confabulation, nothing more.
- It governs a durable artifact a stranger builds or acts from, NOT ephemeral team communication. A bullpen post, a status, a signal note is TTL'd and its job is to stay small enough not to flood every reader's inbox: carry a terse pointer, or make it a directed signal to the one agent who needs it. "Carry, don't point" is for the spec someone builds from -- a status broadcast that carries its whole substance inline is chatter, and turning this gate on one is the misfire that makes every board a wall of text. Report to your caller; the caller routes anything onward.