← Commit history

Publish 2.2.0

Drew Owens ·fb17232fd7 ·3mo ago ·parent 427082f
3 files changed +54−8
SKILL.md+52−6
@@ -139,14 +139,24 @@ plain one shadows it and every import silently gets an unanchored model. (This is exactly what broke the COSMIIC boards.) Matching the name ensures your anchored GLB is the one `model_3d_path` resolves to. -## Stage 2.5 — Component dependencies (BEFORE publish — one version per cycle)+## Stage 2.5 — Component dependencies (AUTOMATED, BEFORE publish)  APM lists a board/molecule's components from `package.json.dependencies`-(one-hop expand). Map the design's BOM parts to wiki component slugs and-MERGE them into the Stage 2 `package.json` — before Stage 3's publish, so-each publish cycle produces exactly ONE registry version (a deps-only-follow-up publish creates an extra version whose renders are identical:-harmless under APM's dedup, but noise in the version selector).+(one-hop expand). This stage is NOT optional and NOT the user's job — a+publish that skips it produces a board that looks successful but shows up+in APM with no BOM panel (#247, the Taprite carriers). Do it every publish:++1. **Parse the BOM** (BOM CSV beside the sources, else the `.kicad_sch`).+2. **Electrical rows only** — skip logos, silkscreen art, fiducials,+   mounting holes, DIN adapters, graphic/mechanical symbols.+3. **Resolve the real MPN** for each row (never value names — #142). A row+   with no MPN and no unambiguous standard part = FLAG for human+   resolution; report it, never silently drop it.+4. **MERGE** owner-qualified refs into the Stage 2 `package.json` — before+   Stage 3's publish, so each publish cycle produces exactly ONE registry+   version (a deps-only follow-up publish creates an extra version whose+   renders are identical: harmless under APM's dedup, but noise in the+   version selector).  - Mapping helper: `skills/publish-board/kicad_board_bundle.py` on the   `adom/adom-project-manager` page (`adom-wiki repo clone adom/adom-project-manager`).@@ -160,6 +170,31 @@ harmless under APM's dedup, but noise in the version selector). - Known behavior to keep in mind: deps are real registry deps, so   `pkg install <board>` will pull the component pages too. +## Stage 2.6 — Auto-create missing component pages++A dep that references a nonexistent page dangles. For each electrical BOM+part with no wiki page, CREATE one (then reference it) — report created vs+reused vs flagged:++- **Page standard**: `type: component`, slug/title = normalized MPN, with+  `<MPN>.kicad_sym` + `<MPN>.kicad_mod` + STEP + **step2glb** GLB ++  `<MPN>.adom-lbr.json` + hero + `component` block.+- **Asset sources, in order**: KiCad stdlib via `service-kicad`+  (`fp fetch <lib> <name>`, `sym fetch <lib>`, `model fetch <lib>.3dshapes/+  <name>.step`); the board's own embedded footprints/symbols for custom+  parts (extract the `(footprint ...)` block from the `.kicad_pcb`, the+  lib symbol from the `.kicad_sch`).+- **adom-lbr JSON**: `adom-lbr import-kicad --sym <f> --fp <f> --mpn <MPN>`;+  also ship the Fusion `.lbr` from `adom-lbr generate`.+- **3D is hard-required by publish lint.** If the part's model exists only+  in the designer's local library (footprint `(model ...)` pointing at a+  local path), FLAG the page as pending with the exact missing file — do+  NOT fabricate geometry and do NOT drop the part. The dep is added only+  once the page exists.+- Hero: render the GLB with adom-glb2png (iso view), or for pending-3D+  parts a real KiCad footprint render (`service-kicad pcb export svg` on a+  small custom sheet).+ ## Stage 3 — Publish + verify  ```bash@@ -228,6 +263,17 @@ today; EAGLE/Fusion (`.brd`/`.sch`) pages report "nothing rendered" and skip gracefully — APM shows a static version label for them (Fusion rendering is landing in APM; nothing changes on this side when it does). +## Publish completion checklist (a publish is NOT done until all pass)++- [ ] `metadata.model_3d_path` set; page GLB sha256 == your gated conversion+- [ ] `dependencies` populated from the BOM (Stage 2.5) — `{}` on a board+      with electrical parts is a FAILED publish, not a done one+- [ ] every referenced component page exists (Stage 2.6), or is explicitly+      flagged pending with what it needs+- [ ] `render/manifest.json` on the page with `current` == the version you+      just published (Stage 3.5)+- [ ] molecule shape only: provenance stamp + footprint/symbol artifacts+ ## Stage 4 — Handoff  Import to Hydrogen is `adom-molecule-import`'s job (ships with
package.json+1−1
@@ -1,6 +1,6 @@ {   "slug": "molecule-publish",-  "version": "2.1.4",+  "version": "2.2.0",   "type": "skill",   "description": "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 render assets + component dependencies. Companion to adom-molecule-import.",   "tags": [
page.json+1−1
@@ -1,6 +1,6 @@ {   "slug": "molecule-publish",-  "version": "2.1.4",+  "version": "2.2.0",   "type": "skill",   "description": "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 render assets + component dependencies. Companion to adom-molecule-import.",   "tags": [