Inspiration

No agent framework proves, before deployment, that every high-stakes tool has the safety control its owner intended. Agents ship to production with @function_tool and no human-approval gate. The gap isn't tooling — it's evidence.

What it does

A static-analysis CLI that scans agent codebases and verifies every tool decorator has the approval control its owner approved — without ever executing code.

Scan → Approve → Verify. Three commands. If source code drifts from the approved contract, CI fails. Uncertainty never becomes a green result. Supports OpenAI Agents SDK, Google ADK, and Anthropic Claude.

How we built it

  • Rust — zero-dependency, single static binary, cross-platform.
  • Tree-sitter — parses Python ASTs directly from source text. No imports, no execution.
  • YAML contracts — human-readable, diffable, version-controlled.
  • GitHub Actions — 15 test suites across Windows, macOS, and Linux.
  • Codex (GPT-5.6) — architecture partner for designing the scan/approve/verify lifecycle.

Challenges we ran into

Making the analyzer deliberately conservative. If it can't prove a control exists, it fails — never guesses. Cross-SDK support was equally hard: OpenAI, Google ADK, and Anthropic each express approval controls in completely different idioms.

Accomplishments that we're proud of

Zero false positives. Sub-second scans. One binary, every platform. 15 CI suites on 3 operating systems — we practiced what we preach.

What we learned

The hardest part of AI safety tooling isn't detection — it's deciding what to do when you're uncertain. We chose to fail loudly. That one decision shaped the entire architecture.

What's next for Agent Preflight

MCP server support, pre-commit hooks, a VS Code extension, and TypeScript/Go framework adapters.

Built With

Share this project:

Updates