Skip to content

Manufacturing Export

This is the end-to-end path from a routed board to a gated, signed-off release package — including sourcing, part validation, and the manufacturing sign-off. Each step lists the tool to call and what a good result looks like.

1. Source real, sourceable parts

Search a live distributor catalog. jlcsearch needs no credentials; nexar, digikey, and mouser use credentials loaded from .env at server startup (NEXAR_CLIENT_ID/NEXAR_CLIENT_SECRET, DIGIKEY_CLIENT_ID/DIGIKEY_CLIENT_SECRET, MOUSER_API_KEY).

lib_search_components(keyword="STM32F103C8T6", source="digikey", min_stock=1000)

Expected: one line per match with MPN | package | stock | unit price | basic/extended, and — when the provider reports it — lifecycle and RoHS. Prefer in-stock, lifecycle-Active, RoHS-compliant parts. If a credentialed source is unconfigured the tool says so and you can fall back to source="jlcsearch".

2. Check derating and approved-vendor compliance

Before committing a part, confirm it is operated within its derating limit and is from an approved vendor.

lib_check_derating(kind="capacitor", parameter="voltage",
                   rated_value=25.0, operating_value=12.0,
                   manufacturer="Murata", approved_vendors=["Murata", "TDK"])

Expected: Part sourcing compliance: PASS with a derating line (utilization vs the limit) and an AVL line. A part over its derating limit or off the approved-vendor list returns FAIL. Derating factors are conservative general practice, not a named MIL/IPC mandate — the verdict says so.

3. Validate footprints against IPC-7351B

For chip passives, confirm the land pattern matches the IPC-7351B nominal (a hard gate — gross deviation blocks).

lib_validate_footprint_ipc7351(footprint_path="footprints/C_0805.kicad_mod",
                               size_code="0805", density="B")

Expected: Footprint IPC-7351B validation: PASS. FAIL lists the per-dimension deviation (pad width/height/pitch vs nominal). Scope is chip passives (0201–2512) against the IPC standard nominal, not a datasheet-specific land pattern.

4. When editing an existing board: scope the re-validation

After changing an existing project, do not re-run everything blindly. Assess which gates the change can affect.

project_assess_edit_impact()

Expected: an Edit-impact analysis listing each semantic change and Gates to re-run: vs Gates preserved:. Re-run only the impacted gates; the preserved ones stay proven.

5. Run the full quality gate

project_quality_gate()

Expected: PASS. If not, stop and fix the reported blocking issues, then re-run. pcb_transfer_quality_gate() confirms named schematic pad nets survived sync; run run_drc() / run_erc() for detailed reports.

6. Produce the manufacturing sign-off

Bind every declared design-intent requirement to a passing check, with provenance.

project_signoff_report()

Expected: Manufacturing sign-off: PASS with each requirement bound to its backing gate(s), the checks, and provenance (engine versions, rule profile, intent and content hashes). A board with no declared intent is UNVERIFIED, not a silent PASS — declare requirements with project_set_design_intent() first.

7. Gated release

export_manufacturing_package() is the final step and is hard-gated on the same project gate, so it runs only once the gate is clean. Direct export_*() tools do not enforce the full gate — use them only for low-level debug or interchange artifacts, switching to a broader profile (full/minimal) if needed. Finish with mfg_generate_release_manifest() for the SHA256-signed, provenance-stamped manifest.