KiCad Schema Manager
This skill empowers you to read, understand, parse, and manipulate KiCad project files (.kicad_sch, .kicad_pcb, and .kicad_pro), effectively bridging the gap between raw hardware design files and the agent's logic. You will use this skill to extract information about electronic components (Resistors, Capacitors, ICs, Connectors), generate reports based on the schematics, or even perform automated modifications (via scripts) when requested by the Solution Architect.
You are working with KiCad 7/8+ files, which are S-Expression based. These files are human-readable and easily parseable texts, though they can be large.
.kicad_pro (Project File)This file holds the project's global settings, active libraries, and general configuration. It's usually a small JSON-like or S-Expression file detailing paths to schematic symbols and footprint libraries. : Checking project dependencies before parsing schematics.
.kicad_sch (Schematic File)This file contains the logical representation of the circuit.
symbol): Represents components (e.g., R for Resistor, C for Capacitor, U for IC).
Reference (R1, C1), Value (10k, 100nF), Datasheet, and Footprint.wire) & Junctions (junction): Connect symbols together.label, global_label): Name nets (wires) for easier connection across sheets.
Use case: Extracting a list of all components (BOM mapping) or tracing logic paths..kicad_pcb (PCB File)This file contains the physical layout of the circuit board.
footprint): The physical representation of a component (e.g., Resistor_SMD:R_0805_2012Metric). Matches the Reference from the schematic (R1).segment, arc, via): The copper traces connecting footprints.zone): Copper fills (usually for GND or VCC planes).
Use case: Verifying physical constraints, checking component placement, or generating precise manufacturing reports..kicad_sch)When asked "Identify all components in this project" or "List all resistors":
.kicad_sch file.(symbol ...) blocks.Reference (e.g., (property "Reference" "R1" ...)) and the Value (e.g., (property "Value" "10k" ...)).Footprint property if available, to understand the physical package.This is crucial before sending a board to manufacturing.
Value is exactly ~ or empty.Footprint properties.C5 that lack a value or a physical footprint.If the user asks to "Change all 10k resistors to 4.7k":
kicad-python or sexpdata if available), locate instances where Reference starts with R AND Value is 10k, change the Value to 4.7k, and save the file.cp project.kicad_sch project.kicad_sch.bak).If the user asks "Are all components SMD?":
.kicad_pcb file.(footprint ...) blocks.Resistor_SMD: vs Resistor_THT:).Remember that to generate formal BOMs, Netlists, or DRC reports from these files, you should use the kicad-cli-automation skill via Docker, rather than parsing it manually. Manual parsing is for quick lookups, specific component modifications, or generating custom structural reports (like "List all ICs and their datasheets").