agentsclimarketplace

Kicad pcb

Skill AvatarSD/KiSkill/skills/kicad-pcb

Agent skills + headless Python engine giving an AI coding agent full control of KiCad — edit, verify, review & fabricate schematics and PCBs, no GUI.

Install
npx -y skills add AvatarSD/KiSkill --skill kicad-pcb

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing 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.

What its author says it does

Copied from the file, not written here

Stage footprints on a KiCad PCB so Update-PCB-from-Schematic adopts them without duplicates, probe board geometry, run DRC, and render layers for inspection. Use when asked to put footprints on the pcb, prepare a board for layout, or verify a .kicad_pcb change.

SKILL.md

2.0 KB, as published. Nobody here has run it

PCB footprint staging & board ops

Engine: $(kx root)/kicad_lib/pcb.py (python API: PYTHONPATH=<repo> or cwd=<repo>; CLI: kx is on PATH) (netlist, load_footprint, stage, edge_cuts_bbox, empty_board_from). Worked example: tests/test_pcb.py.

Staging flow (Update-PCB adopts, no duplicates)

  1. pcb.netlist(SCH)comps[ref]["tstamps"] — that uuid IS the link; nets is the connectivity ground truth (assert designed members!). Root-sheet local-label nets are prefixed "/" (/VOUT); power nets (GND, VCC) are not.
  2. pcb.load_footprint(mod_path, "Lib:Name") — renames for the board, strips file headers (.kicad_mod has no top-level uuid; instances do).
  3. pcb.stage(board, fpdef, ref, value, at, tstamps_uuid, sheetfile) — inserts after the layer clause: uuid, at, path "/<tstamp>", sheetname, sheetfile; sets Reference/Value; refreshes EVERY item uuid. Pads stay netless — the sync fills them.
  4. Stage in a grid CLEAR of the outline: pcb.edge_cuts_bbox(board).
  5. Gates: save → reparse → kicad-cli pcb export svg accepts → render PNG → eyeball → commit.

Notes

  • pcb.empty_board_from(donor) builds a minimal valid board (header + layer stack + setup + net 0) from any existing .kicad_pcb, read-only.
  • DRC: kicad-cli pcb drc --output drc.rpt --severity-all BOARD — set-diff vs baseline exactly like ERC (kicad-review skill).
  • .kicad_pcb round-trips BYTE-IDENTICAL (validated on a 2.3 MB real board): pcb pts dialect (≤5 points inline, then 4-per-line chunks) + token wrap at column 72 — sexp.dumps sniffs the root tag, or pass dialect="pcb" when serializing subtrees. Hand-edits diff zero-noise.
  • Update-PCB direction is sch→pcb only; never edit refs on the board.

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.