Specification
Skill ID
aklofas/kicad-happy/kicad
Publisher
aklofas
Repository
kicad-happy
Installs
0
Files
82
Synced
Sep 23, 2026
How to use it

Open any RiverX project, open the Skills panel in the chat, and search for this identifier. The files are fetched from the source repository at install time.

aklofas/kicad-happy/kicadInstalls these files
  • SKILL.md
  • references/config-reference.md
  • references/datasheet-verification.md
  • references/deep-review.md
  • references/design-intent.md
  • references/diff-analysis.md
  • references/file-formats.md
  • references/gerber-parsing.md
  • references/manual-gerber-parsing.md
  • references/manual-pcb-parsing.md
  • references/manual-schematic-parsing.md
  • references/net-tracing.md
  • references/oshwa-certification.md
  • references/output-schema.md
  • references/pcb-layout-analysis.md
  • references/pdf-schematic-extraction.md
  • references/report-generation.md
  • references/schematic-analysis.md
  • references/standards-compliance.md
  • references/supplementary-data-sources.md
  • references/what-if.md
  • review/README.md
  • review/fixtures/deep_review.example.json
  • review/fixtures/design_context.example.json
  • review/fixtures/review_annotations.example.json
  • review/prompts/design_context.md
  • review/schemas/deep_review.schema.json
  • review/schemas/design_context.schema.json
  • review/schemas/review_annotations.schema.json
  • review/scripts/_mini_jsonschema.py
  • review/scripts/build_review_plan.py
  • review/scripts/deep_review_gate.py
  • review/scripts/merge_annotations.py
  • review/scripts/run_phase4_exercise.py
  • review/scripts/validate_review.py
  • scripts/.gitignore
  • scripts/README.md
  • scripts/analysis_cache.py
  • scripts/analyze_gerbers.py
  • scripts/analyze_pcb.py
  • scripts/analyze_schematic.py
  • scripts/analyze_thermal.py
  • scripts/analyzer_envelope.py
  • scripts/bus_resolver.py
  • scripts/capability_mode.py
  • scripts/check_report_sections.py
  • scripts/cross_analysis.py
  • scripts/cross_verify.py
  • scripts/detection_schema.py
  • scripts/detector_helpers.py
  • scripts/diff_analysis.py
  • scripts/domain_detectors.py
  • scripts/envelopes/__init__.py
  • scripts/envelopes/cross_analysis.py
  • scripts/envelopes/gerber.py
  • scripts/envelopes/pcb.py
  • scripts/envelopes/schematic.py
  • scripts/envelopes/thermal.py
  • scripts/export_issues.py
  • scripts/fab_release_gate.py
  • scripts/finding_schema.py
  • scripts/gen_output_schema_md.py
  • scripts/inputs_builder.py
  • scripts/kicad_types.py
  • scripts/kicad_utils.py
  • scripts/lifecycle_audit.py
  • scripts/lookup_detectors.py
  • scripts/lookup_helpers.py
  • scripts/methodology_gerbers.md
  • scripts/methodology_pcb.md
  • scripts/methodology_schematic.md
  • scripts/netlist_queries.py
  • scripts/output_filters.py
  • scripts/pcb_connectivity.py
  • scripts/project_config.py
  • scripts/run_id.py
  • scripts/schema_codec.py
  • scripts/sexp_parser.py
  • scripts/signal_detectors.py
  • scripts/summarize_findings.py
  • scripts/validation_detectors.py
  • scripts/what_if.py

What this skill tells the agent

KiCad Project Analysis Skill

Related Skills

SkillPurpose
bomBOM extraction, enrichment, ordering, and export workflows
digikeySearch DigiKey for parts (prototype sourcing)
mouserSearch Mouser for parts (secondary prototype source)
lcscSearch LCSC for parts (production sourcing, JLCPCB)
element14Search Newark/Farnell/element14 (international sourcing, reliable datasheets)
jlcpcbPCB fabrication & assembly ordering
pcbwayAlternative PCB fabrication & assembly
spiceSPICE simulation verification of detected subcircuits
emcEMC pre-compliance risk analysis — consumes schematic + PCB analyzer output

Handoff guidance: Use this skill to parse schematics/PCBs and extract structured data. Hand off to bom for BOM enrichment, pricing, and ordering. Hand off to digikey/mouser/lcsc/element14 for part searches and datasheet fetching. Hand off to jlcpcb/pcbway for fabrication ordering and DFM rule validation. Always run `spice` for simulation verification during design reviews when any SPICE simulator is installed (check with which ngspice ltspice xyce). Always run `emc` for EMC pre-compliance risk analysis during design reviews when both schematic and PCB analysis are available. These are not optional — skipping them leaves value-computation errors and EMC risks undetected.

Before analysis: When the user asks to analyze or review a KiCad project, check whether a datasheets/ directory exists in the project. If not, and DigiKey API keys are available (DIGIKEY_CLIENT_ID), offer to sync datasheets first: "I can download datasheets for your components before analysis — this enables pin-level verification and decoupling validation against manufacturer specs. Want me to sync them?" If the user declines or no API keys are set, proceed without datasheets — the analysis works without them but datasheet verification findings won't be available.

