paranoid_
Core

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:

  1. 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.
  2. Dependency consistency. New imports cross-checked against manifests (go.mod, package.json, requirements.txt, pyproject.toml, Cargo.toml).
  3. Dependency registries. New packages looked up in npm, PyPI, crates.io, and the Go module proxy. Skipped with --offline.
  4. Error handling. Every changed non-test source file (Go, Python, JS/TS), for swallowed or discarded errors.
  5. Clean-room test run. The suite reruns in a container with no network. See Sandbox & coverage.
  6. Claims. Only when --claims or --session is given, or commit messages are used as a fallback. See Sessions & claims.
  7. API surface. Only when claims were given: public symbols removed while the claims say a fix or feature landed.
  8. 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.
  9. Baseline suppression. Findings matching an unexpired entry in .paranoid-baseline.json move 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

FlagDefaultMeaning
--base stringmerge-base with the default branch, else HEAD~1State before the agent worked
--head stringworking treeState after the agent worked
--format stringtextReport format: text, md, json, or sarif
--output stringstdoutWrite the report to a file instead
--fail-under int50, or .paranoid.toml's fail-under when setExit non-zero if the score is below this
--strictoff, or .paranoid.toml's strict when setTreat a warn verdict as failure
--offlineoffSkip all registry lookups (DEP001 to DEP004 reported as skipped)
--sandbox stringautoContainer runtime for the clean-room run: auto, docker, podman, or none
--sandbox-image stringsuite defaultOverride the container image (must include coverage tooling for SBX005: go, pytest-cov if the project already depends on it, or jest/vitest)
--sandbox-timeout duration10mKill the clean-room run after this long
--compare-baseoffAlso run the suite at base and compare executed test counts (SBX003) and coverage (SBX005)
--claims stringnoneFree-text file with the agent's summary
--session stringnoneAgent 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 presentBaseline file to load instead of the auto-detected one
--no-baselineoffIgnore any baseline file, including the auto-detected one
--no-policyoffIgnore .paranoid.toml, even when present at the repo root
--sign[=local|keyless]offSign the report: bare or =local for the local ed25519 key, =keyless for cosign; requires --format json and --output
--traileroffPrint "Audited-by: paranoid score=NN verdict=V" as the last line on stdout
--badge stringnoneWrite 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.