aether-colony 3.1.17 → 5.0.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.
Files changed (183) hide show
  1. package/{runtime → .aether}/CONTEXT.md +1 -1
  2. package/{runtime → .aether}/aether-utils.sh +1772 -98
  3. package/.aether/docs/QUEEN-SYSTEM.md +211 -0
  4. package/.aether/docs/QUEEN.md +84 -0
  5. package/.aether/docs/README.md +68 -0
  6. package/.aether/docs/caste-system.md +48 -0
  7. package/{runtime → .aether/docs/disciplines}/DISCIPLINES.md +8 -8
  8. package/.aether/docs/error-codes.md +268 -0
  9. package/{runtime → .aether}/docs/known-issues.md +42 -26
  10. package/.aether/docs/queen-commands.md +97 -0
  11. package/.aether/exchange/colony-registry.xml +11 -0
  12. package/{runtime → .aether}/exchange/pheromone-xml.sh +2 -1
  13. package/.aether/exchange/pheromones.xml +87 -0
  14. package/.aether/exchange/queen-wisdom.xml +14 -0
  15. package/{runtime → .aether}/exchange/registry-xml.sh +7 -3
  16. package/{runtime → .aether}/exchange/wisdom-xml.sh +11 -4
  17. package/.aether/rules/aether-colony.md +134 -0
  18. package/.aether/schemas/example-prompt-builder.xml +234 -0
  19. package/.aether/templates/colony-state-reset.jq.template +22 -0
  20. package/.aether/templates/colony-state.template.json +35 -0
  21. package/.aether/templates/constraints.template.json +9 -0
  22. package/.aether/templates/crowned-anthill.template.md +36 -0
  23. package/.aether/templates/handoff-build-error.template.md +30 -0
  24. package/.aether/templates/handoff-build-success.template.md +39 -0
  25. package/.aether/templates/handoff.template.md +40 -0
  26. package/{runtime → .aether}/utils/atomic-write.sh +5 -5
  27. package/{runtime → .aether}/utils/chamber-compare.sh +23 -10
  28. package/{runtime → .aether}/utils/chamber-utils.sh +32 -20
  29. package/{runtime → .aether}/utils/error-handler.sh +13 -1
  30. package/{runtime → .aether}/utils/file-lock.sh +49 -13
  31. package/.aether/utils/semantic-cli.sh +413 -0
  32. package/{runtime → .aether}/utils/xml-compose.sh +7 -1
  33. package/.aether/utils/xml-convert.sh +273 -0
  34. package/.aether/utils/xml-query.sh +201 -0
  35. package/.aether/utils/xml-utils.sh +110 -0
  36. package/{runtime → .aether}/workers.md +14 -17
  37. package/.claude/agents/ant/aether-ambassador.md +264 -0
  38. package/.claude/agents/ant/aether-archaeologist.md +322 -0
  39. package/.claude/agents/ant/aether-auditor.md +266 -0
  40. package/.claude/agents/ant/aether-builder.md +187 -0
  41. package/.claude/agents/ant/aether-chaos.md +268 -0
  42. package/.claude/agents/ant/aether-chronicler.md +304 -0
  43. package/.claude/agents/ant/aether-gatekeeper.md +325 -0
  44. package/.claude/agents/ant/aether-includer.md +373 -0
  45. package/.claude/agents/ant/aether-keeper.md +271 -0
  46. package/.claude/agents/ant/aether-measurer.md +317 -0
  47. package/.claude/agents/ant/aether-probe.md +210 -0
  48. package/.claude/agents/ant/aether-queen.md +325 -0
  49. package/.claude/agents/ant/aether-route-setter.md +173 -0
  50. package/.claude/agents/ant/aether-sage.md +353 -0
  51. package/.claude/agents/ant/aether-scout.md +142 -0
  52. package/.claude/agents/ant/aether-surveyor-disciplines.md +416 -0
  53. package/.claude/agents/ant/aether-surveyor-nest.md +354 -0
  54. package/.claude/agents/ant/aether-surveyor-pathogens.md +288 -0
  55. package/.claude/agents/ant/aether-surveyor-provisions.md +359 -0
  56. package/.claude/agents/ant/aether-tracker.md +265 -0
  57. package/.claude/agents/ant/aether-watcher.md +244 -0
  58. package/.claude/agents/ant/aether-weaver.md +247 -0
  59. package/.claude/commands/ant/archaeology.md +16 -7
  60. package/.claude/commands/ant/build.md +415 -284
  61. package/.claude/commands/ant/chaos.md +19 -10
  62. package/.claude/commands/ant/colonize.md +58 -24
  63. package/.claude/commands/ant/continue.md +155 -145
  64. package/.claude/commands/ant/council.md +15 -5
  65. package/.claude/commands/ant/dream.md +16 -7
  66. package/.claude/commands/ant/entomb.md +274 -157
  67. package/.claude/commands/ant/feedback.md +33 -29
  68. package/.claude/commands/ant/flag.md +18 -10
  69. package/.claude/commands/ant/flags.md +14 -6
  70. package/.claude/commands/ant/focus.md +29 -21
  71. package/.claude/commands/ant/help.md +11 -1
  72. package/.claude/commands/ant/history.md +10 -0
  73. package/.claude/commands/ant/init.md +91 -65
  74. package/.claude/commands/ant/interpret.md +15 -4
  75. package/.claude/commands/ant/lay-eggs.md +55 -7
  76. package/.claude/commands/ant/maturity.md +11 -1
  77. package/.claude/commands/ant/migrate-state.md +14 -2
  78. package/.claude/commands/ant/oracle.md +23 -15
  79. package/.claude/commands/ant/organize.md +29 -20
  80. package/.claude/commands/ant/pause-colony.md +17 -7
  81. package/.claude/commands/ant/phase.md +17 -8
  82. package/.claude/commands/ant/plan.md +20 -9
  83. package/.claude/commands/ant/redirect.md +29 -32
  84. package/.claude/commands/ant/resume-colony.md +19 -9
  85. package/.claude/commands/ant/resume.md +272 -96
  86. package/.claude/commands/ant/seal.md +201 -191
  87. package/.claude/commands/ant/status.md +71 -32
  88. package/.claude/commands/ant/swarm.md +26 -44
  89. package/.claude/commands/ant/tunnels.md +279 -105
  90. package/.claude/commands/ant/update.md +81 -20
  91. package/.claude/commands/ant/verify-castes.md +14 -4
  92. package/.claude/commands/ant/watch.md +13 -12
  93. package/.opencode/agents/aether-ambassador.md +63 -20
  94. package/.opencode/agents/aether-archaeologist.md +29 -12
  95. package/.opencode/agents/aether-auditor.md +51 -18
  96. package/.opencode/agents/aether-builder.md +69 -19
  97. package/.opencode/agents/aether-chaos.md +29 -12
  98. package/.opencode/agents/aether-chronicler.md +60 -18
  99. package/.opencode/agents/aether-gatekeeper.md +27 -18
  100. package/.opencode/agents/aether-includer.md +27 -18
  101. package/.opencode/agents/aether-keeper.md +89 -18
  102. package/.opencode/agents/aether-measurer.md +27 -18
  103. package/.opencode/agents/aether-probe.md +60 -18
  104. package/.opencode/agents/aether-queen.md +172 -24
  105. package/.opencode/agents/aether-route-setter.md +57 -12
  106. package/.opencode/agents/aether-sage.md +26 -18
  107. package/.opencode/agents/aether-scout.md +27 -19
  108. package/.opencode/agents/aether-surveyor-disciplines.md +53 -1
  109. package/.opencode/agents/aether-surveyor-nest.md +53 -1
  110. package/.opencode/agents/aether-surveyor-pathogens.md +51 -1
  111. package/.opencode/agents/aether-surveyor-provisions.md +53 -1
  112. package/.opencode/agents/aether-tracker.md +64 -18
  113. package/.opencode/agents/aether-watcher.md +66 -19
  114. package/.opencode/agents/aether-weaver.md +61 -18
  115. package/.opencode/commands/ant/build.md +406 -192
  116. package/.opencode/commands/ant/continue.md +66 -76
  117. package/.opencode/commands/ant/entomb.md +106 -45
  118. package/.opencode/commands/ant/init.md +46 -48
  119. package/.opencode/commands/ant/organize.md +5 -5
  120. package/.opencode/commands/ant/resume.md +334 -0
  121. package/.opencode/commands/ant/seal.md +33 -24
  122. package/.opencode/commands/ant/status.md +11 -0
  123. package/.opencode/commands/ant/tunnels.md +149 -0
  124. package/.opencode/commands/ant/update.md +59 -16
  125. package/CHANGELOG.md +79 -0
  126. package/README.md +135 -353
  127. package/bin/cli.js +243 -122
  128. package/bin/generate-commands.sh +2 -2
  129. package/bin/lib/init.js +13 -3
  130. package/bin/lib/update-transaction.js +119 -117
  131. package/bin/sync-to-runtime.sh +5 -137
  132. package/bin/validate-package.sh +84 -0
  133. package/package.json +9 -6
  134. package/.opencode/agents/aether-architect.md +0 -66
  135. package/.opencode/agents/aether-guardian.md +0 -107
  136. package/.opencode/agents/workers.md +0 -1034
  137. package/runtime/QUEEN_ANT_ARCHITECTURE.md +0 -402
  138. package/runtime/data/signatures.json +0 -41
  139. package/runtime/docs/AETHER-2.0-IMPLEMENTATION-PLAN.md +0 -1343
  140. package/runtime/docs/AETHER-PHEROMONE-SYSTEM-MASTER-SPEC.md +0 -2642
  141. package/runtime/docs/PHEROMONE-INJECTION.md +0 -240
  142. package/runtime/docs/PHEROMONE-INTEGRATION.md +0 -192
  143. package/runtime/docs/PHEROMONE-SYSTEM-DESIGN.md +0 -426
  144. package/runtime/docs/README.md +0 -94
  145. package/runtime/docs/VISUAL-OUTPUT-SPEC.md +0 -219
  146. package/runtime/docs/biological-reference.md +0 -272
  147. package/runtime/docs/codebase-review.md +0 -399
  148. package/runtime/docs/command-sync.md +0 -164
  149. package/runtime/docs/constraints.md +0 -116
  150. package/runtime/docs/implementation-learnings.md +0 -89
  151. package/runtime/docs/namespace.md +0 -148
  152. package/runtime/docs/pathogen-schema-example.json +0 -36
  153. package/runtime/docs/pathogen-schema.md +0 -111
  154. package/runtime/docs/planning-discipline.md +0 -159
  155. package/runtime/docs/progressive-disclosure.md +0 -184
  156. package/runtime/lib/queen-utils.sh +0 -729
  157. package/runtime/planning.md +0 -159
  158. package/runtime/recover.sh +0 -136
  159. package/runtime/utils/xml-utils.sh +0 -2196
  160. package/runtime/workers-new-castes.md +0 -516
  161. /package/{runtime → .aether/docs/disciplines}/coding-standards.md +0 -0
  162. /package/{runtime → .aether/docs/disciplines}/debugging.md +0 -0
  163. /package/{runtime → .aether/docs/disciplines}/learning.md +0 -0
  164. /package/{runtime → .aether/docs/disciplines}/tdd.md +0 -0
  165. /package/{runtime → .aether/docs/disciplines}/verification-loop.md +0 -0
  166. /package/{runtime → .aether/docs/disciplines}/verification.md +0 -0
  167. /package/{runtime → .aether}/docs/pheromones.md +0 -0
  168. /package/{runtime → .aether}/model-profiles.yaml +0 -0
  169. /package/{runtime → .aether}/schemas/aether-types.xsd +0 -0
  170. /package/{runtime → .aether}/schemas/colony-registry.xsd +0 -0
  171. /package/{runtime → .aether}/schemas/pheromone.xsd +0 -0
  172. /package/{runtime → .aether}/schemas/prompt.xsd +0 -0
  173. /package/{runtime → .aether}/schemas/queen-wisdom.xsd +0 -0
  174. /package/{runtime → .aether}/schemas/worker-priming.xsd +0 -0
  175. /package/{runtime → .aether}/templates/QUEEN.md.template +0 -0
  176. /package/{runtime → .aether}/utils/colorize-log.sh +0 -0
  177. /package/{runtime → .aether}/utils/queen-to-md.xsl +0 -0
  178. /package/{runtime → .aether}/utils/spawn-tree.sh +0 -0
  179. /package/{runtime → .aether}/utils/spawn-with-model.sh +0 -0
  180. /package/{runtime → .aether}/utils/state-loader.sh +0 -0
  181. /package/{runtime → .aether}/utils/swarm-display.sh +0 -0
  182. /package/{runtime → .aether}/utils/watch-spawn-tree.sh +0 -0
  183. /package/{runtime → .aether}/utils/xml-core.sh +0 -0
