Skip to main content
strata check is the core command. It loads your configuration, discovers the files in each scope, runs the selected rules, and reports every fault it finds. It is the command you wire into CI.
strata check [paths...] [--no-color]

Usage

Run against the repository described by your strata.toml or [tool.strata]:
strata check
Strata finds your configuration by searching upward from the current directory, sorts files into the product, test, and tooling scopes, and applies each scope’s rules.

Arguments and options

ArgumentDescription
paths...Optional. Check these paths instead of the configured roots.
--no-colorDisable ANSI color in the output.
Passing paths overrides the roots for that run only; the rest of the configuration (select, ignore, thresholds, contracts) still applies. Color is enabled automatically when the output is a terminal and disabled otherwise, and --no-color forces it off.
strata check src/my_package/main

Output

When the repository conforms, Strata prints a summary and nothing else:
Found 0 faults
When it finds problems, it prints one diagnostic per fault, then the summary. Each diagnostic has a stable, editor-friendly shape:
SFA002  function 'run' must define a return type annotation
 --> src/my_package/main/run.py:5:0
  |
5 | def run(a, b):
  | ^
  |
  = help: Declare the returned value type, using None when the function returns no value.
  • The first line is the rule code and the message: the concrete contract that was violated.
  • The --> line is the location as path:line:column, repository-relative so an editor can make it clickable. A file-level fault with no specific line shows - for the line and column.
  • The source excerpt shows the offending line with a caret under the exact column.
  • The = help: line is the remediation: the normal correction, wrapped at 100 columns.
This two-level message contract (what is wrong, and how to fix it) is the same whether the fault comes from a core rule or a custom rule, and the text is written to be read at the moment of violation by a person or an agent.

Exit codes

CodeMeaning
0No faults found.
1One or more faults found.
Because a non-zero exit fails a CI job, adding strata check to your pipeline turns architectural drift into a build failure.

Selecting what runs

strata check runs the rules resolved from your select and ignore configuration. To narrow a run, adjust those keys rather than the command:
select = ["SFL", "SFR"]   # only layers and roles
ignore = ["SFX007"]       # minus one rule
There is no inline suppression comment. When a rule genuinely does not fit, you disable it, scope it off, or replace it with a custom rule, all in configuration. See Philosophy for why.

Configuration

Scopes, selection, thresholds, and contracts.

Rule families

What each rule checks.

strata rule

Inspect the full metadata for any code in the output.

strata map

See the structure that check enforces.