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.

Quality, reported honestly

Maintainability: E.
So which of the 20 issues do I fix?

That is a real quality gate failing on a real repository, and it is unactionable by construction: the letter is a debt ratio built from remediation estimates the tool guessed at. CommitMind leads with the condition that actually blocks a commit — and shows nothing it cannot source.

23 findings at or above high
A commit touching this code can be blocked. 70 open in total.
scanned 11m
New
82
in the last 7 days
Resolved
65
in the last 7 days
Open total
70
3 not yet tracked by a task
Dismissed
0
reviewed, not fixed
Severity mix · 70 open
0 critical23 high21 medium23 low3 info
Test coverage
64.3%26,369/41,003 statements · coverage.out
Measured against the current code.

There is no A–E rating here, on purpose. That grade is a ratio of remediation effort to development cost, and the effort half comes from per-rule time estimates. We hold no such data, so publishing a letter would mean inventing one and borrowing a name buyers already trust. It is about an hour of work — which is precisely why it would have shipped without anyone deciding it should.

“New” and “resolved” are counted over a trailing window across the whole ledger, not per scan — a per-scan delta reads zero on a quiet afternoon while the week added findings. A repository that has never completed a scan renders as not scanned, never as a green gate over an empty ledger. Figures above are CommitMind’s own repository, read off the shipped panel.

We never run your tests. Coverage is parsed from a report your project already produces, because a tool that executes an arbitrary suite on a background loop — spawning containers, hitting databases, costing money — is a tool people uninstall. The cost is honest: with no report, the panel says not measured and never 0%. An unmeasured repository and an untested one are different claims, and we will not render them the same. The figure is stated in statements for the same reason — Go counts statements and LCOV counts lines, so a bare percentage would invite comparing two numbers that never measured the same thing.

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. Overall precision 0.99 / recall 0.98, regenerated on every eval run from a committed harness.

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: a mass-assignment carve-out still false-flags (0.75 precision — so it stays advisory, never a spurious block), and SOC 2 audit-logging recall sits at the gating floor on borderline failed-login diffs. Ruby, PHP, Kotlin and Rust are spot-checked, not yet validated at the depth of Python, JS, Go, Java and C#.

Run it on your repo — free

Bring your own agent — advisory review at $0. Gating compliance packs on Pro.

Ready?

Give every agent
your team's engineering brain.

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