← Commit history

Delete skills/adom-desktop-bridge-ownership

Kyle Bergstedt ·07eb16c390 ·2mo ago ·parent a6e7000
2 files changed −85
skills/adom-desktop-bridge-ownership/._SKILL.mddeleted
⋯ 1 unchanged line ⋯
skills/adom-desktop-bridge-ownership/SKILL.mddeleted−85
@@ -1,85 +0,0 @@-----name: adom-desktop-bridge-ownership-description: The boundary between Adom Bridge core and a bridge author — what AD owns vs what you (the bridge) own. Read before filing an AD bug about a bridge (kicad, fusion360, native-browser, puppeteer, blender, rdp, or any third-party bridge) or before editing bridge code, so you fix and report in the right place.------# Who owns what: AD core vs bridge author--**Read this FIRST if you're working on, debugging, or filing a bug about a bridge-(kicad, fusion360, native-browser, puppeteer, blender, rdp, or any third-party-bridge).** It exists because an AI drove the Fusion bridge end-to-end, hit a dozen-issues, and filed almost all of them against **adom-desktop** — when nearly every-one was **bridge code**. The platform never stated the boundary, so the AI guessed-"AD," posted to the wrong place, and hand-edited the wrong copy. Don't repeat that.--## The split--### Adom Bridge (AD) core owns-- The `adom-desktop` CLI + the **relay / `/command` passthrough** (AD relays a-  bridge's response **verbatim** — incl. `_hint`/`_next`/`related` and every other-  top-level field the bridge sets; v1.9.30 made this a denylist, never an allowlist).-- **Bridge lifecycle**: discover/register/spawn/reap, stable ports, the-  `bridge_*` verbs, and **streaming a bridge from its wiki page into the local-  cache** (`bridge_install` / `refresh_bridges` / the 4-h auto-sync).-- The core `desktop_*` verbs (input, screenshot, UIA, tunnels, wsl, …).-- Generic, app-agnostic behavior. **AD returns good DATA so the calling AI decides-  — it does NOT bake in app-specific verbs** (see CLAUDE.md "AD stays GENERIC").--### The bridge author owns (NOT AD)-- **Every bridge-specific verb and its behavior** — args, outputs, and the per-call-  `_hint`/`_next`/`related`/`pitfalls` (the rich-hint contract). A wrong/missing-  hint is a **bridge** fix.-- **Any integration the bridge ships** — e.g. Fusion's **APS** cloud search: its-  OAuth/auth, its config, its `*_aps_*` verbs, its never-charge caps. AD does NOT-  manage it. Divergent results from the bridge's own status verb = a **bridge** bug.-- **The bridge's add-in / plugin code AND getting it deployed into the host app.**-  Editing the streamed cache source is not enough if the host app loads the add-in-  from elsewhere (e.g. Fusion loads from `%APPDATA%\…\API\AddIns\`, not the-  bridges-cache) — wiring cache→host-app is the **bridge's** concern.-- The bridge's `SKILL.md`, `describe` verb, hero/wiki page, and version.-- The **edit-source → publish → bump version → reinstall** loop.--## The cardinal rules--1. **NEVER hand-edit the streamed cache** (`%LOCALAPPDATA%\Adom Desktop\bridges-cache\<bridge>\`).-   It's a download. Edit the **source** (the bridge's own repo/wiki), `publish`,-   bump the version, then `bridge_install`/`refresh_bridges` to pull it. A-   hand-edit is overwritten on the next sync and may not even be what the host app-   runs (cache-vs-deployed-copy gotcha).-2. **Before filing a bridge bug against adom-desktop, ask "who owns this?"** If it's-   verb behavior, a hint, an integration, an add-in, or the bridge's docs → it's the-   **bridge author's** repo/wiki, not AD. Cloud-owned bridges (kicad, fusion, puppeteer)-   live in their OWN wiki repos (see CLAUDE.md "Cloud-owned bridge repos").-3. **AD's job is to relay + host, generically.** If AD is *dropping* or *mangling*-   a bridge's data, or missing a lifecycle/verb capability — THAT is an AD bug.-   Fix the AD VERB; don't re-absorb the bridge.--When in doubt: data-shape/relay/lifecycle/ports → **AD**; what a verb does, its-hints, its integration, its add-in, its docs → **the bridge**.--## Skill ownership — a bridge ships its OWN skill pkg (not bundled in AD-core)--The same boundary applies to the **consumer skill** (the SKILL.md that teaches a cloud-container how to drive a bridge's verbs):--- **The AD-core pkg** (`adom-wiki pkg install adom/adom-desktop`) ships ONLY core skills —-  desktop verbs, discovery, direct-api, installer, notify, multi-ad, bridge-sdk,-  bridge-ownership, windows-host. It must NOT bundle a cloud/3rd-party bridge's skill (it-  would go stale and isn't AD's to own). (2026-06-28: `eagle-commands.md` — Fusion-Electronics,-  `fusion_electron_run` — was dropped for this reason; 2026-06-29: `pup-SKILL.md` was dropped-  too when Puppeteer became cloud-owned. Both belong in their bridge's own pkg.)-- **Each cloud/3rd-party bridge publishes its OWN skill pkg** carrying its SKILL.md, e.g.-  `adom/adom-desktop-kicad-bridge`, `adom/adom-desktop-fusion-bridge`,-  `adom/adom-desktop-puppeteer-bridge`. The cloud thread that owns the bridge owns + bumps it.-  (Puppeteer's runtime still ships as an NSIS-bundled SEED for fresh-PC/offline spawn — but its-  *skill* now ships from its own page, like the other cloud bridges.)-- **How a container gets dynamic bridge skills:** it does NOT get them from the AD-core install.-  It (a) installs AD-core (CLI + core skills), then (b) `adom-desktop bridge_list` against the-  live laptop AD to see which bridges are present, then (c) `adom-wiki pkg install-  adom/adom-desktop-<bridge>-bridge` for each one it needs (and `adom-wiki pkg update` keeps them-  fresh, version-matched to the bridge the cloud thread published). The bridge's runtime PAYLOAD-  (what AD spawns on the laptop) is a SEPARATE artifact — the `/files` manifest+zip that-  `bridge_install`/`refresh_bridges` pull — don't conflate it with the skill pkg.-- **Discoverability gap / enhancement:** `bridge_list` should surface the exact-  `adom-wiki pkg install adom/adom-desktop-<name>-bridge` line per live bridge so a container-  knows precisely which skill pkg to pull (today it infers the slug from the bridge's `docs`).