Gate: rule-uses-resolve
What a rule says it uses exists in the spec — a declared field, a dependency row.
| Property | Value |
|---|---|
| Checker | rule-uses-resolve |
| Confronts | spec |
| Blocking by default — new project | yes |
| Blocking by default — existing project | no — informs |
How it measures
Section titled “How it measures”A spec has the two ends — the rules (behaviours, states, errors…) and the data (the data contract, the domain, the props) — and nothing between them: what each rule reads lived, when it lived anywhere, in prose. A field changed in the contract pointed at no rule, and a rule could check a datum the contract never offered.
Three sections tie them: Validations (V: a condition on a datum → behaviour), Presentation
validations (P: a prop or state → appearance) and Rule uses (any other rule → what it
uses). Each row starts with the rule’s code and goes on with what it uses; the row is read by
position, since the columns’ names follow the project’s language. Two gates read them:
rule-uses-declared asks every rule to say what it uses, and rule-uses-resolve asks that what
it uses exists in the spec.
Declaring it
Section titled “Declaring it”gates: - name: rule-uses-resolve on: [spec] check: rule-uses-resolve