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.
fields step unreachable on a board with no electrical load; route plans tracks across a same-net pour
Seen with adom-aiflow 0.2.6 on a 2-layer mechanical carrier board. Its only net is a GND chassis pour on both layers joining four through-hole machine pins; there are no loads and no hot parts. Two related gaps.
1. A board with no electrical load cannot pass the fields step
adom-fields analyze --board <run board> --spec <spec> refuses: ERROR: the spec has no loads, hot parts or signal checks: nothing to solve. With no solve, tour fields has nothing of this run to film. step nets then refuses with fields (no tour-fields recorded during its last visit), so nets, silkscreen, 3d, finish and export are all unreachable.
analyze current and analyze thermal both pass on this board, correctly: nothing carries current.
Expected: when the spec has no loads, hot parts or signal checks, the fields step should be satisfiable as not applicable, recorded with that reason, the way thermal-vias records "0 heatsink vias; every hot part at its target" when spec.hot is empty. Today the only way through is to invent a load, which would fake the analysis.
2. route routes a net that a pour already joins
Before spec.planes was set, route planned 393 mm of 0.25 mm GND track between the four pins, although the board's GND zones on both layers already joined them (offline DRC: 0 unconnected with zones refilled). land route laid it live, and it had to be removed with kicad_remove_route.
With planes: {"GND": "F.Cu"} it still planned one via from TP1 (an F.Cu pad on the F.Cu pour) down to B.Cu. On a 2-layer board, an outer-layer plane mapping seems to be treated as the other layer.
Expected: route treats a net joined by the board's existing filled zones as connected, or at least warns before planning tracks across a zone of the same net.
Also seen
place land refuses locked footprints (footprint_locked ... pass allowLocked:true). place verify is the right proof for a fully fixed placement, but the ERROR's hint does not mention it.