Rules
24 built-in rules spanning conflict detection, clarity, tool policy, structure, tokens, compliance, and (after a behavior run) cross-model divergence.
clarity
- A single directive mixes binding and advisory language, leaving intent unclear.
clarity/binding-ambiguouswarning - A directive starts with a pronoun whose antecedent is outside the sentence.
clarity/pronoun-driftinfo - An uncommon acronym appears only once in the spec with no definition.
clarity/undefined-terminfo - A rule references vague authority (standards, guidelines) without a link.
clarity/vague-directivewarning
compliance
conflict
- Two binding directives directly contradict each other.
conflict/bindingerror - A binding rule is immediately followed by an exception whose trigger is vague, undermining the binding.
conflict/binding-exceptionwarning - Binding directives in different spec files contradict each other.
conflict/cross-bindingerror - A tool is described as permitted in one spec file and restricted in another.
conflict/cross-tool-policywarning - Two rules cover the same verb+object but disagree on strength (binding vs advisory).
conflict/scope-overlapwarning - A tool is described as allowed in one place and restricted in another.
conflict/tool-policywarning
structure
- A later advisory directive is subsumed by an earlier binding directive.
structure/dead-ruleinfo - The same heading text appears more than once in a spec.
structure/duplicate-headingwarning - A spec contains no binding, advisory, or exception directives — the file cannot govern agent behavior.
structure/empty-specerror - Specs should declare at least version and owner metadata in YAML frontmatter.
structure/no-frontmatterwarningfixable (unsafe) - Long specs should be broken into sections with H2+ headings.
structure/no-sectionswarning - A spec is too short to meaningfully govern agent behavior — typical working specs are at least 50 tokens.
structure/too-shortwarning