← ClaudeAtlas

rembric-tui-installerlisted

The Rembric TUI installer contract — the single, canonical install/setup/upgrade/uninstall path (`apps/plugin/install.sh`, fronted by the repo-root `install.sh` shim). Apply when touching `install.sh`, the root shim, any per-client `install.sh`/`uninstall.sh`, `marketplace.json`, or distribution docs (README, `docs/agents.md`, plugin/client READMEs). Covers the orchestrator model, what must not break, and where the source of truth lives. For running the validation suite, use `rembric-tui-installer-e2e`.
susomejias/rembric · ★ 7 · AI & Automation · score 71
Install: claude install-skill susomejias/rembric
# Rembric TUI installer — contract The TUI installer is the **single, canonical, user-facing path** for installing / setting up / upgrading / uninstalling the Rembric server and every client plugin. Docs lead with it; per-client commands are documented only as manual fallback. Source of truth (read these — this file is the durable contract, not a copy): - `apps/plugin/install.sh` — the orchestrator (real logic). - `install.sh` (repo root) — the thin shim; canonical URL `.../main/install.sh`. - `install.test.ts` (repo root) — the headless test surface (covers the root shim + the orchestrator). - `openspec/specs/tui-installer/spec.md` — the normative requirements. ## The orchestrator model (do NOT violate) The installer **delegates; it never reimplements**: - **opencode, Hermes** → invokes their own `install.sh` / `uninstall.sh` (via `PLUGIN_SRC` against a local clone, or `curl` at the same ref). - **Claude Code, Codex** → prints the marketplace CLI commands (and optionally runs them when the client binary is present). No repo-side install script is created for these. The per-client primitives (`install.sh`/`uninstall.sh`, `marketplace.json`, the bridge, hooks) are the backend and the documented manual fallback. Changing the installer must not duplicate or fork their logic. The **root `install.sh` is a pure forwarder** — no menu, token, fetch-of-artifacts, or client logic of its own. From a clone it `exec`s `apps/plugin/install.sh`; over `curl|sh` it fetches that script