mind review

Every staged diff, checked against your rules and decisions

Each finding carries its source — your rule, or the decision it traces back to. Tight enough to leave on: no false-positive noise.

commitmind · ~/work/payments-servicestaged · 3 files
mind review flagging two findings on a staged diff, each attributed to a rule or a decision
Code review

Catch the bug before the commit,
not in production.

commitmind review and the pre-commit gate read your diff in-session — deterministic rules plus a two-pass AI reviewer, security and correctness, flag real bugs, injection, banned APIs, and the decisions you're about to break before the code lands. Every candidate is adversarially refuted before it surfaces — signal, not noise. Each finding makes the next diff cleaner.

commitmind review3 files · +124 −31
4 findings
breaking · cross-filerpc/mutations.go:88
Pickup signature changed — 3 callers will break (each passes 2 args; the new signature needs 3). Caught across the whole repo before you commit — not after CI goes red.
bughandlers/payments.go:88
Idempotency check runs after gateway.Charge — a retry double-charges. Move the idempotency_keys lookup above the charge.
stale decisionauth.ts:142
Reintroduces cookie sessions — supersedes accepted decision a1b2c3d (OAuth PKCE). Confirm before you merge.
security · OWASP A03api/refunds.py:54
eval() on request data — code injection (CWE-95). Caught by the OWASP security pack; interprocedural taint confirms the untrusted input reaches the sink.
Runs in-session on Claude Code, in the pre-commit hook, or via /code-review — the bug never becomes yours to debug at 2am.
Generate → refute
Every candidate must survive an adversarial second pass to surface. That's why the gate is quiet enough to leave on.
Two passes
Security — injection, authz, secrets. Correctness — logic, idempotency, breaking changes across the whole repo.
Advisory gate-trust
Pre-existing debt surfaces for awareness; only new high/critical findings block the commit. No spurious blocks on code you didn't touch.
$0 AI quota
Runs on your own claude or codex— zero CommitMind AI spend — or our metered model when you'd rather not wire one up.
Reviewer · security pack

From one staged diff
to the whole codebase.

The same deterministic engine runs at the pre-commit gate and across every file — the OWASP/GOSEC security pack flags real vulnerabilities with interprocedural taint, not regex guesses.

PRE_COMMIT7 files · 1 finding
1 high
high · signature changeapi/payments/charge.go:53
Function Charge signature changed — 2 callers in 2 files may need updating. Verify api/checkout.go:118 (Checkout), worker/billing.go:88 (retryCharge).
Fail-fast: the commit aborts before a breaking change lands. Runs in-session and in the pre-commit hook.
FULL CODEBASE7,124 files · 1,530 findings
2 high1,466 medium62 low
highSECURITY · GOSECapi/uploads.go:155
[G304] Path traversal via taint analysis — untrusted input flows to a file path. Interprocedural taint confirms the source reaches the sink.
highSECURITY · GOSECworker/export.go:168
[G304] Path traversal via taint analysis — same sink reached from a second entrypoint.
mediumTS · NON-NULL ASSERTIONweb/src/dashboard.tsx:23
Non-null assertion x! silently overrides the type checker — avoid where a concrete type fits.
One /code-reviewover the repo — baseline the backlog, gate only what's new.
Measured on real code

Quiet enough to leave on.

We don't just score against the OWASP Benchmark (F1 0.88, precision 0.85 / recall 0.91) — we run the same engine across 26 mature OSS codebases, 270K lines of real production code, and publish what it finds: just 0.08 false-positives per 1,000 lines, with 111 real known-CVE dependency advisories surfaced as a separate bucket. Signal, not noise.

270K
lines of real OSS code scanned · 26 mature repos
0.08
engine false-positives per 1,000 lines
0.88
OWASP Benchmark F1 · precision 0.85 / recall 0.91
111
real known-CVE dependency advisories surfaced separately
OWASP Top-10 (2021) coverage
A01Access Control
A02Cryptographic Failures
A03Injection
A04Insecure Design
A05Misconfiguration
A06Vulnerable Components
A07Auth Failures
A08Integrity Failures
A09Logging Failures
A10SSRF

● full · ◆ AI-pack extended · ○ partial. Deterministic static analysis flags what code can prove — deepest on Go (SSA-based taint), seven languages. AI soft-rule packs reach into the classes static can't fully model: dropped authorization guards, IDOR and mass-assignment (A01), missing rate limits on sensitive routes (A04), unsafe deserialization (A08). A pack rule only gatesonce it clears a precision/recall bar on a curated corpus — until then it's advisory, never a spurious block. We still say where it stops: missing MFA and brute-force gaps need runtime.

AI packs validated on a curated corpus spanning four frameworks — OWASP Top-10, HIPAA, PCI-DSS and SOC 2 — 194 cases across nine languages, regenerated on every eval run. Each rule gates only above its precision/recall bar; the rest stay advisory. See the compliance breakdown below.

Compliance, measured

Your AI just shipped a HIPAA violation.
Your linter said nothing.

Generated code drops an authorization guard, logs a card number, sends PHI over plaintext — all valid syntax, all invisible to a linter. CommitMind is the review that gates the commit on HIPAA, PCI, and SOC 2, and proves it with precision and recall — not a logo wall.

PatientController.javastaged · AI-generated edit
@PreAuthorize("hasRole('CLINICIAN')")
@GetMapping("/patients/{id}")
public Patient getPatient(@PathVariable Long id) {
return patients.findById(id).orElseThrow();
}
Blocked before commit — the authorization guard was removed; this patient-record endpoint is now reachable with no auth check. HIPAA §164.312(d)
HIPAA§164.312 · 6 rules
PCI-DSSPAN & SAD · 4 rules
SOC 2CC6 / CC7 · 3 rules
OWASPinjection / RCE · A03·A08

194 hand-curated cases across 4 frameworks and 9 languages — each a real violation next to its look-alike safe carve-out. Every rule is scored for precision and recall and regenerated on every eval run from a committed harness; a rule gates only once it clears the bar.

A rule gates only once it clears the bar (precision ≥0.85, recall ≥0.50, ≥6 cases); below it, it surfaces but never blocks. We publish what it still gets wrong: unsafe-deserialization precision dips on the hardest trusted-domain carve-out, so it stays advisory. Ruby, PHP, Kotlin and Rust are spot-checked, not yet validated at the depth of Python, JS, Go, Java and C#.

Ready?

Give every agent
your team's engineering brain.

Works with Claude Code · Codex · OpenCode · any MCP client
Local by default Git-anchored decisions Project-scoped MCP-compatible