Kicad-happy datasheets
Extract structured specifications from electronic component datasheet PDFs — pinouts, electrical characteristics, peripherals, topology, and features. Cache extractions per project for consumption by schematic and PCB analyzers. Primary consumer infrastructure for `kicad`, `emc`, `spice`, and `thermal` analyzers. Use this skill whenever the user asks to extract, verify, or read specs from a component datasheet; when analyzers need verified IC knowledge (EN pin thresholds, PG presence, USB peripheral speed); or when a review mentions datasheet coverage, extraction quality, or per-MPN specifications. Also triggers on "extract this datasheet", "what are the specs for MPN X", "verify datasheet extraction", or "check pin functions for part Y".
git clone https://github.com/aklofas/kicad-happy
T=$(mktemp -d) && git clone --depth=1 https://github.com/aklofas/kicad-happy "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/datasheets" ~/.claude/skills/aklofas-kicad-happy-datasheets && rm -rf "$T"
skills/datasheets/SKILL.mdDatasheets Skill
Purpose
Extract structured, machine-readable specifications from component datasheet PDFs and make them available to analyzer skills. Works on whatever PDFs are downloaded under
<project>/datasheets/ (downloads are owned by distributor skills like digikey, mouser, lcsc, element14).
Scope
This skill owns:
- Extraction schema — the canonical JSON structure for per-MPN specs. Versioned via
inEXTRACTION_VERSION
.scripts/datasheet_extract_cache.py - PDF page selection — heuristics to pick pages most likely to contain pinouts, e-chars, applications, SPICE models.
- Quality scoring — weighted rubric (pin coverage, voltage ratings, application info, electrical chars, SPICE specs).
- Consumer API — helpers in
for other skills to query specific fields (e.g.,scripts/datasheet_features.py
,get_regulator_features(mpn)
).get_mcu_features(mpn) - Verification — consistency checks between extracted data and schematic/PCB usage.
Non-goals
- No PDF downloading. That is owned by distributor skills (
,digikey
,mouser
,lcsc
).element14 - No global library. Each project's extractions live in
. There is no shared cross-project cache.<project>/datasheets/extracted/
Cache location
<project>/ design.kicad_sch datasheets/ TPS61023DRLR.pdf # downloaded by distributor skills extracted/ manifest.json # extraction manifest (legacy name: index.json) TPS61023DRLR.json # structured extraction (this skill's output)
Reference guides
— canonical schema, every field definedreferences/extraction-schema.md
— how to find each field in datasheets from common vendors (TI, ST, NXP, Espressif, Microchip)references/field-extraction-guide.md
— rubric details, score thresholdsreferences/quality-scoring.md
— how kicad/emc/spice/thermal consume extractionsreferences/consumer-api.md
Entry-point scripts
— cache manager, resolver, indexerscripts/datasheet_extract_cache.py
— page selection heuristicsscripts/datasheet_page_selector.py
— extraction quality scoringscripts/datasheet_score.py
— cross-check extraction vs schematic usagescripts/datasheet_verify.py
— consumer helper API (new in v1.3)scripts/datasheet_features.py
Extraction workflow
- User runs an analyzer or requests extraction.
- This skill checks the cache (
).<project>/datasheets/extracted/<MPN>.json - On cache miss / stale / low score: Claude reads selected PDF pages and extracts structured data.
- Extraction is scored; if score ≥ 6.0, cached.
- Consumers query via
.datasheet_features.py
When to trigger this skill
- Immediately after downloading datasheets via
,sync_datasheets_digikey.py
, or equivalent. Without extraction, IC-aware checks (VM-001 rail voltage, PS-001 power-good, PR-004 USB, DP-002 USB speed classification) fall back to heuristics on unknown ICs.sync_datasheets_lcsc.py - Before running analyzers on a new project where datasheets are present but
is empty — the analyzers won't produce the extractions themselves.datasheets/extracted/ - When a review flags low trust level due to missing manufacturer evidence: extracting the ICs referenced by power regulators, MCUs, and high-speed peripherals typically flips
→trust_level: low
ormixed
.high - When a user asks for pin verification ("verify U1 pin names match datasheet") — this skill's cached extraction is the authoritative source.