Agents do not know your security model
Codex, Claude Code, Cursor, and other coding tools see the code. They do not know which security rules must never change.
Business logic flaws look like valid code
A change can compile, pass tests, and still expose another customer's data or bypass an approval.
The rules are scattered
They live across code, docs, threat models, past findings, and people's heads. Generic checks cannot reconstruct them.
Review comes too late
More code reaches review faster. Security teams need the relevant rule checked before the change is merged.
Give agents the context they are missing
Guardrails sends Codex, Claude Code, Cursor, and other coding tools the relevant invariants through MCP or the CLI. The agent sees what must stay true before it edits the code.
▸ agent: git commit -m "add bulk report export"
konvu ✗ finding: org-scoped-reads
api/reports/export.py:42 queries Report without org scope
▸ agent: reading invariant org-scoped-reads…
derived from KONVU-2331 · exploit reproduced · fixed in a41c2ef
▸ agent: scoping export query to session organization
▸ agent: git commit -m "add bulk report export"
konvu ✓ 14/14 invariants holdTurn private context into security invariants
Konvu maps your code, configuration, docs, threat models, and past findings. It derives invariants for tenant isolation, permissions, approvals, state changes, and money movement.
# Derived by Konvu Guardrails. Do not edit rationale by hand.
invariant: org-scoped-reads
class: broken-access-control
condition: >
Every read on Report must be scoped by the
organization_id of the session principal,
never by an identifier from request input.
binds:
- api/reports/handlers.py (get_report, list_reports)
- api/middleware/auth.py (require_org_scope)
derived_from:
boundary: org-isolation # threat model
finding: KONVU-2331
status: reproduced # exploit confirmed 2026-06-14
fixed_in: a41c2ef
check_in: [coding-agent, ci]Check each relevant change before merge
Guardrails selects the invariants affected by a change and checks them in CI. Start in report-only mode, then block violations where needed.
konvu / invariants · 1 finding
Finding: org-scoped-reads
PATCH /api/reports/:id reads Report without org scope · introduced in 2f8d1c3 · derived from KONVU-2331 (reproduced)
konvu / invariants · 14 invariants hold
Verdict recorded on the pull request.
CI mode: report-only · finding added for review