aether-colony 3.1.4 → 3.1.15
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.claude/commands/ant/archaeology.md +12 -0
- package/.claude/commands/ant/build.md +382 -319
- package/.claude/commands/ant/chaos.md +23 -1
- package/.claude/commands/ant/colonize.md +147 -87
- package/.claude/commands/ant/continue.md +213 -23
- package/.claude/commands/ant/council.md +22 -0
- package/.claude/commands/ant/dream.md +18 -0
- package/.claude/commands/ant/entomb.md +178 -6
- package/.claude/commands/ant/init.md +87 -13
- package/.claude/commands/ant/lay-eggs.md +45 -5
- package/.claude/commands/ant/oracle.md +82 -9
- package/.claude/commands/ant/organize.md +2 -2
- package/.claude/commands/ant/pause-colony.md +86 -28
- package/.claude/commands/ant/phase.md +26 -0
- package/.claude/commands/ant/plan.md +204 -111
- package/.claude/commands/ant/resume-colony.md +23 -1
- package/.claude/commands/ant/resume.md +159 -0
- package/.claude/commands/ant/seal.md +177 -3
- package/.claude/commands/ant/swarm.md +78 -97
- package/.claude/commands/ant/verify-castes.md +7 -7
- package/.claude/commands/ant/watch.md +17 -0
- package/.opencode/agents/aether-ambassador.md +97 -0
- package/.opencode/agents/aether-archaeologist.md +91 -0
- package/.opencode/agents/aether-architect.md +66 -0
- package/.opencode/agents/aether-auditor.md +111 -0
- package/.opencode/agents/aether-builder.md +28 -10
- package/.opencode/agents/aether-chaos.md +98 -0
- package/.opencode/agents/aether-chronicler.md +80 -0
- package/.opencode/agents/aether-gatekeeper.md +107 -0
- package/.opencode/agents/aether-guardian.md +107 -0
- package/.opencode/agents/aether-includer.md +108 -0
- package/.opencode/agents/aether-keeper.md +106 -0
- package/.opencode/agents/aether-measurer.md +119 -0
- package/.opencode/agents/aether-probe.md +91 -0
- package/.opencode/agents/aether-queen.md +72 -19
- package/.opencode/agents/aether-route-setter.md +85 -0
- package/.opencode/agents/aether-sage.md +98 -0
- package/.opencode/agents/aether-scout.md +33 -15
- package/.opencode/agents/aether-surveyor-disciplines.md +334 -0
- package/.opencode/agents/aether-surveyor-nest.md +272 -0
- package/.opencode/agents/aether-surveyor-pathogens.md +209 -0
- package/.opencode/agents/aether-surveyor-provisions.md +277 -0
- package/.opencode/agents/aether-tracker.md +91 -0
- package/.opencode/agents/aether-watcher.md +30 -12
- package/.opencode/agents/aether-weaver.md +87 -0
- package/.opencode/agents/workers.md +1034 -0
- package/.opencode/commands/ant/archaeology.md +44 -26
- package/.opencode/commands/ant/build.md +327 -295
- package/.opencode/commands/ant/chaos.md +32 -4
- package/.opencode/commands/ant/colonize.md +119 -93
- package/.opencode/commands/ant/continue.md +98 -10
- package/.opencode/commands/ant/council.md +28 -0
- package/.opencode/commands/ant/dream.md +24 -0
- package/.opencode/commands/ant/entomb.md +73 -1
- package/.opencode/commands/ant/feedback.md +8 -2
- package/.opencode/commands/ant/flag.md +9 -3
- package/.opencode/commands/ant/flags.md +8 -2
- package/.opencode/commands/ant/focus.md +8 -2
- package/.opencode/commands/ant/help.md +12 -0
- package/.opencode/commands/ant/init.md +49 -4
- package/.opencode/commands/ant/lay-eggs.md +30 -2
- package/.opencode/commands/ant/oracle.md +39 -7
- package/.opencode/commands/ant/organize.md +9 -3
- package/.opencode/commands/ant/pause-colony.md +54 -1
- package/.opencode/commands/ant/phase.md +36 -4
- package/.opencode/commands/ant/plan.md +225 -117
- package/.opencode/commands/ant/redirect.md +8 -2
- package/.opencode/commands/ant/resume-colony.md +51 -26
- package/.opencode/commands/ant/seal.md +76 -0
- package/.opencode/commands/ant/status.md +50 -20
- package/.opencode/commands/ant/swarm.md +108 -104
- package/.opencode/commands/ant/tunnels.md +107 -2
- package/CHANGELOG.md +21 -0
- package/README.md +199 -86
- package/bin/cli.js +142 -25
- package/bin/generate-commands.sh +100 -16
- package/bin/lib/caste-colors.js +5 -5
- package/bin/lib/errors.js +16 -0
- package/bin/lib/file-lock.js +279 -44
- package/bin/lib/state-sync.js +206 -23
- package/bin/lib/update-transaction.js +206 -24
- package/bin/sync-to-runtime.sh +129 -0
- package/package.json +2 -2
- package/runtime/CONTEXT.md +160 -0
- package/runtime/aether-utils.sh +1421 -55
- package/runtime/docs/AETHER-2.0-IMPLEMENTATION-PLAN.md +1343 -0
- package/runtime/docs/AETHER-PHEROMONE-SYSTEM-MASTER-SPEC.md +2642 -0
- package/runtime/docs/PHEROMONE-INJECTION.md +240 -0
- package/runtime/docs/PHEROMONE-INTEGRATION.md +192 -0
- package/runtime/docs/PHEROMONE-SYSTEM-DESIGN.md +426 -0
- package/runtime/docs/README.md +94 -0
- package/runtime/docs/VISUAL-OUTPUT-SPEC.md +219 -0
- package/runtime/docs/biological-reference.md +272 -0
- package/runtime/docs/codebase-review.md +399 -0
- package/runtime/docs/command-sync.md +164 -0
- package/runtime/docs/implementation-learnings.md +89 -0
- package/runtime/docs/known-issues.md +217 -0
- package/runtime/docs/namespace.md +148 -0
- package/runtime/docs/planning-discipline.md +159 -0
- package/runtime/lib/queen-utils.sh +729 -0
- package/runtime/model-profiles.yaml +100 -0
- package/runtime/recover.sh +136 -0
- package/runtime/templates/QUEEN.md.template +79 -0
- package/runtime/utils/atomic-write.sh +5 -5
- package/runtime/utils/chamber-utils.sh +6 -3
- package/runtime/utils/error-handler.sh +200 -0
- package/runtime/utils/queen-to-md.xsl +395 -0
- package/runtime/utils/spawn-tree.sh +428 -0
- package/runtime/utils/spawn-with-model.sh +56 -0
- package/runtime/utils/state-loader.sh +215 -0
- package/runtime/utils/swarm-display.sh +5 -5
- package/runtime/utils/watch-spawn-tree.sh +90 -22
- package/runtime/utils/xml-compose.sh +247 -0
- package/runtime/utils/xml-core.sh +186 -0
- package/runtime/utils/xml-utils.sh +2161 -0
- package/runtime/verification-loop.md +1 -1
- package/runtime/workers-new-castes.md +516 -0
- package/runtime/workers.md +20 -8
- package/.aether/visualizations/anthill-stages/brood-stable.txt +0 -26
- package/.aether/visualizations/anthill-stages/crowned-anthill.txt +0 -30
- package/.aether/visualizations/anthill-stages/first-mound.txt +0 -18
- package/.aether/visualizations/anthill-stages/open-chambers.txt +0 -24
- package/.aether/visualizations/anthill-stages/sealed-chambers.txt +0 -28
- package/.aether/visualizations/anthill-stages/ventilated-nest.txt +0 -27
|
@@ -7,10 +7,16 @@ You are the **Queen**. Emit a FEEDBACK signal.
|
|
|
7
7
|
|
|
8
8
|
## Instructions
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
### Step -1: Normalize Arguments
|
|
11
|
+
|
|
12
|
+
Run: `normalized_args=$(bash .aether/aether-utils.sh normalize-args "$@")`
|
|
13
|
+
|
|
14
|
+
This ensures arguments work correctly in both Claude Code and OpenCode. Use `$normalized_args` throughout this command.
|
|
15
|
+
|
|
16
|
+
The feedback message is: `$normalized_args`
|
|
11
17
|
|
|
12
18
|
### Step 1: Validate
|
|
13
|
-
If `$
|
|
19
|
+
If `$normalized_args` empty -> show usage: `/ant:feedback <message>`, stop.
|
|
14
20
|
If content > 500 chars -> "Signal content too long (max 500 chars)", stop.
|
|
15
21
|
|
|
16
22
|
### Step 2: Read + Update State
|
|
@@ -7,11 +7,17 @@ You are the **Queen**. Create a project-specific flag.
|
|
|
7
7
|
|
|
8
8
|
## Instructions
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
### Step -1: Normalize Arguments
|
|
11
|
+
|
|
12
|
+
Run: `normalized_args=$(bash .aether/aether-utils.sh normalize-args "$@")`
|
|
13
|
+
|
|
14
|
+
This ensures arguments work correctly in both Claude Code and OpenCode. Use `$normalized_args` throughout this command.
|
|
15
|
+
|
|
16
|
+
The flag is: `$normalized_args`
|
|
11
17
|
|
|
12
18
|
### Step 1: Parse Arguments
|
|
13
19
|
|
|
14
|
-
Parse `$
|
|
20
|
+
Parse `$normalized_args` for:
|
|
15
21
|
- `--type` or `-t`: blocker | issue | note (default: issue)
|
|
16
22
|
- `--phase` or `-p`: phase number (optional)
|
|
17
23
|
- Remaining text: the flag title/description
|
|
@@ -21,7 +27,7 @@ Examples:
|
|
|
21
27
|
- `/ant:flag --type blocker "API rate limit hit"` → blocker type
|
|
22
28
|
- `/ant:flag -t note -p 3 "Consider refactoring later"` → note for phase 3
|
|
23
29
|
|
|
24
|
-
If `$
|
|
30
|
+
If `$normalized_args` is empty:
|
|
25
31
|
```
|
|
26
32
|
Usage: /ant:flag "<description>" [--type blocker|issue|note] [--phase N]
|
|
27
33
|
|
|
@@ -7,11 +7,17 @@ You are the **Queen**. Display project flags.
|
|
|
7
7
|
|
|
8
8
|
## Instructions
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
### Step -1: Normalize Arguments
|
|
11
|
+
|
|
12
|
+
Run: `normalized_args=$(bash .aether/aether-utils.sh normalize-args "$@")`
|
|
13
|
+
|
|
14
|
+
This ensures arguments work correctly in both Claude Code and OpenCode. Use `$normalized_args` throughout this command.
|
|
15
|
+
|
|
16
|
+
Arguments: `$normalized_args`
|
|
11
17
|
|
|
12
18
|
### Step 1: Parse Arguments
|
|
13
19
|
|
|
14
|
-
Parse `$
|
|
20
|
+
Parse `$normalized_args` for:
|
|
15
21
|
- `--all` or `-a`: Show resolved flags too
|
|
16
22
|
- `--type` or `-t`: Filter by type (blocker|issue|note)
|
|
17
23
|
- `--phase` or `-p`: Filter by phase number
|
|
@@ -7,11 +7,17 @@ You are the **Queen**. Add a FOCUS constraint.
|
|
|
7
7
|
|
|
8
8
|
## Instructions
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
### Step -1: Normalize Arguments
|
|
11
|
+
|
|
12
|
+
Run: `normalized_args=$(bash .aether/aether-utils.sh normalize-args "$@")`
|
|
13
|
+
|
|
14
|
+
This ensures arguments work correctly in both Claude Code and OpenCode. Use `$normalized_args` throughout this command.
|
|
15
|
+
|
|
16
|
+
The focus area is: `$normalized_args`
|
|
11
17
|
|
|
12
18
|
### Step 1: Validate
|
|
13
19
|
|
|
14
|
-
If `$
|
|
20
|
+
If `$normalized_args` empty -> show usage: `/ant:focus <area>`, stop.
|
|
15
21
|
If content > 500 chars -> "Focus content too long (max 500 chars)", stop.
|
|
16
22
|
|
|
17
23
|
### Step 2: Read + Update Constraints
|
|
@@ -109,4 +109,16 @@ HOW IT WORKS
|
|
|
109
109
|
activity.log Timestamped worker activity
|
|
110
110
|
spawn-tree.txt Worker spawn hierarchy
|
|
111
111
|
constraints.json Focus/redirect pheromone data
|
|
112
|
+
|
|
113
|
+
OPENCODE USERS
|
|
114
|
+
|
|
115
|
+
Argument syntax: OpenCode handles multi-word arguments differently than Claude.
|
|
116
|
+
Wrap text arguments in quotes for reliable parsing:
|
|
117
|
+
|
|
118
|
+
✅ /ant:init "Build a REST API"
|
|
119
|
+
✅ /ant:plan "authentication system"
|
|
120
|
+
✅ /ant:focus "database layer"
|
|
121
|
+
|
|
122
|
+
Without quotes, only the first word may be captured. This is now handled
|
|
123
|
+
automatically by the normalize-args utility, but quoting is recommended.
|
|
112
124
|
```
|
|
@@ -7,9 +7,33 @@ You are the **Queen Ant Colony**. Initialize the colony with the Queen's intenti
|
|
|
7
7
|
|
|
8
8
|
## Instructions
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
### Step -1: Normalize Arguments
|
|
11
11
|
|
|
12
|
-
|
|
12
|
+
Run: `normalized_args=$(bash .aether/aether-utils.sh normalize-args "$@")`
|
|
13
|
+
|
|
14
|
+
This ensures arguments work correctly in both Claude Code and OpenCode.
|
|
15
|
+
|
|
16
|
+
The user's goal is: `$normalized_args`
|
|
17
|
+
|
|
18
|
+
Parse `$normalized_args`:
|
|
19
|
+
- If contains `--no-visual`: set `visual_mode = false` (visual is ON by default)
|
|
20
|
+
- Otherwise: set `visual_mode = true`
|
|
21
|
+
|
|
22
|
+
Note: Use `$normalized_args` instead of `$ARGUMENTS` throughout this command.
|
|
23
|
+
|
|
24
|
+
### Step 0: Initialize Visual Mode (if enabled)
|
|
25
|
+
|
|
26
|
+
If `visual_mode` is true:
|
|
27
|
+
```bash
|
|
28
|
+
# Generate session ID
|
|
29
|
+
init_id="init-$(date +%s)"
|
|
30
|
+
|
|
31
|
+
# Initialize swarm display
|
|
32
|
+
bash .aether/aether-utils.sh swarm-display-init "$init_id"
|
|
33
|
+
bash .aether/aether-utils.sh swarm-display-update "Queen" "prime" "excavating" "Colony initialization" "Colony" '{"read":0,"grep":0,"edit":0,"bash":0}' 0 "fungus_garden" 0
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
### Step 0.5: Version Check (Non-blocking)
|
|
13
37
|
|
|
14
38
|
Run using the Bash tool: `bash .aether/aether-utils.sh version-check 2>/dev/null || true`
|
|
15
39
|
|
|
@@ -17,7 +41,7 @@ If the command succeeds and the JSON result contains a non-empty string, display
|
|
|
17
41
|
|
|
18
42
|
### Step 1: Validate Input
|
|
19
43
|
|
|
20
|
-
If `$
|
|
44
|
+
If `$normalized_args` is empty or blank, output:
|
|
21
45
|
|
|
22
46
|
```
|
|
23
47
|
Aether Colony
|
|
@@ -175,7 +199,16 @@ bash .aether/aether-utils.sh validate-state colony
|
|
|
175
199
|
|
|
176
200
|
This validates COLONY_STATE.json structure. If validation fails, output a warning.
|
|
177
201
|
|
|
178
|
-
### Step 5.5:
|
|
202
|
+
### Step 5.5: Detect Nestmates
|
|
203
|
+
|
|
204
|
+
Run using Bash tool: `node -e "const nl = require('./bin/lib/nestmate-loader'); console.log(JSON.stringify(nl.findNestmates(process.cwd())))"`
|
|
205
|
+
|
|
206
|
+
If nestmates are found:
|
|
207
|
+
1. Display: `Nestmates found: N related colonies`
|
|
208
|
+
2. List each nestmate with name and truncated goal
|
|
209
|
+
3. Check for shared TO-DOs or cross-project dependencies
|
|
210
|
+
|
|
211
|
+
### Step 5.6: Register Repo (Silent)
|
|
179
212
|
|
|
180
213
|
Attempt to register this repo in the global hub. Both steps are silent on failure — registry is not required for the colony to work.
|
|
181
214
|
|
|
@@ -193,6 +226,12 @@ If either command fails, proceed silently. These are optional bookkeeping.
|
|
|
193
226
|
|
|
194
227
|
### Step 6: Display Result
|
|
195
228
|
|
|
229
|
+
**If visual_mode is true, render final swarm display:**
|
|
230
|
+
```bash
|
|
231
|
+
bash .aether/aether-utils.sh swarm-display-update "Queen" "prime" "completed" "Colony initialized" "Colony" '{"read":5,"grep":2,"edit":3,"bash":2}' 100 "fungus_garden" 100
|
|
232
|
+
bash .aether/aether-utils.sh swarm-display-render "$init_id"
|
|
233
|
+
```
|
|
234
|
+
|
|
196
235
|
Output this header:
|
|
197
236
|
|
|
198
237
|
```
|
|
@@ -216,6 +255,12 @@ Then output the result:
|
|
|
216
255
|
{N} instinct(s) | {N} learning(s)
|
|
217
256
|
{End if}
|
|
218
257
|
|
|
258
|
+
{If nestmates found in Step 5.5:}
|
|
259
|
+
🏘️ Nest Context: {N} sibling colonies detected
|
|
260
|
+
Context from related projects will be automatically considered
|
|
261
|
+
during planning and execution.
|
|
262
|
+
{End if}
|
|
263
|
+
|
|
219
264
|
🐜 The colony awaits your command:
|
|
220
265
|
|
|
221
266
|
/ant:plan 📋 Generate project plan
|
|
@@ -7,9 +7,31 @@ You are the **Queen**. Begin a new colony, preserving pheromones.
|
|
|
7
7
|
|
|
8
8
|
## Instructions
|
|
9
9
|
|
|
10
|
+
### Step -1: Normalize Arguments
|
|
11
|
+
|
|
12
|
+
Run: `normalized_args=$(bash .aether/aether-utils.sh normalize-args "$@")`
|
|
13
|
+
|
|
14
|
+
This ensures arguments work correctly in both Claude Code and OpenCode. Use `$normalized_args` throughout this command.
|
|
15
|
+
|
|
16
|
+
Parse `$normalized_args`:
|
|
17
|
+
- If contains `--no-visual`: set `visual_mode = false` (visual is ON by default)
|
|
18
|
+
- Otherwise: set `visual_mode = true`
|
|
19
|
+
|
|
20
|
+
### Step 0: Initialize Visual Mode (if enabled)
|
|
21
|
+
|
|
22
|
+
If `visual_mode` is true:
|
|
23
|
+
```bash
|
|
24
|
+
# Generate session ID
|
|
25
|
+
layeggs_id="layeggs-$(date +%s)"
|
|
26
|
+
|
|
27
|
+
# Initialize swarm display
|
|
28
|
+
bash .aether/aether-utils.sh swarm-display-init "$layeggs_id"
|
|
29
|
+
bash .aether/aether-utils.sh swarm-display-update "Queen" "prime" "excavating" "Laying first eggs" "Colony" '{"read":0,"grep":0,"edit":0,"bash":0}' 0 "nursery" 0
|
|
30
|
+
```
|
|
31
|
+
|
|
10
32
|
### Step 1: Validate Input
|
|
11
33
|
|
|
12
|
-
- If `$
|
|
34
|
+
- If `$normalized_args` is empty:
|
|
13
35
|
```
|
|
14
36
|
Usage: /ant:lay-eggs "<new colony goal>"
|
|
15
37
|
|
|
@@ -54,7 +76,7 @@ Generate new state following RESEARCH.md Pattern 2 (State Reset with Pheromone P
|
|
|
54
76
|
- memory.instincts (high confidence only)
|
|
55
77
|
|
|
56
78
|
**Fields to reset:**
|
|
57
|
-
- goal: new goal from $
|
|
79
|
+
- goal: new goal from $normalized_args
|
|
58
80
|
- state: "READY"
|
|
59
81
|
- current_phase: 0
|
|
60
82
|
- session_id: new session_{unix_timestamp}_{random}
|
|
@@ -86,6 +108,12 @@ Write `.aether/data/constraints.json`:
|
|
|
86
108
|
|
|
87
109
|
### Step 6: Display Result
|
|
88
110
|
|
|
111
|
+
**If visual_mode is true, render final swarm display:**
|
|
112
|
+
```bash
|
|
113
|
+
bash .aether/aether-utils.sh swarm-display-update "Queen" "prime" "completed" "First eggs laid" "Colony" '{"read":3,"grep":0,"edit":2,"bash":1}' 100 "nursery" 100
|
|
114
|
+
bash .aether/aether-utils.sh swarm-display-render "$layeggs_id"
|
|
115
|
+
```
|
|
116
|
+
|
|
89
117
|
```
|
|
90
118
|
🥚 ═══════════════════════════════════════════════════
|
|
91
119
|
F I R S T E G G S L A I D
|
|
@@ -5,7 +5,7 @@ description: "🔮🐜🧠🐜🔮 Oracle Ant - deep research agent using RALF i
|
|
|
5
5
|
|
|
6
6
|
You are the **Oracle Ant** command handler. You configure and launch a deep research loop that runs autonomously in a separate process.
|
|
7
7
|
|
|
8
|
-
The user's input is: `$
|
|
8
|
+
The user's input is: `$normalized_args`
|
|
9
9
|
|
|
10
10
|
## Non-Invasive Guarantee
|
|
11
11
|
|
|
@@ -13,13 +13,45 @@ Oracle NEVER touches COLONY_STATE.json, constraints.json, activity.log, or any c
|
|
|
13
13
|
|
|
14
14
|
## Instructions
|
|
15
15
|
|
|
16
|
+
### Step -1: Normalize Arguments
|
|
17
|
+
|
|
18
|
+
Run: `normalized_args=$(bash .aether/aether-utils.sh normalize-args "$@")`
|
|
19
|
+
|
|
20
|
+
This ensures arguments work correctly in both Claude Code and OpenCode. Use `$normalized_args` throughout this command.
|
|
21
|
+
|
|
16
22
|
### Step 0: Parse Arguments and Route
|
|
17
23
|
|
|
18
|
-
Parse `$
|
|
24
|
+
Parse `$normalized_args` to determine the action:
|
|
25
|
+
|
|
26
|
+
1. Check for flags:
|
|
27
|
+
- If contains `--no-visual`: set `visual_mode = false` (visual is ON by default)
|
|
28
|
+
- Otherwise: set `visual_mode = true`
|
|
29
|
+
- Remove flags from arguments before routing
|
|
19
30
|
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
31
|
+
2. **If remaining arguments is exactly `stop`** — go to **Step 0b: Stop Oracle**
|
|
32
|
+
3. **If remaining arguments is exactly `status`** — go to **Step 0c: Show Status**
|
|
33
|
+
4. **Otherwise** — go to **Step 0.5: Initialize Visual Mode** then **Step 1: Research Wizard**
|
|
34
|
+
|
|
35
|
+
### Step 0.5: Initialize Visual Mode (if enabled)
|
|
36
|
+
|
|
37
|
+
If `visual_mode` is true:
|
|
38
|
+
```bash
|
|
39
|
+
# Generate session ID
|
|
40
|
+
oracle_id="oracle-$(date +%s)"
|
|
41
|
+
|
|
42
|
+
# Initialize swarm display
|
|
43
|
+
bash .aether/aether-utils.sh swarm-display-init "$oracle_id"
|
|
44
|
+
bash .aether/aether-utils.sh swarm-display-update "Oracle" "oracle" "researching" "Deep research in progress" "Colony" '{"read":0,"grep":0,"edit":0,"bash":0}' 0 "fungus_garden" 0
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Display visual header:
|
|
48
|
+
```
|
|
49
|
+
🔮🐜🧠🐜🔮 ═══════════════════════════════════════════════
|
|
50
|
+
O R A C L E — R e s e a r c h M o d e
|
|
51
|
+
═══════════════════════════════════════════════ 🔮🐜🧠🐜🔮
|
|
52
|
+
|
|
53
|
+
Oracle peering into the depths...
|
|
54
|
+
```
|
|
23
55
|
|
|
24
56
|
---
|
|
25
57
|
|
|
@@ -99,13 +131,13 @@ Output the header:
|
|
|
99
131
|
═══════════════════════════════════════════════════ 🔮🐜🧠🐜🔮
|
|
100
132
|
```
|
|
101
133
|
|
|
102
|
-
**If `$
|
|
134
|
+
**If `$normalized_args` is not empty and not a subcommand**, use it as the initial topic suggestion. Otherwise, the topic will be asked in Question 1.
|
|
103
135
|
|
|
104
136
|
Now ask questions using AskUserQuestion. Ask them one at a time so each answer can inform the next question.
|
|
105
137
|
|
|
106
138
|
**Question 1: Research Topic**
|
|
107
139
|
|
|
108
|
-
If `$
|
|
140
|
+
If `$normalized_args` already contains a topic, skip this question and use that as the topic.
|
|
109
141
|
|
|
110
142
|
Otherwise ask:
|
|
111
143
|
|
|
@@ -5,10 +5,16 @@ description: "🧹🐜🏛️🐜🧹 Run codebase hygiene report - archivist an
|
|
|
5
5
|
|
|
6
6
|
You are the **Queen Ant Colony**. Spawn an archivist to analyze codebase hygiene.
|
|
7
7
|
|
|
8
|
-
> **Note:** `$
|
|
8
|
+
> **Note:** `$normalized_args` is unused. Future extensions could accept a path scope argument.
|
|
9
9
|
|
|
10
10
|
## Instructions
|
|
11
11
|
|
|
12
|
+
### Step -1: Normalize Arguments
|
|
13
|
+
|
|
14
|
+
Run: `normalized_args=$(bash .aether/aether-utils.sh normalize-args "$@")`
|
|
15
|
+
|
|
16
|
+
This ensures arguments work correctly in both Claude Code and OpenCode. Use `$normalized_args` throughout this command.
|
|
17
|
+
|
|
12
18
|
### Step 1: Read State
|
|
13
19
|
|
|
14
20
|
Use the Read tool to read these files (in parallel):
|
|
@@ -48,7 +54,8 @@ If no active signals after filtering:
|
|
|
48
54
|
|
|
49
55
|
Read `.aether/workers.md` and extract the `## Architect` section.
|
|
50
56
|
|
|
51
|
-
Spawn via **Task tool** with `subagent_type="general"`:
|
|
57
|
+
Spawn via **Task tool** with `subagent_type="general-purpose"`:
|
|
58
|
+
# NOTE: Claude Code uses aether-architect; OpenCode uses general-purpose with role injection
|
|
52
59
|
|
|
53
60
|
```
|
|
54
61
|
--- WORKER SPEC ---
|
|
@@ -159,7 +166,6 @@ CONSTRAINTS:
|
|
|
159
166
|
- Do NOT flag standard framework files (package.json, tsconfig.json, etc.) as orphaned.
|
|
160
167
|
- Do NOT flag .aether/ internal data files as stale (they are managed by the colony).
|
|
161
168
|
- Do NOT flag .claude/ command files as stale (they are the colony's brain).
|
|
162
|
-
- Do NOT flag .planning/ files as stale (they are project management artifacts).
|
|
163
169
|
- Aim for a useful report, not an exhaustive one. 5-15 findings is ideal.
|
|
164
170
|
```
|
|
165
171
|
|
|
@@ -7,6 +7,28 @@ You are the **Queen Ant Colony**. Save current state for session handoff.
|
|
|
7
7
|
|
|
8
8
|
## Instructions
|
|
9
9
|
|
|
10
|
+
### Step -1: Normalize Arguments
|
|
11
|
+
|
|
12
|
+
Run: `normalized_args=$(bash .aether/aether-utils.sh normalize-args "$@")`
|
|
13
|
+
|
|
14
|
+
This ensures arguments work correctly in both Claude Code and OpenCode. Use `$normalized_args` throughout this command.
|
|
15
|
+
|
|
16
|
+
Parse `$normalized_args`:
|
|
17
|
+
- If contains `--no-visual`: set `visual_mode = false` (visual is ON by default)
|
|
18
|
+
- Otherwise: set `visual_mode = true`
|
|
19
|
+
|
|
20
|
+
### Step 0: Initialize Visual Mode (if enabled)
|
|
21
|
+
|
|
22
|
+
If `visual_mode` is true:
|
|
23
|
+
```bash
|
|
24
|
+
# Generate session ID
|
|
25
|
+
pause_id="pause-$(date +%s)"
|
|
26
|
+
|
|
27
|
+
# Initialize swarm display
|
|
28
|
+
bash .aether/aether-utils.sh swarm-display-init "$pause_id"
|
|
29
|
+
bash .aether/aether-utils.sh swarm-display-update "Queen" "prime" "excavating" "Pausing colony" "Colony" '{"read":0,"grep":0,"edit":0,"bash":0}' 0 "fungus_garden" 0
|
|
30
|
+
```
|
|
31
|
+
|
|
10
32
|
### Step 1: Read State
|
|
11
33
|
|
|
12
34
|
Use the Read tool to read `.aether/data/COLONY_STATE.json`.
|
|
@@ -69,7 +91,18 @@ Run `/ant:resume-colony` in a new session.
|
|
|
69
91
|
<what should happen next>
|
|
70
92
|
```
|
|
71
93
|
|
|
72
|
-
### Step 4.5:
|
|
94
|
+
### Step 4.5: Set Paused Flag in State
|
|
95
|
+
|
|
96
|
+
Use Read tool to get current COLONY_STATE.json.
|
|
97
|
+
|
|
98
|
+
Use Write tool to update COLONY_STATE.json with paused flag:
|
|
99
|
+
- Add field: `"paused": true`
|
|
100
|
+
- Add field: `"paused_at": "<ISO-8601 timestamp>"`
|
|
101
|
+
- Update last_updated timestamp
|
|
102
|
+
|
|
103
|
+
This flag indicates the colony is in a paused state and will be cleared on resume.
|
|
104
|
+
|
|
105
|
+
### Step 4.6: Commit Suggestion (Optional)
|
|
73
106
|
|
|
74
107
|
**This step is non-blocking. Skipping does not affect the pause or any subsequent steps. Failure to commit has zero consequences.**
|
|
75
108
|
|
|
@@ -143,6 +176,12 @@ Continue to Step 5.
|
|
|
143
176
|
|
|
144
177
|
### Step 5: Display Confirmation
|
|
145
178
|
|
|
179
|
+
**If visual_mode is true, render final swarm display:**
|
|
180
|
+
```bash
|
|
181
|
+
bash .aether/aether-utils.sh swarm-display-update "Queen" "prime" "completed" "Colony paused" "Colony" '{"read":3,"grep":0,"edit":2,"bash":1}' 100 "fungus_garden" 100
|
|
182
|
+
bash .aether/aether-utils.sh swarm-display-render "$pause_id"
|
|
183
|
+
```
|
|
184
|
+
|
|
146
185
|
Output header:
|
|
147
186
|
|
|
148
187
|
```
|
|
@@ -161,7 +200,21 @@ Then output:
|
|
|
161
200
|
Pheromones: <active_count> active
|
|
162
201
|
|
|
163
202
|
Handoff saved to .aether/HANDOFF.md
|
|
203
|
+
Paused state saved to COLONY_STATE.json
|
|
164
204
|
|
|
165
205
|
To resume in a new session:
|
|
166
206
|
/ant:resume-colony
|
|
207
|
+
|
|
208
|
+
💾 State persisted — safe to /clear
|
|
209
|
+
|
|
210
|
+
🐜 What would you like to do next?
|
|
211
|
+
1. /ant:resume-colony — Resume work in this session
|
|
212
|
+
2. /ant:lay-eggs "<new goal>" — Start a new colony
|
|
213
|
+
3. /clear — Clear context and continue
|
|
214
|
+
|
|
215
|
+
Use AskUserQuestion with these three options.
|
|
216
|
+
|
|
217
|
+
If option 1 selected: proceed to run /ant:resume-colony flow
|
|
218
|
+
If option 2 selected: run /ant:lay-eggs flow
|
|
219
|
+
If option 3 selected: display "Run /ant:resume-colony when ready to continue, or /ant:lay-eggs to start fresh"
|
|
167
220
|
```
|
|
@@ -7,7 +7,13 @@ You are the **Queen Ant Colony**. Display phase details from the project plan.
|
|
|
7
7
|
|
|
8
8
|
## Instructions
|
|
9
9
|
|
|
10
|
-
|
|
10
|
+
### Step -1: Normalize Arguments
|
|
11
|
+
|
|
12
|
+
Run: `normalized_args=$(bash .aether/aether-utils.sh normalize-args "$@")`
|
|
13
|
+
|
|
14
|
+
This ensures arguments work correctly in both Claude Code and OpenCode. Use `$normalized_args` throughout this command.
|
|
15
|
+
|
|
16
|
+
The argument is: `$normalized_args`
|
|
11
17
|
|
|
12
18
|
### Step 1: Read State
|
|
13
19
|
|
|
@@ -19,9 +25,9 @@ If `plan.phases` is an empty array, output `No project plan. Run /ant:plan first
|
|
|
19
25
|
|
|
20
26
|
### Step 2: Determine What to Show
|
|
21
27
|
|
|
22
|
-
- If `$
|
|
23
|
-
- If `$
|
|
24
|
-
- If `$
|
|
28
|
+
- If `$normalized_args` is empty -> show the current phase (from `current_phase`). If `current_phase` is 0 or beyond the last phase, show phase 1.
|
|
29
|
+
- If `$normalized_args` is a number -> show that specific phase
|
|
30
|
+
- If `$normalized_args` is "list" or "all" -> show all phases in summary
|
|
25
31
|
|
|
26
32
|
### Step 3a: Single Phase View
|
|
27
33
|
|
|
@@ -89,3 +95,29 @@ Legend: [✓] completed [~] in progress [ ] pending
|
|
|
89
95
|
|
|
90
96
|
🐜 /ant:phase <id> for details
|
|
91
97
|
```
|
|
98
|
+
|
|
99
|
+
### Step 4: Update Handoff (Optional)
|
|
100
|
+
|
|
101
|
+
After displaying phase details, offer to update the handoff document with review notes:
|
|
102
|
+
|
|
103
|
+
Use AskUserQuestion:
|
|
104
|
+
```
|
|
105
|
+
Update handoff with phase review notes?
|
|
106
|
+
|
|
107
|
+
1. Yes — add notes about blockers or decisions
|
|
108
|
+
2. No — continue without updating
|
|
109
|
+
```
|
|
110
|
+
|
|
111
|
+
If option 1 selected:
|
|
112
|
+
Use AskUserQuestion to collect notes, then append to handoff:
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
cat >> .aether/HANDOFF.md << 'HANDOFF_EOF'
|
|
116
|
+
|
|
117
|
+
## Phase {id} Review Notes
|
|
118
|
+
- Reviewed: $(date -u +%Y-%m-%dT%H:%M:%SZ)
|
|
119
|
+
- Notes: {user_notes}
|
|
120
|
+
HANDOFF_EOF
|
|
121
|
+
```
|
|
122
|
+
|
|
123
|
+
Display: `Handoff updated with review notes.`
|