← Commit history

wiki-component: the verified chip-page recipe (API create with distributor numbers, undelete, batch push, Y-up vendor STEPs, side-wall MPN, artwork-cache manifest, viewer layers/animation, heatsink widget, chip families, provenance); stale fidelity-skill reference; 0.8.17

John Lauer ·44eaeea26b ·1mo ago ·parent f978662
3 files changed +98−9
package.json+1−1
@@ -1,7 +1,7 @@ {   "slug": "adom-wiki-skillpack",   "title": "Adom Wiki Skill Pack",-  "version": "0.8.16",+  "version": "0.8.17",   "type": "skill",   "hero": {     "path": "screenshots/hero.png"
page.json+1−1
@@ -124,7 +124,7 @@       "prompt": "Before I create this wiki page, check whether the thing already has a home."     }   ],-  "version": "0.8.16",+  "version": "0.8.17",   "description": "The Adom Wiki Skill Pack : one main skill plus the focused sub-skills that teach the AI to publish to wiki.adom.inc without breaking pages, name the wiki repo archetypes (Page, Skillpack, Family), and publish rich component pages (chips, molecules, boards). The wiki is six tools in one: git, package manager, releases, discussions, pull requests, and discovery. One package manager install drops the whole set onto your container.",   "dependencies": {     "adom/adom-wiki-hero-image": "^0.2.2",
skills/wiki-component/SKILL.md+96−7
@@ -65,7 +65,7 @@ to pre-existing Basic Parts or other catalog records.  ## Component GLB, Z-up and hero workflow -Read `adom-step`, `adom-lbr-component-fidelity` and `chip-thumbnailer` before+Read `adom-step` and `chip-thumbnailer` (and, once it is published, `adom-lbr-component-fidelity`) before converting or posing a component; read [wiki-hero](../wiki-hero/SKILL.md) for hero registration and the current `hero-studio` hardware workflow for composition. If one is absent from the installed catalog, search the wiki by its name and read@@ -486,15 +486,104 @@ downloads + BOM + assembly notes. Page archetype.  1. `page.json` with the **`component` block** (`mpn` required) + hero + tags +    `discovery_triggers`.-2. Create the page: `POST /api/v1/pages` with `type:"component"` **and `component.mpn`-   in the body** (it's rejected otherwise).-3. Push all files (text plain, binaries base64, `User-Agent` header) in **<4MB-   batches**, GLB/STEP/PDF are big and a too-large batch returns **413**. Push a-   **complete `page.json` LAST** so the hero/title stay linked (**wiki-hero**,-   **wiki-publish-safely**). (No `adom-wiki pkg publish` tarball is needed for a component.)+2. Create the page with the pages API, not `adom-wiki page create`: the CLI has no way to pass+   distributor numbers and the server refuses a component without them+   (`DISTRIBUTOR_NUMBERS_REQUIRED`). Body (verified 2026-09-19):+   ```bash+   adom-wiki api -X POST /api/v1/pages --body '{"slug":"vl53l5cx","org":"adom","type":"hardware","kind":"component",+     "title":"VL53L5CX","brief":"...","version":"0.1.0","because":"<why no existing page is the home>",+     "hero":{"headline":"VL53L5CX","subhead":"<one line of value>","screenshot":"docs/hero.png","chrome":false},+     "component":{"mpn":"VL53L5CXV0GC/1","manufacturer":"STMicroelectronics",+       "distributor_links":{"mouser":{"part":"511-VL53L5CXV0GC/1","url":"..."},"digikey":{"part":"497-VL53L5CXV0GC/1-ND","url":"..."},"lcsc":false}, ...},+     "tags":[...],"discovery_triggers":[...],"license":"CC-BY-4.0","visibility":{"public":true}}'+   ```+   A hardware page needs no Hero Studio run: the server composes the billboard from+   `headline` + `subhead` + `screenshot` at create. A `409 ... already exists` with a `404` on+   read means the slug is a soft-deleted page: `adom-wiki api -X POST /api/v1/pages/<owner>/<slug>/undelete?confirm=<owner>/<slug>`+   restores it (read its old files first; keep what is still useful, such as datasheet figure crops).+3. Push with `adom-wiki repo push <owner>/<slug> --files ...` in batches of about **3.5 MB**+   (GLB/STEP/PDF are big and a too-large batch returns **413**), `page.json` LAST so the+   hero/title stay linked (**wiki-hero**, **wiki-publish-safely**). No `pkg publish` tarball is+   needed for a component. Set the provenance Source to the manufacturer afterwards:+   `adom-wiki page edit <owner>/<slug> --source stmicroelectronics --source-url <product page>`. 4. **Verify in pup**, and check `/viewer/...` routes return interactive content. 5. For chip families, apply the Family naming/title rules (**wiki-family**). +## The verified chip-page recipe (adom/vl53l5cx, vl53l7cx, vl53l8cx, 2026-09-19)++Three pages built end to end by one pipeline; use them as the reference and copy what fits.+The generator, publish script and every 3D tool live on adom/vl53l5cx under `pipeline/`+(`build_wiki_pages.py`, `publish_wiki_pages.sh`, `vendor_step.py`, `hero_step.py`, `glb_alpha.py`).++**Check the wiki first.** `adom-wiki discover search --query <MPN>` before fetching or modelling+anything; an existing page ships the reviewed symbol, footprint, `.lbr`, STEP variants, outline+cache and provenance. Recreating that work is the failure mode this skill exists to prevent.++**Files a finished chip page carries** (all three pages have exactly this set):+`<slug>.kicad_sym` (two-column, intelligent pin groups, chip outline baked in the body),+`<slug>.kicad_mod`, `<slug>.lbr`, `altium/<Lib>.SchLib` + `.PcbLib` (adom-lbr `assemble-altium`),+`vendor/<MPN>-cse-original.step` (manufacturer bytes untouched, hash recorded),+`<slug>.step` (Z-up, seated on z=0), `<slug>-fov.step`, `<slug>-etched.step` (the library model),+`<slug>-fov-etched.step`, `<slug>-hero.step`, the same five as `.glb`, `docs/<slug>-datasheet.pdf`,+`docs/hero.png`, `docs/figures/<slug>-ds-p<N>.png` (cited datasheet pages as images),+`viewers/symbol.html` + `viewers/footprint.html` (`adom-symbol embed` / `adom-footprint embed`),+`artwork/<MPN>-thumbs.json` + outline SVGs + iso PNG, `artwork/<MPN>-heatsink-via.json`,+`provenance/*.json` (every transform, the footprint-vs-vendor comparison, file hashes), `LICENSE`,+`README.md`, `page.json` (component block with `pins[]`, `models_3d[]`, `provenance`, `manufacturer_links`).++**Manufacturer 3D models are rarely Z-up and often carry helpers.** The SamacSys/CSE STEPs behind+ST's CAD tab are Y-up, one was surface-only (0 solids), two carried the field-of-view cones as+near-zero-volume solids that blow the bounding box. Re-pose with XCAF so colours survive (rotate+X +90, yaw per part after checking the underside pads / marking pad against the footprint, seat on+z = 0), keep the original bytes and record source hash, up axis, rotation, translation and dropped+solids in `provenance/<file>.step.json`. Ship the helper geometry as its own variant (`-fov`) rather+than deleting it: readers want to toggle it.++**Mark the MPN on a side wall when the top carries features.** Optical windows, a grille, a+marking pad: a lasered name across the top ruins the 3D view and the symbol thumbnail. A light-grey+inlay body on the wall that faces the iso camera (the +Y wall in Adom Z-up) survives STEP -> GLB+and reads in chip-thumbnailer's un-named outline; bake that outline with+`adom-symbol create ... --outline-svg <MPN>-3d-outline-heavy.svg --outline-name none` so the part+number shows once. adom-chip-laser and chip-thumbnailer's `-named` variants etch the top only+(adom/adom-chip-laser#1, adom/adom-chip-thumbnailer#1 ask for a side option).++**The outline-cache widget needs the `adom/chip-artwork-cache@1` manifest, not chip-thumbnailer's+file.** chip-thumbnailer writes `<MPN>-thumbs.json` in its own manifest shape; the registered+`::adom-chip-thumbnail{src=...}` widget shows "No render cached" for it. Write the widget's schema+(`schema`, `mpn`, `cacheKey`, `recipe` with source/display/mark hashes and `sourceToDisplayMm`,+`source`, `marking`, `review`, `assets[]` with `kind: chip-outline|chip-outline-preview|chip-shaded|mark-source|artwork-step`,+`hints`, `verification`) and point the tag at it; adom/tps389001dser and adom/vl53l5cx are live examples.++**The 3D viewer reads layers and animation straight from the GLB** (adom/wiki#95, #162, #57):+- `extras.adomLayer {key, label, group, hidden}` on a node makes a toggle in the Layers panel;+  the nearest declaring ancestor covers its subtree, two or more layers are needed for a panel.+  The viewer already derives Chip / Pad Outlines / Silkscreen / Pad Labels from `Adom.*` node+  names, so declare only what it cannot infer (a hidden `Adom.FOV` field-of-view layer, the MPN+  etch) or the rows duplicate. Instance labels are what survive service-step2glb as node names.+- glTF animations autoplay and loop; `component.viewer_3d {repeat, loop, animate, ground}` in+  page.json (or `?repeat= ?loop= ?animate= ?ground=` on `/viewer/3d/...`) bounds them. A gentle+  root yaw baked as a glTF animation is a fine idle; material fades need the viewer (requested+  in adom/adom-3d-viewer#8 together with a hero-GLB authoring skill).+- Hero artwork materials: `alphaMode: BLEND`, `doubleSided`, teal pad outlines 0.5, silkscreen 0.3,+  labels 0.5 (post-process the GLB JSON chunk). Faces the manufacturer left uncoloured come out of+  step2glb as lavender (0.59, 0.64, 0.85); recolour them to a dark package body and say so in extras.+- The page's "3D | Hero" buttons come from `component.parts.model_3d_plain` vs `model_3d`.++**Thermal pad.** `::adom-heatsink-via{src="/<owner>/<slug>/render/artwork/<MPN>-heatsink-via.json"}`+with `{mpn, package, ep:{w_mm, h_mm, number}, via:{drill_mm, pitch_mm}}`; label the array as the+widget's standard rule unless the datasheet or application note gives one.++**Chip families.** Siblings stay titled by MPN. Link them with `adom-wiki family add-child`, commit a+`family.json` on the parent (`templateRevision`, `implementation`, `fixedLayout`, `sources[]` = the+pipeline files) and put `built_from {template, revision, source: sha256:<source_digest from family show>}`+in each child's page.json; the Family panel then reads "current" instead of "unrecorded".++**Provenance the reader can follow.** Lead the README with a "Manufacturer and resources" table+(product page, datasheet id and link, user manual, application notes, driver, evaluation kits, the+CAD tab and the exact SamacSys entry with its part id), cite a page for every pin and spec and+include the cited pages as images, compare the footprint pad-by-pad against the vendor land pattern+and publish the comparison, and record every 3D transform. Keep session and machine notes out of it.+ ## 📋 Platform TODO (for Colby / adom-desktop): fold these into build asks  - ~~**Custom-HTML page mode**~~ **SHIPPED** (verified 2026-07-15): a repo