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.
kicad-cli-remote is Windows-only (cmd, %TEMP%, backslashes): gate fails on a Linux desktop now that kicad-bridge runs there
Ask: let adom-aiflow-kicad-cli-remote run on a Linux desktop. kicad-bridge now has a Linux build (adom/kicad-bridge#127, #128), tested on the Grok computer (grok-bot-vm-155244935, Debian 13, KiCad 10.0.7 Flatpak). With it, the live stages work from a container with --target grok-bot-vm-155244935. Measured today on a copy of grok-buck:
- Worked through the bridge:
start --target --remote-board,route(empty plan, board already routed),land route,pour,land vias,land pours(reached the live preflight, which refusedzones_intersectagainst the existing GND pour, correctly),measure(KiCad's fills, read live),tour nets(/GND 33 items and /VIN 21 selected and framed, screenshots saved) andverify-pours. - Blocked:
gate(and every offline kicad-cli step).tools/kicad-cli-remoteis Windows-only. It asksshell_executeforecho %TEMP%, buildscmdcommand lines (mkdir ... 2>nul &,rmdir /s /q,dir /b) and replaces every/with\. On Linux the DRC call becomessh: 1: \home\box\.local\share\adom-kicad-bridge\bin\kicad-cli: not foundand the gate reports "no report came back".
What a Linux path needs (I used a 40-line shim to prove it, and the gate then passed on the box's KiCad: 0 new errors, 0 unconnected):
- Detect the target OS (
adom-bridge targetsgivesos; orkicad_status.platform.osfrom kicad-bridge 1.0.56+). - Linux: send the board with its
.kicad_druand.kicad_proto a folder under the user's home withsend_files(not/tmp: a Flatpak KiCad has its own/tmp; kicad-bridge's launchers share the host's/tmp, but home is safe either way), runkicad_status.install.kicadCliwith the same arguments throughrun_script {"interpreter":"bash"}with forward slashes, andpull_filethe report. - Pass probe calls (
pcb drc --help,version) through the same way, since the gate checks for--refill-zones.
Smaller, same run: the board's nets are hierarchical (/GND, /VIN), and the spec Grok wrote names them GND, VIN, so pour refused "the board has no pads on that net". netlist check already treats /VIN and VIN as equal; the spec's pours, nets and hot.tabNet could do the same, or the refusal could say that the board has /GND.