← Commit history
package.json+2−2
@@ -1,6 +1,6 @@ {   "slug": "adom-wiki-skillpack",-  "version": "0.6.0",+  "version": "0.7.0",   "type": "skill",   "description": "The Adom Wiki Skill Pack \u2014 one main skill plus 14 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, adompkg, releases, discussions, pull requests, and discovery. One adompkg install drops the whole set onto your container.",   "discovery_triggers": [@@ -59,7 +59,7 @@     "skills/wiki-component/SKILL.md",     "skills/wiki-component/component-page-generator/gen_chip.py",     "skills/wiki-component/component-page-generator/template.html",-    "skills/wiki-component/component-page-generator/mkviewers.mjs",+    "skills/wiki-component/component-page-generator/mkviewers.sh",     "skills/wiki-family/SKILL.md",     "skills/wiki-skillpack/SKILL.md",     "skills/wiki-hero/SKILL.md",
page.json+85−41
@@ -1,46 +1,90 @@ {-  "type": "skill",   "slug": "adom-wiki-skillpack",-  "title": "Adom Wiki Skill Pack",-  "brief": "How to use the Adom Wiki without breaking pages — the wiki is six tools in one (git, adompkg, releases, discussions, PRs, discovery), and three repo archetypes have emerged from real use: Page, Skillpack, and Family. Plus how to publish rich component pages (chips, molecules, boards). One install, 15 skills, plus a write-up of the design patterns for the people who build the wiki.",-  "hero": {-    "type": "image",-    "path": "screenshots/hero.png"+  "version": "0.7.0",+  "type": "skill",+  "description": "The Adom Wiki Skill Pack — one main skill plus 14 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, adompkg, releases, discussions, pull requests, and discovery. One adompkg install drops the whole set onto your container.",+  "discovery_triggers": [+    "publish to the wiki",+    "the wiki",+    "adompkg publish",+    "what kind of wiki repo",+    "wiki repo archetype",+    "publish a chip",+    "chip component page",+    "component readme",+    "molecule page",+    "tape and reel",+    "pin 1 orientation",+    "skillpack",+    "super skill",+    "wiki family repo",+    "parent child wiki",+    "how to make a wiki readme",+    "wiki page presentation",+    "hero in readme",+    "hero shows twice",+    "duplicate hero",+    "don't repeat the hero",+    "hero unlinked",+    "hero disappeared",+    "name a child page",+    "family child title",+    "private source public app",+    "proprietary wiki page",+    "wiki breadcrumb",+    "fork a wiki page",+    "wiki discovery",+    "page not surfacing",+    "discover endpoint",+    "wiki scoring",+    "wiki trending"+  ],+  "dependencies": {+    "john/adom-wiki-hero-image": "^0.2.1"   },-  "visibility": {-    "public": true+  "files": [+    "SKILL.md",+    "README.md",+    "page.json",+    "install.sh",+    "uninstall.sh",+    "screenshots/hero.png",+    "screenshots/archetypes.png",+    "skills/wiki-anatomy/SKILL.md",+    "skills/wiki-api/SKILL.md",+    "skills/wiki-publish-safely/SKILL.md",+    "skills/wiki-readme/SKILL.md",+    "skills/wiki-visibility/SKILL.md",+    "skills/wiki-repo-styles/SKILL.md",+    "skills/wiki-component/SKILL.md",+    "skills/wiki-component/component-page-generator/gen_chip.py",+    "skills/wiki-component/component-page-generator/template.html",+    "skills/wiki-component/component-page-generator/mkviewers.sh",+    "skills/wiki-family/SKILL.md",+    "skills/wiki-skillpack/SKILL.md",+    "skills/wiki-hero/SKILL.md",+    "skills/wiki-breadcrumbs/SKILL.md",+    "skills/wiki-forking/SKILL.md",+    "skills/wiki-discovery/SKILL.md",+    "skills/wiki-scoring/SKILL.md"+  ],+  "scripts": {+    "install": "./install.sh",+    "uninstall": "./uninstall.sh"   },-  "metadata": {-    "tags": [-      "wiki",-      "adompkg",-      "publishing",-      "skillpack",-      "guidelines",-      "documentation",-      "repo-archetypes",-      "open-source",-      "mit"-    ],-    "discovery_triggers": [-      "publish to the wiki",-      "the wiki",-      "adompkg publish",-      "what kind of wiki repo",-      "wiki repo archetype",-      "skillpack",-      "super skill",-      "wiki family repo",-      "parent child wiki",-      "wiki readme",-      "hero disappeared",-      "hero unlinked",-      "private source public app",-      "proprietary wiki page",-      "wiki breadcrumb",-      "fork a wiki page",-      "wiki scoring",-      "wiki trending"-    ]+  "tags": [+    "wiki",+    "adompkg",+    "publishing",+    "skillpack",+    "guidelines",+    "documentation",+    "repo-archetypes",+    "open-source",+    "mit"+  ],+  "author": {+    "name": "John Lauer",+    "email": "[email protected]"   }-}+}\ No newline at end of file
skills/wiki-component/SKILL.md+28−30
@@ -148,39 +148,37 @@ and **embed the live interactive viewers**. | pin-1 + seat-plane validation + pin-1-baked GLB | **adom-chipfit** | `adom-chipfit check --footprint x.kicad_mod --glb x.glb` | | symbol/footprint SVGs + 3D iso PNGs + manifest | **chip-thumbnailer** | `chip-thumbnailer once <MPN>` | -### Generate the embeddable viewers FROM the apps (not just the wiki route)+### Generate the embeddable viewers FROM the apps — use `embed` -The symbol/footprint viewers on the page must be the **real adom-symbol SymView /-adom-footprint FpView**, generated by the apps as **self-contained embeddable HTML**.-Two ways, in order of preference:+adom-symbol and adom-footprint ship a first-class **`embed`** command that exports a+**self-contained, interactive HTML package** (pan/zoom + pin info panel; pads ++courtyard + layer toggles) built for an iframe — no server, no external assets, one+portable `.html`. **This is the canonical way to get the symbol/footprint viewers.** -1. **Call the app generator functions directly** (best for a standalone page):-   ```js-   // adom-symbol: returns a self-contained interactive SymView HTML string-   import { generateBrandedViewer } from '<adom-symbol>/service/lib/viewer-gen.js';-   const symHtml = await generateBrandedViewer(symPath, mpn,-     { svgContent: existingSymbolSvg,   // pass the rendered SVG to skip service-kicad-       pinDescriptions, manufacturer, datasheetUrl });-   // adom-footprint: self-contained interactive FpView (pads, courtyard, solder-blob toggle)-   import { generateFootprintViewer } from '<viewer>/kicad-footprint-viewer.js';-   const fpHtml = await generateFootprintViewer(modPath, mpn, { manufacturer, partName });-   ```-   Write each to `symview.html` / `fpview.html` and `<iframe src="symview.html">`-   them. They are fully self-contained (inline SVG + JS, no external fetch), so they-   embed anywhere. (`generateBrandedViewer` accepts a pre-rendered `svgContent` so it-   needs no service-kicad; `generateFootprintViewer` renders via service-kicad with a-   local fallback — feed it the chip's existing `*-footprint.svg` if its-   `fpExportSvg` dep is missing in your checkout.) The standalone Rust `adom-symbol-   preview` / `adom-footprint preview` *should* emit the same HTML but can fail on a-   bare container (missing service assets) — use the JS generators or the service.-2. **Reuse the wiki's hosted viewer** once the page is published (Layer A): the-   wiki runs these same generators server-side, so-   `<iframe src="/viewer/{symbol,footprint,3d}/component/<slug>?embed=1">` is the-   identical viewer. Good for the live page; the generators above are what you use-   before publishing / for a standalone preview.+```bash+adom-symbol   embed --file <mpn>.kicad_sym --out symview.html   # interactive SymView+adom-footprint embed --file <mpn>.kicad_mod --out fpview.html   # interactive FpView+``` -   The shipped `component-page-generator/` does exactly this (`mkviewers.mjs` calls-   the app generators; the page embeds `symview.html`/`fpview.html`).+Then embed each same-origin: `<iframe src="symview.html">` / `<iframe src="fpview.html">`.+The footprint export includes a layers panel with an **"InstaPCB paste dots" toggle**+(the 300µm jetted-paste positions, off by default) plus Copper / Assembly /+Courtyard / Paste apertures — so the solder-paste view is built in. Pin 1 is marked.++> Use the freshly **built** binaries (`<app>/target/release/adom-symbol|adom-footprint`)+> — a stale `~/.local/bin` copy may predate `embed` (or be a stub). `embed` renders+> via service-kicad, which must be reachable.++Two fallbacks, only if `embed` isn't available:+- the JS generators `generateBrandedViewer(...)` / `generateFootprintViewer(...)`+  (pass a pre-rendered `svgContent` to skip service-kicad), or+- once the page is **published**, the wiki hosts the same viewer at+  `/viewer/{symbol,footprint,3d}/component/<slug>?embed=1` (the wiki runs these+  generators server-side) — fine for the live page.++The shipped `component-page-generator/` does this: `mkviewers.sh` runs+`adom-symbol embed` / `adom-footprint embed`; the page embeds `symview.html` /+`fpview.html`.  ## 1. What goes in each section 
skills/wiki-component/component-page-generator/mkviewers.shadded+10
@@ -0,0 +1,10 @@+#!/usr/bin/env bash+# Generate the embeddable symbol + footprint viewers for a chip using the OFFICIAL+# adom-symbol / adom-footprint `embed` exports (self-contained interactive HTML,+# incl. the InstaPCB paste-dots layer on the footprint). Use the built binaries.+set -e+SYM="${ADOM_SYMBOL:-adom-symbol}"; FP="${ADOM_FOOTPRINT:-adom-footprint}"+CHIPDIR="$1"; OUTDIR="$2"; MPN="$(basename "$CHIPDIR")"+"$SYM" embed --file "$CHIPDIR/$MPN.kicad_sym" --out "$OUTDIR/symview.html"+"$FP"  embed --file "$CHIPDIR/$MPN.kicad_mod" --out "$OUTDIR/fpview.html"+echo "OK: symview.html + fpview.html (official adom-symbol/adom-footprint embed exports)"