aether-colony 5.3.2 → 5.4.0
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/aether-utils.sh +181 -5
- package/.aether/commands/archaeology.yaml +3 -3
- package/.aether/commands/build.yaml +80 -45
- package/.aether/commands/chaos.yaml +7 -7
- package/.aether/commands/colonize.yaml +17 -17
- package/.aether/commands/continue.yaml +40 -40
- package/.aether/commands/council.yaml +6 -6
- package/.aether/commands/data-clean.yaml +3 -3
- package/.aether/commands/dream.yaml +2 -2
- package/.aether/commands/entomb.yaml +12 -12
- package/.aether/commands/export-signals.yaml +2 -2
- package/.aether/commands/feedback.yaml +6 -6
- package/.aether/commands/flag.yaml +2 -2
- package/.aether/commands/flags.yaml +4 -4
- package/.aether/commands/focus.yaml +6 -6
- package/.aether/commands/help.yaml +1 -1
- package/.aether/commands/history.yaml +1 -1
- package/.aether/commands/import-signals.yaml +2 -2
- package/.aether/commands/init.yaml +44 -27
- package/.aether/commands/insert-phase.yaml +1 -1
- package/.aether/commands/interpret.yaml +2 -2
- package/.aether/commands/lay-eggs.yaml +3 -3
- package/.aether/commands/maturity.yaml +2 -2
- package/.aether/commands/memory-details.yaml +1 -1
- package/.aether/commands/migrate-state.yaml +1 -1
- package/.aether/commands/oracle.yaml +147 -82
- package/.aether/commands/organize.yaml +5 -5
- package/.aether/commands/patrol.yaml +8 -8
- package/.aether/commands/pause-colony.yaml +7 -7
- package/.aether/commands/phase.yaml +1 -1
- package/.aether/commands/pheromones.yaml +1 -1
- package/.aether/commands/plan.yaml +14 -14
- package/.aether/commands/quick.yaml +4 -4
- package/.aether/commands/redirect.yaml +6 -6
- package/.aether/commands/resume-colony.yaml +9 -9
- package/.aether/commands/resume.yaml +5 -38
- package/.aether/commands/run.yaml +10 -10
- package/.aether/commands/seal.yaml +33 -33
- package/.aether/commands/skill-create.yaml +4 -4
- package/.aether/commands/status.yaml +14 -14
- package/.aether/commands/swarm.yaml +14 -14
- package/.aether/commands/tunnels.yaml +7 -7
- package/.aether/commands/update.yaml +1 -1
- package/.aether/commands/verify-castes.yaml +3 -3
- package/.aether/commands/watch.yaml +15 -15
- package/.aether/docs/command-playbooks/build-complete.md +48 -15
- package/.aether/docs/command-playbooks/build-context.md +11 -11
- package/.aether/docs/command-playbooks/build-full.md +76 -76
- package/.aether/docs/command-playbooks/build-prep.md +10 -10
- package/.aether/docs/command-playbooks/build-verify.md +27 -27
- package/.aether/docs/command-playbooks/build-wave.md +38 -38
- package/.aether/docs/command-playbooks/continue-advance.md +60 -27
- package/.aether/docs/command-playbooks/continue-finalize.md +25 -11
- package/.aether/docs/command-playbooks/continue-full.md +60 -46
- package/.aether/docs/command-playbooks/continue-gates.md +18 -18
- package/.aether/docs/command-playbooks/continue-verify.md +10 -10
- package/.aether/docs/source-of-truth-map.md +10 -10
- package/.aether/docs/structural-learning-stack.md +283 -0
- package/.aether/templates/colony-state-template.json +1 -0
- package/.aether/utils/consolidation-seal.sh +196 -0
- package/.aether/utils/consolidation.sh +127 -0
- package/.aether/utils/curation-ants/archivist.sh +97 -0
- package/.aether/utils/curation-ants/critic.sh +214 -0
- package/.aether/utils/curation-ants/herald.sh +102 -0
- package/.aether/utils/curation-ants/janitor.sh +121 -0
- package/.aether/utils/curation-ants/librarian.sh +99 -0
- package/.aether/utils/curation-ants/nurse.sh +153 -0
- package/.aether/utils/curation-ants/orchestrator.sh +181 -0
- package/.aether/utils/curation-ants/scribe.sh +164 -0
- package/.aether/utils/curation-ants/sentinel.sh +119 -0
- package/.aether/utils/event-bus.sh +301 -0
- package/.aether/utils/graph.sh +559 -0
- package/.aether/utils/instinct-store.sh +401 -0
- package/.aether/utils/learning.sh +79 -7
- package/.aether/utils/oracle/oracle-stop-hook.sh +896 -0
- package/.aether/utils/session.sh +13 -0
- package/.aether/utils/state-api.sh +1 -1
- package/.aether/utils/trust-scoring.sh +347 -0
- package/.aether/utils/worktree.sh +97 -0
- package/.claude/commands/ant/archaeology.md +2 -2
- package/.claude/commands/ant/chaos.md +4 -4
- package/.claude/commands/ant/colonize.md +9 -9
- package/.claude/commands/ant/council.md +6 -6
- package/.claude/commands/ant/data-clean.md +3 -3
- package/.claude/commands/ant/dream.md +2 -2
- package/.claude/commands/ant/entomb.md +9 -9
- package/.claude/commands/ant/export-signals.md +2 -2
- package/.claude/commands/ant/feedback.md +4 -4
- package/.claude/commands/ant/flag.md +2 -2
- package/.claude/commands/ant/flags.md +4 -4
- package/.claude/commands/ant/focus.md +4 -4
- package/.claude/commands/ant/help.md +1 -1
- package/.claude/commands/ant/history.md +1 -1
- package/.claude/commands/ant/import-signals.md +2 -2
- package/.claude/commands/ant/init.md +44 -27
- package/.claude/commands/ant/insert-phase.md +1 -1
- package/.claude/commands/ant/interpret.md +2 -2
- package/.claude/commands/ant/lay-eggs.md +2 -2
- package/.claude/commands/ant/maturity.md +2 -2
- package/.claude/commands/ant/memory-details.md +1 -1
- package/.claude/commands/ant/migrate-state.md +1 -1
- package/.claude/commands/ant/oracle.md +78 -42
- package/.claude/commands/ant/organize.md +3 -3
- package/.claude/commands/ant/patrol.md +8 -8
- package/.claude/commands/ant/pause-colony.md +5 -5
- package/.claude/commands/ant/phase.md +1 -1
- package/.claude/commands/ant/pheromones.md +1 -1
- package/.claude/commands/ant/plan.md +8 -8
- package/.claude/commands/ant/quick.md +4 -4
- package/.claude/commands/ant/redirect.md +4 -4
- package/.claude/commands/ant/resume-colony.md +5 -5
- package/.claude/commands/ant/resume.md +17 -29
- package/.claude/commands/ant/run.md +10 -10
- package/.claude/commands/ant/seal.md +25 -25
- package/.claude/commands/ant/skill-create.md +2 -2
- package/.claude/commands/ant/status.md +14 -14
- package/.claude/commands/ant/swarm.md +14 -14
- package/.claude/commands/ant/tunnels.md +4 -4
- package/.claude/commands/ant/update.md +1 -1
- package/.claude/commands/ant/verify-castes.md +2 -2
- package/.claude/commands/ant/watch.md +8 -8
- package/.opencode/commands/ant/archaeology.md +1 -1
- package/.opencode/commands/ant/build.md +80 -45
- package/.opencode/commands/ant/chaos.md +3 -3
- package/.opencode/commands/ant/colonize.md +8 -8
- package/.opencode/commands/ant/continue.md +40 -40
- package/.opencode/commands/ant/council.md +5 -5
- package/.opencode/commands/ant/data-clean.md +2 -2
- package/.opencode/commands/ant/dream.md +1 -1
- package/.opencode/commands/ant/entomb.md +3 -3
- package/.opencode/commands/ant/export-signals.md +1 -1
- package/.opencode/commands/ant/feedback.md +2 -2
- package/.opencode/commands/ant/flag.md +1 -1
- package/.opencode/commands/ant/flags.md +3 -3
- package/.opencode/commands/ant/focus.md +2 -2
- package/.opencode/commands/ant/import-signals.md +1 -1
- package/.opencode/commands/ant/init.md +44 -27
- package/.opencode/commands/ant/insert-phase.md +1 -1
- package/.opencode/commands/ant/interpret.md +1 -1
- package/.opencode/commands/ant/lay-eggs.md +2 -2
- package/.opencode/commands/ant/maturity.md +1 -1
- package/.opencode/commands/ant/memory-details.md +1 -1
- package/.opencode/commands/ant/oracle.md +69 -40
- package/.opencode/commands/ant/organize.md +2 -2
- package/.opencode/commands/ant/patrol.md +8 -8
- package/.opencode/commands/ant/pause-colony.md +2 -2
- package/.opencode/commands/ant/pheromones.md +1 -1
- package/.opencode/commands/ant/plan.md +6 -6
- package/.opencode/commands/ant/quick.md +4 -4
- package/.opencode/commands/ant/redirect.md +2 -2
- package/.opencode/commands/ant/resume-colony.md +4 -4
- package/.opencode/commands/ant/resume.md +5 -17
- package/.opencode/commands/ant/run.md +10 -10
- package/.opencode/commands/ant/seal.md +8 -8
- package/.opencode/commands/ant/skill-create.md +2 -2
- package/.opencode/commands/ant/status.md +10 -10
- package/.opencode/commands/ant/tunnels.md +3 -3
- package/.opencode/commands/ant/verify-castes.md +1 -1
- package/.opencode/commands/ant/watch.md +7 -7
- package/CHANGELOG.md +83 -0
- package/README.md +22 -9
- package/bin/cli.js +118 -3
- package/bin/lib/binary-downloader.js +267 -0
- package/bin/lib/update-transaction.js +27 -3
- package/bin/lib/version-gate.js +179 -0
- package/bin/npx-entry.js +0 -0
- package/package.json +1 -1
- package/.aether/agents/aether-ambassador.md +0 -140
- package/.aether/agents/aether-archaeologist.md +0 -108
- package/.aether/agents/aether-architect.md +0 -133
- package/.aether/agents/aether-auditor.md +0 -144
- package/.aether/agents/aether-builder.md +0 -184
- package/.aether/agents/aether-chaos.md +0 -115
- package/.aether/agents/aether-chronicler.md +0 -122
- package/.aether/agents/aether-gatekeeper.md +0 -116
- package/.aether/agents/aether-includer.md +0 -117
- package/.aether/agents/aether-keeper.md +0 -177
- package/.aether/agents/aether-measurer.md +0 -128
- package/.aether/agents/aether-oracle.md +0 -137
- package/.aether/agents/aether-probe.md +0 -133
- package/.aether/agents/aether-queen.md +0 -286
- package/.aether/agents/aether-route-setter.md +0 -130
- package/.aether/agents/aether-sage.md +0 -106
- package/.aether/agents/aether-scout.md +0 -101
- package/.aether/agents/aether-surveyor-disciplines.md +0 -391
- package/.aether/agents/aether-surveyor-nest.md +0 -329
- package/.aether/agents/aether-surveyor-pathogens.md +0 -264
- package/.aether/agents/aether-surveyor-provisions.md +0 -334
- package/.aether/agents/aether-tracker.md +0 -137
- package/.aether/agents/aether-watcher.md +0 -174
- package/.aether/agents/aether-weaver.md +0 -130
- package/.aether/commands/claude/archaeology.md +0 -334
- package/.aether/commands/claude/build.md +0 -65
- package/.aether/commands/claude/chaos.md +0 -336
- package/.aether/commands/claude/colonize.md +0 -259
- package/.aether/commands/claude/continue.md +0 -60
- package/.aether/commands/claude/council.md +0 -507
- package/.aether/commands/claude/data-clean.md +0 -81
- package/.aether/commands/claude/dream.md +0 -268
- package/.aether/commands/claude/entomb.md +0 -498
- package/.aether/commands/claude/export-signals.md +0 -57
- package/.aether/commands/claude/feedback.md +0 -96
- package/.aether/commands/claude/flag.md +0 -151
- package/.aether/commands/claude/flags.md +0 -169
- package/.aether/commands/claude/focus.md +0 -76
- package/.aether/commands/claude/help.md +0 -154
- package/.aether/commands/claude/history.md +0 -140
- package/.aether/commands/claude/import-signals.md +0 -71
- package/.aether/commands/claude/init.md +0 -505
- package/.aether/commands/claude/insert-phase.md +0 -105
- package/.aether/commands/claude/interpret.md +0 -278
- package/.aether/commands/claude/lay-eggs.md +0 -210
- package/.aether/commands/claude/maturity.md +0 -113
- package/.aether/commands/claude/memory-details.md +0 -77
- package/.aether/commands/claude/migrate-state.md +0 -171
- package/.aether/commands/claude/oracle.md +0 -642
- package/.aether/commands/claude/organize.md +0 -232
- package/.aether/commands/claude/patrol.md +0 -620
- package/.aether/commands/claude/pause-colony.md +0 -233
- package/.aether/commands/claude/phase.md +0 -115
- package/.aether/commands/claude/pheromones.md +0 -156
- package/.aether/commands/claude/plan.md +0 -693
- package/.aether/commands/claude/preferences.md +0 -65
- package/.aether/commands/claude/quick.md +0 -100
- package/.aether/commands/claude/redirect.md +0 -76
- package/.aether/commands/claude/resume-colony.md +0 -197
- package/.aether/commands/claude/resume.md +0 -388
- package/.aether/commands/claude/run.md +0 -231
- package/.aether/commands/claude/seal.md +0 -774
- package/.aether/commands/claude/skill-create.md +0 -286
- package/.aether/commands/claude/status.md +0 -410
- package/.aether/commands/claude/swarm.md +0 -349
- package/.aether/commands/claude/tunnels.md +0 -426
- package/.aether/commands/claude/update.md +0 -132
- package/.aether/commands/claude/verify-castes.md +0 -143
- package/.aether/commands/claude/watch.md +0 -239
- package/.aether/commands/opencode/archaeology.md +0 -331
- package/.aether/commands/opencode/build.md +0 -1168
- package/.aether/commands/opencode/chaos.md +0 -329
- package/.aether/commands/opencode/colonize.md +0 -195
- package/.aether/commands/opencode/continue.md +0 -1436
- package/.aether/commands/opencode/council.md +0 -437
- package/.aether/commands/opencode/data-clean.md +0 -77
- package/.aether/commands/opencode/dream.md +0 -260
- package/.aether/commands/opencode/entomb.md +0 -377
- package/.aether/commands/opencode/export-signals.md +0 -54
- package/.aether/commands/opencode/feedback.md +0 -99
- package/.aether/commands/opencode/flag.md +0 -149
- package/.aether/commands/opencode/flags.md +0 -167
- package/.aether/commands/opencode/focus.md +0 -73
- package/.aether/commands/opencode/help.md +0 -157
- package/.aether/commands/opencode/history.md +0 -136
- package/.aether/commands/opencode/import-signals.md +0 -68
- package/.aether/commands/opencode/init.md +0 -518
- package/.aether/commands/opencode/insert-phase.md +0 -111
- package/.aether/commands/opencode/interpret.md +0 -272
- package/.aether/commands/opencode/lay-eggs.md +0 -213
- package/.aether/commands/opencode/maturity.md +0 -108
- package/.aether/commands/opencode/memory-details.md +0 -83
- package/.aether/commands/opencode/migrate-state.md +0 -165
- package/.aether/commands/opencode/oracle.md +0 -593
- package/.aether/commands/opencode/organize.md +0 -226
- package/.aether/commands/opencode/patrol.md +0 -626
- package/.aether/commands/opencode/pause-colony.md +0 -203
- package/.aether/commands/opencode/phase.md +0 -113
- package/.aether/commands/opencode/pheromones.md +0 -162
- package/.aether/commands/opencode/plan.md +0 -684
- package/.aether/commands/opencode/preferences.md +0 -71
- package/.aether/commands/opencode/quick.md +0 -91
- package/.aether/commands/opencode/redirect.md +0 -84
- package/.aether/commands/opencode/resume-colony.md +0 -190
- package/.aether/commands/opencode/resume.md +0 -394
- package/.aether/commands/opencode/run.md +0 -237
- package/.aether/commands/opencode/seal.md +0 -452
- package/.aether/commands/opencode/skill-create.md +0 -63
- package/.aether/commands/opencode/status.md +0 -307
- package/.aether/commands/opencode/swarm.md +0 -15
- package/.aether/commands/opencode/tunnels.md +0 -400
- package/.aether/commands/opencode/update.md +0 -127
- package/.aether/commands/opencode/verify-castes.md +0 -139
- package/.aether/commands/opencode/watch.md +0 -227
|
@@ -18,7 +18,7 @@ The phase to build is: `$normalized_args`
|
|
|
18
18
|
|
|
19
19
|
### Step 0.5: Load Colony State
|
|
20
20
|
|
|
21
|
-
Run using Bash tool: `
|
|
21
|
+
Run using Bash tool: `aether load-state`
|
|
22
22
|
|
|
23
23
|
If the command fails (non-zero exit or JSON has ok: false):
|
|
24
24
|
1. Parse error JSON
|
|
@@ -36,7 +36,7 @@ If successful:
|
|
|
36
36
|
```
|
|
37
37
|
(If HANDOFF.md exists, this provides orientation before the build proceeds)
|
|
38
38
|
|
|
39
|
-
After displaying context, run: `
|
|
39
|
+
After displaying context, run: `aether unload-state` to release the lock.
|
|
40
40
|
|
|
41
41
|
### Step 1: Validate + Read State
|
|
42
42
|
|
|
@@ -69,7 +69,7 @@ Stop here.
|
|
|
69
69
|
|
|
70
70
|
**Set colony depth (if --depth flag provided):**
|
|
71
71
|
If `cli_depth_override` is set:
|
|
72
|
-
1. Run using Bash tool: `
|
|
72
|
+
1. Run using Bash tool: `aether colony-depth set "$cli_depth_override"`
|
|
73
73
|
2. Parse JSON result - if `.ok` is false:
|
|
74
74
|
- Display: `Error: Invalid depth "$cli_depth_override". Use: light, standard, deep, full`
|
|
75
75
|
- Stop here
|
|
@@ -98,7 +98,7 @@ Extract:
|
|
|
98
98
|
Check for unresolved blocker flags on the requested phase:
|
|
99
99
|
|
|
100
100
|
```bash
|
|
101
|
-
|
|
101
|
+
aether flag-check-blockers {phase_number}
|
|
102
102
|
```
|
|
103
103
|
|
|
104
104
|
Parse the JSON result (`.result.blockers`):
|
|
@@ -106,7 +106,7 @@ Parse the JSON result (`.result.blockers`):
|
|
|
106
106
|
- **If blockers == 0:** Display nothing (or optionally a brief `No active blockers for Phase {id}.` line). Proceed to Step 2.
|
|
107
107
|
- **If blockers > 0:** Retrieve blocker details:
|
|
108
108
|
```bash
|
|
109
|
-
|
|
109
|
+
aether flag-list --type blocker --json --phase {phase_number}
|
|
110
110
|
```
|
|
111
111
|
Parse `.result.flags` and display an advisory warning:
|
|
112
112
|
```
|
|
@@ -167,7 +167,7 @@ Output header:
|
|
|
167
167
|
|
|
168
168
|
Run using the Bash tool with description "Showing phase progress...":
|
|
169
169
|
```bash
|
|
170
|
-
progress_bar=$(
|
|
170
|
+
progress_bar=$(aether generate-progress-bar "$current_phase" "$total_phases" 20 2>/dev/null || echo "")
|
|
171
171
|
if [[ -n "$progress_bar" ]]; then
|
|
172
172
|
echo "[Phase ${current_phase}/${total_phases}] ${progress_bar}"
|
|
173
173
|
fi
|
|
@@ -194,7 +194,7 @@ CONSTRAINTS: (none)
|
|
|
194
194
|
Check if territory survey exists and load relevant documents:
|
|
195
195
|
|
|
196
196
|
```bash
|
|
197
|
-
|
|
197
|
+
aether survey-load "{phase_name}" 2>/dev/null
|
|
198
198
|
```
|
|
199
199
|
|
|
200
200
|
**Parse the JSON response:**
|
|
@@ -240,7 +240,7 @@ bash .aether/aether-utils.sh survey-load "{phase_name}" 2>/dev/null
|
|
|
240
240
|
Call `queen-read` to extract eternal wisdom for worker priming:
|
|
241
241
|
|
|
242
242
|
```bash
|
|
243
|
-
|
|
243
|
+
aether queen-read 2>/dev/null
|
|
244
244
|
```
|
|
245
245
|
|
|
246
246
|
**Parse the JSON response:**
|
|
@@ -275,7 +275,7 @@ queen_decrees = .result.wisdom.decrees (if .result.priming.has_decrees)
|
|
|
275
275
|
Call `pheromone-read` to extract active colony signals for worker priming:
|
|
276
276
|
|
|
277
277
|
```bash
|
|
278
|
-
|
|
278
|
+
aether pheromone-read 2>/dev/null
|
|
279
279
|
```
|
|
280
280
|
|
|
281
281
|
**Parse the JSON response:**
|
|
@@ -329,8 +329,8 @@ bash .aether/aether-utils.sh pheromone-read 2>/dev/null
|
|
|
329
329
|
|
|
330
330
|
Generate archaeologist name and log:
|
|
331
331
|
```bash
|
|
332
|
-
|
|
333
|
-
|
|
332
|
+
aether generate-ant-name --caste "archaeologist"
|
|
333
|
+
aether spawn-log --name "Queen" --caste "scout" --id "{archaeologist_name}" --description "Pre-build archaeology scan"
|
|
334
334
|
```
|
|
335
335
|
|
|
336
336
|
Display:
|
|
@@ -355,7 +355,7 @@ bash .aether/aether-utils.sh pheromone-read 2>/dev/null
|
|
|
355
355
|
4. Run: git blame "{file_path}" | head -40 for authorship
|
|
356
356
|
5. Note TODO/FIXME/HACK markers
|
|
357
357
|
|
|
358
|
-
Log activity:
|
|
358
|
+
Log activity: aether activity-log "READ" "{Ant-Name}" "description"
|
|
359
359
|
|
|
360
360
|
Report (plain text):
|
|
361
361
|
- WHY key code sections exist (from commits)
|
|
@@ -369,7 +369,7 @@ bash .aether/aether-utils.sh pheromone-read 2>/dev/null
|
|
|
369
369
|
|
|
370
370
|
Log completion:
|
|
371
371
|
```bash
|
|
372
|
-
|
|
372
|
+
aether spawn-complete --id "{archaeologist_name}" --status "completed" --summary "Pre-build archaeology scan"
|
|
373
373
|
```
|
|
374
374
|
|
|
375
375
|
3. **Store and display findings:**
|
|
@@ -420,9 +420,9 @@ Analyze the phase tasks:
|
|
|
420
420
|
|
|
421
421
|
3. **Generate ant names for each worker:**
|
|
422
422
|
```bash
|
|
423
|
-
|
|
424
|
-
|
|
425
|
-
|
|
423
|
+
aether generate-ant-name --caste "builder"
|
|
424
|
+
aether generate-ant-name --caste "watcher"
|
|
425
|
+
aether generate-ant-name --caste "chaos"
|
|
426
426
|
```
|
|
427
427
|
|
|
428
428
|
Display spawn plan with caste emojis:
|
|
@@ -501,12 +501,12 @@ For a single worker:
|
|
|
501
501
|
|
|
502
502
|
**First, mark build start in context:**
|
|
503
503
|
```bash
|
|
504
|
-
|
|
504
|
+
aether context-update build-start {phase_id} {wave_1_worker_count} {wave_1_task_count}
|
|
505
505
|
```
|
|
506
506
|
|
|
507
507
|
Before dispatching each worker, refresh colony context so new pheromones/memory are visible:
|
|
508
508
|
```bash
|
|
509
|
-
prime_result=$(
|
|
509
|
+
prime_result=$(aether colony-prime --compact 2>/dev/null)
|
|
510
510
|
```
|
|
511
511
|
Update `prompt_section` from `prime_result.result.prompt_section`.
|
|
512
512
|
|
|
@@ -514,8 +514,8 @@ For each Wave 1 task, use Task tool with `subagent_type="aether-builder"`, inclu
|
|
|
514
514
|
|
|
515
515
|
Log each spawn and update swarm display:
|
|
516
516
|
```bash
|
|
517
|
-
|
|
518
|
-
|
|
517
|
+
aether spawn-log --name "Queen" --caste "builder" --id "{ant_name}" --description "{task_description}"
|
|
518
|
+
aether context-update worker-spawn "{ant_name}" "builder" "{task_description}"
|
|
519
519
|
```
|
|
520
520
|
|
|
521
521
|
**Builder Worker Prompt (CLEAN OUTPUT):**
|
|
@@ -535,13 +535,13 @@ Goal: "{colony_goal}"
|
|
|
535
535
|
Work:
|
|
536
536
|
1. Read .aether/workers.md for Builder discipline
|
|
537
537
|
2. Implement task, write tests
|
|
538
|
-
3. Log activity:
|
|
538
|
+
3. Log activity: aether activity-log "ACTION" "{Ant-Name}" "description"
|
|
539
539
|
|
|
540
540
|
Spawn sub-workers ONLY if 3x complexity:
|
|
541
|
-
- Check:
|
|
542
|
-
- Generate name:
|
|
541
|
+
- Check: aether spawn-can-spawn {depth} --enforce
|
|
542
|
+
- Generate name: aether generate-ant-name --caste "builder"
|
|
543
543
|
- Announce: "🐜 Spawning {child_name} for {reason}"
|
|
544
|
-
- Log:
|
|
544
|
+
- Log: aether spawn-log --name "{Ant-Name}" --caste "builder" --id "{child_name}" --description "{task}"
|
|
545
545
|
|
|
546
546
|
Count your total tool calls (Read + Grep + Edit + Bash + Write) and report as tool_count.
|
|
547
547
|
|
|
@@ -624,7 +624,7 @@ Return ONLY this JSON (no other text):
|
|
|
624
624
|
|
|
625
625
|
Before using any worker payload, validate schema:
|
|
626
626
|
```bash
|
|
627
|
-
|
|
627
|
+
aether validate-worker-response builder '{worker_json}'
|
|
628
628
|
```
|
|
629
629
|
If validation fails, treat the worker as failed with blocker `invalid_worker_response`.
|
|
630
630
|
|
|
@@ -644,8 +644,8 @@ Where `tool_count` comes from the worker's returned JSON `tool_count` field, and
|
|
|
644
644
|
|
|
645
645
|
Log and update swarm display:
|
|
646
646
|
```bash
|
|
647
|
-
|
|
648
|
-
|
|
647
|
+
aether spawn-complete --id "{ant_name}" --status "completed" --summary "{summary}"
|
|
648
|
+
aether context-update worker-complete "{ant_name}" "completed"
|
|
649
649
|
```
|
|
650
650
|
|
|
651
651
|
**Check for total wave failure:**
|
|
@@ -702,7 +702,7 @@ Awaiting your choice.
|
|
|
702
702
|
|
|
703
703
|
Log escalation as flag:
|
|
704
704
|
```bash
|
|
705
|
-
|
|
705
|
+
aether flag-add --severity "blocker" --title "{task title}" --description "{failure summary}" --source "escalation" --phase {phase_number}
|
|
706
706
|
```
|
|
707
707
|
|
|
708
708
|
If at least one worker succeeded, continue normally to the next wave.
|
|
@@ -732,7 +732,7 @@ Repeat Step 5.1-5.2 for each subsequent wave, waiting for previous wave to compl
|
|
|
732
732
|
Spawn the Watcher using Task tool with `subagent_type="aether-watcher"`, include `description: "👁️ Watcher {Watcher-Name}: Independent verification"` (DO NOT use run_in_background - task blocks until complete):
|
|
733
733
|
|
|
734
734
|
```bash
|
|
735
|
-
|
|
735
|
+
aether spawn-log --name "Queen" --caste "watcher" --id "{watcher_name}" --description "Independent verification"
|
|
736
736
|
```
|
|
737
737
|
|
|
738
738
|
**Watcher Worker Prompt (CLEAN OUTPUT):**
|
|
@@ -752,7 +752,7 @@ Verification:
|
|
|
752
752
|
4. Check success criteria: {list}
|
|
753
753
|
|
|
754
754
|
Spawn sub-workers if needed:
|
|
755
|
-
- Log:
|
|
755
|
+
- Log: aether spawn-log --name "{Watcher-Name}" --caste "watcher" --id "{child}" --description "{task}"
|
|
756
756
|
- Announce: "🐜 Spawning {child} to investigate {issue}"
|
|
757
757
|
|
|
758
758
|
Count your total tool calls (Read + Grep + Edit + Bash + Write) and report as tool_count.
|
|
@@ -767,7 +767,7 @@ Return ONLY this JSON:
|
|
|
767
767
|
|
|
768
768
|
Validate watcher payload first:
|
|
769
769
|
```bash
|
|
770
|
-
|
|
770
|
+
aether validate-worker-response watcher '{watcher_json}'
|
|
771
771
|
```
|
|
772
772
|
|
|
773
773
|
**Parse the Watcher's validated JSON response:** verification_passed, issues_found, quality_score, recommendation
|
|
@@ -792,13 +792,13 @@ For failed verification:
|
|
|
792
792
|
|
|
793
793
|
Generate a chaos ant name and log the spawn:
|
|
794
794
|
```bash
|
|
795
|
-
|
|
796
|
-
|
|
795
|
+
aether generate-ant-name --caste "chaos"
|
|
796
|
+
aether spawn-log --name "Queen" --caste "chaos" --id "{chaos_name}" --description "Resilience testing of Phase {id} work"
|
|
797
797
|
```
|
|
798
798
|
|
|
799
799
|
**Retrieve existing flags for this phase** (to avoid duplicate findings):
|
|
800
800
|
```bash
|
|
801
|
-
|
|
801
|
+
aether flag-list --phase {phase_number}
|
|
802
802
|
```
|
|
803
803
|
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".
|
|
804
804
|
|
|
@@ -849,17 +849,17 @@ Return ONLY this JSON:
|
|
|
849
849
|
If any findings have severity `"critical"` or `"high"`:
|
|
850
850
|
```bash
|
|
851
851
|
# Create a blocker flag for each critical/high chaos finding
|
|
852
|
-
|
|
852
|
+
aether flag-add --severity "blocker" --title "{finding.title}" --description "{finding.description}" --source "chaos-testing" --phase {phase_number}
|
|
853
853
|
```
|
|
854
854
|
|
|
855
855
|
Log the flag:
|
|
856
856
|
```bash
|
|
857
|
-
|
|
857
|
+
aether activity-log "FLAG" "Chaos" "Created blocker: {finding.title}"
|
|
858
858
|
```
|
|
859
859
|
|
|
860
860
|
Log chaos ant completion and update swarm display:
|
|
861
861
|
```bash
|
|
862
|
-
|
|
862
|
+
aether spawn-complete --id "{chaos_name}" --status "completed" --summary "{summary}"
|
|
863
863
|
```
|
|
864
864
|
|
|
865
865
|
### Step 5.8: Create Flags for Verification Failures
|
|
@@ -869,16 +869,51 @@ If the Watcher reported `verification_passed: false` or `recommendation: "fix_re
|
|
|
869
869
|
For each issue in `issues_found`:
|
|
870
870
|
```bash
|
|
871
871
|
# Create a blocker flag for each verification failure
|
|
872
|
-
|
|
872
|
+
aether flag-add --severity "blocker" --title "{issue_title}" --description "{issue_description}" --source "verification" --phase {phase_number}
|
|
873
873
|
```
|
|
874
874
|
|
|
875
875
|
Log the flag creation:
|
|
876
876
|
```bash
|
|
877
|
-
|
|
877
|
+
aether activity-log "FLAG" "Watcher" "Created blocker: {issue_title}"
|
|
878
878
|
```
|
|
879
879
|
|
|
880
880
|
This ensures verification failures are persisted as blockers that survive context resets. Chaos Ant findings are flagged in Step 5.7.
|
|
881
881
|
|
|
882
|
+
### Stage Audit Gate (Pre-Synthesis Check)
|
|
883
|
+
|
|
884
|
+
**This gate runs before Step 5.9. All build stages must have completed before synthesizing results.**
|
|
885
|
+
|
|
886
|
+
Verify that each of the following stages has a recorded completion status:
|
|
887
|
+
|
|
888
|
+
| Stage | Steps | Required |
|
|
889
|
+
|-------|-------|----------|
|
|
890
|
+
| Builder waves | Steps 5.1–5.3 | At least 1 worker completed (status "completed") |
|
|
891
|
+
| Watcher | Steps 5.4–5.5 | Watcher returned a result (any status) |
|
|
892
|
+
| Chaos | Steps 5.6–5.7 | Chaos ant returned a result (any status) |
|
|
893
|
+
|
|
894
|
+
Check by reviewing the in-memory worker results accumulated during Steps 5.1–5.7:
|
|
895
|
+
- `builder_results` — results from all builder wave tasks
|
|
896
|
+
- `watcher_result` — result from Step 5.5
|
|
897
|
+
- `chaos_result` — result from Step 5.7
|
|
898
|
+
|
|
899
|
+
**If any stage result is absent (stage did not run or returned no result):**
|
|
900
|
+
- HALT — do not proceed to Step 5.9
|
|
901
|
+
- Display:
|
|
902
|
+
```
|
|
903
|
+
Stage Audit FAILED — cannot synthesize results.
|
|
904
|
+
|
|
905
|
+
Missing or incomplete stages:
|
|
906
|
+
{list each missing stage: "Builders — no results recorded" / "Watcher — did not complete" / "Chaos — did not complete"}
|
|
907
|
+
|
|
908
|
+
Recovery options:
|
|
909
|
+
1. Re-run /ant:build to restart this phase
|
|
910
|
+
2. Run /ant:flags to review blockers
|
|
911
|
+
3. Run /ant:swarm to auto-repair failed tasks
|
|
912
|
+
```
|
|
913
|
+
- Return `{"status": "failed", "summary": "Stage audit failed — stages did not complete"}` and stop.
|
|
914
|
+
|
|
915
|
+
**If all stages have results (even if some workers failed):** proceed to Step 5.9.
|
|
916
|
+
|
|
882
917
|
### Step 5.9: Synthesize Results
|
|
883
918
|
|
|
884
919
|
**This step runs after all worker tasks have completed (Builders, Watcher, Chaos).**
|
|
@@ -918,11 +953,11 @@ Collect all worker outputs and create phase summary:
|
|
|
918
953
|
For each worker that returned `status: "failed"`:
|
|
919
954
|
For each file in that worker's `files_modified` or `files_created`:
|
|
920
955
|
```bash
|
|
921
|
-
|
|
956
|
+
aether grave-add "{file}" "{ant_name}" "{task_id}" {phase} "{first blocker or summary}"
|
|
922
957
|
```
|
|
923
958
|
Log the grave marker:
|
|
924
959
|
```bash
|
|
925
|
-
|
|
960
|
+
aether activity-log "GRAVE" "Queen" "Grave marker placed at {file} — {ant_name} failed: {summary}"
|
|
926
961
|
```
|
|
927
962
|
|
|
928
963
|
**Error Handoff Update:**
|
|
@@ -1097,12 +1132,12 @@ This ensures the handoff always reflects the latest build state, even if the ses
|
|
|
1097
1132
|
Log this build activity to `.aether/CONTEXT.md`:
|
|
1098
1133
|
|
|
1099
1134
|
```bash
|
|
1100
|
-
|
|
1135
|
+
aether context-update activity "build {phase_id}" "{synthesis.status}" "{files_created_count + files_modified_count}"
|
|
1101
1136
|
```
|
|
1102
1137
|
|
|
1103
1138
|
Mark build as complete in context:
|
|
1104
1139
|
```bash
|
|
1105
|
-
|
|
1140
|
+
aether context-update build-complete "{synthesis.status}" "{synthesis.status == 'completed' ? 'success' : 'failed'}"
|
|
1106
1141
|
```
|
|
1107
1142
|
|
|
1108
1143
|
Also update safe-to-clear status:
|
|
@@ -1149,7 +1184,7 @@ After displaying the BUILD SUMMARY (and optional verbose details), display Next
|
|
|
1149
1184
|
state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json 2>/dev/null || echo "IDLE")
|
|
1150
1185
|
current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json 2>/dev/null || echo "0")
|
|
1151
1186
|
total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json 2>/dev/null || echo "0")
|
|
1152
|
-
|
|
1187
|
+
aether print-next-up
|
|
1153
1188
|
```
|
|
1154
1189
|
|
|
1155
1190
|
**Routing Note:** The state-based Next Up block above routes based on colony state. If verification failed or blockers exist, review `/ant:flags` before continuing.
|
|
@@ -1164,5 +1199,5 @@ bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_pha
|
|
|
1164
1199
|
Update the session tracking file to enable `/ant:resume` after context clear:
|
|
1165
1200
|
|
|
1166
1201
|
```bash
|
|
1167
|
-
|
|
1202
|
+
aether session-update --command "/ant:build {phase_id}" --worker "/ant:continue" --summary "Phase {phase_id} build completed: {synthesis.status}"
|
|
1168
1203
|
```
|
|
@@ -297,12 +297,12 @@ After outputting the JSON report, iterate through the chaos report scenarios. Fo
|
|
|
297
297
|
|
|
298
298
|
```bash
|
|
299
299
|
# For each scenario where status == "finding" AND severity is "CRITICAL" or "HIGH":
|
|
300
|
-
|
|
300
|
+
aether flag-add --severity "blocker" --title "{scenario.title}" --description "{scenario.description}" --source "chaos-standalone" --phase {current_phase_number}
|
|
301
301
|
```
|
|
302
302
|
|
|
303
303
|
Log each flag creation:
|
|
304
304
|
```bash
|
|
305
|
-
|
|
305
|
+
aether activity-log "FLAG" "Chaos Ant" "Created blocker: {scenario.title}"
|
|
306
306
|
```
|
|
307
307
|
|
|
308
308
|
The `{current_phase_number}` comes from the colony state loaded in Step 1 (`.aether/data/COLONY_STATE.json` field `current_phase`).
|
|
@@ -312,7 +312,7 @@ The `{current_phase_number}` comes from the colony state loaded in Step 1 (`.aet
|
|
|
312
312
|
### Step 7: Log Activity
|
|
313
313
|
|
|
314
314
|
```bash
|
|
315
|
-
|
|
315
|
+
aether activity-log "CHAOS" "Chaos Ant" "Resilience test on {target}: {findings_count} finding(s) ({critical} critical, {high} high, {medium} medium, {low} low), {resilient_count} resilient"
|
|
316
316
|
```
|
|
317
317
|
|
|
318
318
|
## Investigation Guidelines
|
|
@@ -77,18 +77,18 @@ mkdir -p .aether/data/survey
|
|
|
77
77
|
|
|
78
78
|
Generate unique names for the 4 Surveyor Ants and log their dispatch:
|
|
79
79
|
```bash
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
80
|
+
aether generate-ant-name --caste "surveyor"
|
|
81
|
+
aether generate-ant-name --caste "surveyor"
|
|
82
|
+
aether generate-ant-name --caste "surveyor"
|
|
83
|
+
aether generate-ant-name --caste "surveyor"
|
|
84
84
|
```
|
|
85
85
|
|
|
86
86
|
Log the dispatch:
|
|
87
87
|
```bash
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
88
|
+
aether spawn-log --name "Queen" --caste "surveyor" --id "{provisions_name}" --description "Mapping provisions and trails"
|
|
89
|
+
aether spawn-log --name "Queen" --caste "surveyor" --id "{nest_name}" --description "Mapping nest structure"
|
|
90
|
+
aether spawn-log --name "Queen" --caste "surveyor" --id "{disciplines_name}" --description "Mapping disciplines and sentinels"
|
|
91
|
+
aether spawn-log --name "Queen" --caste "surveyor" --id "{pathogens_name}" --description "Identifying pathogens"
|
|
92
92
|
```
|
|
93
93
|
|
|
94
94
|
**Spawn 4 Surveyor Ants in parallel using the Task tool:**
|