Open general

[EPIC] Unify molecule + board publishing; make pages render in adom-project-manager; deprecate publish-board

barrett-land · 11d ago

Goal

Fold generic board publishing into molecule-publish so it handles both molecules and plain boards, and have every page it publishes render correctly in adom-project-manager (APM). Then deprecate the separate publish-board skill (currently in adom/adom-project-managerskills/publish-board/). One publisher, two shapes (molecule / board), one source of truth.

Decision (Barrett + Drew): molecule-publish becomes the single publisher. publish-board is retired. The new pipeline exports KiCad → STEP and uses step2glb to produce the GLB shown on the wiki — for both molecules and generic boards (one 3D path, no service-kicad GLB render).

What APM reads from a page (the contract to satisfy)

  • Lists it: type: component page tagged board or molecule.
  • board/molecule kind: from tags. EDA badge: from file extensions (.kicad_* → KiCad, etc.).
  • Component list: package.json.dependencies — APM's board_deps reads them and expands one hop (deps may live directly on the page; no separate library page required).
  • 3D view: the page's model_3d_path GLB (the step2glb output).
  • PCB + schematic views: a render/ foldermanifest.json {v, glb, pcb, sheets[]} + pcb.svg + sheet-000.svg…. Absent render/ → APM shows a red "missing render folder" error bar and falls back to slow live rendering.

Sub-issues

  • Add generic-board mode (non-molecule KiCad/EAGLE boards)
  • Unified 3D: KiCad → STEP → step2glb → GLB (model_3d_path); APM reuses it
  • Emit APM render assets (render/: manifest + pcb.svg + per-sheet SVGs) on every publish/update
  • Write the dependency tree (component deps) into package.json, merge-safe
  • Deprecate publish-board, port its logic, backfill existing boards/molecules

Reference (source of truth to port from)

  • adom/adom-project-manager repo → skills/publish-board/SKILL.md (the board→library→components + render flow) and skills/publish-board/kicad_board_bundle.py (analysis + model-ref normalize helper).
  • APM CLI already has adom-project-manager --render-board <slug> — a push-only generator that writes just the render/ folder (manifest + pcb.svg + sheet SVGs + board.glb), touching nothing else. Reuse it.
  • The render/manifest.json shape and the has_render detection live in APM src/main.rs (board_media, stored_render, render_and_upload).

0 Replies

Log in to reply.