SKILL.md
$27
- Registry search is richly indexed — it supports MPN search, manufacturer name search, semantic/functional queries, and lexical keyword matching. Use descriptive queries freely:
"buck converter 3.3V","Texas Instruments LDO","USB-C connector".
- Web components search is strict MPN-only. Only use exact or partial manufacturer part numbers:
"TPS54331","STM32F103C8T6". Do NOT include descriptions, keywords, or functional terms in the query — they will cause the search to fail or return irrelevant results. Strip everything except the MPN.
- All commands output JSON with
-f json. Parse results programmatically to evaluate options.
- Registry results include
dependencies(what they use) anddependents(who uses them) for context.
- Web results include
model_availabilityshowing whether ECAD and STEP models are available. The same MPN may appear from multiple sources (DigiKey, CSE, LCSC) with different model availability; check all returned results before concluding models are unavailable.
- Try multiple queries. Parts go by different names — full MPN, base family, orderable variant, manufacturer alias. If the first search doesn't find what you need, try alternative names before giving up.
- Use
pcb doc --package <url>@<version>to inspect a registry module's io/config interface before using it.
Choosing Between Results
Pick when there's a clear winner. Present tradeoffs and ask only when genuinely ambiguous.
Selection heuristics in priority order:
- Functional fit — does it meet the electrical requirements?
- ECAD + STEP availability — strongly prefer results with both models available.
- Package — prefer leadless packages (QFN, DFN, LGA, WLCSP) over leaded alternatives (SOIC, TSSOP, QFP) when multiple package options exist.
- Sourcing — prefer in-stock parts. Check
availabilityfields for stock counts and pricing.
- Source quality — for web:components, prefer CSE source over LCSC.
- Registry adoption — more
dependentsin registry results means more battle-tested.
Using Registry Results
Registry modules and component packages (Flows 1 and 2) are used directly via Module() with the registry URL. Auto-dep handles pcb.toml updates automatically — just use the URL and build.
# Component package with integrated application circuitry
LDO = Module("github.com/diodeinc/registry/components/AP2112Kx/AP2112Kx.zen")
LDO(
name="LDO_3V3",
VIN=vbus_5v0,
VOUT=vdd_3v3,
GND=gnd,
)
# Component package from registry:components search
TPS54331 = Module("github.com/diodeinc/registry/components/TPS54331D/TPS54331D.zen")
Use pcb doc --package <url>@<version> to check available io/config before wiring into a design.
Importing Web Components
Web component results (Flow 3) require an import step before use.
- Search:
pcb search -m web:components <MPN> -f json
- Pick a result and extract its
component_id,part_number, andmanufacturer.
- Import:
pcb new component --component-id <ID> --part-number <MPN> --manufacturer <MFR>
This downloads the symbol, footprint, and STEP model and generates a package into components/<manufacturer>/<mpn>/. Datasheet artifacts are placed under docs/ in the component directory. The .kicad_sym file is the source of truth for the primitive component interface; the generated .zen file starts as an auto-generated signature and may later grow into a richer reusable design in the same package. If the component already exists in the workspace, it skips and reports the existing path.
- Use the imported component via
Module()with the local workspace path:
ESP32 = Module("./components/Espressif_Systems/ESP32-S3-WROOM-1-N16R8/ESP32-S3-WROOM-1-N16R8.zen")
Command Reference
Search
# Reusable modules (fast, local index)
pcb search -m registry:modules <query> -f json
# Component packages (fast, local index)
pcb search -m registry:components <query> -f json
# Web component database (network, slower, MPN-ONLY queries)
pcb search -m web:components <MPN> -f json
Import
# Import a web component into the workspace
pcb new component --component-id <ID> [--part-number <MPN>] [--manufacturer <MFR>]
Inspect
# Read a registry package's io/config interface
pcb doc --package <url>@<version>
Verifying Sourcing with pcb bom
After adding components to a design, use pcb bom to check sourcing and availability:
pcb bom boards/MyBoard/MyBoard.zen -f json
The JSON output is a list of BOM entries, each with:
designator,mpn,manufacturer,package,value,description
availability— per-entry sourcing data:
us/global— regional summary withprice,stock,alt_stock
offers— individual distributor offers withregion,distributor,stock,price
Fixing BOM issues
- "No house cap/resistor found" warnings during build mean no pre-qualified generic part matches the spec. Adjust the value, package, or voltage rating, or specify an explicit
part=Part(mpn=..., manufacturer=...)where appropriate.
- Low stock or no offers — search for alternative parts using the component search flows above, then update the design.
- Checking availability — look at
stockcounts across regions. Parts with zero stock and onlyalt_stockmay have long lead times.