# Rules

HTML: [altophp.com/rst/linting/rules](https://altophp.com/rst/linting/rules/)

The recommended policy contains twenty rules grouped by the evidence they
inspect. Configure the few rules with project-specific values rather than
forking the complete set.

## Structure

- `lint/transition-placement`
- `lint/section-level-jump`
- `lint/duplicate-target`
- `lint/empty-section`
- `lint/forbidden-directive`
- `lint/code-block-language`
- `lint/code-block-terminal`
- `lint/version-directive-version`

## Source

- `lint/blank-line-after-directive`
- `lint/no-tab`
- `lint/indentation`
- `lint/max-line-length`
- `lint/trailing-whitespace`
- `lint/max-blank-lines`
- `lint/american-english`
- `lint/blank-line-after-anchor`

## References

- `lint/unresolved-reference`
- `lint/unused-external-link-definition`
- `lint/forbidden-link-destination`
- `lint/invalid-link-destination`

Rules report stable codes and original byte spans. Reference-based negative
findings, such as an unused definition, are suppressed when opaque directive
content makes graph coverage incomplete.

Use [Configuration](https://altophp.com/rst/linting/configuration.md) to replace policy values and
[Custom rules](https://altophp.com/rst/linting/custom.md) for application-specific checks.

---

Previous: [Fixes](https://altophp.com/rst/linting/fixes.md)
Next: [Custom rules](https://altophp.com/rst/linting/custom.md)

---

ALTO\RST: [altophp.com/rst](https://altophp.com/rst/)
ALTO(PHP): [altophp.com](https://altophp.com/)
