Progress

Built in public, with receipts.

Twelve roadmap steps, each independently testable. A merge needs a green local receipt on the exact commit and a green CI run on that same commit. Here's where it stands.

6 / 12
roadmap phases closed
6 / 6
thesis goals passed, live model
5
blocking CI jobs, none non-blocking
465
part records in the catalog
Roadmap

Twelve steps, in order.

01DoneFault-injection suite — a 56-fault matrix that measures recall and false-positive rate per rule.
02DoneUART, SPI and power rule sets — role pairing, baud and clock limits, regulator budget with margin-as-data, LDO headroom.
03DoneNet derivation + logic-level compatibility — wiring-aware nets, then VOH/VIH, VOL/VIL and overdrive tolerance joined per net.
04DoneMotif system — proven sub-circuits that expand to primitive ops and carry claims the engine verifies against the derived nets, never the motif's word.
05DoneMutation executor — 30 atomic ops, a 29-code rejection enum, optimistic concurrency, history returned and never stored.
06DoneSchematic compiler — record-true symbols, label connectivity, block hierarchy, an independent S-expression cross-check, and a human GUI open recorded in KiCad 10.
07In flightAPI + agent loop — FastAPI, a worker, a KiCad container, plain tool use. Six goals from an empty design already pass end to end.
08In flightBrowser workspace — chat, schematic and dossier side by side, streaming. The dossier panel is the hero screen.
09NextHuman-verified catalog — per-part datasheet work around the ESP32 archetype, demand-driven, in waitlist order.
10PlannedPCB-readiness data — signal classes with authority cited, KiCad net classes written into the project so a human inherits the constraints before any router exists.
11PlannedCatalog overview — a derived census by part type and verification level, never hand-maintained.
12PlannedBring your own part record — your record, linted and validated exactly as ours is. The format is the contract.
Changelog

What landed, when.

2026-08-31

PCB demo pipeline, preserved

A charger board placed, routed headlessly and exported to GLB with a raytraced render. A prototype, kept so roadmap item 10 has something to read from.

2026-08-29

Six of six, from an empty file

A live model produced six designs against predicates only the engine can judge — 7 to 9 turns each, zero errors, and the LiPo goal correctly ending in human review. Every first batch was refused on grammar and corrected next turn; those spellings are in the prompt now.

2026-08-29

Roadmap items 10–12 written down

PCB-readiness data, the catalog census, and external part records — planned in full before a line is built, so the PCB stage has data waiting when it starts.

2026-08-27

Phase 6 closed — a human opened the schematic

The compiled baseline opened in KiCad 10.0.5 with the CLI cross-check passing and ERC classes as expected. Hashing an artifact is not inspecting it; someone looked.

2026-08-27

Paint order is semantic

KiCad's SVG plotter emits elements in a platform-dependent order. A pixel witness with zero tolerance measured the difference at 8.7 parts per million — antialiased edges composited in the other order. Reported as a measurement, never as a pass.

2026-08-26

Levels engine wave

A level pass now names its joins; a net with an unrunnable join is skipped with an honest finding instead of a quiet pass. Thermal models the rail at minimum and both rules disclose degenerate corners.

2026-08-25

Executor and compiler accepted

Typed mutations became the only write path, and the first .kicad_sch came out of the compiler with KiCad's own ERC checking it in CI.

How we know it's green

Green is a checked claim, never a badge.

A branch merges only with a full local run green at the exact commit — recorded on the pull request as a receipt naming that commit and every CI leg run verbatim — and one green CI run on that same commit. Any commit after it voids the receipt.

core · compile · api · kicad-witness · web

Five blocking jobs

Verified by name-set equality against the workflow. A job renamed, deleted or never instantiated is red — not uncounted.

continue-on-error: none

No non-blocking job

None exists, and none is to be added. A skipped job counts as passed only when the run's own outputs excuse it, printed with the condition that did.

golden numbers

Vendor-anchored tests

Golden numbers are recomputed from the record values the engine reads, or anchored to the vendor app note's own worked example — at least one anchor per formula. The I²C window is locked at 0.967–8.43 kΩ.

pixel witness

Artifacts get looked at

Rendered sheets are compared as rasters at zero tolerance, each side first proven non-degenerate. An artifact that is only ever hashed has never been validated.

Get the changelog in your inbox, weekly.

One email a week: what landed, what broke, what we measured. Plus your seat when the batch opens.

Join the waitlist