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
|
@@ -49,7 +49,7 @@ If `--dry-run`: read COLONY_STATE.json, list remaining incomplete phases
|
|
|
49
49
|
(applying `--max-phases` cap), display the plan, then stop without executing.
|
|
50
50
|
|
|
51
51
|
```
|
|
52
|
-
━━━ A U T O P I L O T P R E V I E W ━━━
|
|
52
|
+
━━━ 🤖 A U T O P I L O T P R E V I E W ━━━
|
|
53
53
|
Goal: {goal} | Current: Phase {N} | Remaining: {count} | Max: {max or "all"}
|
|
54
54
|
|
|
55
55
|
Phase {id}: {name} ({task_count} tasks) -> build -> continue -> advance
|
|
@@ -68,9 +68,9 @@ replan suggestion (every {replan_interval} phases)
|
|
|
68
68
|
- If `milestone` == `"Crowned Anthill"`: output "This colony has been sealed. Start a new colony with `/ant:init \"new goal\"`." and stop
|
|
69
69
|
2. Determine remaining incomplete phases; apply `--max-phases` cap
|
|
70
70
|
3. Set `phases_completed = 0`, `autopilot_start = $(date +%s)`
|
|
71
|
-
4. Record pre-build blocker count: `
|
|
71
|
+
4. Record pre-build blocker count: `aether flag-check-blockers {phase}`
|
|
72
72
|
5. If `--headless` flag is present:
|
|
73
|
-
- Run: `
|
|
73
|
+
- Run: `aether autopilot-set-headless true`
|
|
74
74
|
- Display: `Headless mode: ON — interactive prompts will be queued as pending decisions`
|
|
75
75
|
6. Display: `AUTOPILOT ENGAGED | Goal: {goal} | Phase {N} | Max: {max or "all"}`
|
|
76
76
|
|
|
@@ -107,7 +107,7 @@ Log: `"<timestamp>|autopilot_paused|run|Paused at Phase {id}: {reason}"`
|
|
|
107
107
|
visual checkpoint prompt would normally be shown to the user, instead queue it as
|
|
108
108
|
a pending decision:
|
|
109
109
|
```bash
|
|
110
|
-
|
|
110
|
+
aether pending-decision-add \
|
|
111
111
|
--title "Visual checkpoint: Phase {id}" \
|
|
112
112
|
--type "checkpoint" \
|
|
113
113
|
--description "{checkpoint_description}" \
|
|
@@ -136,7 +136,7 @@ Skip the AskUserQuestion prompt. Instead, auto-PAUSE with reason
|
|
|
136
136
|
**Headless override for runtime verification:** If headless mode is active and
|
|
137
137
|
runtime verification would normally pause, queue as a pending decision instead:
|
|
138
138
|
```bash
|
|
139
|
-
|
|
139
|
+
aether pending-decision-add \
|
|
140
140
|
--title "Runtime verification needed: Phase {id}" \
|
|
141
141
|
--type "runtime-verification" \
|
|
142
142
|
--description "Manual testing required before advancing past Phase {id}" \
|
|
@@ -167,7 +167,7 @@ replan suggestion (see Step 5.5). For all others: PAUSE with reason, log event,
|
|
|
167
167
|
### Step 5: Auto-Advance and Loop
|
|
168
168
|
|
|
169
169
|
1. Increment `phases_completed`
|
|
170
|
-
2. Update autopilot state: `
|
|
170
|
+
2. Update autopilot state: `aether autopilot-update --action advance --phase {next} --result success`
|
|
171
171
|
3. Log: `"<timestamp>|autopilot_advance|run|Phase {prev} -> {next} ({phases_completed}/{max})"`
|
|
172
172
|
4. Display: `--- Autopilot: Phase {prev} done -> Phase {next} ({N}/{max}) ---`
|
|
173
173
|
5. **Replan check** (see Step 5.5)
|
|
@@ -179,7 +179,7 @@ replan suggestion (see Step 5.5). For all others: PAUSE with reason, log event,
|
|
|
179
179
|
After each successful phase advance, check if a replan pause should fire:
|
|
180
180
|
|
|
181
181
|
```bash
|
|
182
|
-
|
|
182
|
+
aether autopilot-check-replan --interval {replan_interval}
|
|
183
183
|
```
|
|
184
184
|
|
|
185
185
|
If `--continue` flag was passed: skip this check entirely (user dismissed replan).
|
|
@@ -187,7 +187,7 @@ If `--continue` flag was passed: skip this check entirely (user dismissed replan
|
|
|
187
187
|
If `result.should_replan == true`: **PAUSE** with replan suggestion banner:
|
|
188
188
|
|
|
189
189
|
```
|
|
190
|
-
━━━ R E P L A N S U G G E S T E D ━━━
|
|
190
|
+
━━━ 🔄 R E P L A N S U G G E S T E D ━━━
|
|
191
191
|
Phases auto-completed: {N} | Learnings accumulated: {learnings_since_last}
|
|
192
192
|
|
|
193
193
|
The colony has completed {N} phases since the last plan review.
|
|
@@ -205,7 +205,7 @@ If `result.should_replan == false`: proceed normally (no pause).
|
|
|
205
205
|
### Step 6: Final Summary
|
|
206
206
|
|
|
207
207
|
```
|
|
208
|
-
━━━ A U T O P I L O T C O M P L E T E ━━━
|
|
208
|
+
━━━ ✅ A U T O P I L O T C O M P L E T E ━━━
|
|
209
209
|
Phases completed: {N} | Elapsed: {Xm Ys} | Now at: Phase {current}
|
|
210
210
|
|
|
211
211
|
{all complete} -> Colony goal achieved! Run /ant:seal
|
|
@@ -220,7 +220,7 @@ Pending decisions: {N} — run `pending-decision-list` to review
|
|
|
220
220
|
```
|
|
221
221
|
|
|
222
222
|
Update session:
|
|
223
|
-
`
|
|
223
|
+
`aether session-update --command "/ant:run" --worker "/ant:run" --summary "Autopilot: {N} phases, now Phase {current}"`
|
|
224
224
|
|
|
225
225
|
## Execution Contract
|
|
226
226
|
|
|
@@ -60,7 +60,7 @@ Extract: `goal`, `state`, `current_phase`, `plan.phases`, `milestone`, `version`
|
|
|
60
60
|
|
|
61
61
|
### Step 2: Maturity Gate
|
|
62
62
|
|
|
63
|
-
Run `
|
|
63
|
+
Run `aether milestone-detect` to get `milestone`, `phases_completed`, `total_phases`.
|
|
64
64
|
|
|
65
65
|
**If milestone is already "Crowned Anthill":**
|
|
66
66
|
```
|
|
@@ -122,8 +122,8 @@ phases_completed=$(jq '[.plan.phases[] | select(.status == "completed")] | lengt
|
|
|
122
122
|
|
|
123
123
|
if [[ "$phases_completed" -ge 3 ]]; then
|
|
124
124
|
# Generate Sage name and dispatch
|
|
125
|
-
sage_name=$(
|
|
126
|
-
|
|
125
|
+
sage_name=$(aether generate-ant-name --caste "sage")
|
|
126
|
+
aether spawn-log --name "Queen" --caste "sage" --id "$sage_name" --description "Colony analytics review"
|
|
127
127
|
|
|
128
128
|
# Display spawn notification
|
|
129
129
|
echo ""
|
|
@@ -162,7 +162,7 @@ Work:
|
|
|
162
162
|
|
|
163
163
|
**IMPORTANT:** You are strictly read-only. Do not modify any files.
|
|
164
164
|
|
|
165
|
-
Log activity:
|
|
165
|
+
Log activity: aether activity-log "ANALYZING" "{sage_name}" "description"
|
|
166
166
|
|
|
167
167
|
Return ONLY this JSON (no other text):
|
|
168
168
|
{{
|
|
@@ -195,7 +195,7 @@ After spawn, extract from response: `key_findings`, `trends`, `recommendations`
|
|
|
195
195
|
|
|
196
196
|
Log completion and update swarm display:
|
|
197
197
|
```bash
|
|
198
|
-
|
|
198
|
+
aether spawn-complete --id "$sage_name" --status "completed" --summary "Analytics review complete"
|
|
199
199
|
```
|
|
200
200
|
|
|
201
201
|
**Display Sage completion line:**
|
|
@@ -207,7 +207,7 @@ bash .aether/aether-utils.sh spawn-complete "$sage_name" "completed" "Analytics
|
|
|
207
207
|
**Log high-priority recommendations to midden (non-blocking):**
|
|
208
208
|
For each recommendation with priority <= 2:
|
|
209
209
|
```bash
|
|
210
|
-
|
|
210
|
+
aether midden-write "analytics" "Sage recommendation (P{priority}): {action}" "sage"
|
|
211
211
|
```
|
|
212
212
|
|
|
213
213
|
**Display insights summary:**
|
|
@@ -242,7 +242,7 @@ if [[ -f "$obs_file" ]]; then
|
|
|
242
242
|
colony=$(echo "$encoded" | base64 -d | jq -r '.colonies[0] // "unknown"')
|
|
243
243
|
[[ -z "$content" ]] && continue
|
|
244
244
|
|
|
245
|
-
result=$(
|
|
245
|
+
result=$(aether learning-promote-auto "$wisdom_type" "$content" "$colony" "learning" 2>/dev/null || echo '{}')
|
|
246
246
|
was_promoted=$(echo "$result" | jq -r '.result.promoted // false' 2>/dev/null || echo "false")
|
|
247
247
|
if [[ "$was_promoted" == "true" ]]; then
|
|
248
248
|
auto_promoted_count=$((auto_promoted_count + 1))
|
|
@@ -257,7 +257,7 @@ fi
|
|
|
257
257
|
# --- END Batch auto-promotion ---
|
|
258
258
|
|
|
259
259
|
# Check for pending proposals
|
|
260
|
-
proposals=$(
|
|
260
|
+
proposals=$(aether learning-check-promotion 2>/dev/null || echo '{"proposals":[]}')
|
|
261
261
|
proposal_count=$(echo "$proposals" | jq '.proposals | length')
|
|
262
262
|
|
|
263
263
|
if [[ "$proposal_count" -gt 0 ]]; then
|
|
@@ -271,7 +271,7 @@ if [[ "$proposal_count" -gt 0 ]]; then
|
|
|
271
271
|
echo ""
|
|
272
272
|
|
|
273
273
|
# Run approval workflow (blocking)
|
|
274
|
-
|
|
274
|
+
aether learning-approve-proposals
|
|
275
275
|
|
|
276
276
|
echo ""
|
|
277
277
|
echo "Wisdom review complete. Proceeding with sealing ceremony..."
|
|
@@ -321,7 +321,7 @@ for encoded in $high_conf_instincts; do
|
|
|
321
321
|
[[ -n "$repo_domain_tags" ]] && promote_args+=(--domain "$repo_domain_tags")
|
|
322
322
|
|
|
323
323
|
# Call hive-promote which orchestrates abstract + store
|
|
324
|
-
result=$(
|
|
324
|
+
result=$(aether "${promote_args[@]}" 2>/dev/null || echo '{}')
|
|
325
325
|
was_promoted=$(echo "$result" | jq -r '.result.action // "skipped"' 2>/dev/null || echo "skipped")
|
|
326
326
|
|
|
327
327
|
if [[ "$was_promoted" == "promoted" || "$was_promoted" == "merged" ]]; then
|
|
@@ -341,7 +341,7 @@ Proceed to Step 4 regardless of hive promotion results — hive promotion is str
|
|
|
341
341
|
|
|
342
342
|
Log the seal ceremony to activity log:
|
|
343
343
|
```bash
|
|
344
|
-
|
|
344
|
+
aether activity-log "MODIFIED" "Queen" "Colony sealed - wisdom review completed"
|
|
345
345
|
```
|
|
346
346
|
|
|
347
347
|
### Step 4.4: Checkpoint State
|
|
@@ -350,7 +350,7 @@ Before modifying colony state, create a rolling backup:
|
|
|
350
350
|
|
|
351
351
|
Run using the Bash tool with description "Checkpointing colony state before seal...":
|
|
352
352
|
```bash
|
|
353
|
-
|
|
353
|
+
aether state-checkpoint "pre-seal" 2>/dev/null || echo "Warning: State checkpoint failed -- continuing without backup" >&2
|
|
354
354
|
```
|
|
355
355
|
|
|
356
356
|
### Step 4.5: Increment Colony Version
|
|
@@ -385,7 +385,7 @@ Update COLONY_STATE.json:
|
|
|
385
385
|
2. Set `milestone_updated_at` to current ISO-8601 timestamp
|
|
386
386
|
3. Append event: `"<timestamp>|milestone_reached|seal|Achieved Crowned Anthill milestone"`
|
|
387
387
|
|
|
388
|
-
Run `
|
|
388
|
+
Run `aether validate-state colony` after write.
|
|
389
389
|
|
|
390
390
|
### Step 5.1: Update Changelog
|
|
391
391
|
|
|
@@ -398,7 +398,7 @@ Build a summary of what the colony accomplished across all phases:
|
|
|
398
398
|
- Summarize the goal and key outcomes in one line
|
|
399
399
|
|
|
400
400
|
```bash
|
|
401
|
-
|
|
401
|
+
aether changelog-append \
|
|
402
402
|
"$(date +%Y-%m-%d)" \
|
|
403
403
|
"seal-crowned-anthill" \
|
|
404
404
|
"00" \
|
|
@@ -419,7 +419,7 @@ Mark the colony as inactive in the global registry. This is silent on failure
|
|
|
419
419
|
|
|
420
420
|
Run using the Bash tool (ignore errors):
|
|
421
421
|
```bash
|
|
422
|
-
|
|
422
|
+
aether registry-add --path "$(pwd)" "$(jq -r '.version // "unknown"' ~/.aether/version.json 2>/dev/null || echo 'unknown')" --active false 2>/dev/null || true
|
|
423
423
|
```
|
|
424
424
|
|
|
425
425
|
If the command fails, proceed silently. This is optional bookkeeping.
|
|
@@ -431,10 +431,10 @@ Before writing the seal document, spawn a Chronicler to survey documentation cov
|
|
|
431
431
|
**Generate Chronicler name and dispatch:**
|
|
432
432
|
```bash
|
|
433
433
|
# Generate unique chronicler name
|
|
434
|
-
chronicler_name=$(
|
|
434
|
+
chronicler_name=$(aether generate-ant-name --caste "chronicler")
|
|
435
435
|
|
|
436
436
|
# Log spawn and update swarm display
|
|
437
|
-
|
|
437
|
+
aether spawn-log --name "Queen" --caste "chronicler" --id "$chronicler_name" --description "Documentation coverage audit"
|
|
438
438
|
```
|
|
439
439
|
|
|
440
440
|
**Display:**
|
|
@@ -472,7 +472,7 @@ Work:
|
|
|
472
472
|
|
|
473
473
|
**IMPORTANT:** You are strictly read-only. Do not modify any files.
|
|
474
474
|
|
|
475
|
-
Log activity:
|
|
475
|
+
Log activity: aether activity-log "SURVEYING" "{chronicler_name}" "description"
|
|
476
476
|
|
|
477
477
|
Return ONLY this JSON (no other text):
|
|
478
478
|
{
|
|
@@ -501,7 +501,7 @@ Extract from response: `coverage_percent`, `gaps_identified`, `pages_documented`
|
|
|
501
501
|
|
|
502
502
|
Log completion and update swarm display:
|
|
503
503
|
```bash
|
|
504
|
-
|
|
504
|
+
aether spawn-complete --id "$chronicler_name" --status "completed" --summary "Documentation audit complete"
|
|
505
505
|
```
|
|
506
506
|
|
|
507
507
|
**Display Chronicler completion line:**
|
|
@@ -512,7 +512,7 @@ bash .aether/aether-utils.sh spawn-complete "$chronicler_name" "completed" "Docu
|
|
|
512
512
|
**Log gaps to midden (non-blocking):**
|
|
513
513
|
For each gap in `gaps_identified` with severity "high" or "medium":
|
|
514
514
|
```bash
|
|
515
|
-
|
|
515
|
+
aether midden-write "documentation" "Gap ({severity}): {description} at {location}" "chronicler"
|
|
516
516
|
```
|
|
517
517
|
|
|
518
518
|
**Display summary:**
|
|
@@ -583,7 +583,7 @@ Export colony data as a combined XML archive and a standalone pheromones.xml. Bo
|
|
|
583
583
|
```bash
|
|
584
584
|
# Check if xmllint is available
|
|
585
585
|
if command -v xmllint >/dev/null 2>&1; then
|
|
586
|
-
xml_result=$(
|
|
586
|
+
xml_result=$(aether colony-archive-xml --output ".aether/exchange/colony-archive.xml" 2>&1)
|
|
587
587
|
xml_ok=$(echo "$xml_result" | jq -r '.ok // false' 2>/dev/null)
|
|
588
588
|
if [[ "$xml_ok" == "true" ]]; then
|
|
589
589
|
xml_pheromone_count=$(echo "$xml_result" | jq -r '.result.pheromone_count // 0' 2>/dev/null)
|
|
@@ -593,7 +593,7 @@ if command -v xmllint >/dev/null 2>&1; then
|
|
|
593
593
|
fi
|
|
594
594
|
|
|
595
595
|
# Also export standalone pheromones.xml for cross-colony sharing
|
|
596
|
-
pher_result=$(
|
|
596
|
+
pher_result=$(aether pheromone-export-xml --output ".aether/exchange/pheromones.xml" 2>&1)
|
|
597
597
|
pher_ok=$(echo "$pher_result" | jq -r '.ok // false' 2>/dev/null)
|
|
598
598
|
if [[ "$pher_ok" == "true" ]]; then
|
|
599
599
|
pher_signal_count=$(jq '[.signals[] | select(.active != false)] | length' .aether/data/pheromones.json 2>/dev/null || echo "0")
|
|
@@ -603,7 +603,7 @@ if command -v xmllint >/dev/null 2>&1; then
|
|
|
603
603
|
fi
|
|
604
604
|
|
|
605
605
|
# Export standalone queen-wisdom.xml for cross-colony wisdom sharing
|
|
606
|
-
wisdom_result=$(
|
|
606
|
+
wisdom_result=$(aether wisdom-export-xml ".aether/exchange/queen-wisdom.xml" 2>&1)
|
|
607
607
|
wisdom_ok=$(echo "$wisdom_result" | jq -r '.ok // false' 2>/dev/null)
|
|
608
608
|
if [[ "$wisdom_ok" == "true" ]]; then
|
|
609
609
|
wisdom_count=$(echo "$wisdom_result" | jq -r '.result.entries // 0' 2>/dev/null)
|
|
@@ -613,7 +613,7 @@ if command -v xmllint >/dev/null 2>&1; then
|
|
|
613
613
|
fi
|
|
614
614
|
|
|
615
615
|
# Export standalone colony-registry.xml for lineage tracking
|
|
616
|
-
registry_result=$(
|
|
616
|
+
registry_result=$(aether registry-export-xml ".aether/exchange/colony-registry.xml" 2>&1)
|
|
617
617
|
registry_ok=$(echo "$registry_result" | jq -r '.ok // false' 2>/dev/null)
|
|
618
618
|
if [[ "$registry_ok" == "true" ]]; then
|
|
619
619
|
registry_count=$(echo "$registry_result" | jq -r '.result.colonies // 0' 2>/dev/null)
|
|
@@ -692,7 +692,7 @@ After the ceremony, offer to commit all colony work.
|
|
|
692
692
|
|
|
693
693
|
Generate a seal commit message:
|
|
694
694
|
```bash
|
|
695
|
-
seal_commit=$(
|
|
695
|
+
seal_commit=$(aether generate-commit-message seal "$phases_completed" "$goal" "$colony_age_days" 2>/dev/null)
|
|
696
696
|
seal_message=$(echo "$seal_commit" | jq -r '.result.message // "aether-seal: colony sealed"')
|
|
697
697
|
seal_body=$(echo "$seal_commit" | jq -r '.result.body // ""')
|
|
698
698
|
```
|
|
@@ -228,7 +228,7 @@ Use the Write tool to create `~/.aether/skills/domain/{SKILL_NAME}/SKILL.md` wit
|
|
|
228
228
|
Run using the Bash tool with description "Verifying skill frontmatter...":
|
|
229
229
|
|
|
230
230
|
```bash
|
|
231
|
-
|
|
231
|
+
aether skill-parse-frontmatter ~/.aether/skills/domain/{SKILL_NAME}/SKILL.md
|
|
232
232
|
```
|
|
233
233
|
|
|
234
234
|
Check the output. If the result contains `"ok": true` (or the parsed JSON shows the correct name and type), the skill is valid. If parsing fails, fix the frontmatter and retry once.
|
|
@@ -238,7 +238,7 @@ Check the output. If the result contains `"ok": true` (or the parsed JSON shows
|
|
|
238
238
|
Run using the Bash tool with description "Rebuilding skill cache...":
|
|
239
239
|
|
|
240
240
|
```bash
|
|
241
|
-
|
|
241
|
+
aether skill-cache-rebuild
|
|
242
242
|
```
|
|
243
243
|
|
|
244
244
|
**4d. Show the result**
|
|
@@ -10,7 +10,7 @@ You are the **Queen**. Show colony status.
|
|
|
10
10
|
|
|
11
11
|
### Step 0: Version Check (Non-blocking)
|
|
12
12
|
|
|
13
|
-
Run using the Bash tool with description "Checking colony version...": `
|
|
13
|
+
Run using the Bash tool with description "Checking colony version...": `aether version-check-cached 2>/dev/null || true`
|
|
14
14
|
|
|
15
15
|
If the command succeeds and the JSON result contains a non-empty string, display it as a one-line notice. Proceed regardless of outcome.
|
|
16
16
|
|
|
@@ -52,7 +52,7 @@ If `version` field is missing, "1.0", or "2.0":
|
|
|
52
52
|
|
|
53
53
|
### Step 1.5: Load State and Show Resumption Context
|
|
54
54
|
|
|
55
|
-
Run using the Bash tool with description "Loading colony state...": `
|
|
55
|
+
Run using the Bash tool with description "Loading colony state...": `aether load-state`
|
|
56
56
|
|
|
57
57
|
If successful and goal is not null:
|
|
58
58
|
1. Extract current_phase from state
|
|
@@ -70,7 +70,7 @@ If successful and goal is not null:
|
|
|
70
70
|
- Read .aether/HANDOFF.md content for additional context
|
|
71
71
|
- Remove .aether/HANDOFF.md after displaying (cleanup)
|
|
72
72
|
|
|
73
|
-
Run using the Bash tool with description "Releasing colony lock...": `
|
|
73
|
+
Run using the Bash tool with description "Releasing colony lock...": `aether unload-state` to release lock.
|
|
74
74
|
|
|
75
75
|
### Step 2: Compute Summary
|
|
76
76
|
|
|
@@ -118,7 +118,7 @@ Format the timestamp as: YYYY-MM-DD HH:MM
|
|
|
118
118
|
|
|
119
119
|
Run using the Bash tool with description "Reading colony depth...":
|
|
120
120
|
```bash
|
|
121
|
-
depth_result=$(
|
|
121
|
+
depth_result=$(aether colony-depth get 2>/dev/null || echo '{"ok":true,"result":{"depth":"standard","source":"default"}}')
|
|
122
122
|
colony_depth=$(echo "$depth_result" | jq -r '.result.depth // "standard"')
|
|
123
123
|
depth_source=$(echo "$depth_result" | jq -r '.result.source // "default"')
|
|
124
124
|
echo "colony_depth=$colony_depth"
|
|
@@ -152,7 +152,7 @@ Read `.aether/data/constraints.json` if exists:
|
|
|
152
152
|
- Constraints count: `constraints.length`
|
|
153
153
|
|
|
154
154
|
**Flags:**
|
|
155
|
-
Run using the Bash tool with description "Checking for blockers...": `
|
|
155
|
+
Run using the Bash tool with description "Checking for blockers...": `aether flag-check-blockers`
|
|
156
156
|
Extract:
|
|
157
157
|
- Blockers count (critical, block advancement)
|
|
158
158
|
- Issues count (high, warnings)
|
|
@@ -163,7 +163,7 @@ Count escalated flags by checking for blocker flags with source "escalation":
|
|
|
163
163
|
|
|
164
164
|
Run using the Bash tool with description "Checking escalation state...":
|
|
165
165
|
```bash
|
|
166
|
-
escalated_count=$(
|
|
166
|
+
escalated_count=$(aether flag-list --type blocker --json 2>/dev/null | jq '[.result.flags[] | select(.source == "escalation")] | length' 2>/dev/null || echo "0")
|
|
167
167
|
echo "escalated_count=$escalated_count"
|
|
168
168
|
```
|
|
169
169
|
|
|
@@ -182,7 +182,7 @@ From `memory.instincts`:
|
|
|
182
182
|
|
|
183
183
|
### Step 2.6: Detect Milestone
|
|
184
184
|
|
|
185
|
-
Run using the Bash tool with description "Detecting colony milestone...": `
|
|
185
|
+
Run using the Bash tool with description "Detecting colony milestone...": `aether milestone-detect`
|
|
186
186
|
|
|
187
187
|
Extract from JSON result:
|
|
188
188
|
- `milestone`: Current milestone name
|
|
@@ -194,7 +194,7 @@ Extract from JSON result:
|
|
|
194
194
|
|
|
195
195
|
Run using the Bash tool with description "Loading memory health metrics...":
|
|
196
196
|
```bash
|
|
197
|
-
|
|
197
|
+
aether memory-metrics
|
|
198
198
|
```
|
|
199
199
|
|
|
200
200
|
Extract from JSON result:
|
|
@@ -228,8 +228,8 @@ else
|
|
|
228
228
|
fi
|
|
229
229
|
|
|
230
230
|
# Generate progress bars
|
|
231
|
-
phase_bar=$(
|
|
232
|
-
task_bar=$(
|
|
231
|
+
phase_bar=$(aether generate-progress-bar "$current_phase" "$total_phases" 20)
|
|
232
|
+
task_bar=$(aether generate-progress-bar "$tasks_completed" "$tasks_total" 20)
|
|
233
233
|
|
|
234
234
|
echo "phase_bar=$phase_bar"
|
|
235
235
|
echo "task_bar=$task_bar"
|
|
@@ -305,7 +305,7 @@ Use the `phase_bar` and `task_bar` values computed in Step 2.7 for the actual ba
|
|
|
305
305
|
**Colony Vital Signs:**
|
|
306
306
|
After the Memory Health table, run:
|
|
307
307
|
```bash
|
|
308
|
-
|
|
308
|
+
aether colony-vital-signs
|
|
309
309
|
```
|
|
310
310
|
|
|
311
311
|
Extract from JSON result:
|
|
@@ -349,7 +349,7 @@ If the command fails or returns no data, display:
|
|
|
349
349
|
**Data Safety:**
|
|
350
350
|
After the Colony Vital Signs panel, run:
|
|
351
351
|
```bash
|
|
352
|
-
|
|
352
|
+
aether data-safety-stats
|
|
353
353
|
```
|
|
354
354
|
|
|
355
355
|
If the result contains non-zero counts, display:
|
|
@@ -367,7 +367,7 @@ If all counts are 0 or the subcommand returns no data, display:
|
|
|
367
367
|
**Pheromone Summary:**
|
|
368
368
|
After the Data Safety section, run:
|
|
369
369
|
```bash
|
|
370
|
-
|
|
370
|
+
aether pheromone-count
|
|
371
371
|
```
|
|
372
372
|
|
|
373
373
|
Display:
|
|
@@ -404,7 +404,7 @@ state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
|
|
|
404
404
|
current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
|
|
405
405
|
total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
|
|
406
406
|
|
|
407
|
-
|
|
407
|
+
aether print-next-up
|
|
408
408
|
```
|
|
409
409
|
|
|
410
410
|
This auto-generates state-based recommendations (IDLE → init, READY → build, EXECUTING → continue, PLANNING → plan).
|
|
@@ -60,7 +60,7 @@ Generate swarm ID: `swarm-<unix_timestamp>`
|
|
|
60
60
|
|
|
61
61
|
Initialize swarm findings:
|
|
62
62
|
```bash
|
|
63
|
-
|
|
63
|
+
aether swarm-findings-init --id "<swarm_id>"
|
|
64
64
|
```
|
|
65
65
|
|
|
66
66
|
#### Step 2.5: Check for Stale Swarm Session
|
|
@@ -72,19 +72,19 @@ SWARM_START=$(date +%s)
|
|
|
72
72
|
|
|
73
73
|
Check for stale swarm files:
|
|
74
74
|
```bash
|
|
75
|
-
stale_check=$(
|
|
75
|
+
stale_check=$(aether session-verify-fresh --command swarm "" "$SWARM_START")
|
|
76
76
|
has_stale=$(echo "$stale_check" | jq -r '.stale | length')
|
|
77
77
|
|
|
78
78
|
if [[ "$has_stale" -gt 0 ]]; then
|
|
79
79
|
# Auto-clear stale swarm findings (safe - findings are temporary)
|
|
80
|
-
|
|
80
|
+
aether session-clear --command swarm
|
|
81
81
|
echo "Cleared stale swarm findings for fresh investigation"
|
|
82
82
|
fi
|
|
83
83
|
```
|
|
84
84
|
|
|
85
85
|
After initializing findings, verify swarm files are fresh:
|
|
86
86
|
```bash
|
|
87
|
-
verify_result=$(
|
|
87
|
+
verify_result=$(aether session-verify-fresh --command swarm "" "$SWARM_START")
|
|
88
88
|
if [[ $(echo "$verify_result" | jq -r '.missing | length') -gt 0 ]]; then
|
|
89
89
|
echo "Warning: Swarm files not properly initialized"
|
|
90
90
|
fi
|
|
@@ -106,7 +106,7 @@ Display header:
|
|
|
106
106
|
|
|
107
107
|
Before any investigation that might lead to fixes, run using the Bash tool:
|
|
108
108
|
```bash
|
|
109
|
-
|
|
109
|
+
aether autofix-checkpoint --name "pre-swarm-$SWARM_ID"
|
|
110
110
|
```
|
|
111
111
|
|
|
112
112
|
Store the result for potential rollback:
|
|
@@ -121,7 +121,7 @@ Store the result for potential rollback:
|
|
|
121
121
|
|
|
122
122
|
Read existing blockers for context:
|
|
123
123
|
```bash
|
|
124
|
-
|
|
124
|
+
aether flag-list --type blocker --json
|
|
125
125
|
```
|
|
126
126
|
|
|
127
127
|
Read recent activity:
|
|
@@ -209,7 +209,7 @@ Wait for all 4 scouts to complete.
|
|
|
209
209
|
|
|
210
210
|
As each scout returns, add their findings:
|
|
211
211
|
```bash
|
|
212
|
-
|
|
212
|
+
aether swarm-findings-add "{swarm_id}" "{scout_type}" "{confidence}" '{finding_json}'
|
|
213
213
|
```
|
|
214
214
|
|
|
215
215
|
Display each scout's report as they complete:
|
|
@@ -238,7 +238,7 @@ Cross-compare all findings:
|
|
|
238
238
|
Rank fix options:
|
|
239
239
|
```
|
|
240
240
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
241
|
-
|
|
241
|
+
🏆 S O L U T I O N R A N K I N G
|
|
242
242
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
243
243
|
|
|
244
244
|
#1 [0.85 confidence] {best solution}
|
|
@@ -294,8 +294,8 @@ Inject learnings:
|
|
|
294
294
|
|
|
295
295
|
Set solution in swarm findings and log success:
|
|
296
296
|
```bash
|
|
297
|
-
|
|
298
|
-
|
|
297
|
+
aether swarm-solution-set "{swarm_id}" '{solution_json}'
|
|
298
|
+
aether activity-log "SWARM_SUCCESS" "Queen" "Swarm {swarm_id} fixed: {brief description}"
|
|
299
299
|
```
|
|
300
300
|
|
|
301
301
|
**If verification fails:**
|
|
@@ -310,8 +310,8 @@ Attempting rollback...
|
|
|
310
310
|
|
|
311
311
|
Rollback and log failure:
|
|
312
312
|
```bash
|
|
313
|
-
|
|
314
|
-
|
|
313
|
+
aether autofix-rollback --type "{checkpoint_type}" --ref "{checkpoint_ref}"
|
|
314
|
+
aether activity-log "SWARM_FAILED" "Queen" "Swarm {swarm_id} fix failed verification"
|
|
315
315
|
```
|
|
316
316
|
|
|
317
317
|
Track attempt count. If this is the 3rd failure on the same issue:
|
|
@@ -337,7 +337,7 @@ Swarm will not attempt further fixes on this issue.
|
|
|
337
337
|
|
|
338
338
|
Archive findings:
|
|
339
339
|
```bash
|
|
340
|
-
|
|
340
|
+
aether swarm-cleanup "{swarm_id}" --archive
|
|
341
341
|
```
|
|
342
342
|
|
|
343
343
|
Generate the state-based Next Up block:
|
|
@@ -345,5 +345,5 @@ Generate the state-based Next Up block:
|
|
|
345
345
|
state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
|
|
346
346
|
current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
|
|
347
347
|
total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
|
|
348
|
-
|
|
348
|
+
aether print-next-up
|
|
349
349
|
```
|
|
@@ -31,7 +31,7 @@ Stop here.
|
|
|
31
31
|
|
|
32
32
|
### Step 2: List All Chambers
|
|
33
33
|
|
|
34
|
-
Run using the Bash tool with description "Loading chamber list...": `
|
|
34
|
+
Run using the Bash tool with description "Loading chamber list...": `aether chamber-list`
|
|
35
35
|
|
|
36
36
|
Parse JSON result into array of chambers.
|
|
37
37
|
|
|
@@ -129,7 +129,7 @@ Run /ant:tunnels {chamber_a} {chamber_b} to compare chambers
|
|
|
129
129
|
```
|
|
130
130
|
|
|
131
131
|
To get the hash status, run using the Bash tool with description "Verifying chamber integrity...":
|
|
132
|
-
- Run `
|
|
132
|
+
- Run `aether chamber-verify --path .aether/chambers/{chamber_name}`
|
|
133
133
|
- If verified: hash_status = "verified"
|
|
134
134
|
- If not verified: hash_status = "hash mismatch"
|
|
135
135
|
- If error: hash_status = "error"
|
|
@@ -344,7 +344,7 @@ Run using the Bash tool with description "Importing pheromone signals...":
|
|
|
344
344
|
# Import the EXTRACTED pheromone-only XML (NOT the combined colony-archive.xml)
|
|
345
345
|
# $import_tmp_pheromones has <pheromones> as root — the format pheromone-import-xml expects
|
|
346
346
|
# Second argument triggers prefix-tagging — imported signal IDs become "{source_colony}:original_id"
|
|
347
|
-
import_result=$(
|
|
347
|
+
import_result=$(aether pheromone-import-xml --input "$import_tmp_pheromones" --colony "$source_colony" 2>&1)
|
|
348
348
|
import_ok=$(echo "$import_result" | jq -r '.ok // false' 2>/dev/null)
|
|
349
349
|
|
|
350
350
|
if [[ "$import_ok" == "true" ]]; then
|
|
@@ -397,7 +397,7 @@ Generate the state-based Next Up block by running using the Bash tool with descr
|
|
|
397
397
|
state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
|
|
398
398
|
current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
|
|
399
399
|
total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
|
|
400
|
-
|
|
400
|
+
aether print-next-up
|
|
401
401
|
```
|
|
402
402
|
|
|
403
403
|
## Implementation Notes
|
|
@@ -127,6 +127,6 @@ Generate the state-based Next Up block by running:
|
|
|
127
127
|
state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
|
|
128
128
|
current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
|
|
129
129
|
total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
|
|
130
|
-
|
|
130
|
+
aether print-next-up
|
|
131
131
|
```
|
|
132
132
|
|
|
@@ -62,7 +62,7 @@ Caste slots come from agent frontmatter (`model:` field).
|
|
|
62
62
|
## Step 2: Check System Status
|
|
63
63
|
|
|
64
64
|
|
|
65
|
-
Run using the Bash tool with description "Checking colony version...": `
|
|
65
|
+
Run using the Bash tool with description "Checking colony version...": `aether version-check-cached 2>/dev/null || echo "Utils available"`
|
|
66
66
|
|
|
67
67
|
|
|
68
68
|
|
|
@@ -122,7 +122,7 @@ Generate the state-based Next Up block by running using the Bash tool with descr
|
|
|
122
122
|
state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
|
|
123
123
|
current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
|
|
124
124
|
total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
|
|
125
|
-
|
|
125
|
+
aether print-next-up
|
|
126
126
|
```
|
|
127
127
|
|
|
128
128
|
|
|
@@ -43,7 +43,7 @@ WATCH_START=$(date +%s)
|
|
|
43
43
|
|
|
44
44
|
Check for stale watch files by running using the Bash tool with description "Checking for stale watch session...":
|
|
45
45
|
```bash
|
|
46
|
-
stale_check=$(
|
|
46
|
+
stale_check=$(aether session-verify-fresh --command watch "" "$WATCH_START")
|
|
47
47
|
has_stale=$(echo "$stale_check" | jq -r '.stale | length' 2>/dev/null || echo "0")
|
|
48
48
|
```
|
|
49
49
|
|
|
@@ -195,21 +195,21 @@ Generate the state-based Next Up block by running using the Bash tool with descr
|
|
|
195
195
|
Workers and commands update watch files as they work:
|
|
196
196
|
|
|
197
197
|
### Activity Log
|
|
198
|
-
Workers write via: `
|
|
198
|
+
Workers write via: `aether activity-log "ACTION" "caste" "description"`
|
|
199
199
|
|
|
200
200
|
For named ants (recommended):
|
|
201
201
|
```bash
|
|
202
202
|
# Generate a name first
|
|
203
|
-
ant_name=$(
|
|
203
|
+
ant_name=$(aether generate-ant-name --caste "builder" | jq -r '.result')
|
|
204
204
|
# Log with ant name
|
|
205
|
-
|
|
205
|
+
aether activity-log "CREATED" "$ant_name (Builder)" "Implemented auth module"
|
|
206
206
|
```
|
|
207
207
|
|
|
208
208
|
### Spawn Tracking
|
|
209
209
|
Log spawns for tree visualization:
|
|
210
210
|
```bash
|
|
211
|
-
|
|
212
|
-
|
|
211
|
+
aether spawn-log --name "Prime" --caste "builder" --id "Hammer-42" --description "implementing auth"
|
|
212
|
+
aether spawn-complete --id "Hammer-42" --status "completed" --summary "auth module done"
|
|
213
213
|
```
|
|
214
214
|
|
|
215
215
|
### Status File
|
|
@@ -220,11 +220,11 @@ Commands update `.aether/data/watch-status.txt` with current state:
|
|
|
220
220
|
- Last Activity: most recent log entry
|
|
221
221
|
|
|
222
222
|
### Progress File
|
|
223
|
-
Update via: `
|
|
223
|
+
Update via: `aether update-progress <percent> "<message>" <phase> <total>`
|
|
224
224
|
|
|
225
225
|
Example:
|
|
226
226
|
```bash
|
|
227
|
-
|
|
227
|
+
aether update-progress 45 "Building auth module..." 2 5
|
|
228
228
|
```
|
|
229
229
|
|
|
230
230
|
---
|
|
@@ -314,7 +314,7 @@ Excavation date: {YYYY-MM-DD}
|
|
|
314
314
|
### Step 8: Log Activity
|
|
315
315
|
|
|
316
316
|
```bash
|
|
317
|
-
|
|
317
|
+
aether activity-log "ARCHAEOLOGY" "Archaeologist" "Excavated {target}: {total_commits} commits, {author_count} authors, {findings_count} findings, {tech_debt_count} debt markers"
|
|
318
318
|
```
|
|
319
319
|
|
|
320
320
|
## Investigation Guidelines
|