verify and its flags
paranoid verify [path] is the main command. It runs
every check, scores the result, and prints a report. Everything
below is taken from paranoid verify --help on this
branch.
What it does, in order
On the base-to-head diff, in this order:
- Test integrity. Go via the real Go parser; Python and JS/TS via line heuristics. Flags deleted tests, weakened assertions, new skips, tautologies, renames that hide a test from the runner, new mocking, new retries, new sleeps, and stretched timeouts. Test and CI configuration files get their own check.
- Dependency consistency. New imports cross-checked against manifests (go.mod, package.json, requirements.txt, pyproject.toml, Cargo.toml).
- Dependency registries. New packages looked up in npm, PyPI, crates.io, and the Go module proxy. Skipped with
--offline. - Error handling. Every changed non-test source file (Go, Python, JS/TS), for swallowed or discarded errors.
- Clean-room test run. The suite reruns in a container with no network. See Sandbox & coverage.
- Claims. Only when
--claimsor--sessionis given, or commit messages are used as a fallback. See Sessions & claims. - API surface. Only when claims were given: public symbols removed while the claims say a fix or feature landed.
- Safety controls. Every changed file in the diff, not just source: TLS verification disabled, auth removed, a tracked path hidden by .gitignore, hook config changed, CI permissions widened.
- Baseline suppression. Findings matching an unexpired entry in
.paranoid-baseline.jsonmove to a suppressed section and out of the score. See Baseline & suppressions.
Unless --no-policy is set, a .paranoid.toml
at the repo root feeds three of the steps above: a
[[disable]] entry suppresses a rule the same way step
9 does, a [sandbox] image pin is used by step 5
unless --sandbox-image is given, and
fail-under/strict act as this repo's own
defaults, beneath the matching flag. See
Team policy file.
Flags
| Flag | Default | Meaning |
|---|---|---|
| --base string | merge-base with the default branch, else HEAD~1 | State before the agent worked |
| --head string | working tree | State after the agent worked |
| --format string | text | Report format: text, md, json, or sarif |
| --output string | stdout | Write the report to a file instead |
| --fail-under int | 50, or .paranoid.toml's fail-under when set | Exit non-zero if the score is below this |
| --strict | off, or .paranoid.toml's strict when set | Treat a warn verdict as failure |
| --offline | off | Skip all registry lookups (DEP001 to DEP004 reported as skipped) |
| --sandbox string | auto | Container runtime for the clean-room run: auto, docker, podman, or none |
| --sandbox-image string | suite default | Override the container image (must include coverage tooling for SBX005: go, pytest-cov if the project already depends on it, or jest/vitest) |
| --sandbox-timeout duration | 10m | Kill the clean-room run after this long |
| --compare-base | off | Also run the suite at base and compare executed test counts (SBX003) and coverage (SBX005) |
| --claims string | none | Free-text file with the agent's summary |
| --session string | none | Agent session file (Claude Code, Codex CLI, Gemini CLI, Aider, or Cursor); format is auto-detected |
| --baseline string | .paranoid-baseline.json at the repo root, when present | Baseline file to load instead of the auto-detected one |
| --no-baseline | off | Ignore any baseline file, including the auto-detected one |
| --no-policy | off | Ignore .paranoid.toml, even when present at the repo root |
| --sign[=local|keyless] | off | Sign the report: bare or =local for the local ed25519 key, =keyless for cosign; requires --format json and --output |
| --trailer | off | Print "Audited-by: paranoid score=NN verdict=V" as the last line on stdout |
| --badge string | none | Write a shields.io endpoint JSON badge to this file |
--claude-session <file> is a hidden alias for
--session.
--base and --head accept anything
git rev-parse resolves: a SHA, a branch, a tag,
HEAD~3, origin/main.
Text output uses color only on a real
terminal and respects NO_COLOR. JSON
output follows a versioned schema and is
byte-identical across reruns of the same input. See
Report & schema.
Related commands
paranoid baseline [path] accepts the same
--base, --head, --offline,
--sandbox, --sandbox-image,
--sandbox-timeout, and --compare-base
flags as verify. It always writes a full snapshot to
.paranoid-baseline.json at the repo root. See
Baseline & suppressions.
paranoid fix-prompt [path] accepts the same
pipeline flags as verify, plus its own
--report, --format, and
--output. See
fix-prompt.
paranoid attest keygen and paranoid attest
verify generate a signing key and check a signature made
by --sign. See Signing &
attest.
paranoid rules and paranoid version
take no flags beyond --help. paranoid
completion prints a shell autocompletion script (bash,
zsh, fish, or PowerShell); see its own --help for
the shell-specific usage, generated by Cobra.