Tune or disable rules
Run a subset of rules, adjust thresholds, and change how findings are reported.
Straitjacket runs every rule at its strictest by default. You ratchet down from there. This guide covers the common adjustments; the full flag list is in the CLI reference.
Run only some rules
straitjacket --only emoji,color # nothing but these two
straitjacket --skip motion # everything except this rule--only and --skip take comma-separated rule ids. An unknown id is an
error — the run stops with exit code 2 rather than silently scanning with a
rule you thought you had turned off. See every id in the
rules reference or with straitjacket --list-rules.
Adjust thresholds
Two rules have a tunable number:
straitjacket --max-lines 800 # file-size line budget (0 disables)
straitjacket --max-nesting 4 # deep-nesting depth budget (0 disables)--max-lines— how long a file may be beforefile-sizefires. Default 1500.--max-lines 0disables the rule outright.--max-nesting— how deeply a line may be indented beforedeep-nestingfires, measured off leading indentation. Default 8.--max-nesting 0disables the rule.
Exempt paths from a rule
file-size and stray-todo take path prefixes in the
config file, which is usually tidier than
scattering markers through the files themselves:
file-size-exclude = ["notes/", "packages/generated/"]
todo-exclude = ["packages/legacy/"]color has the same idea in reverse: theme-files names the files that are
allowed to define color literals, so your palette module stops being a finding.
theme-files = ["src/theme/tokens.css"]Change the output
straitjacket --format json # machine-readable findings
straitjacket --format sarif # SARIF 2.1.0 for code scanning
straitjacket --no-fail # report everything but always exit 0--format json is the right choice when another tool consumes the results.
--no-fail is what you want while adopting Straitjacket — you see every finding
without breaking the build, which matters because a first run against an
established repository usually turns up a lot.
Make it stick
Rather than remember these flags for every run, commit a
straitjacket.toml to the repo — the same
settings in one file, picked up automatically by every run and by CI:
# straitjacket.toml
skip = ["motion"]
max-lines = 800
theme-files = ["src/theme/tokens.css"]
file-size-exclude = ["notes/"]