Skip to content

Concepts

Sextant has a small, deliberately flat data model. Everything you’ll encounter in JSON output, MCP responses, and PR comments comes from these six types:

ConceptWhat it is
RuleA single check, identified by a dotted id (e.g. builtin.size.fn-length).
FindingOne match of a rule against a file, at a specific line range.
ReportThe output of a grade — findings, severity counts, verdict, summary.
Verdictapprove or request_changes, derived from configured thresholds.
EvaluatorThe kind of check a rule performs: builtin, regex, or llm.
ScopeThe slice of code a grade covers: diff, file, or repo.

The types live in the sextant-core crate and have no I/O dependencies — the same definitions back the CLI’s JSON, the MCP server’s tool results, and the GitHub Action’s review comment.

If you’ve never used Sextant before, read in this order:

  1. Rule — what gets checked.
  2. Evaluator — how it gets checked.
  3. Finding — what comes out.
  4. Report — how findings are bundled.
  5. Verdict — how a report becomes approve / request_changes.
  6. Scope — where in the codebase a grade looks.

After that, the CLI reference and MCP tool reference read like API docs.