← Commit history

Publish 2.1.0

Drew Owens ·22d492b605 ·3mo ago ·parent 6b22779
3 files changed +59−31
SKILL.md+57−29
@@ -1,6 +1,6 @@ --- name: molecule-publish-description: Publish a molecule OR a generic KiCad/EAGLE board to the Adom wiki - one publisher, two shapes — runs the OCCT molecule-mode conversion (anchored GLB + footprint + symbol with stats gates), assembles the component package, and publishes via adom-wiki. The EDA-agnostic middle of the pipeline; companion to adom-molecule-import (which does wiki → Hydrogen). Use when the user says "publish this molecule to the wiki", "upload molecule bundle", "convert and publish my molecule", "molecule to the wiki", "publish my board" (plain, non-molecule boards use BOARD MODE - no anchoring gates), or an EDA export skill (kicad-export-molecule, fusion-export-molecule, altium-export-molecule) hands off here after exporting. Every publish also emits the render/ assets and component dependencies adom-project-manager (APM) reads.+description: Publish a molecule OR a generic KiCad/EAGLE board to the Adom wiki - one publisher, two shapes — runs the OCCT molecule-mode conversion (anchored GLB + footprint + symbol with stats gates), assembles the component package, and publishes via adom-wiki. The EDA-agnostic middle of the pipeline; companion to adom-molecule-import (which does wiki → Hydrogen). Use when the user says "publish this molecule to the wiki", "upload molecule bundle", "convert and publish my molecule", "molecule to the wiki", "publish my board" (plain, non-molecule boards use BOARD MODE - no anchoring gates), or an EDA export skill (kicad-export-molecule, fusion-export-molecule, altium-export-molecule) hands off here after exporting. Every publish also emits the render/ assets (including APM's per-version render archive behind the board version selector) and component dependencies adom-project-manager (APM) reads. user-invocable: true argument-hint: "<name> --step <f.step> --board <f.kicad_pcb|f.brd> --sch <schematic> [--pin medium|large] [--silk-top png --silk-bottom png] [--org adom]" ---@@ -132,6 +132,27 @@ 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)++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).++- Mapping helper: `skills/publish-board/kicad_board_bundle.py` on the+  `adom/adom-project-manager` page (`adom-wiki repo clone adom/adom-project-manager`).+  Mind its Value-fallback caveat: value-named symbols like `R_4.3K_0402` are+  NOT component slugs — resolve the real MPN.+- Write owner-qualified refs (`adom/<slug>`) into `dependencies`. **MERGE,+  never overwrite** — preserve `component`, `hero`, `tags`, `model_3d_path`.+- Verify each referenced component page exists; flag missing ones.+- The dependency graph is a REGISTRY concept — it rides Stage 3's+  `pkg publish`, not the repo push.+- Known behavior to keep in mind: deps are real registry deps, so+  `pkg install <board>` will pull the component pages too.+ ## Stage 3 — Publish + verify  ```bash@@ -157,41 +178,48 @@ Verify before declaring done:   this checksum equals a verified anchored GLB on the page. - the page's Files tab shows the full bundle (registry and git layers are   separate — publish alone does not populate Files)+- the registry tarball is the **source of record per version**: Stage 2's+  layout means every publish carries the full board source, and+  `adom-wiki pkg install <owner>/<slug>@<version>` delivers any past+  version's files (APM's version selector relies on this for "give me the+  source of an older version" — render/ is previews only, never source). -## Stage 3.5 — APM render assets (every publish/update)+## Stage 3.5 — APM render assets + version archive (AFTER publish, every time) -APM shows PCB + hierarchical schematics from a pre-rendered `render/` folder;-without it, boards trip APM's red "missing render folder" bar and fall back-to slow live rendering.+APM shows PCB + hierarchical schematics + the board **version selector**+from a pre-rendered `render/` folder; without it, boards trip APM's red+"missing render folder" bar and fall back to slow live rendering.  ```bash-adom-wiki pkg install adom/adom-project-manager   # once per container+adom-wiki pkg install adom/adom-project-manager   # once per container (needs >= 0.4.1) adom-project-manager --render-board <slug>        # push-only: writes ONLY render/ ``` -Run AFTER the repo push (it renders off the wiki source — needs `.kicad_pcb`-+ every `.kicad_sch` on the page). Verify `render/manifest.json` appears in-the page files. Re-run on every content update so it never goes stale.-KiCad sources only today: EAGLE/Fusion (`.brd`/`.sch`) pages report "nothing-rendered" and skip gracefully — APM live-renders those (verified live).--## Stage 3.6 — Component dependencies (APM's component list)--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 in:--- Mapping helper: `skills/publish-board/kicad_board_bundle.py` on the-  `adom/adom-project-manager` page (`adom-wiki repo clone adom/adom-project-manager`).-  Mind its Value-fallback caveat: value-named symbols like `R_4.3K_0402` are-  NOT component slugs — resolve the real MPN.-- Write owner-qualified refs (`adom/<slug>`) into `dependencies`. **MERGE,-  never overwrite** — preserve `component`, `hero`, `tags`, `model_3d_path`.-- Verify each referenced component page exists; flag missing ones.-- Bump the version and `pkg publish` — the dependency graph is a REGISTRY-  concept (publish), not a files concept (repo push).-- Known behavior to keep in mind: deps are real registry deps, so-  `pkg install <board>` will pull the component pages too.+**Ordering is load-bearing: run this AFTER Stage 3's `pkg publish` + repo+push.** `--render-board` stamps the archive with the version it reads from+the PUBLISHED `package.json` on the page — run it before the publish and it+stamps the previous version.++`--render-board` (APM >= 0.4.0) **fully owns the version archive** — never+write `render/<version>/` or edit `render/manifest.json` yourself+(double-writing fights its content dedup). On each run it:+- renders + pushes the top-level `render/*` = current version (including+  `render/board.glb` whenever a GLB exists);+- content-hashes the rendered assets and, ONLY if they differ from the last+  archived version, writes `render/<version>/...` and prepends a+  `versions[]` entry to `manifest.json` (v2: `{v:2, current, versions[]}`,+  newest-first). A deps/metadata-only republish adds NO entry.++Verify after the run:+- `render/manifest.json` is on the page, parses, and `current` == the+  version you just published;+- a content-changing publish added a `versions[]` entry + `render/<version>/`+  files; a metadata-only republish did NOT (dedup working as intended).++Re-run on every content update so it never goes stale. KiCad sources render+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).  ## Stage 4 — Handoff 
package.json+1−1
@@ -1,6 +1,6 @@ {   "slug": "molecule-publish",-  "version": "2.0.0",+  "version": "2.1.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.0.0",+  "version": "2.1.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": [