063-planned-territory-is-declared-not-inferred

Planned territory is declared, not inferred

Lifecycle approvedImplementation completeVerification unknownQualification unknown

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

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

  1. 063: Planned territory is declared, not inferred
  2. 1. Purpose
  3. 2. Territory
  4. 3. Behavior
  5. 3.1 The flag
  6. 3.2 A planned unit is a declared state, not a diagnostic (amends 025)
  7. 3.3 The flag cannot outlive the work
  8. 3.4 A planned unit that has resolved is reported
  9. 3.5 Collisions reuse the ownership rules
  10. 3.6 The ledger records planned territory as a state
  11. 3.7 Schema and version
  12. 4. Out of scope
  13. 5. Resolved decisions
  14. Verification

Frozen anchors

No frozen anchors declared.