Author and approve project-owned circuit-library parts from independently checked evidence.
Install
npx skillscat add vibebb/electrical-circuit-agent/circuit-library-authoring Install via the SkillsCat registry.
Circuit library authoring
Use this ordered workflow for every project-owned library part. Keep all source
paths, hashes, provenance, licenses, generated artifacts, and gate reports
under the project. Never edit files under libraries/, the installed KiCad
libraries, or the CERN library tree. Never read library/corpus,.vision-control, or .vision-token-map; corpus truth and vision-state
identities are not authoring evidence.
Search manufacturer sources and reusable library items. Search the
manufacturer's official pin database first—such as ST STM32 Open Pin Data,
AMD/Xilinx package pinouts, or Microchip ATDF—then official IBIS/BSDL and
CAD/library sources. Runcircuit_library_candidatesfor installed and project candidates. Prefer a
valid, matching product-tuned candidate when its lineage and evidence pass.
For external CAD, verify the source URL, retrieval date, license,
attribution, and redistribution terms before use; record a usable source
withcircuit_library_importor a generated/derived artifact withcircuit_library_record. Do not auto-download from aggregators or import
an item with unknown provenance or license. Stop if no source can be
used legally or the candidate's identity/package cannot be established.Acquire and bind the target datasheet. Confirm manufacturer, exact MPN,
requested revision, and required package, pinout, pin-table, land-pattern,
and orderable-table sections. Extract a candidate PDF withcircuit_datasheet_extract. If the PDF is unavailable, NDA-blocked, or
mismatched, create adatasheet_acquisitionHumanRequest with
circuit_human_request_createand stop. Read only its trusted response
withcircuit_human_request_status; a provided PDF must be attached to
that same user response and marked confidential when required. Call thecircuit_datasheet_check_receivedMCP tool withpdf_pathset to the
received PDF andrequest_pathset to its stored acquisition request.
Findings are normal tool results; fail closed on any finding orisError
response, and do not use a PDF whose target MPN, revision, or required
sections do not validate. Never send confidential paths or content to web
tools.Derive mechanical and visual evidence. Run
circuit_datasheet_extractfor the source PDF and confirm the independent
Poppler and pdfplumber mechanical lanes agree on the required evidence. Usecircuit_vision_readfor every required drawing/table image and answer
every item withcircuit_vision_answer, including the control image.
Every answer must include a substantive impression describing legibility,
ambiguity, and anything surprising; missing impressions are incomplete
evidence. Stop if extraction, lane agreement, rendering, or a required
vision read fails.Blind-author two PartSpecs and compare only after sealing. Use the SDK
task tool set to delegate the same source evidence independently tocircuit-part-author-aandcircuit-part-author-b. Lane A must use its
pdftoppm-backed vision reads and lane B its pdfium-backed reads. Each lane
must answer its vision items with impressions and seal withcircuit_part_author_commit. Once both have committed, runcircuit_part_author_compare, thencircuit_part_spec_checkon the
selected PartSpec, writing its report as siblingpart.spec.check.json.
Do not reveal one lane's work to the other before both
commits. Stop and create alibrary_reviewHumanRequest if a
content disagreement cannot be resolved from the datasheet; stop for a
new acquisition request if the source or PartSpec does not match the
requested MPN, revision, or package.Choose reusable candidates before generating. Run
circuit_library_candidatesfor the checked PartSpec. Review candidate
identity, provenance, license, and lineage; prefer valid product-layer
tuned candidates over generic candidates where they match the PartSpec.
Stop rather than copying an item with invalid lineage, incompatible
package identity, or unclear redistribution rights.Derive the land pattern. Run
circuit_land_patternwith the selected
density and, when appropriate, the project rule profile. Preserve the
PartSpec, source citations, and generated land-pattern report together.
Stop on contradictory or unsupported dimensions; do not tune away a
deterministic finding.Create or import the library artifacts. Generate a project-owned
footprint withcircuit_footprint_writeand a symbol withcircuit_symbol_write, using the accepted, checked PartSpec and the
selected footprint identifier. The tools record generated provenance,
including input and output hashes; pass the same density and rule profile
used in step 6 throughrules_path. Hand-written KiCad S-expressions are
prohibited; manufacturer CAD may only enter throughcircuit_library_import. Record any additional derived transformation withcircuit_library_record.
Generate the model withcircuit_model_generateand inspect it withcircuit_model_inspect. A reportedmodel_terminals_unseparablerequires
alibrary_reviewHumanRequest describing the unseparable terminals and
asking for authoritative next-step guidance; stop. Stop on any
symbol/footprint/model mapping that cannot be grounded in source evidence.Run deterministic library checks and export oracle. Call
circuit_library_verifywith the PartSpec, symbol library/name,
footprint, model required, and the project library directory. Pass
manufacturer pin databases throughpin_sources, selecting the exact ATDF
pinout by name. Match device/package identities after punctuation
normalization; exact matches or prefix/base-name matches with a shorter
identity of at least six alphanumeric characters are accepted. Mark derived
sources with their upstream lineage; do not count derivatives as
independent.
Keep the test-board and export checks enabled. Stop on every error,
missing oracle, or unresolved deterministic contradiction; a HumanRequest,
substitute permit, vision impression, author agreement, or review approval
cannot waive it.Compare library artwork with datasheet images. Run
circuit_vision_compareseparately for the footprint and symbol, andcircuit_model_comparefor the STEP model. Answer every returned image
throughcircuit_vision_answerwith an impression. Treat these
comparisons as advisory human context, not as a deterministic pass.
Stop for human clarification when a comparison exposes an unresolved
evidence disagreement; rerun the deterministic checks after any artifact
change.Build the blind review packet. After verification passes, create a
fresh packet withcircuit_library_review_packet. Read its review
instructions and provide the agent assessment and recommendation with
the cited artifacts and residual unknowns. Do not claim a review is
complete from packet creation alone. Stop if packet creation fails,
its hashes do not match the verified artifacts, or the packet omits
required instructions or evidence.Wait for current hash-bound approval. Ask the human to answer the
packet's blind questions and submit the documentedCIRCUIT-LIBRARY-REVIEW <packet_id>response. Runcircuit_library_review_statusagainst the same PartSpec, symbol,
footprint, model, and settings. Report completion only when it returns
approved for the current hashes. If artifacts change, rebuild the packet
and obtain a new approval. A rejection may be applied only throughcircuit_library_review_apply; re-run verification and request review
again. Stop on rejection, stale approval, missing response, or any
non-approved status.
HumanRequest stop conditions
Create a complete HumanRequest and stop for any unobtainable or mismatched
datasheet, substitute permission, alternative evidence, unseparable model
terminals, or unresolved lane disagreement. Choose the matching request kind:datasheet_acquisition, substitute_permission, alternative_evidence, orlibrary_review. For acquisition, include attempted sources, requested
revision, required sections, and any current source hash. For substitute
permission, bind the exact target and substitute MPNs, datasheet hashes,
requested scope, unverifiable fields, and similarity evidence. For alternative
evidence, bind each file hash to JSON-pointer coverage, unknown fields, and
the measurement method when relevant. For every kind, include known facts,
unknown fields, a substantive multi-sentence agent assessment, a
recommendation with rationale, and at least two alternatives with their
risks. Check only trusted user responses with circuit_human_request_status.
No response, denial, stale binding, or request/response mismatch authorizes
the next step.