046-depends-on-ordinal-monotonicity

A dependency points backward, and the corpus can say so

Lifecycle approvedImplementation completeVerification unknownQualification unknown

Three adopters independently wrote the same ninety-line `scripts/spec-dag.sh` to assert one thing the tool does not: that a `depends_on` entry names a lower ordinal than the spec declaring it. Spec 030 already ships the harder half of that graph check, refusing a cycle at compile time, and ordinal monotonicity is the cheap total order that makes a cycle impossible by construction rather than detectable after the fact. This spec adds `L-007`, an opt-in conformance lint gated on a new `[lint] require_ordinal_monotonic_depends_on` knob, defaulting off so no existing corpus changes verdict. It is deliberately a lint and not a `V-` code: a forward dependency is a corpus convention an adopter may reasonably not hold, not a structural defect that makes the registry unreadable.

Read the full pinned specification ↗

Relationships

Claimed units

  • establishes
    {
      "kind": "file",
      "path": "crates/spec-spine-core/tests/lint.rs"
    }
  • extends
    {
      "nature": "additive",
      "spec": "003-conformance-lint",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-core/src/lint.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "000-spec-spine-bootstrap",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-types/src/config.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "000-spec-spine-bootstrap",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-types/src/lib.rs"
      }
    }

Source headings

  1. 046: A dependency points backward, and the corpus can say so
  2. 1. Purpose
  3. 2. Territory
  4. 2.1 One line in the crate root
  5. 3. Behavior
  6. 3.1 One new opt-in knob
  7. 3.2 `L-007`
  8. 3.3 The ordinal is the leading digits, and absence is not a violation
  9. 3.4 It is a lint, not a validation
  10. 4. Out of scope
  11. 5. Verification

Frozen anchors

No frozen anchors declared.