Source profileQuality 97/100

mixelpixx/Konnect/crates/konnect/assets/skills/kicad-pcb/SKILL.md

kicad-pcb

Workflow skill for KiCAD PCB layout and routing via MCP tools. Triggers on: "layout the board", "route traces", "PCB", "place footprints", "copper pour", "board outline", "differential pair", "board setup", "track width", "via", "zone", "design rules", "stackup", "silkscreen".

Source repository stars
333
Declared platforms
0
Static risk flags
0
Last source update
2026-08-26
Source checked
2026-08-26

Decision brief

What it does: where it fits

This skill guides Claude to perform PCB layout using Konnect MCP tools. ALL modifications go through MCP tools — never edit .kicadpcb files directly.

Best for

    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

    PlatformStatusEvidenceWhat to check
    CodexNot declaredNo explicit evidencePortability before use
    Claude CodeNot declaredNo explicit evidencePortability before use
    CursorNot declaredNo explicit evidencePortability before use
    Gemini CLINot declaredNo explicit evidencePortability before use
    Open the compatibility checker

    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.

    Source-detected install commandSource
    npx skills add https://github.com/mixelpixx/Konnect --skill "crates/konnect/assets/skills/kicad-pcb"
    Safe inspection promptEditorial

    Inspect the Agent Skill "kicad-pcb" from https://github.com/mixelpixx/Konnect/blob/35f01c43291ecea612e147e0f454a0208948f704/crates/konnect/assets/skills/kicad-pcb/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

    1. 01

      Layer Usage Guidelines

      Route signals on F.Cu and B.Cu (2-layer) or add inner layers for complex boards

      Route signals on F.Cu and B.Cu (2-layer) or add inner layers for complex boardsBoard outline MUST be on Edge.Cuts (closed polygon or rectangle)Silkscreen for reference designators and polarity marks
    2. 02

      Prerequisites

      Most PCB layout operations require KiCAD to be running with the board file open. The IPC connection communicates with the running KiCAD instance in real-time.

      Tell the user to open KiCAD and load the projectThe board (.kicadpcb) must be open in the PCB editorKiCAD's IPC API must be enabled (default in KiCAD 8+)
    3. 03

      Toolset Loading

      Before any PCB work, load the required toolsets:

      Before any PCB work, load the required toolsets:Zones (pcbboard: addzone; pcbrouting: addcopperpour), component/net queries (pcbcomponents: findcomponent, getcomponentlist; pcbboard: getboardinfo), and bulk placement (pcbcomponents: placecomponentarray, aligncomponen…Load additional toolsets as needed:
    4. 04

      Layout Order

      Follow this sequence for a clean PCB workflow:

      Board outline — setboardsize or draw Edge.Cuts geometryUpdate from schematic — call updatepcbfromschematic first withRefresh changed libraries — when a linked footprint library changed, use
    5. 05

      Placement

      Group components by functional block (power, digital, analog, connectors)

      Group components by functional block (power, digital, analog, connectors)Place ICs first, then their associated passivesDecoupling caps: within 2mm of their IC power pins, on same layer

    Permission review

    Static risk signals and limitations

    No configured static risk pattern was detected

    This is not proof of safety. Runtime behavior, indirect dependencies, and hidden external systems are outside the static scan.

    Evidence record

    Why each signal appears

    EvidenceSourceComputedTestedEditorial
    SignalValueEvidence typeMeaning
    Quality score97/100ComputedDocumentation, specificity, maintenance, and trust rules
    Repository stars333SourceRepository attention, not individual Skill quality
    Compatibility0 platformsSourceDeclared in the catalog source record
    Usage guideautomated source guideEditorialGenerated 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-pcb/SKILL.md
    Commit
    35f01c43291ecea612e147e0f454a0208948f704
    License
    AGPL-3.0
    Collected
    2026-08-26
    Default branch
    main
    View the original SKILL.md

    KiCAD PCB Layout Workflow

    This skill guides Claude to perform PCB layout using Konnect MCP tools. ALL modifications go through MCP tools — never edit .kicad_pcb files directly.


    Prerequisites

    Most PCB layout operations require KiCAD to be running with the board file open. The IPC connection communicates with the running KiCAD instance in real-time.

    place_component, move_component, rotate_component, and flip_component are narrow exceptions for closed boards. Placement, move, and rotation fall back when IPC is unreachable. Flip intentionally requires IPC to be unreachable because KiCAD's typed IPC API has no native footprint-flip command. The file paths use revision-aware atomic writes: placement preserves pads, graphics, attributes, and models; moves preserve the existing angle; rotations update the footprint and its child angles; flips mirror supported geometry and swap front/back layers. If KiCAD is reachable and rejects a request, the fallback stays disabled to avoid racing a live editor.

    If connection fails:

    • Tell the user to open KiCAD and load the project
    • The board (.kicad_pcb) must be open in the PCB editor
    • KiCAD's IPC API must be enabled (default in KiCAD 8+)

    Toolset Loading

    Before any PCB work, load the required toolsets:

    load_toolset('pcb_board')        # board outline, layers, setup, stackup
    load_toolset('pcb_components')   # place, refresh, move, rotate, align footprints
    load_toolset('pcb_routing')      # traces, vias, differential pairs
    load_toolset('sch_export')       # update PCB from the saved schematic hierarchy
    

    Zones (pcb_board: add_zone; pcb_routing: add_copper_pour), component/net queries (pcb_components: find_component, get_component_list; pcb_board: get_board_info), and bulk placement (pcb_components: place_component_array, align_components, duplicate_component) are already covered by the toolsets loaded above.

    Load additional toolsets as needed:

    load_toolset('config')           # design rule storage: add_design_rule, list_design_rules
    load_toolset('verification')     # run_drc, set_design_rules, get_design_rules, check_clearance
    

    Always call get_active_toolsets() first to see what is already loaded.


    Layout Order

    Follow this sequence for a clean PCB workflow:

    1. Board outlineset_board_size or draw Edge.Cuts geometry
    2. Update from schematic — call update_pcb_from_schematic first with dry_run: true. Review status, coverage, diagnostics, and staged positions. Apply only with dry_run: false and the exact returned expected_plan_revision value. The saved schematic hierarchy must be closed in the schematic editor, and the target board must be open in KiCad. A conflict is non-mutating; resolve it and rerun the dry run. A successful apply is one KiCad undo entry, so Ctrl-Z reverses the whole update.
    3. Refresh changed libraries — when a linked footprint library changed, use update_footprints_from_library, the MCP equivalent of KiCad Tools → Update Footprints from Library. This is distinct from update_pcb_from_schematic: it refreshes supported library-owned pads, graphics, attributes, metadata, and 3D models without changing references, placement, side, rotation, KIID, symbol metadata, instance overrides, or pad nets. Always call it first with dry_run: true; apply only with dry_run: false and the exact returned expected_plan_revision. The requested board must be open in live KiCad, one apply is one undo entry, and unsupported or stale content returns a non-mutating conflict instead of silently dropping it.
    4. Place components — position all footprints
    5. Route traces — connect all nets
    6. Copper pour — add ground/power zones last
    7. DRC — run design rule check
    8. Savesave_project

    Do NOT add copper pours before routing is complete — they interfere with interactive routing.


    Placement

    Strategy

    • Group components by functional block (power, digital, analog, connectors)
    • Place ICs first, then their associated passives
    • Decoupling caps: within 2mm of their IC power pins, on same layer
    • Connectors: at board edges, accessible for cables
    • High-frequency components: minimize trace lengths between them
    • Thermal considerations: power components away from sensitive analog

    Placement Tools

    ToolUse Case
    place_componentPosition one footprint via IPC or safe file fallback
    update_footprints_from_libraryRefresh placed definitions from linked libraries
    move_componentRelocate a footprint via IPC or safe file fallback
    rotate_componentRotate a footprint via IPC or safe file fallback
    flip_componentSet F.Cu/B.Cu on a closed board with geometry mirroring
    align_componentsAlign multiple components (top/bottom/left/right/center)
    place_component_arrayGrid placement for repeated elements

    Placement Tips

    • Use mm coordinates (KiCAD default for PCB)
    • Standard grid: 0.5mm for placement, 0.25mm for fine adjustment
    • Check component courtyard overlaps after placement
    • Reference designator text: F.SilkS layer, 1mm height default

    Routing

    Routing Tools

    ToolUse Case
    route_pad_to_padDirect connection, auto L-bend routing
    route_traceManual segment-by-segment routing
    route_differential_pairMatched-length USB/LVDS/Ethernet pairs
    add_viaLayer transition
    create_netclassDefine width/clearance rules for net groups

    route_pad_to_pad

    The primary routing tool. Looks up both pad positions on the board and lays an L-shaped trace between them.

    route_pad_to_pad(board, net_name, ref1, pad1, ref2, pad2, layer?, width?)
    
    • Emits one segment when the pads already share an X or Y, two otherwise
    • Specify width in mm (e.g., 0.25 for signal, 0.5 for power)
    • Routes entirely on layer (default F.Cu) — it does not add a via. To change layer mid-route, place the via yourself with add_via and route each side separately

    route_trace

    One straight segment between two explicit points, for when you want to control the path yourself.

    route_trace(board, net_name, layer, x1, y1, x2, y2, width?)
    
    • Use when auto-routing creates suboptimal paths
    • There is no waypoint list: call it once per segment to build a polyline
    • Coordinates are board-space mm

    route_differential_pair

    For differential signals (USB, HDMI, Ethernet, LVDS).

    route_differential_pair(board, net_pos, net_neg, x1, y1, x2, y2, gap?, layer?, width?)
    
    • Lays two straight traces parallel to the given line, offset (gap + width)/2 either side, so spacing is constant along the segment
    • Not a length-matching router: it adds no serpentine tuning, and equal length only follows from the two traces being parallel segments. Skew introduced before or after this call is yours to correct
    • Common pairs: USB_D+/USB_D-, LVDS_P/LVDS_N

    Netclasses

    Define routing rules for groups of nets:

    create_netclass(board, name, trace_width?, clearance?, via_drill?, via_diameter?)
    

    The class is written to the project's .kicad_pro file, which is where KiCad has kept netclasses since v7 — the board file is not modified.

    Common netclass configurations:

    • Signal: 0.25mm track, 0.2mm clearance
    • Power: 0.5-1.0mm track, 0.3mm clearance
    • USB: 0.3mm track, 0.15mm spacing (90 ohm differential)

    Via Defaults

    • Standard signal via: 0.4mm drill, 0.8mm pad diameter
    • Power via: 0.6mm drill, 1.0mm pad diameter
    • Micro via (HDI): 0.1mm drill, 0.3mm pad diameter

    Copper Pour

    Zone tools live in the pcb_board toolset.

    add_zone

    Creates a copper pour area (polygon fill).

    add_zone(board, net_name, layer, points, clearance?, min_width?,
             name?, priority?, pad_connection?)
    
    • Almost always GND net on both F.Cu and B.Cu
    • points is the outline polygon; define it slightly inside the board edge (0.5mm inset)
    • priority defaults to 0; the higher priority wins where two pours overlap
    • pad_connection is solid | thermal | none, defaulting to thermal as KiCad does
    • With KiCad running on this board the zone is created over IPC and refilled for you, so it appears at once and is in KiCad's undo stack. Without a live KiCad it goes into the file instead, and the result says so (source: file) and carries a warning — a file-only edit is invisible to an open pcbnew and is lost on its next save

    refill_zones

    Must call refill_zones after any change that affects copper pour:

    • After adding/moving components
    • After routing new traces
    • After modifying zone outlines
    • After changing design rules

    Zones do not auto-update — stale fills cause DRC errors.

    Zone Tips

    • GND pour on both layers is standard practice
    • Leave spoke thermal reliefs for through-hole pads (easier soldering)
    • Use keepout zones to prevent copper in sensitive areas
    • Zone clearance typically 0.3-0.5mm from traces

    Layer Reference

    LayerNamePurpose
    F.CuFront CopperTop copper traces and pads
    B.CuBack CopperBottom copper traces and pads
    F.SilkSFront SilkTop silkscreen (text, outlines)
    B.SilkSBack SilkBottom silkscreen
    F.MaskFront MaskTop solder mask openings
    B.MaskBack MaskBottom solder mask openings
    Edge.CutsBoard OutlinePhysical board boundary
    F.FabFront FabTop fabrication drawing
    B.FabBack FabBottom fabrication drawing
    F.CrtYdFront CourtyardTop component clearance area
    B.CrtYdBack CourtyardBottom component clearance area
    In1.CuInner 1Internal copper layer 1
    In2.CuInner 2Internal copper layer 2

    Layer Usage Guidelines

    • Route signals on F.Cu and B.Cu (2-layer) or add inner layers for complex boards
    • Board outline MUST be on Edge.Cuts (closed polygon or rectangle)
    • Silkscreen for reference designators and polarity marks
    • Courtyard defines minimum spacing between components
    • Use F.Fab/B.Fab for assembly drawings and component outlines

    Design Rule Check

    After completing layout:

    run_drc()
    

    Common DRC errors and fixes:

    • Clearance violation: move trace or component further apart
    • Unconnected net: route missing connection
    • Track too close to edge: move inward from board outline
    • Courtyard overlap: increase spacing between components
    • Zone fill error: run refill_zones

    Rules

    1. Never edit .kicad_pcb directly — all changes go through MCP tools
    2. Always verify placement after moves — components may snap to unexpected positions
    3. Board outline first — define the physical boundary before placing anything
    4. Refill zones after changes — stale zone fills cause phantom DRC errors
    5. Check DRC before finishing — run run_drc() and resolve all errors
    6. Use netclasses for consistency — define track widths per net type, not per trace
    7. KiCAD normally must be runningplace_component, move_component, and rotate_component have safe IPC-unreachable file fallbacks; flip_component requires a closed board; other PCB edits still require the live IPC connection
    8. Save frequently — call save_project after major operations
    9. Load toolsets first — check get_active_toolsets() and load what you need
    10. Copper pour last — add zones only after routing is substantially complete

    Frequently asked questions

    What to verify before installation and use

    What does the kicad-pcb source document cover?

    This skill guides Claude to perform PCB layout using Konnect MCP tools. ALL modifications go through MCP tools — never edit .kicadpcb files directly.

    How do I install kicad-pcb?

    The source record exposes this install command: npx skills add https://github.com/mixelpixx/Konnect --skill "crates/konnect/assets/skills/kicad-pcb". Inspect the command and pinned source before running it.

    Alternatives

    Compare before choosing

    Computed 10014,678

    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

    Computed 100146

    oaustegard/claude-skills

    featuring

    Generate hierarchical _FEATURES.md files that describe what a codebase DOES from a user/consumer perspective, anchored to source symbols via tree-sitting. Supports large complex codebases through feature-driven decomposition into sub-feature files. Uses a multi-pass synthesis: orientation → detail → overview rewrite. Use when someone says "what does this do", "document features", "feature inventory", "_FEATURES.md", or needs to understand a codebase's purpose before modifying it. Complements tre

    Computed 9931,714

    HKUDS/Vibe-Trading

    strategy-generate

    Create, modify, and optimize quantitative trading strategies, then backtest and evaluate them.

    Computed 9981

    vasilyu1983/AI-Agents-public

    qa-testing-ios

    Guides iOS testing with XCTest, XCUITest, Swift Testing, simctl, and xcresult. Use when choosing destinations, controlling flakes, or parsing test artifacts for native apps.