main
Download ZIP Propose a change
Name Last commit message Last updated
bin Publish 0.1.0 · John Lauer 2d ago
docs Publish 0.1.0 · John Lauer 2d ago
flows Publish 0.1.0 · John Lauer 2d ago
schema Publish 0.1.0 · John Lauer 2d ago
screenshots Source: adom-aiflow-jlcpcb 0.1.0 (Rust, MIT) · John Lauer 2d ago
skills Publish 0.1.0 · John Lauer 2d ago
src Publish 0.1.0 · John Lauer 2d ago
.adomignore Source: adom-aiflow-jlcpcb 0.1.0 (Rust, MIT) · John Lauer 2d ago
build.sh Source: adom-aiflow-jlcpcb 0.1.0 (Rust, MIT) · John Lauer 2d ago
Cargo.lock Publish 0.1.0 · John Lauer 2d ago
Cargo.toml Publish 0.1.0 · John Lauer 2d ago
install.sh Source: adom-aiflow-jlcpcb 0.1.0 (Rust, MIT) · John Lauer 2d ago
LICENSE Publish 0.1.0 · John Lauer 2d ago
package.json Brief: the whole order · John Lauer 2d ago
page.json Edited via adom-wiki: brief · John Lauer 2d ago
README.md Initial commit: app/adom-aiflow-jlcpcb · John Lauer 2d ago
uninstall.sh Source: adom-aiflow-jlcpcb 0.1.0 (Rust, MIT) · John Lauer 2d ago

AI Flow: JLCPCB

adom-aiflow-jlcpcb takes a finished board to assembled boards from JLCPCB. It is a stage of AI Flow: the board flow (adom-aiflow) ends at a routed, DRC-clean board, and this app starts there. One Rust binary that tells the AI what to do next and does the deterministic work itself.

Step What happens
intake init from the board release (or the board and BOM), sha256 recorded
sourcing every placed part orderable at JLCPCB; substitutes proven from both datasheets with swap
rules KiCad DRC with JLCPCB's design rules from adom/pcb-design-rules, picked by layer count, on a copy of the board
export gerber zip with paste and drill, JLCPCB BOM and CPL from the desktop's native kicad-cli, then the rotation check
preview JLCPCB's placement preview, a screenshot of every corrected or unverified part
quote, approval, order the total, the human's recorded OK, the order number; nothing is paid without the OK
delivered boards received and tried
share rotation corrections published as jlcpcb-rotation.json on the parts' wiki pages
report what was ordered and the evidence, for the next stage

The rotation check

JLCPCB places each part from the footprint in its own (EasyEDA) library for the LCSC number, at the CPL's rotation. That footprint's zero rotation often differs from KiCad's. For every placed part the check reads JLCPCB's footprint, finds the rotation of 0, 90, 180 or 270 degrees and the offset that land its pads on the board's pads pad for pad, and writes the corrected rotation (and centroid) into the CPL. A part that fits no rotation fails the export. On the 12 V to 5 V buck molecule it found the TPS54202 (TSOT-23-6) at -90 degrees with a 0.012 mm residual, the same correction JLCPCB's preview called for.

Each correction can be shared on the part's component page as jlcpcb-rotation.json (schema adom/jlcpcb-rotation@1), one entry per LCSC number and KiCad footprint, with the evidence counted: pad fits, JLCPCB preview screenshots, boards delivered, distinct users.

Build

Open source, MIT. Rust, Linux.

./build.sh        # tests, release build, bin/adom-aiflow-jlcpcb
./install.sh      # binary to ~/.local/bin, skill to ~/.claude/skills

Desktop steps go through Adom Bridge (adom-bridge) to a Windows desktop with KiCad 10 and pup. Built from the flow-app template in adom/adom-aiflow (template/flow-app).