080-an-unresolved-claim-is-not-stale
An unresolved claim exits as a validation failure
Spec 079 stopped `check` calling an unresolved claim "stale" and stopped it prescribing `spec-spine index`, a remedy that provably does not work. It deliberately left the exit code alone, because 069 3.1 pins "the exit code is unchanged: 2 when anything drifted" and adopters branch on it. The result is a verb whose prose says "this is not staleness" while its exit code says staleness, and exit 2 is the code an adopter's CLAUDE.md maps to "run spec-spine index". This spec moves an unresolved claim to exit 1, the validation code, by an `amends` edge on 086. A spec claiming a unit that does not resolve is a corpus that does not describe its tree, which is a validation failure and not a ledger that has fallen behind. No message changes: 098 already made every report line correct.
Read the full pinned specification ↗Relationships
depends on
depended on by
Claimed units
- extends
{ "nature": "corrective", "spec": "062-one-name-one-freshness-verb", "unit": { "kind": "file", "path": "crates/spec-spine-cli/src/cmd_check.rs" } } - extends
{ "nature": "corrective", "spec": "004-codebase-index", "unit": { "kind": "file", "path": "crates/spec-spine-cli/src/cmd_index.rs" } } - extends
{ "nature": "additive", "spec": "079-a-blocking-claim-is-not-a-stale-shard", "unit": { "kind": "file", "path": "crates/spec-spine-cli/tests/cli.rs" } }
Source headings
- 080: An unresolved claim exits as a validation failure
- 1. Purpose
- 1.1 The verb contradicts itself
- 1.2 Why the code matters more than it looks
- 1.3 Why this needs an amendment rather than a fix
- 2. Territory
- 3. Behavior
- 3.1 `check` spends 1 on an unresolved claim
- 3.2 `index check` spends 1 on the same fact
- 3.3 Nothing else moves
- 3.4 The acceptance is the reproduction
- 4. Out of scope
- 5. Resolved decisions
- Verification
Frozen anchors
No frozen anchors declared.