33## Overview
44
55` install.sh ` is a single-file bash/Python hybrid installer that sets up Evolve integrations
6- into a user's project directory for one or more supported platforms: ** Bob** , ** Roo ** , ** Claude** , and ** Codex** .
6+ into a user's project directory for one or more supported platforms: ** Bob** , ** Claude** , and ** Codex** .
77
88It is designed to be run:
99- Locally from within the evolve repo: ` ./install.sh install `
@@ -48,13 +48,13 @@ Commands:
4848 status Show what is currently installed
4949
5050install options:
51- --platform {bob,roo, claude,codex,all} Platform to install (default: auto-detect + prompt)
51+ --platform {bob,claude,codex,all} Platform to install (default: auto-detect + prompt)
5252 --mode {lite,full} Installation mode for bob (default: lite)
5353 --dir DIR Target project directory (default: current working dir)
5454 --dry-run Preview changes without modifying files
5555
5656uninstall options:
57- --platform {bob,roo, claude,codex,all} Platform to uninstall (default: prompt)
57+ --platform {bob,claude,codex,all} Platform to uninstall (default: prompt)
5858 --dir DIR Target project directory (default: current working dir)
5959 --dry-run Preview changes without modifying files
6060```
@@ -68,7 +68,6 @@ Detection checks in order (any match = platform considered available):
6868| Platform | Detection signals |
6969| ----------| -------------------|
7070| bob | ` .bob/ ` dir exists in target dir, OR ` bob ` on PATH |
71- | roo | ` .roomodes ` file exists in target dir, OR ` roo ` or ` roo-code ` on PATH |
7271| claude | ` .claude/ ` dir exists in target dir, OR ` claude ` on PATH |
7372| codex | ` .codex/ ` dir exists in target dir, OR ` .agents/plugins/marketplace.json ` exists, OR ` codex ` on PATH |
7473
@@ -96,18 +95,6 @@ All of lite mode, plus:
96955 . Read ` platform-integrations/bob/evolve-full/mcp.json `
97966 . Upsert key ` mcpServers.evolve ` into ` .bob/mcp.json ` (JSON key upsert, see JSON Strategy)
9897
99- ### Roo — Lite Mode
100-
101- Source: ` platform-integrations/roo/evolve-lite/ `
102- Target: project directory
103-
104- 1 . Copy ` skills/evolve-learn/ ` → ` .roo/skills/evolve-learn/ ` (merge, idempotent)
105- 2 . Copy ` skills/evolve-recall/ ` → ` .roo/skills/evolve-recall/ ` (merge, idempotent)
106- 3 . Merge mode entry from ` skills/.roomodes ` → ` .roomodes ` in project dir
107- - Target ` .roomodes ` may be JSON or YAML; detected by trying ` json.loads ` first
108- - Upsert by ` slug: evolve-lite ` (JSON: array upsert; YAML: sentinel block)
109- - If target does not exist, create as YAML
110-
11198### Claude — Lite Mode
11299
113100Source: ` platform-integrations/claude/plugins/evolve-lite/ `
@@ -148,11 +135,6 @@ Codex is currently implemented only in lite mode. Full mode is reserved for futu
1481354 . Remove sentinel block for ` evolve-lite ` from ` .bob/custom_modes.yaml `
1491365 . (Full mode) Remove ` mcpServers.evolve ` key from ` .bob/mcp.json `
150137
151- ### Roo
152- 1 . Remove ` .roo/skills/evolve-learn/ `
153- 2 . Remove ` .roo/skills/evolve-recall/ `
154- 3 . Remove ` evolve-lite ` entry from ` .roomodes ` (JSON array filter or YAML sentinel strip)
155-
156138### Claude
1571391 . Attempt ` claude plugin uninstall evolve-lite ` via subprocess
1581402 . If that fails, print manual instructions
@@ -166,7 +148,7 @@ Codex is currently implemented only in lite mode. Full mode is reserved for futu
166148
167149## File Operation Strategies
168150
169- ### JSON Strategy (mcp.json, .roomodes, marketplace.json, hooks.json)
151+ ### JSON Strategy (mcp.json, marketplace.json, hooks.json)
170152
171153All JSON writes use atomic read-modify-write:
1721541 . Read existing file (or start with ` {} ` if not found)
@@ -176,12 +158,12 @@ All JSON writes use atomic read-modify-write:
176158
177159** Key upsert** (` mcpServers.evolve ` , ` hooks.UserPromptSubmit ` scaffolding): navigate nested keys via ` dict.setdefault ` , merge matching dict values in place, and only replace scalar/list leaves.
178160
179- ** Array upsert** (` .roomodes ` ` customModes ` , ` marketplace.json ` ` plugins ` ): iterate array, find item where the identity key matches,
161+ ** Array upsert** (` marketplace.json ` ` plugins ` ): iterate array, find item where the identity key matches,
180162merge matching dict items in place; append if not found.
181163
182164** Array remove** : filter array by ` item["slug"] != target_slug ` , write back.
183165
184- ### YAML Strategy (custom_modes.yaml, .roomodes when YAML )
166+ ### YAML Strategy (custom_modes.yaml)
185167
186168YAML files use sentinel comment blocks:
187169
@@ -201,9 +183,6 @@ between sentinels. If no, append sentinel block to end of file.
201183
202184** Uninstall** : find sentinel start and end lines, remove all lines between them (inclusive).
203185
204- ** Source parsing** : the source ` .roomodes ` from ` platform-integrations/roo/ ` is YAML format.
205- The mode data is extracted via regex from the YAML source and converted to a Python dict
206- for JSON insertion. No third-party YAML library is required.
207186
208187---
209188
@@ -260,7 +239,7 @@ curl -fsSL https://raw.githubusercontent.com/AgentToolkit/altk-evolve/v1.2.0/pla
260239
261240# Non-interactive, specific platform
262241curl -fsSL https://raw.githubusercontent.com/AgentToolkit/altk-evolve/main/platform-integrations/install.sh | \
263- bash -s -- install --platform roo
242+ bash -s -- install --platform bob
264243```
265244
266245## Local Install Example
@@ -271,5 +250,5 @@ curl -fsSL https://raw.githubusercontent.com/AgentToolkit/altk-evolve/main/platf
271250./platform-integrations/install.sh install --platform bob --mode full
272251./platform-integrations/install.sh install --platform all
273252./platform-integrations/install.sh status
274- ./platform-integrations/install.sh uninstall --platform roo
253+ ./platform-integrations/install.sh uninstall --platform bob
275254```
0 commit comments