072-two-ready-specs-can-collide
Two ready specs can collide
`registry plan` answers "what can be worked on now", and a scheduler fans that answer out. Readiness is computed from `depends_on` alone, so two specs with no edge between them are both offered even when they claim the same files. The corpus has the case standing today: drafts 084 and 085 both extend `crates/spec-spine-cli/src/verify_attestation.rs`, `attest.rs` and `lib.rs`, neither depends on the other, and `plan` lists both as ready with no way to say so. This spec adds the overlap report: for every pair on the ready set, the units both claim. It is a report and never a refusal, and it is a lower bound rather than a safety verdict: disjoint territory does not prove independence, because a shared lockfile, a regenerated shard or a consumed API are collisions no frontmatter declares. `plan` keeps exiting 0.
Read the full pinned specification ↗Relationships
depends on
depended on by
Claimed units
- extends
{ "nature": "additive", "spec": "035-registry-plan-ready-set", "unit": { "kind": "file", "path": "crates/spec-spine-core/src/query.rs" } } - extends
{ "nature": "additive", "spec": "053-plan-answers-the-whole-question", "unit": { "kind": "file", "path": "crates/spec-spine-cli/src/cmd_registry.rs" } } - extends
{ "nature": "additive", "spec": "035-registry-plan-ready-set", "unit": { "kind": "file", "path": "crates/spec-spine-core/tests/query.rs" } }
Source headings
- 072: Two ready specs can collide
- 1. Purpose
- 1.1 Readiness is computed from one edge
- 1.2 The case is live in this corpus
- 1.3 A report, not a gate
- 2. Territory
- 3. Behavior
- 3.1 What is compared
- 3.2 How units intersect
- 3.3 What is reported
- 3.4 The report is a lower bound
- 3.5 Ordering
- 3.6 Additive
- 3.7 The acceptance
- 4. Out of scope
- Verification
Frozen anchors
No frozen anchors declared.