Claude Code First, specification version 0.1.0. The plain-language guide
Version 0.1.0. Grade R3/S4.
F406 Projects that ship a surface to other agents put a counted ceiling on what it costs the consuming agent, held by a test
| Field | Value |
|---|---|
| Status | active |
| Topic | Environment, permissions, and agent-facing products |
| Grade | R3/S4 |
| Cases | Shio, roadkeep, freewilly, winwright |
| Contrary | none |
| Harness facts | H3, H9 |
Claim
Each project that ships tools, a skill or a command surface for other agents measured what that surface costs a consuming agent (tool schema, skill text, responses) and held it under a declared ceiling that a test or lint enforces, and in Shio that check fired and the change was reshaped rather than the ceiling raised.
Mechanism
A tool schema or a skill description is paid by every session of every consumer, whether or not it is used, and it grows one reasonable sentence at a time. A ceiling stated in a file a test reads turns growth into a failure the author has to answer: trim, split, or raise the number with a reason. The projects priced the two costs apart: what loads before any work (tool lists, skill descriptions) and what loads on use (skill bodies, H3; command responses).
Observations
- shio. "the MCP tool list is a measured budget" [shio@821f18d74:docs/CHANGELOG.md#L31]
(SH132): the serialized tool list, not the tool count, is held by a test against ceilings in a properties file, added on 2026-07-26 [shio@4dd43d396]. The check fired twice in the ledger. Adding an op the next day [shio@3312e3035] took the list "3 tokens over its 2200 ceiling" [shio@821f18d74:docs/CHANGELOG.md#L22] and a description was "trimmed instead of the ceiling raised" [shio@821f18d74:docs/CHANGELOG.md#L22]; a proposed op "measured 18 tokens over the per-tool ceiling and pushed" [shio@821f18d74:docs/CHANGELOG.md#L326] the list over its total, and was moved off the schema. The response side is benchmarked too: "token economy, measured" [shio@f3bc1b51e].
- roadkeep. RK1059 named the gap, "the largest every-turn surface is measured and held by nothing" [roadkeep@91754240:docs/CHANGELOG.md#L645],
and set a per-tool ceiling, "characters = 2850" [roadkeep@91754240:roadkeep.toml#L95], raised twice with the reason written beside it ("Raised from 2600" [roadkeep@91754240:roadkeep.toml#L82]), and a session ceiling, "session = 69665" [roadkeep@91754240:roadkeep.toml#L232]. The shipped skill was measured and split: "the skill names all 44 verbs and costs 65k units a turn" [roadkeep@91754240:docs/CHANGELOG.md#L1099], and "the split landed at 11,148 against 65,885 before it" [roadkeep@91754240:tests/test_skill.py#L133]. Query output is capped as well, after "RK1455 measured one at 117,815 refused" [roadkeep@91754240:roadkeep.toml#L307].
- freewilly. The product's agent-facing CLI carries "Ceilings on what the agent surface costs, read by AgentBudgetTests" [freewilly@c1c2eaf:agent-budget.json#L5],
with tokens estimated as "characters / 4, rounded up" [freewilly@c1c2eaf:agent-budget.json#L15]. One canonical task is recorded at 6 calls and 11,711 tokens through the raw transport [freewilly@c1c2eaf:agent-budget.json#L47-L50] and 4 calls and 812 tokens through the shaped surface [freewilly@c1c2eaf:agent-budget.json#L82-L86]. The choice of a CLI over an MCP server rests on Shio's schema cost, "Measured at roughly" [freewilly@c1c2eaf:docs/specs/DD33-mcp-is-a-second-head.md#L26] 2,400 tokens across eleven tools, and a future MCP head is capped at six tools and 1,100 schema tokens [freewilly@c1c2eaf:agent-budget.json#L256-L257].
- winwright. The shipped skill's two costs are tested apart, because "the description sits in context on every" [winwright@861b82e:tests/Winwright.Tests/SkillTests.cs#L12]
"turn whether or not the skill is ever used, and the body is paid once" [winwright@861b82e:tests/Winwright.Tests/SkillTests.cs#L13]: "private const int Description = 700;" [winwright@861b82e:tests/Winwright.Tests/SkillTests.cs#L27] and "private const int Body = 6000;" [winwright@861b82e:tests/Winwright.Tests/SkillTests.cs#L33].
Independence
Four origins. Shio's SH132 is the earliest and is its own. roadkeep's ceilings are its own lint and tests, recorded against its own growth. freewilly borrowed the argument from Shio, as its decision record says, but built its own budget file and changed it in response to its own failures: a band in which a "response that grew by 100 tokens landed inside it silently" [freewilly@c1c2eaf:agent-budget.json#L109] (DD78), and a gate red for the wrong reason (DD64, [freewilly@ecaad33]), so it counts as a second origin under the copy rule. winwright's skill test (WW69, 2026-08-26) predates roadkeep's skill split (RK1437, 2026-08-31) and is its own.
Counter-evidence
H9 weakens the shared premise for tool schemas: with tool search on, which the documentation read on 2026-09-24 calls the default, Claude Code does not send every tool definition up front, so the cost Shio and freewilly describe as re-sent on every turn may now be smaller than their figures. Their measurements count the serialized schema, not what reached a model's context. The gates also cost something: freewilly's budget gate went red for the wrong reason, "the budget gate that can go red for the wrong reason" [freewilly@f514e11], and needed deterministic inputs before it could be trusted. polyweave's surface has no such ceiling at the pin; its filed task on it is outside the pin.
Grade
R3: four independent origins in four projects; polyweave has none, so R4 is not reached. S4: Shio's ledger records its tool-list ceiling being exceeded by a change on two occasions, and the change was reshaped to pass, which is a check that encodes the finding seen to fire. The other three projects reach S3 with counted figures.