@@ -66,7 +66,7 @@ Parse `$ARGUMENTS`:
66
66
 
67
67
  ### Step 0: Initialize Visual Mode (if enabled)
68
68
 
69
- If `visual_mode` is true:
69
+ If `visual_mode` is true, run using the Bash tool with description "Initializing chaos display...":
70
70
  ```bash
71
71
  # Generate session ID
72
72
  chaos_id="chaos-$(date +%s)"
@@ -100,9 +100,9 @@ Stop here.
100
100
 
101
101
  Display awakening:
102
102
  ```
103
- 🎲🐜🔍🐜🎲 ═══════════════════════════════════════════════
104
- R E S I L I E N C E T E S T E R A C T I V E
105
- ═══════════════════════════════════════════════ 🎲🐜🔍🐜🎲
103
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
104
+ 🎲🐜🔍🐜🎲 R E S I L I E N C E T E S T E R A C T I V E
105
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
106
106
 
107
107
  Target: {target description}
108
108
  Files: {list of files being investigated}
@@ -222,7 +222,7 @@ For each scenario, produce a finding in this format. Display each to the termina
222
222
 
223
223
  ### Step 5: Produce the Chaos Report
224
224
 
225
- **If visual_mode is true, render final swarm display:**
225
+ **If visual_mode is true, render final swarm display** by running using the Bash tool with description "Updating chaos display...":
226
226
  ```bash
227
227
  bash .aether/aether-utils.sh swarm-display-update "Chaos Ant" "chaos" "completed" "Resilience test complete" "Colony" '{"read":8,"grep":4,"edit":0,"bash":3}' 100 "fungus_garden" 100
228
228
  bash .aether/aether-utils.sh swarm-display-inline "$chaos_id"
@@ -231,9 +231,9 @@ bash .aether/aether-utils.sh swarm-display-inline "$chaos_id"
231
231
  After all 5 scenarios, compile the structured report:
232
232
 
233
233
  ```
