molecule-pipeline
Public Made by Adomby adom
Top-level router for moving molecules between EDA tools, the wiki, and Hydrogen: one entry point that routes publish/import intents to the right skill chain and enforces the pipeline invariants.
Force component-page + library + dependency-graph creation as a mandatory pipeline step (not an optional appendix)
Problem
The component-graph steps (Stage 2.5 "Component dependencies" + Stage 2.6 "Auto-create missing component pages" in molecule-publish) are currently documented but not enforced. Nothing in the pipeline stops a board from publishing with dependencies: {}. When that happens the publish looks successful — page renders, 3D + schematics show — but the board has no dependency graph, so Nucleus/APM shows an empty BOM panel and no components in the list.
This bit a real publish today (adom/probing-workcell-load-cell-board): the board went up at v1.0.0 with empty deps and the owner immediately noticed "no dependencies on the wiki and no components in the list." It only got a real graph after a manual second pass built 34 component pages + a library page and republished the board at v1.1.0. The recovery was entirely manual and easy to forget.
Request
Make the board → library → components graph a forced, first-class step of the molecule/board pipeline rather than an optional convention:
- Block/loudly-warn on an empty-dep board publish. If a board/molecule has electrical BOM rows but
dependenciesresolves to{}(or only non-library deps), the publish should refuse or require an explicit--no-componentsopt-out, not silently succeed. - Drive the component + library creation as an explicit pipeline phase the user steps through, with per-part status (reused / created / flagged-pending), so the human sees and confirms the graph before the board publishes — instead of it being an easy-to-skip appendix.
- Enforce MPN identity at the gate (#142). Today nothing stops a page keyed on an LCSC/distributor code or a value string. The gate should require a resolved manufacturer part number (e.g. via
adom-jlcpcbLCSC→MFR lookup) before a component page is allowed — I initially keyed ~20 pages on JLC codes (c11702,c15525…) and had to delete + rebuild them under real MPN slugs (0402wgf1001tce,cl05a106mq5nunc…). - Reuse over recreate. The shared component namespace already caught 3 duplicates (parts that existed under
barrett-land/). The pipeline should proactively probe the global namespace by resolved MPN and wire the existing owner into the library deps, not attempt a duplicate publish. - Publish ordering + throttle. Enforce components → library → board ordering in one cycle, and throttle the component publishes (the registry rate-limited after ~10 rapid publishes today).
Why it matters
A board page without its component graph is the single most common "looks done but isn't" failure mode of this pipeline. Making the graph mandatory (and MPN-correct) turns a silent, forgettable step into a guaranteed part of every board publish.
Filed after publishing adom/probing-workcell-load-cell-board (61×34mm RP2350 load-cell controller) end-to-end: board + 34 component pages + library, all private under the adom org.