AI Flow
Public Made by Adomby adom
Adom's AI Flow: a tool to help the AI follow all of the steps it takes to build a board.
Checks to add from an outside engineer's full trial: symbol polarity, pin types, readable schematics, exact parts, courtyards, body overlap, ground fill really exported, honest readiness
An outside analog engineer ran a full trial (October 2026): a buffered RC low-pass filter, then a from-scratch diode voltage-controlled attenuator through schematic, PCB, simulation and manufacturing outputs (3 h 14 min, Codex). The package was impressive: native schematic and PCB agreed electrically (26 parts, 16 nets), recovery from tool failures was good, and limits were reported honestly. But several defects reached the "complete" package, and the AI's own checks did not catch them. Each one below is something the flow can make the AI check before it calls a stage done.
Schematic correctness and readability (aiflow-circuit-design)
- Custom symbol graphics must match pin declarations. A custom diode declared pin 1 = K on the left, but drew the cathode bar on the right. Nets, pads and SPICE were all correct, so the drawing contradicted the circuit. Add a check: for every custom symbol, the drawn polarity marks (diode bar, transistor arrow, op-amp +/-) agree with the declared pin names and numbers.
- Pin electrical types must be real. A custom TL072 declared all four amplifier inputs
passive, which quietly weakens ERC (a zero-warning ERC then proves less). Add a check: amplifier inputs areinput, outputs areoutput, power pins arepower_in; nopassiveon active-device pins unless the datasheet says so. Prefer library symbols (one triangle per op-amp section, a conventional transistor symbol) over custom rectangles and circles. - Draw the signal path; don't label every pin. The sheet had 63 local labels and zero wires, which hid the follower loop, the servo loop and the diode bridge. Add a rule: local connections inside a functional block are drawn wires, and labels are only for long or cross-sheet nets. Feedback loops must be visibly traceable. Keep text off pins and parts inside the drawing border.
Exact parts and datasheet reading (aiflow-sourcing)
- Prove the exact manufactured part exists. A KEMET 0805 capacitor part number was decoded from the part-number grammar, but the family selection table did not list that exact combination. Add a step: cite a manufacturer or distributor page for the exact MPN (value, tolerance, dielectric, voltage, package), not only the family datasheet.
- Typical is not maximum. An MCP6001 input bias current of 19 pA at +85 °C was called a maximum, but the datasheet lists it as typical. Add a check: every datasheet number quoted in a calculation is tagged typ, min or max, and worst-case math uses guaranteed limits.
- Don't freeze component values unnecessarily. When a part was unavailable, the AI insisted on keeping 100 nF ±1% instead of re-deriving the RC pair (for example 15.8 kΩ / 10 nF). Allow equivalent value pairs that meet the spec.
Mechanical and physical checks (aiflow-schematic-to-board)
- Every footprint needs a courtyard. None of the 26 footprints had one, so KiCad's courtyard overlap check had nothing to compare. Add a courtyard step: fail any footprint without F.CrtYd/B.CrtYd, then run courtyard overlap as an error, not ignore.
- Check body overlap too. C6 at (105, 75.5) and C7 at (105, 79.5) each draw a 5 mm body, centres 4 mm apart, so the bodies overlap by 1 mm. This passed because there were no courtyards. Add a check: fabrication-layer body outlines (or 3D model bounding boxes) don't intersect.
- Footprint bodies must match the real part. A Phoenix 1715721 terminal footprint drew a 7 mm body, but the datasheet says 9.8 mm. Check the body depth against the datasheet for connectors and large parts.
Ground fill and pours really in the delivered board
- The board that is checked must be the board that ships. The report described a refilled ground zone with one isolated-fill DRC warning, but the saved board had a B.Cu zone with zero
filled_polygonobjects, and the bottom-copper Gerber had zero G36 regions. Add a final gate: refill zones, save, then assert that the saved file contains filled polygons for every zone and that the exported copper Gerbers contain the pour regions. Fail the stage if not.
Assembly output (aiflow-silkscreen)
- All reference designators were on F.Fab, none on silkscreen. Put readable refs and polarity marks on the silkscreen, with connector/function labels.
Honest stage messages
- Don't overclaim readiness. A parity check's message told the AI the board could go to fabrication without human review. Electrical parity plus DRC (without courtyards) is not manufacturing readiness. Stage summaries should state exactly what was verified (connectivity, ERC, DRC, courtyards yes/no, fill exported yes/no) and never "ready to fabricate" unless every one of those passed.
Simulation scope (aiflow-simulate)
- The design met ≥10 dB attenuation at 100 mVpp, but only 0.83 dB at 12 Vpp; the report disclosed this, which was good. When the spec includes a full-scale input, simulate at full scale too and flag a topology that only works small-signal (the reference design scaled the signal down before the diode ladder and restored the gain afterwards).
The trial also noted heavy token use and long runtime. Clear per-stage checkpoints would help users see where the time goes.
Community PRs that add any of these checks are very welcome.