Repository instructions
reviews.instructions applies to every review of the repository:
otto.yml
Path instructions
A path rule’sinstructions apply only when the PR changes at least one file the rule matches. Otto is told which changed files the rule matched, so it applies the guidance to those files:
otto.yml
instructions, depth, or both. See Review depth.
OTTO.md and CLAUDE.md
Otto also readsOTTO.md from the repository root, or CLAUDE.md if there’s no OTTO.md. Use it for broader context: architecture, conventions, and how the codebase fits together. Otto uses it for reviews and for ticket automation.
Use otto.yml for review-specific rules, especially rules that only apply to some paths.
Precedence
When guidance conflicts, the most specific source wins:otto.ymlinstructions (path and repository)- The repository’s
OTTO.mdorCLAUDE.md - Your workspace’s review instructions
Writing good instructions
Be specific and checkable
Be specific and checkable
“Every money amount must be an integer number of cents” works better than
“be careful with money”.
Say what to skip
Say what to skip
Tell Otto what your tooling already enforces (“our linter handles import
order”) so it doesn’t spend findings on it.
Scope rules to paths
Scope rules to paths
Guidance that only matters in one area belongs in a path rule, so it doesn’t
distract reviews of unrelated code.
Explain why
Explain why
A short reason (“we deploy migrations before code”) helps Otto judge edge
cases the rule doesn’t spell out.
instructions value can be up to 4,000 characters.