Design review is a gate at the end. We moved it into the drawing.
An agentic system a licensed professional will sign against. It opens the live building model, gathers the evidence, argues with itself, and cites the section of code it relied on.
Review happens too late to be useful
Military construction design review is a post-design gate. Architects work for months, submit, and wait. Only then do they find out which provisions of the Unified Facilities Criteria and the International Building Code they missed.
A problem caught in the authoring tool costs an afternoon. The same problem caught at submission costs a redesign cycle. Caught on site, it costs construction. The whole engagement is an argument about moving that discovery point upstream.
Why this is harder than it looks
Building codes are not prose. A provision references other provisions. An exception three sections away can reverse the answer. What governs depends on occupancy, construction type, and which jurisdiction adopted which edition with which amendments.
And much of what a reviewer needs was never a model parameter in the first place. Occupancy classification sits on a code summary sheet. Fire ratings sit in assembly callouts. Insulation values sit in keynotes. A system that only reads the model is blind to the half of the submittal that was drawn rather than modelled.
Against all of that, a plausible answer is worth close to nothing. We are asking a licensed architect or engineer to lean on this output for something they personally sign.
What we built
The code as a graph. National and defense construction codes ingested into a knowledge graph, retrieved through combined vector, full-text, and graph-traversal search, with query classification and a critic loop that goes back for what the first pass missed.
One agent pattern, many agents. A shared bounded tool-loop primitive underneath retrieval, an answer critic, a live-model compliance checker, and a document-vision reader, each drawing on a registry of tools that read the live model.
A live line into the model. A plugin for the BIM authoring tool, one shared core across every release version we support, streaming the building model into the compliance loop as the architect works, with change detection, debouncing, and burst caps so a busy editing session does not flood the pipe.
The drawings as evidence. Views, sheets, details, legends and keynotes read from inside the model, and whole PDF sets ingested into a drawing graph that sits beside the code graph, with every “see detail 3/A-501” resolved to its target and located on the page. Findings come back placed on the sheet.
A memory. When a reviewer dismisses a finding as not applicable, it does not come back. Project decisions and approved exceptions persist across runs, because a tool that keeps re-raising a settled question reads as a tool that is not listening.
The model is not the product. The harness is.
Everything around the model decides whether an agentic system is usable: the loop that lets it call tools and see results, what it may call, what it remembers, what it is allowed to do, what survives a crash, and what gets measured. Hold the model fixed and that layer still moves cost and reliability by more than an order of magnitude. Most teams shipping agents in 2026 have not built it.
Ours is durable, so a run survives a production deploy and resumes where it stopped rather than vanishing. Every write-capable action carries a recorded human approval, with a test proving there is no path around it. A cost budget stops a run before it overspends, on every path. Recorded replays gate releases and the golden set grows from real failures. And one trace id follows a finding from the browser, through the API, to the plugin, so any conclusion can be opened to the reasoning that produced it.
It is also reachable. An MCP server exposes the checks through the open standard that Claude, ChatGPT, Cursor, and Copilot all speak, so a reviewer runs a compliance check from inside the tool they already work in, and a customer’s own agents can call ours with the customer’s identity provider deciding who may. Conformance runs in CI. Tokens are bound to the server, and a token minted for the web app is rejected.
The calls we made
The hard, judgment-heavy part is finding the right provision and pulling the right evidence out of a model, and a language model is good at it. Deciding whether a number clears a threshold is arithmetic, and arithmetic should never be probabilistic. So the agent assembles the case and ordinary code returns the verdict. That division is the reason a professional can put their name on the output.
The worst failure in a compliance tool is not a wrong answer. It is a green result on a check that never really executed, because the input was missing and the code returned nothing. Silence reads as approval. Every check is now barred from passing on empty input, and continuous integration fails any that does.
Given a list of code checks to build, a software team picks the easy ones. Someone who has reviewed a set knows occupant load is the keystone: egress capacity, dead ends, and travel distance all rest on it, and if it is wrong every one of them is confidently wrong too. Build order is a domain decision, not a sprint-planning one.
The plugin reads the design and never writes to it, over a connection the workstation opens outward rather than one anything opens into the workstation. There is no setting that lets the system change a customer’s building model on its own and there will not be one. In this industry that restraint is a feature to sell, not a gap to apologise for, and on a defense network an inbound listener is a conversation nobody wants to have.
No check counts as ready because someone says it is. It counts as ready when the recorded scenarios exercising it exist and pass. A second pass then argues against our own findings to cut false alarms, held to a condition that matters more than the reduction itself: not one true finding may be suppressed to get there.
Leading it
We serve as principal investigator and primary architect, directing a team of engineers across multiple codebases on bounded workstreams, and holding the architecture that connects them. The guardrails are written into the codebases themselves, so a decision survives the conversation that produced it.
Delivered under federal information-handling requirements, with authorization support under a federal risk-management framework.
Where it is going
Beyond hand-authored checks. Because a submitted drawing set does not change under the reviewer the way a live model does, it can afford an exhaustive pass: derive the drawing-checkable requirements straight from the code graph, generate candidate checks for them, validate each against labelled real sets, and admit only the ones that prove out. The program has also extended into retrofit and legacy-document analysis, reading the drawings of buildings that already exist.
Unified Facilities Criteria
International Building Code
Plenty of teams can wire up retrieval and a tool loop. Knowing which provision actually governs, which check the rest depend on, and what a reviewer will accept as defensible is the part that decides whether any of it is usable.