Tool

Route architectural constraints to AI coding agents per file

Boffin feeds an AI coding agent the architectural constraints for the exact file it's editing, then requires it to verify the result.

Works with cursorclaudeopencodeduckdbfastapi

91
Spark score
out of 100
Status Verified
Updated 28 days ago
Source checked Sep 10, 2026
Version 1.0.1
Models
claude

Add to Favorites

Why it matters

Prevent AI coding agents from turning small fixes into large rewrites by injecting file-specific architectural constraints before edits and requiring proportional verification afterward, ensuring agents respect boundaries like sync/async separation, trust boundaries, and scope limits.

Outcomes

What it gets done

01

Select and route only the architectural constraints relevant to the specific file being edited

02

Require verification checks proportional to the scope of the code change

03

Preserve critical boundaries like sync/async separation, API contracts, and state ownership during refactors

04

Deliver signed constraint packs to Cursor, Claude Code, Codex, and OpenCode from a single npm package

Source

Get it from source

Spark does not host a copy of it.

Open source

Reports

Agent outcome reports

No reports yet

Overview

Boffin

Boffin is a staff-engineer control layer for AI coding agents that routes only the architectural constraints relevant to the file being edited, then requires proportional verification of the result. It runs as one npm package across Cursor, Claude Code, Codex, and OpenCode, with every constraint shipped as readable, signed markdown. Use it when an AI agent keeps expanding small fixes into large rewrites, or when a change risks breaking a real architectural invariant. It is not a linter, sandbox, or security tool, and does not replace tests or code review.

What it does

Boffin is a staff-engineer control layer for AI coding agents: it feeds the agent the architectural constraints that apply to the specific file it's about to edit, then requires the agent to verify the result. Unlike a static AGENTS.md block that applies the same instructions to the whole repository, Boffin routes only the constraints relevant to the current edit, powered by its ParselFire Core engine. In a public case study on DuckDB, a guided refactor landed at +17/-17 lines with 2,104 assertions passing across 8 test files.

When to use - and when NOT to

Use it when an AI agent keeps turning a requested small fix into a large, scope-creeping rewrite, or when a change is genuinely risky - merging a real special case, blurring a sync/async boundary, or moving state away from its owner - and you want the agent stopped before it merges that mistake rather than caught after. It is not a linter, CI gate, command sandbox, or security tool: it does not isolate processes, filter shell commands, or restrict filesystem or network access, and it does not replace your repository's tests or code review, which remain authoritative. It also isn't built for speed - the entire framing is review-safety, so expect it to slow an agent down on purpose when a change looks risky.

Inputs and outputs

For a focused change, Boffin keeps the requested scope small and asks for the narrowest check that proves the edit; for an open-ended refactor or review, it requires a read-only audit first, then one verified finding at a time, and correctness always wins over cleanup when the two conflict. Three profiles - lite, full, max, selected via /boffin lite and similar on plugin hosts - tune how much cleanup pressure is applied, not correctness: every profile keeps the same trust-boundary, data-loss-prevention, security, and accessibility rejection rules, and there is no off profile. Generated code carries boffin: audit-token comments marking which invariants held or were refused, greppable across a codebase and disabled with an empty .boffin-trace-off file; nothing is sent anywhere.

Integrations

Boffin ships as one npm package (boffinit) for Cursor, Claude Code, Codex, and OpenCode.

npx boffinit cursor

Claude Code installs via /plugin marketplace add MicSm/boffin then /plugin install boffin@boffin; Codex via codex plugin marketplace add MicSm/boffin and codex plugin add boffin@boffin, plus a one-time /hooks trust step since Codex doesn't trust plugin hooks by default; OpenCode via npx boffinit opencode, delivering always-on guidance through .boffin/AGENTS.md. Portable adapters extend it to other hosts that read AGENTS.md, CLAUDE.md, or workspace rules. Every constraint ships as readable, GPG-signed, versioned markdown under packs/ in the repository, so nothing is hidden at install time. It requires Node.js 18+ and is MIT-licensed.

Who it's for

Teams who've been burned by an AI coding agent's small fix ballooning into an unreviewed rewrite, and who want architecture-aware guardrails and proportional verification built into the agent's workflow itself, on top of, not instead of, their existing tests and review process.

Source README

Boffin

Boffin (npm: boffinit) is a staff-engineer control layer for AI coding
agents: it feeds the agent the architectural constraints for the exact file it
is editing and makes it verify the result -- DuckDB case study:
a guided refactor landed at +17 / -17 lines with 2,104 assertions passing.

You ask for a 15-line fix; the agent comes back with a 500-line renovation.
Boffin gives the agent the architectural constraints that apply to the file it
is about to touch, then makes it verify the result.

It is not another AGENTS.md and not a prompt pack. Those formats usually ship
one static instructions block for the whole repository; Boffin routes only the
constraints relevant to the current edit. Powered by ParselFire Core.

npx boffinit cursor

Boffin, a staff-engineer control layer for AI coding agents, reviewing an AI-generated diff before a load-bearing wall is removed

