← Commit history

0.2.11: install.sh installs only user skills; altium-bridge-publish -> publish-skills/ (source-only, #10)

Colby Knox ·b3cff1a372 ·1mo ago ·parent 83f3397
3 files changed +74−1
install.sh

  
page.json+1−1
@@ -139,4 +139,4 @@     "skills/altium-wiki-import/SKILL.md",     "uninstall.sh"   ]-}\ No newline at end of file+}
publish-skills/altium-bridge-publish/SKILL.mdadded+73
@@ -0,0 +1,73 @@+---+name: altium-bridge-publish+user-invocable: false+description: >-+  DEVELOPER-only publish recipe for shipping a new altium-bridge version to+  wiki.adom.inc/adom/altium-bridge: the version lockstep (bridge.json + BRIDGE_VERSION ++  package.json + manifest), the runtime zip build, repo push + release create, the skills-only+  pkg publish (stage from files[] to keep the tarball clean), and the studio-gated hero. Read+  when releasing the altium bridge. Trigger words — publish altium bridge, release altium+  bridge, ship altium bridge, bump altium bridge, altium bridge manifest, altium bridge pkg.+---++# altium-bridge-publish++Two artifacts: the RUNTIME (zip + manifest on the page `/files`, what Adom Bridge downloads)+and the SKILLS PKG (`adom/altium-bridge`, container docs). Use `adom-wiki` for ALL wiki calls.++## 0. bridge.json schema — verbs[] are STRINGS++`verbs` is a flat list of verb names. NEVER objects. 0.1.5–0.1.7 appended four `{name, description}`+entries and ab's `bridge_registry` refused the whole file (`invalid type: map, expected a string`) —+the bridge kept running on its stale in-memory registration until the next reap, then vanished from+`bridge_list` while `bridge_install` still reported ✓ (ab issue #971). Lint before every release:+`python3 -c "import json;b=json.load(open('src/bridge.json'));assert all(isinstance(v,str) for v in b['verbs'])"`.+When a bridge disappears from the registry, read `%LOCALAPPDATA%\inc.adom.bridge\logs\Adom Bridge.log`+(ab's real lifecycle log) for `[bridge_registry] parse ... failed`.++## 1. Version lockstep (bump together)++`src/bridge.json` `version`, `src/BRIDGE_VERSION`, `package.json` `version`, and the generated+`adom-bridge-altium-manifest.json` `version` must match. `scripts/release.py` builds the zip ++manifest from `src/bridge.json`.++## 2. Build + push runtime++```bash+python3 scripts/release.py                                   # dist/adom-bridge-altium-v<ver>.zip + manifest+cp dist/adom-bridge-altium-v<ver>.zip dist/adom-bridge-altium-manifest.json . ; cp src/bridge.json .+adom-wiki repo push adom/altium-bridge --files adom-bridge-altium-v<ver>.zip adom-bridge-altium-manifest.json bridge.json <changed docs> -m "v<ver>: ..."+adom-wiki release create adom/altium-bridge <ver> --title "Altium bridge v<ver>" --changelog "..." --binary-path adom-bridge-altium-v<ver>.zip+adom-wiki release upload adom/altium-bridge <ver> adom-bridge-altium-v<ver>.zip --platform windows --arch x64   # REQUIRED: create's --binary-path does NOT attach the asset (measured 2026-08-31: 0.1.4-0.1.7 all had assets:[] and the manifest's /download/<owner>/<slug>/<ver>/<zip> URL 404'd -> bridge_install failed). Verify: curl -I the manifest url == 200.+rm -f adom-bridge-altium-v<ver>.zip bridge.json      # don't leave copies in the repo root+```++## 3. Publish the skills pkg (stage clean)++Stage ONLY the declared `files[]` into a fresh dir and pack from there — packing the repo+sweeps up the runtime zip and dist. The pkg is skills + tools, no binaries.+```bash+ST=$(mktemp -d); python3 -c "import json,shutil,os+for f in json.load(open('package.json'))['files']:+    os.makedirs(os.path.dirname('$ST/'+f) or '$ST',exist_ok=True); shutil.copy(f,'$ST/'+f)"+(cd $ST && adom-wiki pkg publish --org adom --skip-lint --yes)+```+`files[]` lists every skill path explicitly (no globs) AND install.sh/uninstall.sh install+each. Dev/publish skills carry `user-invocable: false` + a description opening "DEVELOPER-only".++## 4. Hero (first publish only)++New-page heroes are studio-gated: `hero-studio pose adom/altium-bridge --surface webview`,+load a REAL Altium capture as the showcase, the human clicks Generate, then+`adom-wiki page hero adom/altium-bridge --image docs/hero.png`. Redeploys keep the icon.++## 5. Verify++`adom-wiki page stats adom/altium-bridge` (version), `adom-wiki release list` (asset present),+`adom-wiki repo show adom/altium-bridge adom-bridge-altium-manifest.json` (served sha matches).+A docs-only change (README/images) skips the version bump — just `repo push`.++## Standing rules++- Commit source in lockstep with each publish; the changelog must be real (server enforces it).+- Never elevate ab. Never toast for progress — taskbar button only (John).