molecule-publish
Public Made by Adomby adom
Publish molecules AND generic boards to the Adom wiki - one publisher, two shapes: OCCT conversion (molecule mode with stats gates, or plain for boards), component packaging, adom-wiki publish, APM re
Deliver an adom-lbr JSON (<MPN>.adom-lbr.json) with each published component so it renders in adom-project-manager
Part of #1 (the adom-project-manager integration).
The Adom Project Manager renders a component's symbol + footprint + per-EDA (KiCad/Altium) layer stackup from the canonical adom-lbr JSON on the component page — a <MPN>.adom-lbr.json (the AdomLbrPart model: symbol + footprint + graphics + pin↔pad map). See PM load_part():
- preferred: a
*.adom-lbr.jsonon the page → renders directly (source: "adom-lbr json"). - fallback: import the page's
.kicad_sym+.kicad_modon the fly (source: "kicad (generated)").
The fallback is best-effort and brittle: it needs both a .kicad_sym AND a .kicad_mod, and the import is lossy (footprint silk/courtyard graphics, pin visibility, etc. can be dropped or approximated). A component with only a footprint, only a symbol, or non-KiCad sources won't render at all.
Request
When the pipeline imports/packages a component, generate and deliver the <MPN>.adom-lbr.json alongside the other files (push it into the component page repo). One command:
adom-lbr import-kicad --sym <MPN>.kicad_sym --fp <MPN>.kicad_mod --mpn <MPN> # → <MPN>.adom-lbr.json
(adom-lbr = the adom/adom-lbr EDA translator; the adom-lbr JSON is its canonical hub format. It can also import from Altium .SchLib/.PcbLib/.IntLib if the source isn't KiCad.)
Acceptance
- Every component the pipeline publishes carries a
<MPN>.adom-lbr.jsonin its page repo. - Opening the component in the Project Manager renders symbol + footprint + layer stackup, and the source reads "adom-lbr json" (not "kicad (generated)").
- Footprint-only / symbol-only / non-KiCad components still render (because the canonical JSON is present).
Note
publish-board (the skill being folded in here) is getting an interim requirement to do this conversion now, so components render until molecule-publish owns it.
0 Replies
Log in to reply.