234
- 🎲🐜🔍🐜🎲 ═══════════════════════════════════════════════
235
- C H A O S R E P O R T
236
- ═══════════════════════════════════════════════ 🎲🐜🔍🐜🎲
234
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
235
+ 🎲🐜🔍🐜🎲 C H A O S R E P O R T
236
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
237
237
 
238
238
  Target: {target description}
239
239
  Files investigated: {count}
@@ -304,14 +304,14 @@ After the display report, output the machine-readable JSON summary:
304
304
 
305
305
  ### Step 6.5: Persist Blocker Flags for Critical/High Findings
306
306
 
307
- After outputting the JSON report, iterate through the chaos report scenarios. For each finding with severity `"CRITICAL"` or `"HIGH"`, persist a blocker flag so the colony tracks it:
307
+ After outputting the JSON report, iterate through the chaos report scenarios. For each finding with severity `"CRITICAL"` or `"HIGH"`, persist a blocker flag so the colony tracks it by running using the Bash tool with description "Raising colony flag...":
308
308
 
309
309
  ```bash
310
310
  # For each scenario where status == "finding" AND severity is "CRITICAL" or "HIGH":
311
311
  bash .aether/aether-utils.sh flag-add "blocker" "{scenario.title}" "{scenario.description}" "chaos-standalone" {current_phase_number}
312
312
  ```
