KiCad PCB Placement
SkillDev toolsReview Circuit Weaver's exhaustive placement proposal and apply approved SVG coordinates to a real electrically annotated KiCad PCB. Use after schematic generation for placement optimization, official-reference review, interactive SVG editing, strict reference reconciliation, and PCB placement handoff. Do not treat review artifacts as fabrication data.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the KiCad PCB Placement skill
What this skill tells your AI
The instructions your AI receives, as published by mattpainter701/kicad_automations in project-skills/kicad-pcb-place/SKILL.md and read by ahel’s review.
Separate the heuristic review proposal from the electrical PCB. Circuit Weaver
does not generate a routable board during generate.
1. Generate and inspect the review bundle
circuit-weaver generate "${SPEC_PATH}" --output "${OUTPUT_DIR}"
Read these together:
assembly_manifest.json: exhaustive physical-part inventory, including generated support passives;placement_result.json: proposed coordinates, exact reference reconciliation, quality findings, andfabrication_ready: false;placement_review_context.json: board constraints, placement rules, review blockers, targeted research prompts, and official/reference-layout links;placement.svg: editable vector proposal; andplacement_editor.html: interactive drag/review tool that can export SVG.
Stop when placement_result.json is blocked, inventories do not match, or
the review gate reports unresolved overlaps, out-of-board parts, constraint
violations, missing support parents, missing footprint geometry/dimensions, or
unresolved sourcing. Never hide a blocker because the visual layout looks
reasonable. Use manufacturer datasheets and reference layouts as authority.
For an alternate optimizer configuration, run:
circuit-weaver optimize-placement "${SPEC_PATH}" \
--strategy balanced --iterations 5000 --seed 42 \
--output "${OUTPUT_DIR}/placement.json"
circuit-weaver placement-viewer "${SPEC_PATH}" \
--output "${OUTPUT_DIR}/placement.html"
2. Apply physical-placement judgment
Review at minimum:
- connectors and controls against mechanical edges and enclosure constraints;
- decoupling/strap/bootstrap parts against their owning IC pins;
- regulator hot loops, switch-node copper, inductors, and current paths against the regulator reference layout;
- crystal loops, RF matching, antenna keepouts, USB/differential entry paths, and sensitive analog feedback;
- component rotations, pin-1 access, courtyard/rework spacing, thermal paths, fiducials, mounting hardware, and assembly-side constraints; and
- all explicit keepouts and placement constraints in the context artifact.
Edit placement.svg with the interactive editor or a standards-compliant
vector editor. Preserve each component's data-ref, transform, and layer
metadata. Do not add or duplicate assembly references.
3. Create the real electrical PCB
Open the manifest-selected root schematic in KiCad, assign and verify every
footprint, and run Update PCB from Schematic. Save a separate, pad-bearing,
named-net .kicad_pcb. This is the only valid target for placement, routing,
DFM, CPL, and Gerber work.
4. Reconcile and import the SVG
Dry-run first:
circuit-weaver import-placement "${OUTPUT_DIR}/placement.svg" \
"${ELECTRICAL_PCB}" --output-pcb "${PLACED_PCB}" --dry-run
The default contract requires the SVG and PCB reference inventories to match exactly. Duplicate, unexpected, missing, malformed, or non-finite placements block publication. Apply only after the dry-run is clean:
circuit-weaver import-placement "${OUTPUT_DIR}/placement.svg" \
"${ELECTRICAL_PCB}" --output-pcb "${PLACED_PCB}"
For a deliberate subset edit, opt in explicitly; unknown SVG references still fail:
circuit-weaver import-placement subset.svg "${ELECTRICAL_PCB}" \
--output-pcb "${PLACED_PCB}" --allow-partial
The command updates an existing sibling <board-stem>_cpl.csv when present;
it does not manufacture a trustworthy CPL from heuristic coordinates.
5. Verify in KiCad
- Reopen the written board without repair prompts.
- Confirm every assembly reference is present once with the intended footprint, side, rotation, and position.
- Run courtyard and full DRC checks.
- Check board-edge, connector, mounting, antenna, thermal, and height constraints against mechanical data.
- Keep support passives adjacent to their owning pins and minimize loop area.
- Route critical nets manually before any optional bulk autorouting.
- Generate CPL/Gerbers only from the reviewed real PCB.
For optional routing, use the repository autoroute skill and produce a
validated .ses; never invoke raw Freerouting flags by guesswork.
Signals
- GitHub stars
- 21
- Forks
- 2
- Last commit
- Aug 2026
Advanced
- Catalog kind
- skill
- Gateway key
kicad-pcb-place- Source
- github.com/mattpainter701/kicad_automations