invAIriant keeps architectural invariants from drifting under AI-assisted change.
Your coding agent runs the audit and gates the merge on real findings. Claude Code · Codex · Cursor.
No evidence. No finding.
An LLM can propose anything; only cited, verified findings count. invAIriant runs a named set of review lenses over a bounded change, then makes every candidate survive adversarial evidence checks before it becomes a finding. Lenses discover, evidence verifies, severity gates.
Status: early. Usable now as an agent skill; the CLI and CI support are intentionally small and deterministic.
1. Add the skill to your agent — this is the audit:
mkdir -p .claude/skills && ln -s "$PWD/skill" .claude/skills/invairiant
# Codex / Cursor: see skill/README.md2. Run it in the agent: /invairiant audit-pr → a paste-ready PR comment.
3. Gate CI (optional — the deterministic CLI seatbelt):
pip install invairiant
invairiant ci-gate report.json # exits 1 on an open S0/S1 findingThe low-latency-runtime example shows the core rule: a passing summary does not erase a verified finding. Five more worked audits in case-studies/, and a runnable demo in examples/refundpilot-demo/.
- How it works — the pipeline and the evidence rules: docs/methodology.md
- The skill — every command and scope: skill/SKILL.md
- Lenses — 28 across 7 packs, pick 4–6 by risk: docs/lens-taxonomy.md
- The CLI: docs/cli.md · Gate PRs in CI: docs/github-action.md
- Walkthrough — a full run with real output: docs/demo.md
Not a linter, scanner, or proof of correctness; it turns their output into evidence and gates on verified findings. Not "AI, wander the repo and tell me what you think": it audits a bounded scope (a PR, a range, a module, an ADR) and refuses one it can't bound.
Apache-2.0 · © 2026 mindicator · Contributing · Roadmap
![Real terminal recording: invairiant collect, then validate-report (OK), then ci-gate — FAILED, RFP-001 [S1], exit 1 blocking the merge](/mindicator/invAIriant/raw/main/assets/invairiant-demo.gif)