# Rule explorer

Find the code from your report, understand what triggered it, and see a tested repair. Each rule page includes a before-and-after example.

[Search by code or topic](/docs/search) · [How to read a finding](/docs/quickstart#2-read-a-finding).

## Instruction and configuration checks

<span id="h1-tool-description-ambiguity"></span><span id="h2-missing-constraint-scaffolding"></span><span id="h3-schema-intent-mismatch"></span><span id="h4-context-boundary-erosion"></span><span id="h5-implicit-instruction-failure"></span><span id="h6-template-format-contract-violation"></span><span id="h7-role-confusion"></span>
<div class="link-grid"><a class="link-card" href="/rules/h1"><span class="eyebrow">H1</span><strong>Tool Description Ambiguity →</strong><span>Give agents enough information to choose the right tool or skill. H1 covers missing descriptions, vague selection text, naming collisions, overlap, and skill metadata.</span></a><a class="link-card" href="/rules/h2"><span class="eyebrow">H2</span><strong>Missing Constraint Scaffolding →</strong><span>An instruction asks for repeated effort without a usable stopping condition or retry budget.</span></a><a class="link-card" href="/rules/h3"><span class="eyebrow">H3</span><strong>Schema-Intent Mismatch →</strong><span>The schema and selection contract disagree or leave inputs underspecified.</span></a><a class="link-card" href="/rules/h4"><span class="eyebrow">H4</span><strong>Context Boundary Erosion →</strong><span>The instruction asks for unscoped context retention or leaves a detectable context boundary unclear.</span></a><a class="link-card" href="/rules/h5"><span class="eyebrow">H5</span><strong>Implicit Instruction Failure →</strong><span>A vague qualifier or implicit instruction leaves the expected behavior unclear.</span></a><a class="link-card" href="/rules/h6"><span class="eyebrow">H6</span><strong>Template Format Contract Violation →</strong><span>The output contract gives competing instructions or lacks selected format/version signals.</span></a><a class="link-card" href="/rules/h7"><span class="eyebrow">H7</span><strong>Role Confusion →</strong><span>The message sequence contains a selected role or ordering inconsistency.</span></a></div>

## Tool descriptions and skill metadata

<div class="link-grid"><a class="link-card" href="/rules/h1.1"><span class="eyebrow">H1.1</span><strong>Missing description →</strong><span>A selectable tool or skill has no description. Callers cannot learn its purpose from selection-time text.</span></a><a class="link-card" href="/rules/h1.2"><span class="eyebrow">H1.2</span><strong>Underspecified short description →</strong><span>A very short description leaves the action or domain unclear.</span></a><a class="link-card" href="/rules/h1.3"><span class="eyebrow">H1.3</span><strong>Vague opening verb →</strong><span>A short description starts with a broad verb without saying what the tool actually does.</span></a><a class="link-card" href="/rules/h1.4"><span class="eyebrow">H1.4</span><strong>Duplicate tool name →</strong><span>Two tools have the same selection name. A caller cannot address them unambiguously.</span></a><a class="link-card" href="/rules/h1.5"><span class="eyebrow">H1.5</span><strong>Near-duplicate descriptions →</strong><span>Two tools have near-duplicate descriptions, obscuring when to choose each one.</span></a><a class="link-card" href="/rules/h1.6"><span class="eyebrow">H1.6</span><strong>Missing tool differentia →</strong><span>Different wording can still describe the same operation. Neither description gives the caller a useful selection distinction.</span></a><a class="link-card" href="/rules/h1.7"><span class="eyebrow">H1.7</span><strong>Oversized skill description →</strong><span>A skill description exceeds the released 1024-character check. Selection text contains detail better placed in the body.</span></a><a class="link-card" href="/rules/h1.8"><span class="eyebrow">H1.8</span><strong>Missing skill trigger →</strong><span>The description says what the skill contains but gives no recognized situation for selecting it.</span></a><a class="link-card" href="/rules/h1.9"><span class="eyebrow">H1.9</span><strong>Invalid or mismatched skill name →</strong><span>The skill name is invalid or does not match its containing directory.</span></a></div>

## File references and Python

<span id="python-p1-and-p2"></span>
<div class="link-grid"><a class="link-card" href="/rules/h4.5"><span class="eyebrow">H4.5</span><strong>Referenced project file is missing →</strong><span>An instruction sends the agent to a project file that does not exist.</span></a><a class="link-card" href="/rules/p1"><span class="eyebrow">P1</span><strong>Uncalibrated Threshold →</strong><span>A threshold-like numeric assignment lacks a nearby recognized calibration or justification comment.</span></a><a class="link-card" href="/rules/p2"><span class="eyebrow">P2</span><strong>Embedded Scaffold →</strong><span>A long prompt is embedded directly in Python source. It may be easier to maintain as a concise instruction or a separately versioned file.</span></a></div>

## Use rules in your workflow

Select families with `--patterns H1 H3`, or choose a [severity threshold](/docs/outputs#set-a-ci-threshold) for CI. Individual H1 subcodes belong to the H1 family.

[Automatic fixes](/docs/fixes) describes the supported rewrite. [Instruction preflight](/docs/preflight) is a separate command with its own checks. The [full reference](/docs/reference#structural-detectors-h1-h7) documents the complete detection contracts.
