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.
Twelve steps, in order.
What landed, when.
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.
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.
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.
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.
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.
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.
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.
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.
Five blocking jobs
Verified by name-set equality against the workflow. A job renamed, deleted or never instantiated is red — not uncounted.
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.
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Ω.
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.