Claude Code First, specification version 0.1.0. The plain-language guide

Version 0.1.0. Grade R2/S2.

F8 Where the consuming agent had a shell, Shio kept new capabilities off its MCP tool list and on its CLI, because the list is paid before any call

FieldValue
Statusactive
TopicContext economy and agent prose
GradeR2/S2
CasesShio
Contrarywinwright
Harness factsH9

Claim

Shio decided on three separate occasions to ship a capability as a CLI verb and not as an MCP tool, each time because a tool's schema is a charge on every session while a verb costs nothing until it runs, and a coding agent can reach a verb through its shell; freewilly adopted the same order as policy, and winwright chose MCP where the schema was what kept the caller's input correct.

Mechanism

A tool is offered to the model by its name, description and input schema, which are sent whether or not the session calls it. A CLI verb is reached through a shell tool the agent already has, and costs context only when it is run and its output read. So for an agent with a shell, each capability placed on the tool list adds a fixed charge that a verb does not, and the tool buys something only for a client with no shell, or where the schema does work a verb cannot, such as refusing a malformed input before it is sent. How much of the list a session is sent depends on the harness (H9).

Observations

Independence

One origin, Shio, seen on three occasions separated in time (SH114 on 2026-07-26, SH104 on 2026-07-27, SH265 later), which is recurrence within one project. freewilly's policy is a copy of Shio's argument by its own statement and adds no origin (grading rule 2). winwright's contrary choice is its own.

Counter-evidence

Grade

R2: three decisions in one project, on different capabilities and different days. S2: each is a ledger entry recording the decision and its reason; the cost it rests on is measured in F4, but no check fails when a capability is placed on the list instead of the CLI, so the placement itself is not measured. The contrary observation in winwright is explained by the kind of input, which is a stated property a rule can be scoped by.