Open general

Deliver an adom-lbr JSON (<MPN>.adom-lbr.json) with each published component so it renders in adom-project-manager

barrett-land · 10d ago

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():

  1. preferred: a *.adom-lbr.json on the page → renders directly (source: "adom-lbr json").
  2. fallback: import the page's .kicad_sym + .kicad_mod on 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.json in 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.