046-depends-on-ordinal-monotonicity
A dependency points backward, and the corpus can say so
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
depended on by
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
- 046: A dependency points backward, and the corpus can say so
- 1. Purpose
- 2. Territory
- 2.1 One line in the crate root
- 3. Behavior
- 3.1 One new opt-in knob
- 3.2 `L-007`
- 3.3 The ordinal is the leading digits, and absence is not a violation
- 3.4 It is a lint, not a validation
- 4. Out of scope
- 5. Verification
Frozen anchors
No frozen anchors declared.