015-short-id-resolution

Compile: resolve short spec ids on `depends_on` and `superseded_by`

Lifecycle approvedImplementation completeVerification unknownQualification unknown

Lets a `depends_on` or `superseded_by` reference name its target by the leading spec number alone (`109`) and have the compiler resolve it to the full id (`109-slug`) when exactly one spec matches that number, rewriting the reference before validation and emission. An exact id, an ambiguous number, or a number matching nothing is left unchanged, so V-008 (superseded_by must resolve) and V-010 (dangling depends_on) still fire on a genuinely broken reference. The resolution policy is the indexer's existing `resolve_id` (spec 004), applied at compile time so the registry and the index agree. Unblocks adopting a corpus that references specs by number (106 specs in the OAP dry-run) without a mass frontmatter migration; a no-op on any corpus that already uses full ids (such as this repo's own).

Read the full pinned specification ↗

Relationships

Claimed units

  • extends
    {
      "nature": "additive",
      "spec": "001-compile-registry",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-core/src/compile.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "001-compile-registry",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-core/tests/compile.rs"
      }
    }

Source headings

  1. 015: resolve short spec ids on `depends_on` and `superseded_by`
  2. 1. Purpose
  3. 2. Territory
  4. 3. Behavior
  5. 3.1 Resolution policy
  6. 3.2 Scope: which references resolve
  7. 3.3 Ordering, determinism, and the canonical no-op
  8. 3.4 Tests (minimum)
  9. 4. Out of scope

Frozen anchors

No frozen anchors declared.