What Boffin is not

  • Not a static repo-wide rules file (AGENTS.md-style one block for everything)
  • Not a prompt pack or system-prompt trick
  • Not a linter or CI gate -- it acts before and after the edit
  • Not a speed tool -- the frame is review-safety

What Boffin does

  • Selects the constraints relevant to the edit in front of the agent
  • Requires verification proportional to the change
  • Ships for Cursor, Claude Code, Codex, and OpenCode from one npm package
  • Delivers signed portable packs powered by ParselFire Core

How it differs (honest comparison)

Static rules file (AGENTS.md) Boffin
Delivery Usually one static block for the whole repo Constraints routed to the current edit
Verification None required by the format Required, proportional to the change
Evidence Usually none Recorded case studies with numbers

Proof, not promises

The public case studies record these guided refactors on real open-source code:

  • DuckDB: +17 / -17; 2,104 assertions
    across 8 test files passed; distinct continuation and recovery paths were
    preserved.
  • FastAPI: +16 / -33; 49 tests passed;
    no public API change.
  • LangChain: the sync/async boundary was
    preserved; 4 tests passed.

These are reproducible case studies, not a controlled A/B benchmark.

Install

Boffin requires Node.js 18 or newer.

Cursor

Run from your project:

npx boffinit cursor

Claude Code

Run these inside Claude Code:

/plugin marketplace add MicSm/boffin
/plugin install boffin@boffin

Codex

Run these from a terminal:

codex plugin marketplace add MicSm/boffin
codex plugin add boffin@boffin

Codex does not trust plugin hooks automatically. Run /hooks once inside Codex
to review and trust Boffin's hooks; until then the plugin's skills work but the
automatic per-session activation stays off.

OpenCode

Run from your project:

npx boffinit opencode

Then open the project in OpenCode. Always-on guidance lands via
opencode.json -> .boffin/AGENTS.md. On demand: /boffin,
/boffin-review, or the boffin / boffin-review skills.

Install details, commands, and troubleshooting:
OpenCode delivery.

Want the machinery? Read how ParselFire Core works.

What Boffin is fussy about

Similar code is not always the same code. Boffin gives the agent a reason to
stop before it merges a real special case, blurs a sync/async boundary, moves
state away from its owner, or turns a focused task into a tour of the codebase.

  • For a focused change, it keeps the requested scope small and asks for the
    narrowest check that proves the edit.
  • For an open-ended refactor or review, it requires a read-only audit first,
    followed by one verified finding at a time.
  • When cleanup conflicts with an earlier correctness rule, correctness wins.

The point is not to make the agent timid. It is to make the expensive details
explicit before they become an interesting afternoon.

FAQ

How is Boffin different from AGENTS.md?

AGENTS.md is usually one static instructions file for the whole repository.
Boffin routes only the architectural constraints relevant to the file the agent
is about to edit, then requires a check proportional to the change.

Where do the constraints come from?

Every rule ships in this repository as readable, versioned markdown under
packs/, and the packs are GPG-signed. Nothing is hidden at install
time: open any pack and read every rule before trusting it. At edit time Boffin
selects which of those rules apply to the file being touched. See
how ParselFire Core works for the routing map.

Why does my coding agent turn small fixes into huge rewrites?

You ask for a small fix; the agent comes back with a renovation. Boffin
injects the load-bearing constraints for the current file before the edit and
forces verification afterward.

What do lite, full, and max change?

They tune cleanup ambition, not correctness:

  • lite keeps cleanup pressure low and favors the smallest useful change.
  • full is the balanced default.
  • max applies the strongest cleanup pressure when the task justifies it.

On plugin hosts, select a profile with /boffin lite, /boffin full, or
/boffin max. There is no off profile.

Do profiles change the safety floor?

No. Every profile keeps the same early correctness stages and rejection rules,
including trust-boundary validation, data-loss prevention, security, and
accessibility requirements.

What are boffin: comments in generated code?

boffin: marks are machine-readable audit tokens: they let you grep/harvest
which invariants held and which were refused across a codebase. Nothing is
sent anywhere; the payload is the invariant itself. Disable with one line:
create an empty .boffin-trace-off file at the repository root.

Is Boffin a command sandbox or security tool?

No. Boffin does not isolate processes, filter shell commands, or restrict
filesystem or network access. It guides architectural decisions in generated
code. Use command sandboxes and security controls for their own job; Boffin has
a different job.

How do I uninstall the Cursor or OpenCode integration?

npx boffinit cursor uninstall
npx boffinit opencode uninstall

Each uninstaller removes that host's managed files only. Shared
.boffin/packs and .boffin/VERSION stay if the other host is still
installed. Unrelated project files are left alone.

Does Boffin replace tests or code review?

No. It tells the agent which contracts deserve attention and requires external
checks, but your repository's tests and review process remain authoritative.

Other hosts

Portable adapters cover hosts that read AGENTS.md, CLAUDE.md, workspace
rules, or repository instructions. See
host delivery and adapters for
the technical map.

Project

Boffin is available under the MIT License. See credits.

npx boffinit cursor

FAQ

Common questions

Trust

How it checks out

Official By maintainer
Downloads 4

Discussion

Questions & comments · 0

Sign In Sign in to leave a comment.