Skip to content
EN · PT

Gate: rule-types

Every code letter is declared in the vocabulary, with no conflict.

Property Value
Checker rule-types
Confronts spec
Blocking by default — new project yes
Blocking by default — existing project no — informs
Duplicates a declaration it controls repeated in one file fails it; duplicates: false switches this off

Confronts a spec against the alphabet that makes traceability possible: each letter of a rule code ({CODE}-<letter><NN>) is the initial of the term that names a section — and a letter nobody declared is INVISIBLE.

That is the worst kind of hole, and it is the reason the gate exists. The rule appears in the spec, in the .feature and in the test, and even so feature-test-match does not see it: the code regex does not match the letter. It looks covered and is not — a green that certifies a link nothing ever traversed.

It confronts three things, in this order of gravity: an UNDECLARED LETTER used in the file; a SECTION cataloguing rules under a title no letter claims; and a CONFLICT in the vocabulary itself, where two different sections claim the same letter. A fourth finding — a section the project declared as rule-cataloguing but filled WITHOUT a code — is Pending rather than Fail, because it is the inverse gap and the ruler is opt-in.

With no vocabulary declared the gate does NOT go quiet: it confronts the CANONICAL letters. It used to Skip, and the effect was a canonical gate — seeded by init in every project — that measured nothing: it took a row in the check table and reported indeterminate forever. That is the same silence Anchors fights everywhere else, a declared gate that confronts nothing giving the impression of a defence that does not exist.

gates:
- name: rule-types
on: [spec]
check: rule-types

Source: checker · its spec