# RustDesk Bridge — PUBLISH skill (source-only; NOT named SKILL.md)

The release dance. Three artifacts:
1. **Runtime zip** (server.py + bridge.json + BRIDGE_VERSION) → a **RELEASE asset** (`release create`/`release upload`), NOT a /files blob. Manifest `url` → `/download/...`.
2. **Skills pkg** (`pkg publish --org adom`) → the USER `SKILL.md` only. `files` allowlist lean (no zip/server.py/hero).
3. **dev-skills/*.md** → live on the page via `repo push`, source-only, NEVER named `SKILL.md`.

## Flow
1. Bump version in bridge.json + BRIDGE_VERSION + package.json (lockstep).
2. Rebuild zip → `release create <ref> <v>` + `release upload <ref> <v> <zip> --platform any`.
3. Update manifest (version, url→/download/<v>/, sha256, size).
4. `pkg publish --org adom --public`; then `repo push` runtime source + dev-skills to /files.
5. Verify: `bridge_install {manifestUrl}`; `discover preview "<phrase>"` → top-3.

## Traps
- `repo push --files X.zip` gitignores zips → 404. Zips are RELEASE assets only.
- `homepage` must be a `wiki.adom.inc` URL, never github.