313
313
 
314
- Log each flag creation:
314
+ Log each flag creation by running using the Bash tool with description "Logging chaos flag...":
315
315
  ```bash
316
316
  bash .aether/aether-utils.sh activity-log "FLAG" "Chaos Ant" "Created blocker: {scenario.title}"
317
317
  ```
@@ -322,10 +322,19 @@ The `{current_phase_number}` comes from the colony state loaded in Step 1 (`.aet
322
322
 
323
323
  ### Step 7: Log Activity
324
324
 
325
+ Run using the Bash tool with description "Logging chaos activity...":
325
326
  ```bash
326
327
  bash .aether/aether-utils.sh activity-log "CHAOS" "Chaos Ant" "Resilience test on {target}: {findings_count} finding(s) ({critical} critical, {high} high, {medium} medium, {low} low), {resilient_count} resilient"
327
328
  ```
328
329
 
330
+ Generate the state-based Next Up block by running using the Bash tool with description "Generating Next Up suggestions...":
331
+ ```bash
332
+ state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
333
+ current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
334
+ total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
335
+ bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_phases"
336
+ ```
337
+
329
338
  ## Investigation Guidelines
330
339
 
331
340
  Throughout your investigation, remember:
@@ -12,6 +12,37 @@ The arguments are: `$ARGUMENTS`
12
12
  - If contains `--force` or `--force-resurvey`: set `force_resurvey = true`
13
13
  - Otherwise: set `visual_mode = true`, `force_resurvey = false`
14
14
 
15
+ <failure_modes>
16
+ ### Existing Survey Overwrite
17
+ If .aether/data/survey/ already contains survey documents:
18
+ - Warn before overwriting: "Existing survey found from [date]. Re-surveying will replace it."
19
+ - Options: (1) Continue and overwrite, (2) Keep existing survey, (3) Merge (re-survey only outdated sections)
20
+
21
+ ### Surveyor Spawn Failure
22
+ If a surveyor agent fails during codebase exploration:
23
+ - Report which survey document was not produced
24
+ - Partial surveys are acceptable -- note which documents are complete vs. missing
25
+ - Recovery: user can re-run /ant:colonize to regenerate missing surveys
26
+ </failure_modes>
27
+
28
+ <success_criteria>
29
+ Command is complete when:
30
+ - All surveyor agents have completed their exploration
31
+ - Survey documents exist in .aether/data/survey/
32
+ - COLONY_STATE.json reflects colonized status
33
+ - User sees summary of survey findings
34
+ </success_criteria>
35
+
36
+ <read_only>
37
+ Do not touch during colonize:
38
+ - .aether/dreams/ (user notes)
39
+ - .aether/chambers/ (archived colonies)
40
+ - Source code files (survey is read-only exploration)
41
+ - .env* files
42
+ - .claude/settings.json
43
+ - COLONY_STATE.json structure beyond colonize-specific fields
44
+ </read_only>
45
+
15
46
  ## Instructions
16
47
 
17
48
  ### Step 0: Initialize Visual Mode (if enabled)
@@ -21,16 +52,15 @@ If `visual_mode` is true:
21
52
  # Generate session ID
22
53
  colonize_id="colonize-$(date +%s)"
23
54
 
24
- # Initialize swarm display
25
- bash .aether/aether-utils.sh swarm-display-init "$colonize_id"
26
- bash .aether/aether-utils.sh swarm-display-update "Queen" "prime" "dispatching" "Surveying territory" "Colony" '{"read":0,"grep":0,"edit":0,"bash":0}' 0 "fungus_garden" 0
55
+ # Initialize swarm display (consolidated)
56
+ bash .aether/aether-utils.sh swarm-display-init "$colonize_id" && bash .aether/aether-utils.sh swarm-display-update "Queen" "prime" "dispatching" "Surveying territory" "Colony" '{"read":0,"grep":0,"edit":0,"bash":0}' 0 "fungus_garden" 0
27
57
  ```
28
58
 
29
59
  Display header:
30
60
  ```
31
- 📊🐜🗺️🐜📊 ═══════════════════════════════════════════════
32
- C O L O N I Z E — T e r r i t o r y S u r v e y
33
- ═══════════════════════════════════════════════ 📊🐜🗺️🐜📊
61
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
62
+ 📊🐜🗺️🐜📊 C O L O N I Z E — T e r r i t o r y S u r v e y
63
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
34
64
 
35
65
  Queen dispatching Surveyor Ants...
36
66
  ```
@@ -101,20 +131,17 @@ if [[ "$has_stale" -gt 0 ]] || [[ "$has_fresh" -gt 0 ]]; then
101
131
  fi
102
132
  ```
103
133
 
104
- Generate unique names for the 4 Surveyor Ants and log their dispatch:
134
+ Generate unique names for the 4 Surveyor Ants (each name must be captured separately):
105
135
  ```bash
106
- bash .aether/aether-utils.sh generate-ant-name "surveyor"
136
+ bash .aether/aether-utils.sh generate-ant-name "surveyor"
107
137
  bash .aether/aether-utils.sh generate-ant-name "surveyor"
108
138
  bash .aether/aether-utils.sh generate-ant-name "surveyor"
109
139
  bash .aether/aether-utils.sh generate-ant-name "surveyor"
110
140
  ```
111
141
 
112
- Log the dispatch:
142
+ Log the dispatches (consolidated - fire-and-forget logging):
113
143
  ```bash
114
- bash .aether/aether-utils.sh spawn-log "Queen" "surveyor" "{provisions_name}" "Mapping provisions and trails"
115
- bash .aether/aether-utils.sh spawn-log "Queen" "surveyor" "{nest_name}" "Mapping nest structure"
116
- bash .aether/aether-utils.sh spawn-log "Queen" "surveyor" "{disciplines_name}" "Mapping disciplines and sentinels"
117
- bash .aether/aether-utils.sh spawn-log "Queen" "surveyor" "{pathogens_name}" "Identifying pathogens"
144
+ bash .aether/aether-utils.sh spawn-log "Queen" "surveyor" "{provisions_name}" "Mapping provisions and trails" && bash .aether/aether-utils.sh spawn-log "Queen" "surveyor" "{nest_name}" "Mapping nest structure" && bash .aether/aether-utils.sh spawn-log "Queen" "surveyor" "{disciplines_name}" "Mapping disciplines and sentinels" && bash .aether/aether-utils.sh spawn-log "Queen" "surveyor" "{pathogens_name}" "Identifying pathogens"
118
145
  ```
119
146
 
120
147
  **Spawn 4 Surveyor Ants in parallel using the Task tool:**
@@ -147,15 +174,9 @@ Collect confirmations from all 4 surveyors. Each should return:
147
174
 
148
175
  ### Step 4: Verify Survey Completeness
149
176
 
150
- Check that all 7 documents were created:
177
+ Check that all 7 documents were created (consolidated):
151
178
  ```bash
152
- ls .aether/data/survey/PROVISIONS.md 2>/dev/null && echo "PROVISIONS: OK" || echo "PROVISIONS: MISSING"
153
- ls .aether/data/survey/TRAILS.md 2>/dev/null && echo "TRAILS: OK" || echo "TRAILS: MISSING"
154
- ls .aether/data/survey/BLUEPRINT.md 2>/dev/null && echo "BLUEPRINT: OK" || echo "BLUEPRINT: MISSING"
155
- ls .aether/data/survey/CHAMBERS.md 2>/dev/null && echo "CHAMBERS: OK" || echo "CHAMBERS: MISSING"
156
- ls .aether/data/survey/DISCIPLINES.md 2>/dev/null && echo "DISCIPLINES: OK" || echo "DISCIPLINES: MISSING"
157
- ls .aether/data/survey/SENTINEL-PROTOCOLS.md 2>/dev/null && echo "SENTINEL: OK" || echo "SENTINEL: MISSING"
158
- ls .aether/data/survey/PATHOGENS.md 2>/dev/null && echo "PATHOGENS: OK" || echo "PATHOGENS: MISSING"
179
+ ls .aether/data/survey/PROVISIONS.md .aether/data/survey/TRAILS.md .aether/data/survey/BLUEPRINT.md .aether/data/survey/CHAMBERS.md .aether/data/survey/DISCIPLINES.md .aether/data/survey/SENTINEL-PROTOCOLS.md .aether/data/survey/PATHOGENS.md 2>&1 | grep -q "No such file" && echo "Some documents missing" || echo "All survey documents present"
159
180
  ```
160
181
 
161
182
  If any documents are missing, note which ones in the output.
@@ -175,6 +196,11 @@ if [[ "$fresh_count" -lt 7 ]]; then
175
196
  fi
176
197
  ```
177
198
 
199
+ Display colony activity summary:
200
+ ```bash
201
+ bash .aether/aether-utils.sh swarm-display-text "$colonize_id"
202
+ ```
203
+
178
204
  ### Step 5: Update State
179
205
 
180
206
  Read `.aether/data/COLONY_STATE.json`. Update:
@@ -193,9 +219,9 @@ Write the updated COLONY_STATE.json.
193
219
  Output header:
194
220
 
195
221
  ```
196
- 📊🐜🗺️🐜📊 ═══════════════════════════════════════════════════
197
- T E R R I T O R Y S U R V E Y C O M P L E T E
198
- ═══════════════════════════════════════════════════ 📊🐜🗺️🐜📊
222
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
223
+ 📊🐜🗺️🐜📊 T E R R I T O R Y S U R V E Y C O M P L E T E
224
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
199
225
  ```
200
226
 
201
227
  Then output:
@@ -234,3 +260,11 @@ Next:
234
260
  /ant:focus "<area>" Inject focus before planning
235
261
  /ant:redirect "<pat>" Inject constraint before planning
236
262
  ```
263
+
264
+ Generate the state-based Next Up block:
265
+ ```bash
266
+ state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
267
+ current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
268
+ total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
269
+ bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_phases"
270
+ ```