Open general

Deprecate publish-board, port its logic, backfill existing boards/molecules

barrett-land · 11d ago

Part of #1.

Once molecule-publish covers both molecules and generic boards (#2–#5), retire the separate publish-board skill and migrate anything unique from it.

Deprecate

  • publish-board lives in adom/adom-project-managerskills/publish-board/SKILL.md (+ kicad_board_bundle.py). Mark it deprecated, point its description/README at molecule-publish.

Port anything still needed

  • Board→components component mapping (kicad_board_bundle.py) → into #5's flow.
  • The "publish every .kicad_sch (root + sub-sheets)" + hierarchical-schematic requirement.
  • The --render-board call (#4).
  • (Model-ref normalization is largely obviated now that 3D comes from a STEP export via step2glb rather than the .kicad_pcb model refs — the 2D pcb.svg doesn't use 3D models. Keep only if a board path still relies on it.)

Backfill

  • ~18 existing org boards/molecules currently have no render/ folder and no deps (only usb3-to-ethernet-dataonly-molecule and bma580-molecule are complete). Re-run the unified flow (deps + render/) on the rest so they render in APM. --render-board works off the wiki source — no design machine needed for the render step.

Acceptance

  • publish-board is marked deprecated and points at molecule-publish.
  • A board previously published via publish-board re-publishes cleanly through molecule-publish and renders identically in APM.
  • The backfilled boards no longer show APM's "missing render folder" bar.

1 Reply

barrett-land · 1d ago

Status + a re-scope of the backfill

Audited every board/molecule page on the wiki. The backfill as written in this issue is not executable — the premise that "--render-board works off the wiki source — no design machine needed" only holds for pages that actually have EDA source published, and most of them don't.

What's actually on those ~18 pages

page render/ EDA source on page renderable?
adom/bme690-molecule yes .kicad_pcb + .kicad_sch ✅ done
adom/bmi270-molecule yes .kicad_pcb + .kicad_sch ✅ done
adom/bmv080-molecule yes .kicad_pcb + .kicad_sch ✅ done
adom/bma580-molecule yes .kicad_pcb + .kicad_sch ✅ done
adom/usb3-to-ethernet-dataonly-molecule yes full KiCad project ✅ done
cosmiic/502535-lipo-molecule yes none (render pushed from elsewhere) n/a
cosmiic/adipose-molecule yes none n/a
cosmiic/pm-coil-molecule yes none n/a
cosmiic/cosmiic-biopotential-amplifier-eval-board-465000 no Altium .zip ❌ Altium not supported
cosmiic/cosmiic-pulse-generator-eval-board-545000 no Altium .zip ❌ Altium not supported
cosmiic/cosmiic-power-module-eval-board-357000 no KiCad project .zip ⚠️ needs unpack + re-push
adom/7in-display-moleculte no gerbers + PNGs only ❌ no source
adom/bmv080-i2c-mpin-molecule no gerbers + PNGs only ❌ no source
adom/capacitor-molecule-panelized no gerbers + PNGs only ❌ no source
adom/capacitormolecule2 no gerbers + PNGs only ❌ no source
adom/capacitormoleculepanelized2 no gerbers + PNGs only ❌ no source
adom/coral-breakout-stand-molecule no gerbers + PNGs only ❌ no source
adom/ina219-breakout-board no gerbers + PNGs only ❌ no source
adom/molecule-rp2350b-pican2b-v1-318000 no gerbers + PNGs only ❌ no source
adom/moleculentx15r no gerbers + PNGs only ❌ no source
adom/naneye2d-control-molecule no gerbers + PNGs only ❌ no source
adom/pico2-2w-molecule no gerbers + PNGs only ❌ no source
adom/rp2040-devboard-molecule no gerbers + PNGs only ❌ no source
adom/vl53l4cdv-molecule no gerbers + PNGs only ❌ no source
adom/coldfire-xilinx-dev-board no gerbers .tar.gz + GLB ❌ no source
adom/rp2040-test-board no GLB only ❌ no source

So: ~14 of these are Fusion-360 exports that only ever published gerbers/PNG/BOM/CPL, never a .kicad_pcb/.kicad_sch. Two more are Altium-only. There is nothing for --render-board to consume. This is a missing-source problem, not a pipeline problem — it needs the original designs re-exported from a design machine (Kyle for the Fusion set, COSMIIC for the Altium set), which is the opposite of this issue's "no design machine needed" assumption.

Split out as a separate issue so it doesn't block the deprecation half.

Backfill actually done

Re-ran --render-board on all 5 pages that do have KiCad source. Two real defects fixed beyond just "has a render/ folder":

  • bmi270-molecule was serving a stale rendermanifest.current was 1.0.2 while the published package.json was 1.0.3. Now 1.0.3 with 2 archived versions.
  • 4 of 5 were still on flat v1 manifests (bme690, bmv080, bma580, usb3-…), so APM's version selector had nothing to fall back on but single-current. All 5 are now v2 with current == published version and a populated versions[].

Worth noting the v1→v2 upgrade only happens when something re-runs --render-board; pages rendered before APM 0.4.0 stay flat until touched. Any page not in the renderable list above is still flat.

Deprecation — prepped, not pushed

molecule-publish 2.1.2 already covers everything publish-board did, so it's ready to retire. One dangling thread: molecule-publish Stage 2.5 still points at skills/publish-board/kicad_board_bundle.py on the adom-project-manager page — i.e. the live skill sends you into the skill we're deprecating. That needs to move before publish-board goes away.

I have both edits ready but haven't pushed to adom/molecule-publish since it's your page, @drew:

  1. publish-board/SKILL.mddeprecated: true, user-invocable: false, superseded-by: adom/molecule-publish, description rewritten, and a warning banner at the top with a port table. Body kept for reference.
  2. kicad_board_bundle.py → copied into molecule-publish as skills/kicad_board_bundle.py, with Stage 2.5 rewritten to call it in-place (plus the --normalize invocation, which Stage 2.5 never actually spelled out) and a note that publish-board is deprecated.

Say the word and I'll push #1 to the APM page and hand you #2 — or take the diff and land it yourself with the next molecule-publish cut.

The three sanity-check decisions

All three are already documented in 2.1.2 — confirming so they can be closed out:

  • EAGLE render skip — Stage 3.5: EAGLE/Fusion .brd/.sch report "nothing rendered" and skip gracefully, APM shows a static version label. ✅ agreed.
  • deps install side-effect — Stage 2.5: deps are real registry deps, so pkg install <board> pulls the component pages too. ✅ agreed, correct tradeoff.
  • render refresh cadence — Stage 3.5: re-run on every content update, after pkg publish. ✅ agreed. The bmi270 stale-manifest case above is exactly what skipping it looks like.

Acceptance, restated

  • backfill for every page that has publishable source (5/5)
  • publish-board marked deprecated (prepped)
  • kicad_board_bundle.py ported + Stage 2.5 re-pointed (prepped, needs your push)
  • ~16 source-less pages → split to a new issue

Log in to reply.