123-a-startup-verdict-names-its-reader
A startup verdict names its reader
Three session starts on 2026-09-23 reported "spec registry: INVALID; codebase index: STALE" on a corpus that was valid and fresh. The reader was the repository's own `target/release/spec-spine`, built from an earlier revision and left in place while the checkout fast-forwarded past the frontmatter grammar it knows, so an incompatible reader's refusal was printed as a finding about the corpus. The hooks that turn `check` into a message now name the executable they selected, and when that executable is the in-tree build and is older than the source it is built from, they say the verdict is an earlier revision's reading and keep what it said. They still read only: nothing builds, regenerates or installs.
Read the full pinned specification ↗Relationships
Claimed units
- establishes
{ "kind": "file", "path": "crates/spec-spine-core/tests/reader_identity.rs" } - extends
{ "nature": "additive", "spec": "093-the-harness-this-repository-runs", "unit": { "kind": "file", "path": ".claude/settings.json" } } - extends
{ "nature": "additive", "spec": "093-the-harness-this-repository-runs", "unit": { "kind": "file", "path": "crates/spec-spine-core/tests/harness_hooks.rs" } } - extends
{ "nature": "additive", "spec": "094-one-gate-and-the-boundaries-it-holds", "unit": { "kind": "directory", "path": ".githooks/" } }
Source headings
- 123: A startup verdict names its reader
- 1. Purpose
- 1.1 What happened, measured
- 1.2 Why the hook could not tell
- 2. Territory
- 3. Behavior
- 3.1 The reader is named
- 3.2 A reader older than its source is not believed
- 3.3 The original diagnostic is kept
- 3.4 The commit boundary names its reader
- 3.5 Read-only
- 3.6 Evidence
- 3.7 What this amends in spec 093
- 4. Out of scope
- 5. Resolved decisions
- Verification
Frozen anchors
No frozen anchors declared.