aether-colony 3.1.0 → 3.1.2
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/.aether/visualizations/anthill-stages/brood-stable.txt +26 -0
- package/.aether/visualizations/anthill-stages/crowned-anthill.txt +30 -0
- package/.aether/visualizations/anthill-stages/first-mound.txt +18 -0
- package/.aether/visualizations/anthill-stages/open-chambers.txt +24 -0
- package/.aether/visualizations/anthill-stages/sealed-chambers.txt +28 -0
- package/.aether/visualizations/anthill-stages/ventilated-nest.txt +27 -0
- package/.claude/commands/ant/build.md +95 -66
- package/.claude/commands/ant/continue.md +46 -4
- package/.claude/commands/ant/organize.md +1 -1
- package/.claude/commands/ant/pause-colony.md +2 -2
- package/.claude/commands/ant/plan.md +5 -5
- package/.claude/commands/ant/resume-colony.md +2 -13
- package/.claude/commands/ant/status.md +4 -4
- package/.claude/commands/ant/verify-castes.md +59 -69
- package/.opencode/commands/ant/build.md +111 -15
- package/.opencode/commands/ant/continue.md +43 -1
- package/.opencode/commands/ant/maturity.md +92 -0
- package/.opencode/commands/ant/organize.md +1 -1
- package/.opencode/commands/ant/plan.md +2 -2
- package/.opencode/commands/ant/verify-castes.md +85 -0
- package/CHANGELOG.md +19 -0
- package/README.md +214 -255
- package/bin/cli.js +21 -5
- package/bin/lib/model-profiles.js +32 -1
- package/bin/lib/update-transaction.js +8 -0
- package/package.json +3 -2
- package/runtime/aether-utils.sh +16 -0
- package/runtime/workers.md +147 -3
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
.-.
|
|
2
|
+
(o o)
|
|
3
|
+
| O |
|
|
4
|
+
`-`
|
|
5
|
+
🥚 🥚 🥚 🥚
|
|
6
|
+
. . . .
|
|
7
|
+
/|\ /|\ /|\ /|\
|
|
8
|
+
/ | \ / | \ / | \ / | \
|
|
9
|
+
/ | \/ | \/ | \/ | \
|
|
10
|
+
/ | /\ | /\ | /\ | \
|
|
11
|
+
/____|__/___\|___/___\|___/___\|____\
|
|
12
|
+
/ o / o \ o / o \ o \
|
|
13
|
+
/______/_______\_____/_______\_______\
|
|
14
|
+
/_______________________________________\
|
|
15
|
+
/_________________________________________\
|
|
16
|
+
/___________________________________________\
|
|
17
|
+
/_____________________________________________\
|
|
18
|
+
/_______________________________________________\
|
|
19
|
+
|
|
20
|
+
🐜🐜🐜 Brood chamber thriving...
|
|
21
|
+
New life stirs in the nursery,
|
|
22
|
+
the colony's future secured.
|
|
23
|
+
|
|
24
|
+
Milestone: Brood Stable
|
|
25
|
+
Phases: 4-6 completed
|
|
26
|
+
Colony Age: Established
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
👑
|
|
2
|
+
.-.
|
|
3
|
+
(o o)
|
|
4
|
+
| O |
|
|
5
|
+
`-`
|
|
6
|
+
✨ ✨ ✨
|
|
7
|
+
🥚 🥚 🥚 🥚 🥚 🥚 🥚 🥚 🥚
|
|
8
|
+
. . . . . . . .
|
|
9
|
+
/|\ /|\ /|\ /|\ /|\ /|\ /|\ /|\
|
|
10
|
+
/ | \ / | \ / | \ / | \ / | \ / | \ / | \ / | \
|
|
11
|
+
/ | \/ | \/ | \/ | \/ | \/ | \/ | \/ | \/ | \
|
|
12
|
+
/ | /\ | /\ | /\ | /\ | /\ | /\ | /\ | /\ | \
|
|
13
|
+
\___|___/___\|___/___\|___/___\|___/___\|___/___\|___/___\|___/___\|___/___/
|
|
14
|
+
\ o / o \ o / o \ o / o \ o / o /
|
|
15
|
+
\____/_______\_____/_______\_____/_______\_____/_______/
|
|
16
|
+
\_______________________________________________________/
|
|
17
|
+
\_______________________________________________________\
|
|
18
|
+
\_______________________________________________________\
|
|
19
|
+
\_______________________________________________________\
|
|
20
|
+
\_______________________________________________________\
|
|
21
|
+
\_______________________________________________________\
|
|
22
|
+
\_______________________________________________________\
|
|
23
|
+
|
|
24
|
+
🐜🐜🐜🐜🐜🐜 The Crowned Anthill!
|
|
25
|
+
A monument to collective effort,
|
|
26
|
+
the colony stands supreme.
|
|
27
|
+
|
|
28
|
+
Milestone: Crowned Anthill
|
|
29
|
+
Phases: 15+ completed
|
|
30
|
+
Colony Age: Legendary
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
. .
|
|
2
|
+
/|\ /|\
|
|
3
|
+
/ | \ / | \
|
|
4
|
+
/ | \/ | \
|
|
5
|
+
/ | /\ | \
|
|
6
|
+
/____|__/___\|____\
|
|
7
|
+
/ / \ \
|
|
8
|
+
/______/_______\______\
|
|
9
|
+
/________________________\
|
|
10
|
+
/__________________________\
|
|
11
|
+
|
|
12
|
+
🐜 A humble beginning...
|
|
13
|
+
Just a small mound of earth,
|
|
14
|
+
but full of potential.
|
|
15
|
+
|
|
16
|
+
Milestone: First Mound
|
|
17
|
+
Phases: 0 completed
|
|
18
|
+
Colony Age: Newborn
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
.-.
|
|
2
|
+
(o o)
|
|
3
|
+
| O |
|
|
4
|
+
`-`
|
|
5
|
+
. . .
|
|
6
|
+
/|\ /|\ /|\
|
|
7
|
+
/ | \ / | \ / | \
|
|
8
|
+
/ | \/ | \/ | \
|
|
9
|
+
/ | /\ | /\ | \
|
|
10
|
+
/____|__/___\|___/___\|____\
|
|
11
|
+
/ o / o \ o / o \
|
|
12
|
+
/______/_______\_____/_______\
|
|
13
|
+
/_______________________________\
|
|
14
|
+
/_________________________________\
|
|
15
|
+
/___________________________________\
|
|
16
|
+
/_____________________________________\
|
|
17
|
+
|
|
18
|
+
🐜🐜 Tunnels open...
|
|
19
|
+
The colony expands its reach,
|
|
20
|
+
chambers forming beneath the earth.
|
|
21
|
+
|
|
22
|
+
Milestone: Open Chambers
|
|
23
|
+
Phases: 1-3 completed
|
|
24
|
+
Colony Age: Growing
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
.-.
|
|
2
|
+
(o o)
|
|
3
|
+
| O |
|
|
4
|
+
`-`
|
|
5
|
+
🔒 🔒
|
|
6
|
+
🥚 🥚 🥚 🥚 🥚 🥚 🥚
|
|
7
|
+
. . . . . . .
|
|
8
|
+
/|\ /|\ /|\ /|\ /|\ /|\ /|\
|
|
9
|
+
/ | \ / | \ / | \ / | \ / | \ / | \ / | \
|
|
10
|
+
/ | \/ | \/ | \/ | \/ | \/ | \/ | \
|
|
11
|
+
/ | /\ | /\ | /\ | /\ | /\ | /\ | \
|
|
12
|
+
\___|___/___\|___/___\|___/___\|___/___\|___/___\|___/___/
|
|
13
|
+
\ o / o \ o / o \ o / o \ o /
|
|
14
|
+
\____/_______\_____/_______\_____/_______\_____/
|
|
15
|
+
\_______________________________________________/
|
|
16
|
+
\_______________________________________________\
|
|
17
|
+
\_______________________________________________\
|
|
18
|
+
\_______________________________________________\
|
|
19
|
+
\_______________________________________________\
|
|
20
|
+
\_______________________________________________\
|
|
21
|
+
|
|
22
|
+
🐜🐜🐜🐜🐜 Chambers sealed...
|
|
23
|
+
Fortified against the outside world,
|
|
24
|
+
treasures protected, secrets kept.
|
|
25
|
+
|
|
26
|
+
Milestone: Sealed Chambers
|
|
27
|
+
Phases: 11-14 completed
|
|
28
|
+
Colony Age: Seasoned
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
.-.
|
|
2
|
+
(o o)
|
|
3
|
+
| O |
|
|
4
|
+
`-`
|
|
5
|
+
🌬️ 🌬️
|
|
6
|
+
🥚 🥚 🥚 🥚 🥚 🥚
|
|
7
|
+
. . . . . .
|
|
8
|
+
/|\ /|\ /|\ /|\ /|\ /|\
|
|
9
|
+
/ | \ / | \ / | \ / | \ / | \ / | \
|
|
10
|
+
/ | \/ | \/ | \/ | \/ | \/ | \
|
|
11
|
+
/ | /\ | /\ | /\ | /\ | /\ | \
|
|
12
|
+
\___|___/___\|___/___\|___/___\|___/___\|___/___/
|
|
13
|
+
\ o / o \ o / o \ o / o /
|
|
14
|
+
\____/_______\_____/_______\_____/_______/
|
|
15
|
+
\_________________________________________/
|
|
16
|
+
\_________________________________________\
|
|
17
|
+
\_________________________________________\
|
|
18
|
+
\_________________________________________\
|
|
19
|
+
\_________________________________________\
|
|
20
|
+
|
|
21
|
+
🐜🐜🐜🐜 Air flows through...
|
|
22
|
+
Complex passages ventilate the nest,
|
|
23
|
+
workers move with purpose and speed.
|
|
24
|
+
|
|
25
|
+
Milestone: Ventilated Nest
|
|
26
|
+
Phases: 7-10 completed
|
|
27
|
+
Colony Age: Mature
|
|
@@ -217,7 +217,7 @@ CONSTRAINTS: (none)
|
|
|
217
217
|
Scanning history of files to be modified...
|
|
218
218
|
```
|
|
219
219
|
|
|
220
|
-
Spawn a Scout (using Task tool with `subagent_type="general
|
|
220
|
+
Spawn a Scout (using Task tool with `subagent_type="general"`) with this prompt:
|
|
221
221
|
|
|
222
222
|
```
|
|
223
223
|
You are {Archaeologist-Name}, a 🏺 Archaeologist Ant (Scout) in the Aether Colony.
|
|
@@ -236,6 +236,10 @@ CONSTRAINTS: (none)
|
|
|
236
236
|
4. Run: git blame "{file_path}" | head -40 to see authorship of key sections
|
|
237
237
|
5. Note any TODO/FIXME/HACK markers in the current code
|
|
238
238
|
|
|
239
|
+
--- MODEL CONTEXT ---
|
|
240
|
+
Assigned model: {model} (from caste: archaeologist)
|
|
241
|
+
This ant is running as: {Ant-Name} (archaeologist caste)
|
|
242
|
+
|
|
239
243
|
--- OUTPUT ---
|
|
240
244
|
For each file, report:
|
|
241
245
|
- WHY key code sections exist (from commit messages)
|
|
@@ -244,6 +248,9 @@ CONSTRAINTS: (none)
|
|
|
244
248
|
- Areas of caution (high churn, reverted changes, emergency fixes)
|
|
245
249
|
- Sections that are stable bedrock vs volatile sand
|
|
246
250
|
|
|
251
|
+
Include in your header:
|
|
252
|
+
Model: {model} | Caste: archaeologist | Ant: {Ant-Name}
|
|
253
|
+
|
|
247
254
|
Keep the report concise and actionable — builders need quick context, not a thesis.
|
|
248
255
|
Format as plain text with file headers. No JSON output needed.
|
|
249
256
|
```
|
|
@@ -270,17 +277,39 @@ CONSTRAINTS: (none)
|
|
|
270
277
|
The `archaeology_context` will be injected into builder prompts in Step 5.1 (see below).
|
|
271
278
|
If this step was skipped (no existing files modified), the archaeology section is omitted from builder prompts.
|
|
272
279
|
|
|
273
|
-
### Step 5:
|
|
280
|
+
### Step 5: Initialize Swarm Display and Analyze Tasks
|
|
274
281
|
|
|
275
282
|
**YOU (the Queen) will spawn workers directly. Do NOT delegate to a single Prime Worker.**
|
|
276
283
|
|
|
277
|
-
|
|
284
|
+
**Initialize visual swarm tracking:**
|
|
278
285
|
```bash
|
|
286
|
+
# Generate unique build ID
|
|
287
|
+
build_id="build-$(date +%s)"
|
|
288
|
+
|
|
289
|
+
# Initialize swarm display for this build
|
|
290
|
+
bash .aether/aether-utils.sh swarm-display-init "$build_id"
|
|
291
|
+
|
|
292
|
+
# Log phase start
|
|
279
293
|
bash .aether/aether-utils.sh activity-log "EXECUTING" "Queen" "Phase {id}: {name} - Queen dispatching workers"
|
|
294
|
+
|
|
295
|
+
# Display animated header
|
|
296
|
+
bash .aether/aether-utils.sh swarm-display-update "Queen" "prime" "excavating" "Phase {id}: {name}" "Colony" '{"read":0,"grep":0,"edit":0,"bash":0}' 10 "fungus_garden" 0
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
**Show real-time display header:**
|
|
300
|
+
```
|
|
301
|
+
🔨🐜 COLONY BUILD INITIATED 🐜🔨
|
|
302
|
+
═══════════════════════════════════════════════════
|
|
303
|
+
Phase {id}: {name}
|
|
304
|
+
Build ID: {build_id}
|
|
305
|
+
|
|
306
|
+
Launching swarm display... (visual tracking enabled)
|
|
280
307
|
```
|
|
281
308
|
|
|
282
309
|
Analyze the phase tasks:
|
|
283
310
|
|
|
311
|
+
Analyze the phase tasks:
|
|
312
|
+
|
|
284
313
|
1. **Group tasks by dependencies:**
|
|
285
314
|
- **Wave 1:** Tasks with `depends_on: "none"` or `depends_on: []` (can run in parallel)
|
|
286
315
|
- **Wave 2:** Tasks depending on Wave 1 tasks
|
|
@@ -321,56 +350,14 @@ Total: {N} Builders + 1 Watcher + 1 Chaos = {N+2} spawns
|
|
|
321
350
|
|
|
322
351
|
**CRITICAL: Spawn ALL Wave 1 workers in a SINGLE message using multiple Task tool calls.**
|
|
323
352
|
|
|
324
|
-
For each Wave 1 task, use Task tool with `subagent_type="general
|
|
353
|
+
For each Wave 1 task, use Task tool with `subagent_type="general"` and `run_in_background: true`:
|
|
325
354
|
|
|
326
|
-
Log each spawn:
|
|
355
|
+
Log each spawn and update swarm display:
|
|
327
356
|
```bash
|
|
328
357
|
bash .aether/aether-utils.sh spawn-log "Queen" "builder" "{ant_name}" "{task_description}"
|
|
358
|
+
bash .aether/aether-utils.sh swarm-display-update "{ant_name}" "builder" "excavating" "{task_description}" "Queen" '{"read":0,"grep":0,"edit":0,"bash":0}' 0 "fungus_garden" 10
|
|
329
359
|
```
|
|
330
360
|
|
|
331
|
-
**Model Assignment:**
|
|
332
|
-
|
|
333
|
-
Before spawning each worker, get the optimal model for their caste with task-based routing:
|
|
334
|
-
|
|
335
|
-
```bash
|
|
336
|
-
# Get model assignment for this caste with task-based routing
|
|
337
|
-
model_info=$(bash .aether/aether-utils.sh model-profile select "{caste}" "{task_description}" "{cli_model_override}")
|
|
338
|
-
model=$(echo "$model_info" | jq -r '.result.model')
|
|
339
|
-
source=$(echo "$model_info" | jq -r '.result.source')
|
|
340
|
-
|
|
341
|
-
# Log model assignment with source
|
|
342
|
-
bash .aether/aether-utils.sh activity-log "MODEL" "Queen" "{ant_name} ({caste}): assigned to $model (source: $source)"
|
|
343
|
-
```
|
|
344
|
-
|
|
345
|
-
**Environment Setup for Workers:**
|
|
346
|
-
|
|
347
|
-
When spawning workers, the following environment variables must be set for Claude Code to use the LiteLLM proxy with the correct model:
|
|
348
|
-
|
|
349
|
-
```bash
|
|
350
|
-
export ANTHROPIC_BASE_URL="http://localhost:4000"
|
|
351
|
-
export ANTHROPIC_AUTH_TOKEN="sk-litellm-local"
|
|
352
|
-
export ANTHROPIC_MODEL="$model" # From model-profile get above
|
|
353
|
-
```
|
|
354
|
-
|
|
355
|
-
**IMPORTANT:** The Task tool inherits environment from the parent Claude Code process. Set these variables in the shell before spawning workers, or ensure they are already set in the parent environment.
|
|
356
|
-
|
|
357
|
-
### Step 5.1.5: Export Model Environment
|
|
358
|
-
|
|
359
|
-
Before spawning workers, export the environment variables for LiteLLM proxy routing:
|
|
360
|
-
|
|
361
|
-
```bash
|
|
362
|
-
export ANTHROPIC_BASE_URL="http://localhost:4000"
|
|
363
|
-
export ANTHROPIC_AUTH_TOKEN="sk-litellm-local"
|
|
364
|
-
```
|
|
365
|
-
|
|
366
|
-
For each worker spawn, also export their specific model:
|
|
367
|
-
|
|
368
|
-
```bash
|
|
369
|
-
export ANTHROPIC_MODEL="$model" # From model-profile get
|
|
370
|
-
```
|
|
371
|
-
|
|
372
|
-
**Note:** These environment variables will be inherited by spawned workers via the Task tool, enabling automatic model routing through the LiteLLM proxy.
|
|
373
|
-
|
|
374
361
|
**Builder Worker Prompt Template:**
|
|
375
362
|
```
|
|
376
363
|
You are {Ant-Name}, a 🔨 Builder Ant in the Aether Colony at depth {depth}.
|
|
@@ -378,16 +365,6 @@ You are {Ant-Name}, a 🔨 Builder Ant in the Aether Colony at depth {depth}.
|
|
|
378
365
|
--- YOUR TASK ---
|
|
379
366
|
Task {id}: {description}
|
|
380
367
|
|
|
381
|
-
--- MODEL CONTEXT ---
|
|
382
|
-
Optimal model for this task: {model} (from caste: {caste})
|
|
383
|
-
Model characteristics: {model_description}
|
|
384
|
-
Task complexity expectation: {simple|medium|complex}
|
|
385
|
-
|
|
386
|
-
The model has been pre-selected based on your caste's typical work patterns.
|
|
387
|
-
- glm-5: Use for complex reasoning, architecture, planning
|
|
388
|
-
- kimi-k2.5: Use for fast implementation, coding, refactoring
|
|
389
|
-
- minimax-2.5: Use for validation, research, quick checks
|
|
390
|
-
|
|
391
368
|
--- CONTEXT ---
|
|
392
369
|
Goal: "{colony_goal}"
|
|
393
370
|
Phase: {phase_name}
|
|
@@ -449,7 +426,7 @@ Before spawning:
|
|
|
449
426
|
1. Check: bash .aether/aether-utils.sh spawn-can-spawn {depth}
|
|
450
427
|
2. Generate name: bash .aether/aether-utils.sh generate-ant-name "{caste}"
|
|
451
428
|
3. Log: bash .aether/aether-utils.sh spawn-log "{your_name}" "{caste}" "{child_name}" "{task}"
|
|
452
|
-
4. Use Task tool with subagent_type="general
|
|
429
|
+
4. Use Task tool with subagent_type="general"
|
|
453
430
|
5. After completion: bash .aether/aether-utils.sh spawn-complete "{child_name}" "{status}" "{summary}"
|
|
454
431
|
|
|
455
432
|
Full spawn format: .aether/workers.md section "Spawning Sub-Workers"
|
|
@@ -465,7 +442,13 @@ Return JSON:
|
|
|
465
442
|
"files_modified": [],
|
|
466
443
|
"tests_written": [],
|
|
467
444
|
"blockers": [],
|
|
468
|
-
"spawns": []
|
|
445
|
+
"spawns": [],
|
|
446
|
+
"model_context": {
|
|
447
|
+
"assigned": "{model}",
|
|
448
|
+
"caste": "builder",
|
|
449
|
+
"source": "caste-default",
|
|
450
|
+
"reported_at": "ISO-8601 timestamp"
|
|
451
|
+
}
|
|
469
452
|
}
|
|
470
453
|
```
|
|
471
454
|
|
|
@@ -480,11 +463,15 @@ For each spawned worker, call TaskOutput with `block: true` to wait for completi
|
|
|
480
463
|
|
|
481
464
|
Store all results for synthesis in Step 5.6.
|
|
482
465
|
|
|
483
|
-
For each completed worker, log:
|
|
466
|
+
For each completed worker, log and update swarm display:
|
|
484
467
|
```bash
|
|
485
468
|
bash .aether/aether-utils.sh spawn-complete "{ant_name}" "completed" "{summary}"
|
|
469
|
+
bash .aether/aether-utils.sh swarm-display-update "{ant_name}" "builder" "completed" "{task_description}" "Queen" '{"read":5,"grep":3,"edit":2,"bash":1}' 100 "fungus_garden" 100
|
|
486
470
|
```
|
|
487
471
|
|
|
472
|
+
**Update swarm display with accumulated tool usage:**
|
|
473
|
+
As workers complete, accumulate their actual tool usage (Read, Grep, Edit, Bash counts from their activity logs) and update the swarm display to show live progress.
|
|
474
|
+
|
|
488
475
|
**Only proceed to Step 5.3 after ALL Wave 1 TaskOutput calls have returned.**
|
|
489
476
|
|
|
490
477
|
### Step 5.3: Spawn Wave 2+ Workers (Sequential Waves)
|
|
@@ -497,6 +484,7 @@ Repeat Step 5.1-5.2 for each subsequent wave, waiting for previous wave to compl
|
|
|
497
484
|
|
|
498
485
|
```bash
|
|
499
486
|
bash .aether/aether-utils.sh spawn-log "Queen" "watcher" "{watcher_name}" "Independent verification"
|
|
487
|
+
bash .aether/aether-utils.sh swarm-display-update "{watcher_name}" "watcher" "observing" "Verification in progress" "Queen" '{"read":0,"grep":0,"edit":0,"bash":0}' 0 "nursery" 50
|
|
500
488
|
```
|
|
501
489
|
|
|
502
490
|
**Watcher Worker Prompt:**
|
|
@@ -588,7 +576,13 @@ Return JSON:
|
|
|
588
576
|
"issues_found": [],
|
|
589
577
|
"quality_score": N,
|
|
590
578
|
"recommendation": "proceed" | "fix_required",
|
|
591
|
-
"spawns": []
|
|
579
|
+
"spawns": [],
|
|
580
|
+
"model_context": {
|
|
581
|
+
"assigned": "{model}",
|
|
582
|
+
"caste": "watcher",
|
|
583
|
+
"source": "caste-default",
|
|
584
|
+
"reported_at": "ISO-8601 timestamp"
|
|
585
|
+
}
|
|
592
586
|
}
|
|
593
587
|
```
|
|
594
588
|
|
|
@@ -601,6 +595,11 @@ Call TaskOutput with `block: true` using the Watcher's task_id:
|
|
|
601
595
|
- Parse: verification_passed, issues_found, quality_score, recommendation
|
|
602
596
|
- Store results for synthesis in Step 5.6
|
|
603
597
|
|
|
598
|
+
**Update swarm display when Watcher completes:**
|
|
599
|
+
```bash
|
|
600
|
+
bash .aether/aether-utils.sh swarm-display-update "{watcher_name}" "watcher" "completed" "Verification complete" "Queen" '{"read":3,"grep":2,"edit":0,"bash":1}' 100 "nursery" 100
|
|
601
|
+
```
|
|
602
|
+
|
|
604
603
|
**Only proceed to Step 5.4.2 after Watcher TaskOutput has returned.**
|
|
605
604
|
|
|
606
605
|
### Step 5.4.2: Spawn Chaos Ant for Resilience Testing
|
|
@@ -611,6 +610,7 @@ Generate a chaos ant name and log the spawn:
|
|
|
611
610
|
```bash
|
|
612
611
|
bash .aether/aether-utils.sh generate-ant-name "chaos"
|
|
613
612
|
bash .aether/aether-utils.sh spawn-log "Queen" "chaos" "{chaos_name}" "Resilience testing of Phase {id} work"
|
|
613
|
+
bash .aether/aether-utils.sh swarm-display-update "{chaos_name}" "chaos" "probing" "Resilience testing" "Queen" '{"read":0,"grep":0,"edit":0,"bash":0}' 0 "refuse_pile" 75
|
|
614
614
|
```
|
|
615
615
|
|
|
616
616
|
**Retrieve existing flags for this phase** (to avoid duplicate findings):
|
|
@@ -619,7 +619,7 @@ bash .aether/aether-utils.sh flag-list --phase {phase_number}
|
|
|
619
619
|
```
|
|
620
620
|
Parse the result and extract unresolved flag titles into a list: `{existing_flag_titles}` (comma-separated titles from `.result.flags[].title`). If no flags exist, set `{existing_flag_titles}` to "None".
|
|
621
621
|
|
|
622
|
-
Spawn the Chaos Ant using Task tool with `subagent_type="general
|
|
622
|
+
Spawn the Chaos Ant using Task tool with `subagent_type="general"`:
|
|
623
623
|
|
|
624
624
|
**Chaos Ant Prompt:**
|
|
625
625
|
```
|
|
@@ -666,7 +666,13 @@ Return JSON:
|
|
|
666
666
|
}
|
|
667
667
|
],
|
|
668
668
|
"overall_resilience": "strong|moderate|weak",
|
|
669
|
-
"summary": "..."
|
|
669
|
+
"summary": "...",
|
|
670
|
+
"model_context": {
|
|
671
|
+
"assigned": "{model}",
|
|
672
|
+
"caste": "chaos",
|
|
673
|
+
"source": "caste-default",
|
|
674
|
+
"reported_at": "ISO-8601 timestamp"
|
|
675
|
+
}
|
|
670
676
|
}
|
|
671
677
|
```
|
|
672
678
|
|
|
@@ -690,9 +696,10 @@ Log the flag:
|
|
|
690
696
|
bash .aether/aether-utils.sh activity-log "FLAG" "Chaos" "Created blocker: {finding.title}"
|
|
691
697
|
```
|
|
692
698
|
|
|
693
|
-
Log chaos ant completion:
|
|
699
|
+
Log chaos ant completion and update swarm display:
|
|
694
700
|
```bash
|
|
695
701
|
bash .aether/aether-utils.sh spawn-complete "{chaos_name}" "completed" "{summary}"
|
|
702
|
+
bash .aether/aether-utils.sh swarm-display-update "{chaos_name}" "chaos" "completed" "Resilience testing done" "Queen" '{"read":2,"grep":1,"edit":0,"bash":0}' 100 "refuse_pile" 100
|
|
696
703
|
```
|
|
697
704
|
|
|
698
705
|
**Only proceed to Step 5.5 after Chaos Ant TaskOutput has returned.**
|
|
@@ -858,7 +865,23 @@ Use AskUserQuestion to get approval. Record in events:
|
|
|
858
865
|
|
|
859
866
|
**This step runs ONLY after synthesis is complete. All values come from actual worker results.**
|
|
860
867
|
|
|
861
|
-
|
|
868
|
+
**First, render the final swarm display showing all completed workers:**
|
|
869
|
+
```bash
|
|
870
|
+
# Final swarm display update - mark Queen as completed
|
|
871
|
+
bash .aether/aether-utils.sh swarm-display-update "Queen" "prime" "completed" "Phase {id} complete" "Colony" '{"read":10,"grep":5,"edit":5,"bash":2}' 100 "fungus_garden" 100
|
|
872
|
+
|
|
873
|
+
# Render the final swarm display
|
|
874
|
+
bash .aether/aether-utils.sh swarm-display-render "$build_id"
|
|
875
|
+
```
|
|
876
|
+
|
|
877
|
+
The swarm display will show:
|
|
878
|
+
- 🐜 All workers with their caste emojis (🔨 Builder, 👁️ Watcher, 🎲 Chaos)
|
|
879
|
+
- 📖 Tool usage stats (Read, Grep, Edit, Bash counts)
|
|
880
|
+
- 🏠 Chamber activity map (Fungus Garden, Nursery, Refuse Pile)
|
|
881
|
+
- ✅ Progress bars at 100% for completed work
|
|
882
|
+
- 🌈 Color-coded by caste
|
|
883
|
+
|
|
884
|
+
**Then display build summary based on synthesis results AND `verbose_mode` from Step 1:**
|
|
862
885
|
|
|
863
886
|
**If verbose_mode = false (compact output, ~12 lines):**
|
|
864
887
|
|
|
@@ -930,6 +953,12 @@ Display build summary based on synthesis results AND `verbose_mode` from Step 1:
|
|
|
930
953
|
🔧 Debugging: {debugging.issues_resolved}/{debugging.issues_encountered} resolved
|
|
931
954
|
{end if}
|
|
932
955
|
|
|
956
|
+
🤖 Model Routing:
|
|
957
|
+
{for each spawn in spawn_tree where model_context exists:}
|
|
958
|
+
{caste_emoji}{ant_name}: {model_context.assigned} {if model_context.assigned matches caste expectation:}✓{else}⚠️{end if}
|
|
959
|
+
{end for}
|
|
960
|
+
Proxy: {if proxy_healthy:}✓ Healthy @ http://localhost:4000{else}✗ Not running (using default model){end if}
|
|
961
|
+
|
|
933
962
|
🐜 Next Steps:
|
|
934
963
|
{if synthesis.status == "completed" AND verification.recommendation == "proceed":}
|
|
935
964
|
/ant:continue ➡️ Advance to next phase
|
|
@@ -42,10 +42,10 @@ If successful and goal is not null:
|
|
|
42
42
|
🔄 Resuming: Phase X - Name
|
|
43
43
|
```
|
|
44
44
|
|
|
45
|
-
If HANDOFF.md exists (detected in load-state output):
|
|
45
|
+
If .aether/HANDOFF.md exists (detected in load-state output):
|
|
46
46
|
- Display "Resuming from paused session"
|
|
47
|
-
- Read HANDOFF.md for additional context
|
|
48
|
-
- Remove HANDOFF.md after display (cleanup)
|
|
47
|
+
- Read .aether/HANDOFF.md for additional context
|
|
48
|
+
- Remove .aether/HANDOFF.md after display (cleanup)
|
|
49
49
|
|
|
50
50
|
Run: `bash .aether/aether-utils.sh unload-state` to release lock.
|
|
51
51
|
|
|
@@ -736,6 +736,48 @@ Set `last_commit_suggestion_phase` to `{phase_id}` in COLONY_STATE.json (add the
|
|
|
736
736
|
|
|
737
737
|
**Error handling:** If any git command fails (not a repo, merge conflict, pre-commit hook rejection), display the error output and continue to the next step. The commit suggestion is advisory only -- it never blocks the flow.
|
|
738
738
|
|
|
739
|
+
Continue to Step 2.7 (Context Clear Suggestion), then to Step 2.5 (Project Completion) or Step 3 (Display Result).
|
|
740
|
+
|
|
741
|
+
### Step 2.7: Context Clear Suggestion (Optional)
|
|
742
|
+
|
|
743
|
+
**This step is non-blocking. Skipping does not affect phase advancement.**
|
|
744
|
+
|
|
745
|
+
After committing (or skipping commit), suggest clearing context to refresh before the next phase.
|
|
746
|
+
|
|
747
|
+
1. **Display the suggestion:**
|
|
748
|
+
```
|
|
749
|
+
──────────────────────────────────────────────────
|
|
750
|
+
Context Refresh
|
|
751
|
+
──────────────────────────────────────────────────
|
|
752
|
+
|
|
753
|
+
State is fully persisted and committed.
|
|
754
|
+
Phase {next_id} is ready to build.
|
|
755
|
+
|
|
756
|
+
──────────────────────────────────────────────────
|
|
757
|
+
```
|
|
758
|
+
|
|
759
|
+
2. **Use AskUserQuestion:**
|
|
760
|
+
```
|
|
761
|
+
Clear context now?
|
|
762
|
+
|
|
763
|
+
1. Yes, clear context then run /ant:build {next_id}
|
|
764
|
+
2. No, continue in current context
|
|
765
|
+
```
|
|
766
|
+
|
|
767
|
+
3. **If option 1 ("Yes, clear context"):**
|
|
768
|
+
|
|
769
|
+
**IMPORTANT:** Claude Code does not support programmatic /clear. Display instructions:
|
|
770
|
+
```
|
|
771
|
+
Please type: /clear
|
|
772
|
+
|
|
773
|
+
Then run: /ant:build {next_id}
|
|
774
|
+
```
|
|
775
|
+
|
|
776
|
+
Record the suggestion: Set `context_clear_suggested` to `true` in COLONY_STATE.json.
|
|
777
|
+
|
|
778
|
+
4. **If option 2 ("No, continue in current context"):**
|
|
779
|
+
Display: `Continuing in current context. State is saved.`
|
|
780
|
+
|
|
739
781
|
Continue to Step 2.5 (Project Completion) or Step 3 (Display Result).
|
|
740
782
|
|
|
741
783
|
### Step 2.5: Project Completion
|
|
@@ -798,7 +840,7 @@ Output:
|
|
|
798
840
|
/ant:phase {next_id} 📋 Review phase details first
|
|
799
841
|
/ant:focus "<area>" 🎯 Guide colony attention
|
|
800
842
|
|
|
801
|
-
💾 State persisted —
|
|
843
|
+
💾 State persisted — context clear suggested above
|
|
802
844
|
```
|
|
803
845
|
|
|
804
846
|
**IMPORTANT:** In the "Next Steps" section above, substitute the actual phase number for `{next_id}` (calculated in Step 2 as `current_phase + 1`). For example, if advancing to phase 4, output `/ant:build 4` not `/ant:build {next_id}`.
|
|
@@ -48,7 +48,7 @@ If no active signals after filtering:
|
|
|
48
48
|
|
|
49
49
|
Read `.aether/workers.md` and extract the `## Architect` section.
|
|
50
50
|
|
|
51
|
-
Spawn via **Task tool** with `subagent_type="general
|
|
51
|
+
Spawn via **Task tool** with `subagent_type="general"`:
|
|
52
52
|
|
|
53
53
|
```
|
|
54
54
|
--- WORKER SPEC ---
|
|
@@ -69,7 +69,7 @@ Run `/ant:resume-colony` in a new session.
|
|
|
69
69
|
<what should happen next>
|
|
70
70
|
```
|
|
71
71
|
|
|
72
|
-
### Step 4.
|
|
72
|
+
### Step 4.5: Set Paused Flag in State
|
|
73
73
|
|
|
74
74
|
Use Read tool to get current COLONY_STATE.json.
|
|
75
75
|
|
|
@@ -80,7 +80,7 @@ Use Write tool to update COLONY_STATE.json with paused flag:
|
|
|
80
80
|
|
|
81
81
|
This flag indicates the colony is in a paused state and will be cleared on resume.
|
|
82
82
|
|
|
83
|
-
### Step 4.
|
|
83
|
+
### Step 4.6: Commit Suggestion (Optional)
|
|
84
84
|
|
|
85
85
|
**This step is non-blocking. Skipping does not affect the pause or any subsequent steps. Failure to commit has zero consequences.**
|
|
86
86
|
|
|
@@ -44,10 +44,10 @@ If successful and goal is not null:
|
|
|
44
44
|
🔄 Resuming: Phase X - Name
|
|
45
45
|
```
|
|
46
46
|
|
|
47
|
-
If HANDOFF.md exists (detected in load-state output):
|
|
47
|
+
If .aether/HANDOFF.md exists (detected in load-state output):
|
|
48
48
|
- Display "Resuming from paused session"
|
|
49
|
-
- Read HANDOFF.md for additional context
|
|
50
|
-
- Remove HANDOFF.md after display (cleanup)
|
|
49
|
+
- Read .aether/HANDOFF.md for additional context
|
|
50
|
+
- Remove .aether/HANDOFF.md after display (cleanup)
|
|
51
51
|
|
|
52
52
|
Run: `bash .aether/aether-utils.sh unload-state` to release lock.
|
|
53
53
|
|
|
@@ -123,7 +123,7 @@ while iteration < 50 AND confidence < 95:
|
|
|
123
123
|
|
|
124
124
|
# === RESEARCH PHASE ===
|
|
125
125
|
|
|
126
|
-
Spawn Research Ant (Scout) via Task tool with subagent_type="general
|
|
126
|
+
Spawn Research Ant (Scout) via Task tool with subagent_type="general":
|
|
127
127
|
|
|
128
128
|
"""
|
|
129
129
|
You are a Scout Ant in the Aether Colony.
|
|
@@ -173,7 +173,7 @@ while iteration < 50 AND confidence < 95:
|
|
|
173
173
|
|
|
174
174
|
# === PLANNING PHASE ===
|
|
175
175
|
|
|
176
|
-
Spawn Planning Ant (Route-Setter) via Task tool with subagent_type="general
|
|
176
|
+
Spawn Planning Ant (Route-Setter) via Task tool with subagent_type="general":
|
|
177
177
|
|
|
178
178
|
"""
|
|
179
179
|
You are a Route-Setter Ant in the Aether Colony.
|
|
@@ -47,7 +47,7 @@ Output header:
|
|
|
47
47
|
═══════════════════════════════════════════════════ 🚦➡️🐜💨💨
|
|
48
48
|
```
|
|
49
49
|
|
|
50
|
-
Read the HANDOFF.md for context about what was happening, then display:
|
|
50
|
+
Read the .aether/HANDOFF.md for context about what was happening, then display:
|
|
51
51
|
|
|
52
52
|
```
|
|
53
53
|
+=====================================================+
|
|
@@ -67,23 +67,12 @@ ACTIVE PHEROMONES
|
|
|
67
67
|
|
|
68
68
|
If no active signals: (no active pheromones)
|
|
69
69
|
|
|
70
|
-
WORKERS
|
|
71
|
-
|
|
72
|
-
If ALL workers have "idle" status, display:
|
|
73
|
-
All 6 workers idle -- colony ready
|
|
74
|
-
|
|
75
|
-
Otherwise, group by status with caste name:
|
|
76
|
-
Active:
|
|
77
|
-
builder: currently executing
|
|
78
|
-
Idle:
|
|
79
|
-
colonizer route-setter watcher scout architect
|
|
80
|
-
|
|
81
70
|
PHASE PROGRESS
|
|
82
71
|
Phase <id>: <name> [<status>]
|
|
83
72
|
(list all phases from plan.phases)
|
|
84
73
|
|
|
85
74
|
CONTEXT FROM HANDOFF
|
|
86
|
-
<summarize what was happening from HANDOFF.md>
|
|
75
|
+
<summarize what was happening from .aether/HANDOFF.md>
|
|
87
76
|
|
|
88
77
|
NEXT ACTIONS
|
|
89
78
|
```
|
|
@@ -63,11 +63,11 @@ If successful and goal is not null:
|
|
|
63
63
|
Last activity: timestamp
|
|
64
64
|
```
|
|
65
65
|
|
|
66
|
-
5. Check for HANDOFF.md existence in the load-state output or via separate check
|
|
67
|
-
6. If HANDOFF.md exists:
|
|
66
|
+
5. Check for .aether/HANDOFF.md existence in the load-state output or via separate check
|
|
67
|
+
6. If .aether/HANDOFF.md exists:
|
|
68
68
|
- Display: "Resuming from paused session"
|
|
69
|
-
- Read HANDOFF.md content for additional context
|
|
70
|
-
- Remove HANDOFF.md after displaying (cleanup)
|
|
69
|
+
- Read .aether/HANDOFF.md content for additional context
|
|
70
|
+
- Remove .aether/HANDOFF.md after displaying (cleanup)
|
|
71
71
|
|
|
72
72
|
Run: `bash .aether/aether-utils.sh unload-state` to release lock.
|
|
73
73
|
|