Rules catalog
Every rule dora can check, with code, tier, default severity, and package membership.
Every check dora can raise has a stable code (R012) and a slug (description-length).
Findings from dora review link here via docUrl. Each rule page opens with What and Why in a short table, then How to fix.
This catalog table is generated from the rule registry — edit the registry, not the rows below.
| Code | Slug | Tier | Default | Packages | Summary |
|---|---|---|---|---|---|
| R001 (docs) | frontmatter-presence |
structure | error | minimal, recommended, strict | Frontmatter block present |
| R002 🔒 (docs) | frontmatter-parse |
structure | error | minimal, recommended, strict | Frontmatter parses as valid YAML |
| R003 🔒 (docs) | no-injection |
structure | error | minimal, recommended, strict | Frontmatter free of injection vectors |
| R004 (docs) | skill-name |
structure | error | recommended, strict | Skill name valid |
| R005 (docs) | description |
structure | warning | recommended, strict | Description present and well-sized |
| R006 (docs) | body-present |
structure | error | minimal, recommended, strict | Body content present |
| R007 (docs) | body-size |
structure | warning | recommended, strict | Body within size budget |
| R008 (docs) | allowed-tools-portability |
structure | warning | recommended, strict | allowed-tools is portable |
| R009 (docs) | advanced-fields |
structure | FYI | strict | Advanced frontmatter fields used correctly |
| R010 (docs) | unknown-fields |
structure | warning | recommended, strict | No unknown frontmatter fields |
| R011 (docs) | supporting-dirs |
structure | FYI | strict | Supporting directories recognized |
| R012 (docs) | dynamic-injection |
structure | warning | recommended, strict | Dynamic injection markers valid |
| R013 (docs) | scenario-file-valid |
structure | error | recommended, strict | scenarios.yaml is valid |
| R014 (docs) | drift-trigger |
heuristic | warning | recommended, strict | Trigger clarity (heuristic) |
| R015 (docs) | drift-structure |
heuristic | warning | recommended, strict | Structure consistency (heuristic) |
| R016 (docs) | drift-voice |
heuristic | warning | recommended, strict | Imperative voice (heuristic) |
| R017 (docs) | drift-example |
heuristic | warning | recommended, strict | Example presence (heuristic) |
| R018 (docs) | drift-guardrail |
heuristic | warning | recommended, strict | Guardrail presence (heuristic) |
| R019 (docs) | drift-clarity |
heuristic | warning | recommended, strict | Clarity (heuristic) |
| R020 🔒 (docs) | script-security |
heuristic | warning | minimal, recommended, strict | Bundled scripts free of dangerous patterns |
| R021 (docs) | principle-adherence |
heuristic | warning | recommended, strict | Content honors recorded principles |
| R022 (docs) | llm-clarity |
llm | warning | recommended, strict | LLM: instructions unambiguous |
| R023 (docs) | llm-actionability |
llm | warning | recommended, strict | LLM: instructions executable |
| R024 (docs) | llm-contradiction |
llm | error | recommended, strict | LLM: no contradictions |
| R025 (docs) | llm-trigger |
llm | warning | recommended, strict | LLM: trigger specific |
| R026 (docs) | llm-scope |
llm | warning | recommended, strict | LLM: focused scope |
| R027 (docs) | scenario-coverage |
llm | warning | recommended, strict | LLM: documented scenarios covered |
| R028 (docs) | session-invoked |
session | FYI | recommended, strict | Skill invoked in recent sessions |
| R029 (docs) | session-not-invoked |
session | warning | recommended, strict | Skill never invoked in recent sessions |
| R030 (docs) | session-none |
session | FYI | recommended, strict | No recent sessions found |
| R031 (docs) | memory-session-presence |
session | FYI | recommended, strict | Memory file present in recent sessions |
| R032 (docs) | binding-rule-inventory |
session | FYI | recommended, strict | Binding MUST/NEVER rules inventoried |
| R033 (docs) | memory-rule-adherence |
session | warning | recommended, strict | Sessions adhere to memory rules |