app
Altium - the Altium Bridge
Public Made by Adomby adom
Adom Bridge for Altium Designer: a resident DelphiScript agent gives the AI eval, the 1,100-command process launcher, all 8 EDA surfaces with screenshots, compile/ERC, DRC, OutJob outputs, native SchLib/PcbLib authoring with STEP 3D bodies, and dialog handling by PID.
← Commit history
0.2.11: install.sh installs only user skills; altium-bridge-publish -> publish-skills/ (source-only, #10)
3 files changed
+74−1
install.shpage.json+1−1@@ -139,4 +139,4 @@ "skills/altium-wiki-import/SKILL.md", "uninstall.sh" ]-}+}
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).