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

Version 0.1.0. Grade R3/S3.

F302 A gate reported a pass over work that did not run or a check that looked at the wrong thing

FieldValue
Statusactive
TopicGates, verification, and hooks against instructions
GradeR3/S3
Caseswinwright, Shio, freewilly
Contrarynone
Harness factsnone

Claim

In three projects a gate went green, or exited 0, when the tests it stood for had not run, when its exit status was not the suite's, or when the thing it inspected was not the thing under test; each project answered by making "did not run" a verdict distinct from a pass or by asserting on the signal it actually needed.

Mechanism

A green is the absence of a reported failure. A test host that dies, a pipeline whose status is its last command's, a stale build directory, a check that matches nothing, or a picture taken before the window arrived all produce no failure, and so read as success. The fixes count what ran against what should have run, keep the suite's own exit code, or wait for the positive signal before judging.

Observations

Independence

Three independent origins: winwright's test host, Shio's build and shell pipeline, and freewilly's capture and budget gates. Each is a failure of that project's own gate, on a different stack (.NET test runner, Maven and pnpm, a WPF capture), and none of the remedies was copied between them.

Counter-evidence

None found at the pins. roadkeep's round-trip test over Shio's and Turing's files skips when they are absent, "which is what CI does" [roadkeep@91754240:.claude/skills/roadkeep-dev/SKILL.md#L26]; that is a green over an unrun check by design, stated, with no incident recorded, and it is neither support nor contrary evidence here.

Grade

R3: independent failures in three projects. S3: winwright's is counted (352 of 374, twenty-two unrun), Shio's in its sources (one run in six; forty entries read as asserted), and freewilly's budget failure in tokens (100). Not S4: winwright's roll call and Shio's command lint encode the remedy, but no source at the pins records either one failing on a real run.