113-a-waiver-has-a-declared-lifecycle

A waiver has a declared lifecycle

Lifecycle approvedImplementation completeVerification unknownQualification unknown

A `Spec-Drift-Waiver:` line clears every refusal in the pull request it appears in, with no scope, no expiry and no record of what it excused. A waiver may now declare a path scope, an expiry, an ancestry and a use limit on lines of its own. The gate evaluates each declared check over inputs the caller supplies (an as-of date, an ancestry answer, a prior use count) and reports it as satisfied, failed or not evaluated, never guessing a missing input. A failed check makes the waiver clear nothing; a scoped waiver clears only its paths; and the verdict says which waiver cleared which violation. Nothing is counted, consumed, stored or authorized by the engine, and an undeclared waiver behaves exactly as before.

Read the full pinned specification ↗

Relationships

Claimed units

  • establishes
    {
      "kind": "file",
      "path": "crates/spec-spine-core/src/waiver.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/spec-spine-core/tests/waiver.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/spec-spine-cli/tests/waiver.rs"
    }
  • extends
    {
      "nature": "additive",
      "spec": "005-coupling-gate",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-core/src/couple.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "005-coupling-gate",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-cli/src/cmd_couple.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "005-coupling-gate",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-core/src/lib.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "005-coupling-gate",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-cli/src/main.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "034-machine-readable-verdicts",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-types/src/version.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "034-machine-readable-verdicts",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-types/tests/dtos.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "034-machine-readable-verdicts",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-cli/tests/cli.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "057-the-docs-name-what-adopters-derived",
      "unit": {
        "kind": "file",
        "path": "docs/api.md"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "057-the-docs-name-what-adopters-derived",
      "unit": {
        "kind": "file",
        "path": "docs/schema-versioning.md"
      }
    }

Source headings

  1. 113: A waiver has a declared lifecycle
  2. 1. Purpose
  3. 1.1 Why it is built now (design note 09, D-7)
  4. 1.2 What is deliberately not being built
  5. 2. Territory
  6. 3. Behavior
  7. 3.1 The declaration
  8. 3.2 A waiver may declare its scope
  9. 3.3 Declared checks are evaluated against supplied inputs
  10. 3.4 A missing input is not evaluated, never satisfied
  11. 3.5 A failed check clears nothing
  12. 3.6 The verdict says which waiver cleared what
  13. 3.7 What the engine does not do
  14. 3.8 Compatibility
  15. 4. Out of scope
  16. 5. Resolved decisions
  17. Acceptance
  18. Verification

Frozen anchors

No frozen anchors declared.