From diodeinc-pcb-1
Searches registries and web for electronic components and reusable subcircuits to add to Zener PCB projects. Use during board, module, or subsystem design with pcb search and pcb new component.
npx claudepluginhub joshuarweaver/cascade-code-general-misc-3 --plugin diodeinc-pcb-1This skill uses the workspace's default tool permissions.
Find and add components and reusable subcircuits to a Zener project. Use this workflow any time you need a part or subcircuit that isn't already in the workspace or covered by stdlib generics.
Generates design tokens/docs from CSS/Tailwind/styled-components codebases, audits visual consistency across 10 dimensions, detects AI slop in UI.
Records polished WebM UI demo videos of web apps using Playwright with cursor overlay, natural pacing, and three-phase scripting. Activates for demo, walkthrough, screen recording, or tutorial requests.
Delivers idiomatic Kotlin patterns for null safety, immutability, sealed classes, coroutines, Flows, extensions, DSL builders, and Gradle DSL. Use when writing, reviewing, refactoring, or designing Kotlin code.
Find and add components and reusable subcircuits to a Zener project. Use this workflow any time you need a part or subcircuit that isn't already in the workspace or covered by stdlib generics.
If pcb search and pcb new component don't produce a usable part, don't fall back to manual component/symbol/footprint creation. Report what failed, offer manual creation as an option, and get explicit user confirmation. In interactive mode, prefer ask.
Always search in this order. Move down only when the higher tier doesn't have what fits.
pcb search -m registry:modules <query> -f json — Reusable subcircuits and composed modules. Best option when the design work is already done.pcb search -m registry:components <query> -f json — Component packages in the registry. These may range from generated signatures to richer packages with integrated application circuitry.pcb search -m web:components <MPN> -f json — Diode's web component database (CSE, LCSC sources). Fallback: returns a component_id that must be imported with pcb new component.If the user asks for a specific MPN, still try registry first before falling back to web.
"buck converter 3.3V", "Texas Instruments LDO", "USB-C connector"."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.-f json. Parse results programmatically to evaluate options.dependencies (what they use) and dependents (who uses them) for context.model_availability showing 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.pcb doc --package <url>@<version> to inspect a registry module's io/config interface before using it.Pick when there's a clear winner. Present tradeoffs and ask only when genuinely ambiguous.
Selection heuristics in priority order:
availability fields for stock counts and pricing.dependents in registry results means more battle-tested.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.
Web component results (Flow 3) require an import step before use.
pcb search -m web:components <MPN> -f jsoncomponent_id, part_number, and manufacturer.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.
Module() with the local workspace path:ESP32 = Module("./components/Espressif_Systems/ESP32-S3-WROOM-1-N16R8/ESP32-S3-WROOM-1-N16R8.zen")
# 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 a web component into the workspace
pcb new component --component-id <ID> [--part-number <MPN>] [--manufacturer <MFR>]
# Read a registry package's io/config interface
pcb doc --package <url>@<version>
pcb bomAfter 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, descriptionavailability — per-entry sourcing data:
us / global — regional summary with price, stock, alt_stockoffers — individual distributor offers with region, distributor, stock, pricepart=Part(mpn=..., manufacturer=...) where appropriate.stock counts across regions. Parts with zero stock and only alt_stock may have long lead times.