No pass without a measurement: AI Architect Spec, traced through its source
A specification that reads well and describes a system nobody can build is worse than no specification. This server is built to catch that case before it reaches code: it checks that every symbol exists, that every acceptance criterion traces back to a requirement, and that no performance claim passes without a measurement — deterministically, with no model in the checking loop.13 It is a reducer rather than an agent: it emits actions and your host executes them, and it never phones home for a verdict.2
A reducer that emits actions, and calls no model itself
The interesting architectural choice is what this server refuses to do. It does not draft your sections and it does not judge them. It computes the next state and hands the host one action to execute, which means the same pipeline runs against any agent runtime rather than one vendor's.52 It writes no source file and pushes no branch; the nine output files are written by the host.25
Seventeen tools are registered, and three profiles decide which of them a given host sees: everything, everything minus five internal diagnostics that are refused at call time, or just the two validators for a host that only wants the checker.67 The order is not advisory. The server states it in the message it sends on connect, and the failure mode is named: calling the tools out of order does not raise an error, it leaves the run in a wrong state.8
Twenty steps, and the nine you have to ask for
Eleven steps produce the specification, from the first banner through preflight, context detection, input analysis, a feasibility gate, clarification, budgeting, section generation, ticket generation, export and a self check.9 Nine more carry the same run into implementation, testing, review and a pull request — and they are opt-in, behind a gate a human opens. The terminal marker is not a step, which is the kind of distinction that only matters until someone counts the steps wrong.9
Inside section generation sits the loop that does the work: recall from memory, draft by a spawned agent, validate deterministically, retry. The retry budget is three, and the file that defines it says what that three is: a provisional anchor pending an ablation study, replaceable at runtime by a calibrated value.10 That is a small piece of honesty with a large effect, because it tells a reader which numbers in this system are load-bearing and which are placeholders.
What it proves, and what it refuses to pretend
The deterministic layer is seventy-three rule functions across twenty-four files, pure parsing with no model involved, which is what makes its verdict identical on every host and inside continuous integration.14 What matters more than the count is the sentence the server sends about it: a passing report establishes structural conformance to those rules, and in the same breath states that it does not establish factual accuracy, implementation feasibility or semantic correctness.15 It also says plainly that it does not judge prose.26
Above that sits the judging layer, and it is built around a refusal. The taxonomy has five verdicts, a performance claim may not receive a plain pass, and a report where everything passes is rejected outright.16 A panel that agrees unanimously across five or more verdicts is flagged as suspicious rather than trusted,17 and half of the confidence-weighted vote forces a failure.18 Judges are treated as fallible by design, which the assurance case states as a limit rather than a feature.24
Nothing survives a restart, and the numbers say which is which
A run lives in one in-memory map and nowhere else. The file says why — the server is per-session, so a map is correct for one host — and names the swap that would change it.11 The consequence is worth stating plainly: restarting the process loses every run in flight, and what survives is the files the host already wrote plus the two optional databases. Terminal runs are evicted after thirty minutes or when sixty-four accumulate; runs in flight are never evicted.12
Two override paths exist and both are explicit. A calibrated gate can be held back from promotion even when it passes its threshold,20 and a held-out comparison refuses to run unless the caller acknowledges the seal, with the reason carried in the error message itself.21 On the measurement side, one calibration run is dated and complete — and carries its own two flags saying it diverges beyond tolerance and should be recomputed.22 Every performance ceiling around it is labelled a provisional heuristic in the file that defines it.23
One number this dossier does not repeat
The published test count is 1506, and it appears in several user-facing places. Counting call sites statically in the tree at this revision gives 1 061 across 98 test files. The gap is almost certainly runtime-expanded cases, which only executing the suite can resolve, and the repository does gate that claim in continuous integration against a real run. It is reported here as unverified from the source alone rather than repeated as a fact, which is the same standard the project applies to a latency claim.3 The project's own honesty about energy is worth quoting for the same reason: it publishes no carbon figure, because it measures no joules and avoided rework is a design argument rather than a measurement.4