Borrowing it
Nothing to install: this file belongs to drandyhaas/KiCadRoutingTools. Take a copy, put it at the same path in your own repository, and replace the rules that are about this project with yours.
curl -O https://raw.githubusercontent.com/drandyhaas/KiCadRoutingTools/main/.claude/skills/plan-pcb-placement-and-routing/SKILL.mdgit clone --depth 1 https://github.com/drandyhaas/KiCadRoutingToolsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/drandyhaas/kicadroutingtools/plan-pcb-placement-and-routing)<a href="https://agentmods.dev/skills/drandyhaas/kicadroutingtools/plan-pcb-placement-and-routing"><img src="https://agentmods.dev/badge/skills/drandyhaas/kicadroutingtools/plan-pcb-placement-and-routing/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/drandyhaas/kicadroutingtools/plan-pcb-placement-and-routing"><img src="https://agentmods.dev/badge/skills/drandyhaas/kicadroutingtools/plan-pcb-placement-and-routing.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- NVIDIA SkillSpector pass
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00000 | $0.22676 |
| Opus 5 | $0.00000 | $0.11338 |
| Sonnet 5 | $0.00000 | $0.04535 |
| Haiku 4.5 | $0.00000 | $0.02268 |
Grade A, and why
plan-pcb-placement-and-routing scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured today.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 1,370 lines — stays where its author put it; the contents beside it link to each section on GitHub.
Plan PCB Placement and Routing
Use this when a single run must do both. It does not restate either half: it
sequences /plan-pcb-placement and /plan-pcb-routing and owns the four rules
that only exist when they meet.
The goal of the whole run is a board that ROUTES — parts arranged so they
work together, ending at zero unrouted and zero broken. On the perturbed
corpus, recovery and home /N measure distance to the ORIGINAL pose and are
diagnostics, not the score; a run can post a negative recovery while taking the
board from NOT BUILDABLE to buildable (measured, run 10). Lead every report
with blocking, and use collateral_pad_rms as the one recovery figure that
signals a real defect — it means parts nothing had damaged were moved.
The handoff gate that matters is off-board pad copper, not total
blocking. A part whose pad copper lies outside the outline makes its nets
unroutable, so it converts one-for-one into unrouted and broken — measured,
run 10: 11 such parts caused all 13 unrouted nets. Total blocking is the
wrong gate here in the other direction too: on a copper-free board it is
dominated by unrouted, which is the routing half's own job and not a
placement residue at all.
Feed each gate the document it was written for, and check that what you
passed actually carries the keys it reads. Different tools in this chain use
the field name blocking for different quantities, so a gate handed the wrong
report can no-op on the checks whose keys are absent and still refuse on the
one key that collides — with a message naming the wrong cause. When a
blanket-waiver flag exists, remember it waives the checks that were working as
well as the one that misfired.
<non_negotiable>
- Placement runs FIRST and ONCE. Every routed board downstream of a placement change is stale -- re-run the chain from the placed board, never patch around it.
- A routing failure is CLASSIFIED before it is retried: parameter-shaped, placement-shaped, or floorplan-shaped. Retrying a placement-shaped failure with router parameters is the most expensive mistake available here.
- The placement half's acceptance gates still apply to a placement produced mid-chain. A board that reaches routing with a blocking assembly pair, a locked-part contact, or a rigid inconsistency is a board that will fail routing for reasons routing cannot fix.
- Copper is not evidence about placement. A route that completed does not ratify the placement it ran on; a route that failed does not condemn it. Classify first. </non_negotiable>
What ships with it
6 files beside SKILL.md in the same directory: the scripts, references and assets a skill reads on demand. Not counted in the per-session cost; read them before you install if any of them is executable.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- today Changed · +32 lines 5d0b304b63bd
- yesterday Changed · +207 lines 701d28fad4ba
- 5d ago Changed · +3 lines f753cf329e6b
- 10d ago First seen · 1,128 lines · 0 tokens per session scan A 03e8f63cc50a
plan-pcb-placement-and-routing is a skill published in the GitHub repository drandyhaas/KiCadRoutingTools (401 stars, last pushed today), licensed MIT. It costs nothing until one of its globs matches a file; then it loads 22,676 tokens. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
tao-train-visual-changenet
Visual ChangeNet for binary image classification and segmentation in AOI defect detection. Use when training, evaluating, exporting, or running inference for PCB defect detection or visual inspection, comparing image pairs for PASS/NOPASS classification, or producing change-segmentation masks. Trigger phrases include…
altium-library
Create and verify Altium schematic symbols (.SchLib) and PCB footprints (.PcbLib) from datasheets and 2D drawings, as code. Use whenever a part library must be made, fixed, measured from a drawing, or checked. Triggers: "make a footprint", "create a symbol", "add this part to the library", "SchLib", "PcbLib"…
cad-skills
Use when doing parametric 3D modeling, 2D drafting, geometric kernel development, BIM/IFC processing, PCB design, or AutoCAD .NET development. Index of 20 skills: FreeCAD, OpenSCAD, OCCT, CadQuery, KiCad, SolveSpace, QCAD, xBIM, Clipper2, TongWen and more.
altium-pcb-placement
Altium PCB component placement — derive board size, decide rotation for main ICs and connectors, split zones, generate a 1:1 placement plan drawing, then inject real coordinates after approval, and check overlaps. Triggers: "PCB placement", "place the components", "how big should the board be", "board outline", "start…
altium-schematic-review
Review an Altium schematic (.SchDoc) — find unconnected pins, missing footprint links and net errors, then judge each candidate against the datasheet before calling it a defect. Triggers: "review this schematic", "check my circuit", "ERC", "floating pins", "unconnected", "any missing footprints", "does this schematic…
kicad-copilot-mcp
Use when KiCad Copilot MCP tools are available. Entry point for KiCad schematic and PCB workflows.