/cold-read)
A cold read answers one question about a draft: can the intended reader make their next decision from the first N lines, and what would they cut?
The reader runs in a fresh context. It must not see the conversation that produced the draft. That conversation is exactly what leaks into agent-written artifacts as process narration and as background the reader already has.
Invocation
/cold-read <path> [--role triager|owner|reviewer] [--n 3]
path: the draft file, in the form a human will see it. Strip draft-only preview lines first; a leading# <Proposed Title>line stays and counts as line 1.--role: who reads it. Defaulttriager. Useownerwhen the likely reader wrote or maintains the code under discussion (small repositories, your own packages). Usereviewerfor pull request bodies.--n: lines the reader gets before it must decide. Default 3.
Steps
- Resolve the role. Without
--role, infer it:ownerwhen recent commits on the paths the draft references come from one or two active maintainers; otherwisetriager. Pull request bodies default toreviewer. - Spawn a fresh-context, read-only reader. Give it exactly three things: the contents of references/persona.md, the role and N, and the draft file path. Nothing else from the current conversation.
- Require the JSON shape in
references/schema.json. Re-run once if the reply is
prose. Recompute
verdictfromdecision_lineand N yourself; the model'sdecision_lineis the signal, itsverdictis a convenience. - Act on the verdict.
decide_in_n: proceed.decide_laterorcannot_decide: move the sentence that carries the decision to the first body line, applycut_list(keeping any sections required by the repository's PR template), add anymissingfacts, then re-run once.
- Report one line in chat: verdict, decision line, words above the fold, and the number of cut lines. Do not restate the draft.
Model choice
A fast model (flash) is sufficient for single-draft gating once
references/persona.md anchors decision_line to the
first line of the block; both flash and the default model score the regression
fixtures identically. For batch baselines over multi-section artifacts, prefer
the default model when quota allows: in a 10-artifact calibration sample,
flash placed decision_line earlier on 2 of 10 drafts.
Batch mode
For baselines over many past artifacts, run one reader per artifact in parallel,
each in its own fresh context, and tabulate verdict, decision_line,
words_above_fold, the known_to_reader count, and missing. Never give one
reader two artifacts; the second read is primed by the first.
What the reader is for
The reader targets three failure modes of agent-written text:
- Discovery narration: leading with what the agent found, in the order it found it.
- Background the reader already has: a tour of the reader's own code, including a "currently, X does Y" opener.
- Template slots filled for completeness rather than for a decision.
It does not judge style, tone, or grammar.