Claude Code First, specification version 0.1.0. The plain-language guide
Version 0.1.0. Grade R3/S3.
F2 Moving what only some turns need out of the every-turn file into trigger-loaded files cuts the every-turn cost by a measured amount
| Field | Value |
|---|---|
| Status | active |
| Topic | Context economy and agent prose |
| Grade | R3/S3 |
| Cases | Shio, roadkeep, winwright |
| Contrary | none |
| Harness facts | H1, H2, H3 |
Claim
When content needed only on some turns was moved from the file loaded on every turn into skills or files read on demand, the every-turn file shrank by a counted amount, and the projects kept the moved content out of the every-turn file by rule.
Mechanism
Everything in CLAUDE.md and what it imports loads every session (H1, H2), while a skill's body loads only when the skill is used and until then costs only its name and description (H3). A rule needed only when building, committing or writing a governed file is therefore paid on every turn if it sits in the every-turn file, and only on the turns that need it if it sits in a skill whose description names those turns.
Observations
- Shio. The split of 2026-07-29 [shio@f4ffdb0d9] took
agents.mdfrom 185,734 bytes
[shio@e73516a9f] to 14,433 (git cat-file -s), moving the detail into docs/agents/ and eight skills added in the same commit. The index now states the rule it follows: "it is deliberately thin: it is loaded into every session on every turn, so P3 applies to it" [shio@821f18d74:agents.md#L61-L62]. The ignore file names the skills directory the "lazy-loaded half of agents.md" [shio@821f18d74:.gitignore#L72].
- roadkeep. RK23 recorded that "Rules resident every turn spend the budget they exist to protect" [roadkeep@91754240:docs/CHANGELOG.md#L970]
and moved the write path "out of the resident file and into a trigger-loaded skill" [roadkeep@24e6fcda]; the budget comment records the reading after it, "120 lines, 7695 bytes once RK23 moved the" [roadkeep@91754240:roadkeep.toml#L238] write path out. RK1136 measured that "26 lines of the every-turn file are needed only on a turn that builds or commits" [roadkeep@91754240:docs/CHANGELOG.md#L667], moved them to a project skill [roadkeep@b12d28b5], and the file "dropped to 104 of 125 lines" [roadkeep@91754240:docs/CHANGELOG.md#L667]. The skill says of itself "Trigger-loaded, and that is the whole reason it is a file (RK23, RK1136)." [roadkeep@91754240:.claude/skills/roadkeep-dev/SKILL.md#L8] The rule that keeps it so is a non-goal: "What loads every turn is only what a turn touching no governed file needs." [roadkeep@91754240:agents.md#L111]
- winwright. WW69 was filed as "the skill is loaded on every turn against a budget it does not need" [winwright@861b82e:docs/CHANGELOG.md#L349]
and shipped as "load the skill on a window rather than every turn, and measure both of its costs" [winwright@7c456e0]. The test that holds it asserts that the description names the occasions on which the skill should load [winwright@861b82e:tests/Winwright.Tests/SkillTests.cs#L45-L54]. This concerns the skill winwright ships to adopters, not an instruction file of its own, and no before-and-after figure is recorded.
Independence
Three origins. Shio's split answered Shio's own measured failure (F1). roadkeep's RK23 came a day later and may share the idea with Shio's split; it counts as a second origin because roadkeep recorded its own need, its own file at its ceiling and 26 lines of it used only on build or commit turns (grading rule 2, a failure of its own that the remedy addressed). winwright's WW69 answers a loading problem in its own shipped skill. freewilly and winwright carry no every-turn file at all and keep their working rules in skills; no source at either pin says why, so that arrangement is not counted here.
Counter-evidence
- The move reduced the every-turn file, not the total. At the split,
docs/agents/held
184,521 bytes and the eight new skills 32,867 (git ls-tree -r -l f4ffdb0d9), together more than the 185,734 bytes they replaced. Whether a task then read less in total is not known: session transcripts are not a source in this study. The growth of the moved content is F3.
- winwright's observation is at S2: the ledger records the change, but no size is counted.
Grade
R3: the move and its effect are observed in three projects, each answering its own problem. S3: Shio's byte sizes before and after the split, and roadkeep's line counts of 104 of 125 after RK1136, are counted. The per-turn saving itself is documented harness behaviour (H3), not a corpus measurement.