063-planned-territory-is-declared-not-inferred
Planned territory is declared, not inferred
A spec cannot say what it intends to own. Ownership is only ever inferred from a unit resolving on disk, so a corpus that opts into spec 044's `--fail-on-unresolved` gate forecloses declaring territory before writing it: every claim must arrive with its file. The cost is that `registry plan` and `index coverage` are blind to planned ownership, a draft's risk understates the work, and two specs can plan the same file with no edge to collide on until one of them ships. This spec adds an optional `planned` flag to the unit payload. A planned unit is a declared state rather than an unresolved one, so it produces no `W-001` and the gate keeps refusing every claim that is merely broken. The flag is bound to the lifecycle field that ends it: a spec at `implementation: complete` carrying one is refused, and a planned unit that has resolved is reported so the flag cannot be left on.
Read the full pinned specification ↗Relationships
depends on
depended on by
amended by
Claimed units
- extends
{ "nature": "additive", "spec": "004-codebase-index", "unit": { "kind": "file", "path": "crates/spec-spine-types/src/unit.rs" } } - extends
{ "nature": "additive", "spec": "004-codebase-index", "unit": { "kind": "file", "path": "crates/spec-spine-core/src/index.rs" } } - extends
{ "nature": "additive", "spec": "004-codebase-index", "unit": { "kind": "file", "path": "crates/spec-spine-types/tests/grammar.rs" } } - extends
{ "nature": "additive", "spec": "004-codebase-index", "unit": { "kind": "file", "path": "crates/spec-spine-core/tests/index.rs" } } - extends
{ "nature": "additive", "spec": "001-compile-registry", "unit": { "kind": "file", "path": "crates/spec-spine-types/src/version.rs" } } - extends
{ "nature": "additive", "spec": "001-compile-registry", "unit": { "kind": "file", "path": "crates/spec-spine-types/tests/dtos.rs" } } - extends
{ "nature": "additive", "spec": "003-conformance-lint", "unit": { "kind": "file", "path": "crates/spec-spine-core/src/lint.rs" } } - extends
{ "nature": "additive", "spec": "003-conformance-lint", "unit": { "kind": "file", "path": "crates/spec-spine-core/tests/lint.rs" } } - extends
{ "nature": "additive", "spec": "029-ownership-coverage", "unit": { "kind": "file", "path": "crates/spec-spine-core/src/coverage.rs" } } - extends
{ "nature": "additive", "spec": "035-registry-plan-ready-set", "unit": { "kind": "file", "path": "crates/spec-spine-core/src/query.rs" } } - extends
{ "nature": "additive", "spec": "035-registry-plan-ready-set", "unit": { "kind": "file", "path": "crates/spec-spine-core/tests/query.rs" } } - extends
{ "nature": "additive", "spec": "029-ownership-coverage", "unit": { "kind": "file", "path": "crates/spec-spine-types/src/coverage.rs" } } - extends
{ "nature": "additive", "spec": "029-ownership-coverage", "unit": { "kind": "file", "path": "crates/spec-spine-core/tests/coverage.rs" } } - extends
{ "nature": "additive", "spec": "029-ownership-coverage", "unit": { "kind": "file", "path": "crates/spec-spine-cli/src/cmd_index.rs" } } - extends
{ "nature": "additive", "spec": "002-registry-query", "unit": { "kind": "file", "path": "crates/spec-spine-cli/src/cmd_registry.rs" } } - extends
{ "nature": "additive", "spec": "001-compile-registry", "unit": { "kind": "file", "path": "crates/spec-spine-core/src/compile.rs" } } - extends
{ "nature": "additive", "spec": "013-edge-paths-grammar-sugar", "unit": { "kind": "file", "path": "crates/spec-spine-types/src/edges.rs" } }
Source headings
- 063: Planned territory is declared, not inferred
- 1. Purpose
- 2. Territory
- 3. Behavior
- 3.1 The flag
- 3.2 A planned unit is a declared state, not a diagnostic (amends 025)
- 3.3 The flag cannot outlive the work
- 3.4 A planned unit that has resolved is reported
- 3.5 Collisions reuse the ownership rules
- 3.6 The ledger records planned territory as a state
- 3.7 Schema and version
- 4. Out of scope
- 5. Resolved decisions
- Verification
Frozen anchors
No frozen anchors declared.