Gate: doctrine-realized
Every product rule is realised by some spec.
| Property | Value |
|---|---|
| Checker | doctrine-realized |
| Confronts | product |
| Blocking by default — new project | yes |
| Blocking by default — existing project | no — informs |
How it measures
Section titled “How it measures”Co-location ties a unit to one directory, but a business rule that holds for three screens belongs
to none of them. It lives in a product doctrine file, and each spec that concretises it points at the
doctrine rule with a @realizes tag. This unit holds the five gates of that vertical axis; each one
catches a silence the others cannot see.
plan-doctrine-exists— a plan that seeds a doctrine promises it will exist. Without this gate the promise carries no charge, because the specs the plan also seeds pass every gate with nothing to realize.doctrine-realized— a doctrine rule that no spec realizes is a decision that never reached the code, and the doctrine file itself is well-formed, so nothing else looks at that far end.spec-doctrine-exists— the axis’s reference check. A@realizesthat does not resolve looks like traceability while the map gains no edge, typically after a doctrine rule was renamed.doctrine-not-duplicated— the defect the axis exists to eliminate: a spec that copies the doctrine text instead of pointing at it. The ruler is similarity, not equality, because whoever copies almost always changes a word.spec-realizes-doctrine— a layer may declare that every rule of its specs must say which product decision it concretises. It is off by default: most rules of a tool like this one are local mechanics, while in a product application the proportion inverts, and only the project knows which case it is.
The axis has one declared way out, @TBD: <reason>, and it means “not yet”, never “never”: on a
line it turns a charge into debt, which keeps showing up (as Pending) until somebody pays it. A bare
marker, or a marker quoted in backticks by a text that explains it, defers nothing.
An open question of a doctrine (a -Q item) names a decision nobody has taken, so it is never a
rule to realize.
Declaring it
Section titled “Declaring it”gates: - name: doctrine-realized on: [product] check: doctrine-realized