Kicad fab
Produce fabrication outputs for a KiCad project: grouped engineering BOM, JLCPCB-format BOM and CPL placement file, gerbers and excellon drill. Use when asked to export a BOM, prepare files for JLCPCB/PCBWay, generate gerbers, or package a board for manufacturing.From its SKILL.md
npx -y skills add AvatarSD/KiSkill --skill kicad-fabAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
- runs commandsInstructs the agent to run 1 command, including `python3 -m kicad_lib.cli fab SCH PCB OUTDIR`.
SKILL.md
1.3 KB, 329 tokens by cl100k_base, as published. Nobody here has run it
Fabrication outputs
Engine: $(kx root)/kicad_lib/fab.py. One call:
python3 -m kicad_lib.cli fab SCH PCB OUTDIR # either may be "-"
Produces: bom.csv (grouped by Value+Footprint, Qty column),
bom_jlc.csv (Comment/Designator/Footprint/LCSC Part #, DNP excluded),
gerbers/ (+ excellon .drl), cpl.csv (mm, both sides).
Notes
- JLC assembly needs an LCSC field on each symbol — full snippet
(PYTHONPATH=<repo>):
doc = sexp.load_file(SCH); ops.set_prop(doc, "R1", "LCSC", "C25804"); sexp.save_file(SCH, doc)— save_file takes PATH FIRST. (kx fetchtells you the id.) - Group key is Value+Footprint: identical parts collapse to one row with ranges (R1,R2 / Qty 2). DNP parts are excluded from the JLC BOM only.
- Power symbols/flags never reach the BOM (KiCad excludes # refs).
- Gerber sanity: count layers (≥ F.Cu/B.Cu/Edge.Cuts + masks/silk) and open one in the render if the board matters.
- Variants (KiCad 10): pass
--variantvia fab.py extension if a project uses them — not wired into kx yet.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.