mixelpixx/Konnect/crates/konnect/assets/skills/kicad-library/SKILL.md
kicad-library
Library management workflow for KiCAD — creating symbols, footprints, and managing libraries via MCP tools. Triggers on: "create a symbol", "make a footprint", "custom component", "register library", "find a part", "pin numbering", "new symbol", "new footprint", "add to library", "library path", "pad layout".
- Source repository stars
- 333
- Declared platforms
- 0
- Static risk flags
- 1
- Last source update
- 2026-08-26
- Source checked
- 2026-08-26
Decision brief
What it does: where it fits
This skill guides Claude through creating and managing KiCAD symbols, footprints, and libraries using Konnect MCP tools. ALL modifications go through MCP tools — never edit .kicadsym or .kicadmod files directly.
Not for
- Tasks that require unconfirmed production actions or broad system permissions.
- Environments where the pinned source and install steps cannot be inspected.
Compatibility matrix
Platform support, with evidence labels
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
Inspect first. Install second.
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/mixelpixx/Konnect --skill "crates/konnect/assets/skills/kicad-library"Inspect the Agent Skill "kicad-library" from https://github.com/mixelpixx/Konnect/blob/35f01c43291ecea612e147e0f454a0208948f704/crates/konnect/assets/skills/kicad-library/SKILL.md at commit 35f01c43291ecea612e147e0f454a0208948f704. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
What the source asks the agent to do
- 01
Toolset Loading
Always call getactivetoolsets() first to see what is already loaded.
Always call getactivetoolsets() first to see what is already loaded. - 02
Refresh Placed Footprints
Editing a .kicadmod library file does not change copies already embedded on a board. After a library edit, call updatefootprintsfromlibrary; it is Konnect's MCP equivalent of KiCad Tools → Update Footprints from Library.
Use dryrun=true and review status, coverage, changes, andApply with dryrun=false and the exact returned expectedplanrevision.Keep the requested board open in live KiCad; there is no closed-board file - 03
Search First Principle
Always search existing libraries before creating custom components.
Standard passives (R, C, L) → Device libraryConnectors → ConnectorGeneric, ConnectorUSB, ConnectorHDMI, etc.Common ICs (STM32, ATmega, LM7805, NE555) → manufacturer-specific libraries - 04
Symbol Creation
Every symbol must have these fields:
LCSC — LCSC/JLCPCB part number for assemblyMPN — Manufacturer part numberDescription — Short text description - 05
Pin Numbering Conventions
Review the “Pin Numbering Conventions” section in the pinned source before continuing.
Review and apply the “Pin Numbering Conventions” source section.
Permission review
Static risk signals and limitations
Writes files
The documentation asks the agent to create, modify, or delete local files.
primitives in an existing `.kicad_mod`. Never patch the file directly.Writes files
The documentation asks the agent to create, modify, or delete local files.
Create new `.kicad_sym` file for symbolsEvidence record
Why each signal appears
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 90/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 333 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
Provenance and original SKILL.md
- Repository
- mixelpixx/Konnect
- Skill path
- crates/konnect/assets/skills/kicad-library/SKILL.md
- Commit
- 35f01c43291ecea612e147e0f454a0208948f704
- License
- AGPL-3.0
- Collected
- 2026-08-26
- Default branch
- main
View the original SKILL.md
KiCAD Library Management Workflow
This skill guides Claude through creating and managing KiCAD symbols, footprints, and libraries using Konnect MCP tools. ALL modifications go through MCP tools — never edit .kicad_sym or .kicad_mod files directly.
Toolset Loading
load_toolset('library') # search_symbols, search_footprints, create_symbol, create_footprint,
# edit_footprint_pad, set_footprint_graphics, set_footprint_metadata,
# set_footprint_models, get_footprint_info, register_symbol_library,
# register_footprint_library, get_symbol_info
load_toolset('pcb_components') # update_footprints_from_library for placed instances
Always call get_active_toolsets() first to see what is already loaded.
Refresh Placed Footprints
Editing a .kicad_mod library file does not change copies already embedded on a
board. After a library edit, call update_footprints_from_library; it is Konnect's
MCP equivalent of KiCad Tools → Update Footprints from Library.
This operation is not update_pcb_from_schematic. Schematic sync updates
schematic-owned fields while preserving artwork. Library refresh replaces supported
library-owned pads, graphics, attributes, metadata, and 3D models while preserving
the placed footprint's reference, value, position, rotation, board side, locked
state, KIID, symbol metadata, instance overrides, and pad nets by logical pad
number.
Always dry-run first:
update_footprints_from_library(
board,
references?,
library_ids?,
dry_run,
expected_plan_revision?
)
- Use
dry_run=trueand reviewstatus,coverage,changes, anddiagnostics. - Apply with
dry_run=falseand the exact returnedexpected_plan_revision. - Keep the requested board open in live KiCad; there is no closed-board file fallback.
- One successful apply is one KiCad undo entry.
- A stale plan, unresolved library, removed connected pad, or unsupported library content returns a non-mutating conflict for the whole selection.
Search First Principle
Always search existing libraries before creating custom components.
search_symbols(query) # Search all symbol libraries
search_footprints(query) # Search all footprint libraries
KiCAD ships with extensive libraries. Common parts almost always exist:
- Standard passives (R, C, L) →
Devicelibrary - Connectors →
Connector_Generic,Connector_USB,Connector_HDMI, etc. - Common ICs (STM32, ATmega, LM7805, NE555) → manufacturer-specific libraries
- Transistors/MOSFETs →
Transistor_FET,Transistor_BJT
Only create a custom symbol/footprint when:
- The part does not exist in any library
- The existing symbol has wrong pin count/arrangement
- You need a proprietary/unusual package
Symbol Creation
Pin Numbering Conventions
| Component Type | Convention |
|---|---|
| IC (DIP/SOIC/QFP) | Counter-clockwise from pin 1 (standard IC convention) |
| Passives (R, C, L) | Pin 1 and Pin 2 |
| Diodes | Pin 1 = Anode (A), Pin 2 = Cathode (K) |
| Transistors (BJT) | 1=Base, 2=Collector, 3=Emitter (BCE) |
| MOSFETs | 1=Gate, 2=Drain, 3=Source (GDS) |
| Connectors | Sequential from 1 |
| Crystal | Pin 1, Pin 2 (+ case ground if 4-pin) |
Pin Types
| Type | Use For |
|---|---|
input | Logic/analog inputs, gate inputs |
output | Logic/analog outputs, push-pull drivers |
bidirectional | Data bus lines, I2C SDA, GPIO |
tri_state | Outputs with high-impedance state |
passive | Resistor/capacitor/inductor pins, crystal pins |
power_in | VCC, VDD, GND pins (power consumer) |
power_out | Regulator output, power source pins |
open_collector | Open-drain/open-collector outputs |
open_emitter | Open-emitter outputs |
unspecified | Pins with no clear electrical type |
no_connect | Pins that must not be connected |
Required Symbol Properties
Every symbol must have these fields:
| Property | Description | Example |
|---|---|---|
| Reference | Designator prefix | U, R, C, J, D, Q, L |
| Value | Part name or value | STM32F103C8, 10k, 100nF |
| Footprint | Default footprint assignment | Package_SO:SOIC-8_3.9x4.9mm |
| Datasheet | URL to datasheet | https://... |
Optional but recommended:
LCSC— LCSC/JLCPCB part number for assemblyMPN— Manufacturer part numberDescription— Short text description
Symbol Layout Guidelines
- Pin 1 indicator (dot or bar) on the symbol body
- Inputs on the left side, outputs on the right side
- Power pins on top (VCC) and bottom (GND)
- Pin spacing: 2.54mm (100mil) standard grid
- Symbol body: rectangle for ICs, standard shapes for passives/discretes
Footprint Creation
Pad Types
| Type | Use For |
|---|---|
smd | Surface-mount pads (no drill hole) |
thru_hole | Through-hole pads (plated drill) |
np_thru_hole | Non-plated through hole (mounting holes, slots) |
Pad Side and Shape Details
create_footprint defaults SMD pads to the front-side layer set
["F.Cu", "F.Paste", "F.Mask"]. For bottom-side SMD pads, set
layers=["B.Cu", "B.Paste", "B.Mask"] explicitly. Through-hole pads default to
["*.Cu", "*.Mask"].
Each pad may also set:
rotationin degrees; omit it for0.roundrect_rratiofrom0through0.5whenshape="roundrect".layersusing only canonical pad layers:F.Cu,B.Cu,F.Paste,B.Paste,F.Mask,B.Mask,*.Cu, and*.Mask.
create_footprint(
...,
pads=[{
number: "1",
type: "smd",
shape: "roundrect",
x: -8.075,
y: 4.7,
width: 2.5,
height: 2.55,
layers: ["B.Cu", "B.Paste", "B.Mask"],
rotation: 180,
roundrect_rratio: 0.2
}]
)
Standard Pad Sizes Reference
| Package | Pad Size (mm) | Pitch (mm) | Notes |
|---|---|---|---|
| 0402 | 0.5 x 0.5 | — | 2 pads, 0.5mm gap |
| 0603 | 0.8 x 0.8 | — | 2 pads, 0.8mm gap |
| 0805 | 1.0 x 1.0 | — | 2 pads, 1.0mm gap |
| 1206 | 1.5 x 1.2 | — | 2 pads, 1.6mm gap |
| SOT-23 | 0.9 x 0.7 | 0.95 | 3 pads |
| SOT-23-5 | 0.9 x 0.7 | 0.95 | 5 pads |
| SOIC-8 | 1.5 x 0.6 | 1.27 | 8 pads, 5.4mm row spacing |
| SOIC-16 | 1.5 x 0.6 | 1.27 | 16 pads, 5.4mm row spacing |
| TSSOP-16 | 1.4 x 0.4 | 0.65 | 16 pads, 4.4mm row spacing |
| QFP-32 | 1.5 x 0.3 | 0.8 | 32 pads, quad-flat |
| QFP-48 | 1.5 x 0.3 | 0.5 | 48 pads, quad-flat |
| QFN-32 | 0.7 x 0.25 | 0.5 | 32 pads + exposed pad |
| QFN-48 | 0.7 x 0.25 | 0.5 | 48 pads + exposed pad |
Courtyard
- Extend courtyard 0.25mm beyond the outermost pad edges on all sides
- This ensures minimum spacing between components during assembly
- Use
F.CrtYdlayer, 0.05mm line width
Footprint Layers
| Layer | Purpose |
|---|---|
| F.Cu | Front copper (pads) |
| B.Cu | Back copper (pads for bottom-side components) |
| F.Mask | Front solder mask opening (auto-generated from pads) |
| B.Mask | Back solder mask opening |
| F.Paste | Front solder paste (stencil openings) |
| B.Paste | Back solder paste (stencil openings) |
| F.SilkS | Front silkscreen (component outline, pin 1 marker) |
| F.CrtYd | Front courtyard (assembly spacing) |
| F.Fab | Front fabrication (true component dimensions) |
Footprint Layout Guidelines
- Pin 1 marker on silkscreen (dot, bar, or chamfered corner)
- Component outline on F.Fab layer with true dimensions
- Silkscreen outline 0.1mm outside F.Fab outline
- Reference (
%R) on F.SilkS, readable at 1.0mm text height - Value on F.Fab layer
Existing Footprint Graphics
Use set_footprint_graphics to add or change line, arc, rectangle, circle, or polygon
primitives in an existing .kicad_mod. Never patch the file directly.
set_footprint_graphics(
footprint path,
selector={layer: "B.CrtYd"},
mode="replace",
graphics=[...]
)
appendpreserves existing supported graphics on the selected layer.replacereplaces all supported graphics on the selected layer in one atomic write.deleteremoves all supported graphics on the selected layer.- Text, pads, properties, models, groups, and graphics on other layers are preserved.
- Replacement/deletion stops with a conflict if a selected graphic belongs to a group; do not work around this by editing the file.
- Polygons close automatically. Supply at least three distinct points; repeating the first point at the end is optional.
- Use
get_footprint_infowith graphics inclusion enabled and a layer filter to verify the resulting type, geometry, stroke width, fill, and item ID.
Existing Footprint Metadata
Use set_footprint_metadata to replace a footprint description, search tags, or
KiCad footprint attributes without changing pads, graphics, properties, groups, or
3D models.
set_footprint_metadata(
footprint_path=".../Part.kicad_mod",
description="Optional replacement",
tags=["keyboard", "hot_swap"],
attributes=["exclude_from_pos_files"]
)
- Supply at least one metadata field.
- Only supplied fields change.
- Empty
tagsorattributesremoves the corresponding block. exclude_from_pos_filesomits the footprint from pick-and-place output without implicitly addingexclude_from_bom.- Use
edit_footprint_padwithnew_numberand optionalmatch_all=trueto renumber one or every matching direct-child pad atomically.
Existing Footprint 3D Models
Use set_footprint_models to append, replace, or delete top-level 3D model
associations without changing any non-model footprint content.
set_footprint_models(
footprint_path=".../Part.kicad_mod",
mode="replace",
models=[{
path: "../models/Part.step",
offset: {x: 0, y: 0, z: 0},
scale: {x: 1, y: 1, z: 1},
rotate: {x: 0, y: 0, z: 90}
}]
)
appendandreplacerequire at least one model.deleterequires models to be omitted or empty and removes every top-level model.- Omitted transforms default to offset
0/0/0, scale1/1/1, and rotation0/0/0. - Multiple model blocks are written in payload order in one atomic operation.
Library Registration
Register a Symbol Library
register_symbol_library(nickname, library_path, scope?, project?, replace_existing?)
Register a Footprint Library
register_footprint_library(nickname, library_path, scope?, project?, replace_existing?)
- Registration is idempotent by default: an existing nickname is left unchanged.
- Set
replace_existing=trueto update a stale URI for that nickname in place. - Project-local and same-repository sibling libraries are written as portable
${KIPRJMOD}URIs; existing options, descriptions, and unrelated entries are preserved.
Scope
| Scope | Location | Visible To |
|---|---|---|
global | User-level sym-lib-table | All projects |
project | Project-level sym-lib-table | This project only |
Recommendation: Use project scope for project-specific custom parts.
Use global scope only for reusable personal libraries used across multiple projects.
Library File Locations
- Symbol libraries:
*.kicad_symfiles - Footprint libraries: directories containing
*.kicad_modfiles - Project-level tables:
sym-lib-tableandfp-lib-tablein project directory
IPC Naming Conventions (Brief Reference)
Standard footprint naming follows IPC-7351:
[Type]_[Dimensions]_[Pitch]_[Suffix]
Examples:
R_0402_1005Metric— 0402 resistor (1.0x0.5mm metric)C_0805_2012Metric— 0805 capacitor (2.0x1.2mm metric)SOIC-8_3.9x4.9mm_P1.27mm— SOIC-8 with 1.27mm pitchQFN-32-1EP_5x5mm_P0.5mm— QFN-32 with exposed pad, 5x5mm bodySOT-23— SOT-23 3-pinTSSOP-16_4.4x5mm_P0.65mm— TSSOP-16 with 0.65mm pitch
Dimension format: LxW in mm (body dimensions, not pad-to-pad).
Common Workflows
Create a New IC Symbol + Footprint
search_symbols(query)— pass the part name; confirm it does not existsearch_footprints(query)— pass the package name; check if the footprint exists (often it does)- Create symbol with correct pin count, names, numbers, and types
- Assign existing footprint OR create custom footprint from datasheet
- Register library if new
- Set Footprint property on symbol to link them
Add LCSC Number to Existing Components
- Load
sch_analysistoolset - Find components missing LCSC field
- Search JLCPCB parts for matching part numbers
- Update component fields with LCSC numbers
Create Project-Specific Library
- Create new
.kicad_symfile for symbols - Create new directory for footprints
- Register both with
projectscope - Add custom components as needed
Rules
- Always search before creating — most parts already exist in KiCAD libraries
- Never edit .kicad_sym or .kicad_mod directly — use MCP tools only
- Follow pin numbering conventions — IC pins counter-clockwise from pin 1
- Set pin types correctly — ERC depends on accurate pin types
- Include all required properties — Reference, Value, Footprint, Datasheet
- Use 0.25mm courtyard margin — standard clearance for assembly
- Mark pin 1 clearly — both on symbol and footprint silkscreen
- Use project scope by default — avoid polluting global libraries
- Name footprints per IPC — consistent naming helps future reuse
- Load toolsets first — check
get_active_toolsets()and loadlibrarybefore starting - Use layer-scoped graphic edits deliberately —
replaceanddeleteaffect every supported primitive on the selected layer
Frequently asked questions
What to verify before installation and use
What does the kicad-library source document cover?
This skill guides Claude through creating and managing KiCAD symbols, footprints, and libraries using Konnect MCP tools. ALL modifications go through MCP tools — never edit .kicadsym or .kicadmod files directly.
How do I install kicad-library?
The source record exposes this install command: npx skills add https://github.com/mixelpixx/Konnect --skill "crates/konnect/assets/skills/kicad-library". Inspect the command and pinned source before running it.
Which permission-related actions were detected?
Static rules flagged write-files in the source; the page lists the matching lines and excerpts.
Alternatives
Compare before choosing
garrytan/gbrain
bulk-ingestion
End-to-end discipline for turning any large data source (audio libraries, email takeouts, document corpora, chat exports, API dumps) into brain pages at scale. The lifecycle spine: SCHEMA → ACCESS → TRIAL → EVALUATE → IMPROVE → CODIFY → TEST → SKILLIFY → BULK → MONITOR. State is tracked in a durable JSON manifest (see MANIFEST-PATTERN.md) so any crash, session boundary, or subagent fan-out resumes from ground truth instead of memory.
alirezarezvani/claude-skills
app-store-optimization
App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist
wanshuiyin/Auto-claude-code-research-in-sleep
citation-audit
Use it for operations and research tasks; the detail page covers purpose, installation, and practical steps.
prowler-cloud/prowler
postgresql-indexing
PostgreSQL indexing best practices for Prowler: index design, partial indexes, partitioned table indexing, EXPLAIN ANALYZE validation, concurrent operations, monitoring, and maintenance. Trigger: When creating or modifying PostgreSQL indexes, analyzing query performance with EXPLAIN, debugging slow queries, reviewing index usage statistics, reindexing, dropping indexes, or working with partitioned table indexes. Also trigger when discussing index strategies, partial indexes, or index maintenance