Skip to content
EN · PT

Gate: trigger-declared

Not in the default catalog: init does not seed it; a project declares it with check:.

Property Value
Checker trigger-declared

Confronts compliance triggers and obligations cited within specification text against the active vocabulary declared in project configuration and adopted compliance packs: every cited obligation trigger or obligation name must exist in the declared vocabulary.

Compliance obligations are triggered by declarations in artifact headers (such as carries: personal-data). When a specification instructs an author on what trigger to declare, it teaches the vocabulary. If it teaches an identifier that no pack declares, the author follows the instruction, writes the header, and no obligation ever triggers.

This produces no structural failure in ordinary gates. The header is syntactically well-formed, header checks pass, the unit appears covered by regulatory frameworks (such as LGPD or GDPR), yet actual enforcement is zero. It is the most insidious form of a lying anchor: the instructional text is wrong, causing every developer and automated agent relying on it to reproduce the defect.

Measured in doctrine: in a real project, 47 model specifications instructed authors to declare carries: pii and cited an obligation named pii-purgavel. Neither identifier existed in any pack — the canonical vocabulary declared across packs was carries: personal-data, with the obligations lgpd-eliminacao and lgpd-portabilidade. All 47 instances originated from the same boilerplate snippet, copied from spec to spec, without any check raising an alarm.

What separates this gate from neighbouring gates:

  • Header gates (header-conforms, header-valid): only verify that header syntax is well-formed and fields are structured; they do not validate whether the trigger values activate real obligations.
  • Obligation gates (obligation-honored): verify that active obligations attached to a unit are fulfilled; but if a misnamed trigger never fired the obligation in the first place, obligation-honored has nothing to enforce.
  • trigger-declared: confronts cited trigger symbols and obligation names mentioned in spec prose against the declared universe of packs and configuration.

Finally, citing triggers is entirely optional. Specifications that cite no compliance triggers skip cleanly. When a project has declared no compliance obligations and loaded no packs, the gate returns Pending rather than approving unverified vocabulary or penalizing projects without compliance.

gates:
- name: trigger-declared
check: trigger-declared

Source: checker · its spec