← Commit history

publish-board: require an adom-lbr JSON (<MPN>.adom-lbr.json) per component so they render in the Manager (interim until molecule-publish #7 delivers it)

barrett-land ·990c597207 ·3mo ago ·parent bc6f231
1 file changed +25−4
skills/publish-board/SKILL.md+25−4
@@ -66,7 +66,28 @@ symbols (`R_4.3K_0402`) are NOT wiki component slugs. Resolve the real MPN per part (BOM, the symbol's MPN/LCSC field, or ask the user). Warn + list any that aren't on the wiki — they won't appear in the component list until published. -### 5. Library page — create or update, and VERIFY completeness+### 5. Ensure each component renders in the Manager — REQUIRED (adom-lbr JSON)+The Manager renders a component's symbol + footprint + per-EDA layer stackup from+the canonical **adom-lbr JSON** on its page (`<MPN>.adom-lbr.json`). It falls back+to a lossy on-the-fly KiCad import ONLY if that file is absent — and renders+**nothing** for a component page that has only a footprint, only a symbol, or+non-KiCad sources. So every component on the board must carry a+`<MPN>.adom-lbr.json` on its wiki page; generate + push it wherever it's missing:++```bash+# fetch the component's KiCad files from its page, then convert:+adom-lbr import-kicad --sym <MPN>.kicad_sym --fp <MPN>.kicad_mod --mpn <MPN>   # → <MPN>.adom-lbr.json+adom-wiki repo push <owner>/<slug> --files <MPN>.adom-lbr.json -m "add adom-lbr JSON for the Project Manager"+```++`adom-lbr` is the `adom/adom-lbr` EDA translator; the adom-lbr JSON is its canonical+hub (it can also import from Altium `.SchLib`/`.PcbLib`/`.IntLib`). Verify in the+Manager that the component's source reads **"adom-lbr json"**, not "kicad (generated)".++**Interim step:** this conversion is moving into `adom/molecule-publish` (see its+issue #7) so the pipeline delivers the JSON automatically; do it here until then.++### 6. Library page — create or update, and VERIFY completeness - Slug `<board-slug>-library`, title `"<Board Name> Library"`, `type: component`,   tags `["library"]`, `dependencies` = the owner-qualified component slugs. - **On every update, ensure every component on the board is present in the@@ -76,7 +97,7 @@ aren't on the wiki — they won't appear in the component list until published.   component type (reuse any component `.step`): `adom-wiki pkg publish [--org <org>] --skip-lint`,   then `repo push` the `package.json` + `.kicad_sym` + `.pretty`. -### 6. Board page — create or update+### 7. Board page — create or update - `type: component`, `category: board`, tags `["board", …]`,   `dependencies` = `{ "<owner>/<board-slug>-library": "^0.1.0" }`. - Needs a hero + a 3D file (reuse a component model or a board render).@@ -84,7 +105,7 @@ aren't on the wiki — they won't appear in the component list until published.   NOT), then `repo push`: `.kicad_pro`, `.kicad_pcb`, all `.kicad_sch`, the   `<Board>.3dshapes/`. Set visibility open. -### 7. Regenerate the stored render assets — REQUIRED on every publish/update+### 8. Regenerate the stored render assets — REQUIRED on every publish/update After the board files are published, regenerate the pre-rendered assets so the Manager loads the board instantly (no live render) and the wiki 3D preview is fresh: ```@@ -96,7 +117,7 @@ directly when present and only falls back to live rendering when it's absent. **Stale `render/` = the board shows its OLD 3D/PCB/schematic after an edit**, so never skip this after changing `.kicad_pcb`/`.kicad_sch`/models. -### 8. Verify+### 9. Verify Open the Manager; confirm the board appears (Personal/Organization by owner) and its 3D + schematic + PCB render, and the component list matches the board.