Claude Code First, specification version 0.1.0. The plain-language guide
Version 0.1.0. Grade R1/S3.
F101 Roadmap lines written under a prose one-sentence rule outgrew it, and a limit applied at the write held them
| Field | Value |
|---|---|
| Status | active |
| Topic | Planning, recording, and what the person decides |
| Grade | R1/S3 |
| Cases | Shio |
| Contrary | none |
| Harness facts | none |
Claim
In Shio, roadmap lines written by agent sessions under a one-sentence rule stated in prose grew to an average of 142 words, and after roadkeep enforced a 320-character line at the write, the open task lines at the pin average 52 words with none above 61.
Mechanism
An author holding the whole design writes it where the next reader will look, which is the task line; a rule to be terse is read before writing and checked by nobody at the moment the line is composed. A field limit refuses the line before it is written, so the long form has to go to the rationale section the line points at. The refusal of hand edits (F100) keeps that write path from being bypassed.
Observations
- Shio. Shio measured the drift when it noticed it (SH341): 95 active task lines
averaging 142 words, the worst 555, and "six of the worst eight were written in the same session that then found the problem" [shio@821f18d74:docs/agents/agent-surface.md#L1502-L1503]. The first fix was a rewrite, "make the roadmap a queue again" [shio@490a698a0], two days before roadkeep took the files over [shio@af98be3f0]. At adoption the rationale field was measured against the existing lines: "70 of 78 lines exceed it" [shio@821f18d74:roadkeep.toml#L333], and "67 of them point at a section in IMPROVEMENTS.md that already exists" [shio@821f18d74:roadkeep.toml#L335], so the long lines restated rationale already written elsewhere. The limit at the pin is "line = 320" [shio@821f18d74:roadkeep.toml#L339]. At the pin the 75 open task lines average 52.4 words and the longest has 61, counted with git show 821f18d74:docs/ROADMAP.md | grep -E '^- \S+ \*\*SH[0-9]+' | awk '{n++; w+=NF; if(NF>m)m=NF} END{print n, w/n, m}' [shio@821f18d74:docs/ROADMAP.md]; the count includes the marker, id, dependencies and pointer, so it overstates the prose.
- roadkeep. The tool's premise is this Shio measurement, "92 roadmap lines averaging" [roadkeep@91754240:agents.md#L7]
142 words, and its design conclusion is that "An instruction to be terse does not survive" [roadkeep@91754240:docs/IMPROVEMENTS.md#L23] the moment its author knows more than the line allows. Its own roadmap holds each entry to one sentence of at most 320 characters, "never a solution name" [roadkeep@91754240:docs/ROADMAP.md#L17-L21]. This restates Shio's failure and adds no second occurrence.
Independence
One origin, Shio. The remedy was invented in roadkeep and carried into Shio, polyweave, freewilly and winwright, but only Shio had an ungoverned period in which the failure could occur; the other four were governed from their first day (see the case studies' adoption dates in ../corpus.md). roadkeep's figures copy Shio's measurement. The before figures are the same observation F5 uses for its Shio half, so a rule citing both counts it once.
Counter-evidence
- The before and after are not a controlled comparison. The rewrite of 2026-07-28 came two
days before the limit, so the sources cannot say how much of the change is the limit and how much the rewrite, nor whether lines would have grown back without it.
- The two sources for the before figure disagree: Shio's area file says 95 active lines,
roadkeep's preamble says 92, at the same 142-word average.
- A limit at the write has a cost. In winwright a rationale section took "five refusal round-trips over the 250-word limit, each re-sending the whole paragraph" [winwright@a18dd8d],
although the cause named there is a stale skill that did not document the draft-measuring command.
- The limit bent for old text: Shio's ledger rationale limit is 4200 characters because
"233 entries predate the tool and read 1038" [shio@821f18d74:roadkeep.toml#L345] characters at the median.
Grade
R1: one project, one measured occurrence. S3: the source counts the failure (142 words, worst 555, six of eight, 70 of 78), and the after figure is a count reproducible at the pin with the command above. Not S4: the lint that refuses an over-long line is not seen to fail in the sources read.