113-a-waiver-has-a-declared-lifecycle
A waiver has a declared lifecycle
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
depends on
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
- 113: A waiver has a declared lifecycle
- 1. Purpose
- 1.1 Why it is built now (design note 09, D-7)
- 1.2 What is deliberately not being built
- 2. Territory
- 3. Behavior
- 3.1 The declaration
- 3.2 A waiver may declare its scope
- 3.3 Declared checks are evaluated against supplied inputs
- 3.4 A missing input is not evaluated, never satisfied
- 3.5 A failed check clears nothing
- 3.6 The verdict says which waiver cleared what
- 3.7 What the engine does not do
- 3.8 Compatibility
- 4. Out of scope
- 5. Resolved decisions
- Acceptance
- Verification
Frozen anchors
No frozen anchors declared.