If you see a `DS-001` finding in the analyzer output (severity high, detector audit_datasheet_coverage), the review cannot make any verified claim. Stop and either (a) run the datasheet sync via digikey / mouser / lcsc / element14 (whichever has credentials/stock), (b) populate MPNs on the BOM parts, or (c) state explicitly in the report that every pin-level, electrical, and regulator finding is consistency only — do not use the words "verified", "confirmed", or "per datasheet" anywhere. DS-002 (datasheets missing but MPNs set) and DS-003 (partial MPN coverage) are softer variants with the same implication for the parts they cite.

Design Review Contract

When the user asks for a design review, complete report, ready-to-fab assessment, or anything equivalent, do not stop at running one or two analyzers and summarizing their findings. A design review in this skill has a stricter contract:

  1. Read the full workflow in this SKILL.md, not just the analyzer command sections.
  2. Read references/report-generation.md before writing the report.
  3. Run every applicable analyzer for the files present in the project, then say explicitly which ones were and were not run.
  4. Perform raw-file and datasheet cross-verification before claiming anything is "verified".
  5. Triage likely analyzer false positives before elevating them into blockers.
  6. If a required step could not be done, state it as a review gap, not as silent omission.

Treat this as the minimum bar. Analyzer JSON alone is not the final review.

Minimum Review Checklist

For a full design review, explicitly account for each item below in the report:

  • datasheets/ present, synced, or verification gap stated
  • analyze_schematic.py
  • analyze_pcb.py --full
  • cross_analysis.py
  • analyze_emc.py
  • SPICE simulation when any simulator is installed
  • analyze_thermal.py when both schematic and PCB JSON exist
  • analyze_gerbers.py when fabrication outputs exist
  • lifecycle audit when network access and MPN coverage allow it
  • prior review / prior run delta check
  • raw schematic/PCB spot-verification elevated to full verification for critical parts
  • explicit report sections for blockers, verification basis, false positives, and skipped analyses

If an item is not applicable, say why. If it was skipped, say why. If it failed, say how that limits confidence.

Common Review Failure Modes

These are the failure modes this contract is meant to prevent:

  • Stopping after schematic + PCB + EMC output and calling it a complete review
  • Reporting analyzer findings without checking whether they are expected layout artifacts
  • Claiming "verified" without direct datasheet evidence or structured extraction evidence
  • Omitting thermal, lifecycle, prior-review delta, or gerber checks without disclosure
  • Writing a report that lacks a verdict, blockers table, verification basis, or skipped-analysis notes
  • Reading only the first part of this skill and missing the design-review workflow later in the file

PDF Schematic Analysis

This skill also handles PDF schematics — reference designs, dev board schematics, eval board docs, application notes, and datasheet typical-application circuits. Common use cases:

  • Analyze a manufacturer's reference design to understand the circuit
  • Extract a subcircuit (power supply, USB interface, sensor front-end) to incorporate into your own KiCad design
  • Compare a PDF reference design against your own schematic
  • Extract a full BOM from a PDF schematic
  • Validate component values in a PDF against current datasheets

Workflow: Read the PDF pages visually → identify components and connections → extract structured data → translate to KiCad symbols and nets → validate against datasheets.

For the full methodology — component extraction, notation conventions, net mapping, subcircuit extraction, KiCad translation, and validation — read references/pdf-schematic-extraction.md.

For deep validation of extracted circuits against datasheets (verifying values, checking patterns, detecting errors), use the methodology in references/schematic-analysis.md.

Analysis Scripts

This skill includes Python scripts that extract comprehensive structured JSON from KiCad files in a single pass. Run these first, then reason about the output.

Read analyzer JSON output directly rather than writing ad-hoc extraction scripts. The JSON schema has specific field names (documented below and in references/output-schema.md) that are easy to get wrong in custom code. To extract a specific section: python3 -c "import json; d=json.load(open('file.json')); print(json.dumps(d['key'], indent=2))".

When the JSON surprises you — an AttributeError, unexpected shape, field returning None that "should" have a value — stop and run --schema before writing a second extraction attempt. It prints the exact field names and types for every top-level key:

python3 <skill-path>/scripts/analyze_schematic.py --schema
python3 <skill-path>/scripts/analyze_pcb.py --schema
python3 <skill-path>/scripts/analyze_gerbers.py --schema

JSON field cheat sheet — the most common mistakes when reading analyzer output by hand:

What you wantCorrect path and fieldCommon mistake
Pins on a netnets[<name>].pins[].component / .pin_number / .pin_name / .pin_typeref, pin, type, number
Unnamed-net pretty displaynets[<name>].display_name — when set, a Ref.PinName hint for an __unnamed_N net whose only named IC pin tells the story (e.g. __unnamed_36 → U1.VBOOT). Absent means the analyzer couldn't disambiguate.Ignoring display_name and pasting raw __unnamed_36 into the report

More from aklofas

Use this skill in a project

Open any RiverX project, search the Skills panel for aklofas/kicad-happy/kicad, and install it in one click.

Use this skill