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.
Files changed (281) hide show
  1. package/.aether/aether-utils.sh +181 -5
  2. package/.aether/commands/archaeology.yaml +3 -3
  3. package/.aether/commands/build.yaml +80 -45
  4. package/.aether/commands/chaos.yaml +7 -7
  5. package/.aether/commands/colonize.yaml +17 -17
  6. package/.aether/commands/continue.yaml +40 -40
  7. package/.aether/commands/council.yaml +6 -6
  8. package/.aether/commands/data-clean.yaml +3 -3
  9. package/.aether/commands/dream.yaml +2 -2
  10. package/.aether/commands/entomb.yaml +12 -12
  11. package/.aether/commands/export-signals.yaml +2 -2
  12. package/.aether/commands/feedback.yaml +6 -6
  13. package/.aether/commands/flag.yaml +2 -2
  14. package/.aether/commands/flags.yaml +4 -4
  15. package/.aether/commands/focus.yaml +6 -6
  16. package/.aether/commands/help.yaml +1 -1
  17. package/.aether/commands/history.yaml +1 -1
  18. package/.aether/commands/import-signals.yaml +2 -2
  19. package/.aether/commands/init.yaml +44 -27
  20. package/.aether/commands/insert-phase.yaml +1 -1
  21. package/.aether/commands/interpret.yaml +2 -2
  22. package/.aether/commands/lay-eggs.yaml +3 -3
  23. package/.aether/commands/maturity.yaml +2 -2
  24. package/.aether/commands/memory-details.yaml +1 -1
  25. package/.aether/commands/migrate-state.yaml +1 -1
  26. package/.aether/commands/oracle.yaml +147 -82
  27. package/.aether/commands/organize.yaml +5 -5
  28. package/.aether/commands/patrol.yaml +8 -8
  29. package/.aether/commands/pause-colony.yaml +7 -7
  30. package/.aether/commands/phase.yaml +1 -1
  31. package/.aether/commands/pheromones.yaml +1 -1
  32. package/.aether/commands/plan.yaml +14 -14
  33. package/.aether/commands/quick.yaml +4 -4
  34. package/.aether/commands/redirect.yaml +6 -6
  35. package/.aether/commands/resume-colony.yaml +9 -9
  36. package/.aether/commands/resume.yaml +5 -38
  37. package/.aether/commands/run.yaml +10 -10
  38. package/.aether/commands/seal.yaml +33 -33
  39. package/.aether/commands/skill-create.yaml +4 -4
  40. package/.aether/commands/status.yaml +14 -14
  41. package/.aether/commands/swarm.yaml +14 -14
  42. package/.aether/commands/tunnels.yaml +7 -7
  43. package/.aether/commands/update.yaml +1 -1
  44. package/.aether/commands/verify-castes.yaml +3 -3
  45. package/.aether/commands/watch.yaml +15 -15
  46. package/.aether/docs/command-playbooks/build-complete.md +48 -15
  47. package/.aether/docs/command-playbooks/build-context.md +11 -11
  48. package/.aether/docs/command-playbooks/build-full.md +76 -76
  49. package/.aether/docs/command-playbooks/build-prep.md +10 -10
  50. package/.aether/docs/command-playbooks/build-verify.md +27 -27
  51. package/.aether/docs/command-playbooks/build-wave.md +38 -38
  52. package/.aether/docs/command-playbooks/continue-advance.md +60 -27
  53. package/.aether/docs/command-playbooks/continue-finalize.md +25 -11
  54. package/.aether/docs/command-playbooks/continue-full.md +60 -46
  55. package/.aether/docs/command-playbooks/continue-gates.md +18 -18
  56. package/.aether/docs/command-playbooks/continue-verify.md +10 -10
  57. package/.aether/docs/source-of-truth-map.md +10 -10
  58. package/.aether/docs/structural-learning-stack.md +283 -0
  59. package/.aether/templates/colony-state-template.json +1 -0
  60. package/.aether/utils/consolidation-seal.sh +196 -0
  61. package/.aether/utils/consolidation.sh +127 -0
  62. package/.aether/utils/curation-ants/archivist.sh +97 -0
  63. package/.aether/utils/curation-ants/critic.sh +214 -0
  64. package/.aether/utils/curation-ants/herald.sh +102 -0
  65. package/.aether/utils/curation-ants/janitor.sh +121 -0
  66. package/.aether/utils/curation-ants/librarian.sh +99 -0
  67. package/.aether/utils/curation-ants/nurse.sh +153 -0
  68. package/.aether/utils/curation-ants/orchestrator.sh +181 -0
  69. package/.aether/utils/curation-ants/scribe.sh +164 -0
  70. package/.aether/utils/curation-ants/sentinel.sh +119 -0
  71. package/.aether/utils/event-bus.sh +301 -0
  72. package/.aether/utils/graph.sh +559 -0
  73. package/.aether/utils/instinct-store.sh +401 -0
  74. package/.aether/utils/learning.sh +79 -7
  75. package/.aether/utils/oracle/oracle-stop-hook.sh +896 -0
  76. package/.aether/utils/session.sh +13 -0
  77. package/.aether/utils/state-api.sh +1 -1
  78. package/.aether/utils/trust-scoring.sh +347 -0
  79. package/.aether/utils/worktree.sh +97 -0
  80. package/.claude/commands/ant/archaeology.md +2 -2
  81. package/.claude/commands/ant/chaos.md +4 -4
  82. package/.claude/commands/ant/colonize.md +9 -9
  83. package/.claude/commands/ant/council.md +6 -6
  84. package/.claude/commands/ant/data-clean.md +3 -3
  85. package/.claude/commands/ant/dream.md +2 -2
  86. package/.claude/commands/ant/entomb.md +9 -9
  87. package/.claude/commands/ant/export-signals.md +2 -2
  88. package/.claude/commands/ant/feedback.md +4 -4
  89. package/.claude/commands/ant/flag.md +2 -2
  90. package/.claude/commands/ant/flags.md +4 -4
  91. package/.claude/commands/ant/focus.md +4 -4
  92. package/.claude/commands/ant/help.md +1 -1
  93. package/.claude/commands/ant/history.md +1 -1
  94. package/.claude/commands/ant/import-signals.md +2 -2
  95. package/.claude/commands/ant/init.md +44 -27
  96. package/.claude/commands/ant/insert-phase.md +1 -1
  97. package/.claude/commands/ant/interpret.md +2 -2
  98. package/.claude/commands/ant/lay-eggs.md +2 -2
  99. package/.claude/commands/ant/maturity.md +2 -2
  100. package/.claude/commands/ant/memory-details.md +1 -1
  101. package/.claude/commands/ant/migrate-state.md +1 -1
  102. package/.claude/commands/ant/oracle.md +78 -42
  103. package/.claude/commands/ant/organize.md +3 -3
  104. package/.claude/commands/ant/patrol.md +8 -8
  105. package/.claude/commands/ant/pause-colony.md +5 -5
  106. package/.claude/commands/ant/phase.md +1 -1
  107. package/.claude/commands/ant/pheromones.md +1 -1
  108. package/.claude/commands/ant/plan.md +8 -8
  109. package/.claude/commands/ant/quick.md +4 -4
  110. package/.claude/commands/ant/redirect.md +4 -4
  111. package/.claude/commands/ant/resume-colony.md +5 -5
  112. package/.claude/commands/ant/resume.md +17 -29
  113. package/.claude/commands/ant/run.md +10 -10
  114. package/.claude/commands/ant/seal.md +25 -25
  115. package/.claude/commands/ant/skill-create.md +2 -2
  116. package/.claude/commands/ant/status.md +14 -14
  117. package/.claude/commands/ant/swarm.md +14 -14
  118. package/.claude/commands/ant/tunnels.md +4 -4
  119. package/.claude/commands/ant/update.md +1 -1
  120. package/.claude/commands/ant/verify-castes.md +2 -2
  121. package/.claude/commands/ant/watch.md +8 -8
  122. package/.opencode/commands/ant/archaeology.md +1 -1
  123. package/.opencode/commands/ant/build.md +80 -45
  124. package/.opencode/commands/ant/chaos.md +3 -3
  125. package/.opencode/commands/ant/colonize.md +8 -8
  126. package/.opencode/commands/ant/continue.md +40 -40
  127. package/.opencode/commands/ant/council.md +5 -5
  128. package/.opencode/commands/ant/data-clean.md +2 -2
  129. package/.opencode/commands/ant/dream.md +1 -1
  130. package/.opencode/commands/ant/entomb.md +3 -3
  131. package/.opencode/commands/ant/export-signals.md +1 -1
  132. package/.opencode/commands/ant/feedback.md +2 -2
  133. package/.opencode/commands/ant/flag.md +1 -1
  134. package/.opencode/commands/ant/flags.md +3 -3
  135. package/.opencode/commands/ant/focus.md +2 -2
  136. package/.opencode/commands/ant/import-signals.md +1 -1
  137. package/.opencode/commands/ant/init.md +44 -27
  138. package/.opencode/commands/ant/insert-phase.md +1 -1
  139. package/.opencode/commands/ant/interpret.md +1 -1
  140. package/.opencode/commands/ant/lay-eggs.md +2 -2
  141. package/.opencode/commands/ant/maturity.md +1 -1
  142. package/.opencode/commands/ant/memory-details.md +1 -1
  143. package/.opencode/commands/ant/oracle.md +69 -40
  144. package/.opencode/commands/ant/organize.md +2 -2
  145. package/.opencode/commands/ant/patrol.md +8 -8
  146. package/.opencode/commands/ant/pause-colony.md +2 -2
  147. package/.opencode/commands/ant/pheromones.md +1 -1
  148. package/.opencode/commands/ant/plan.md +6 -6
  149. package/.opencode/commands/ant/quick.md +4 -4
  150. package/.opencode/commands/ant/redirect.md +2 -2
  151. package/.opencode/commands/ant/resume-colony.md +4 -4
  152. package/.opencode/commands/ant/resume.md +5 -17
  153. package/.opencode/commands/ant/run.md +10 -10
  154. package/.opencode/commands/ant/seal.md +8 -8
  155. package/.opencode/commands/ant/skill-create.md +2 -2
  156. package/.opencode/commands/ant/status.md +10 -10
  157. package/.opencode/commands/ant/tunnels.md +3 -3
  158. package/.opencode/commands/ant/verify-castes.md +1 -1
  159. package/.opencode/commands/ant/watch.md +7 -7
  160. package/CHANGELOG.md +83 -0
  161. package/README.md +22 -9
  162. package/bin/cli.js +118 -3
  163. package/bin/lib/binary-downloader.js +267 -0
  164. package/bin/lib/update-transaction.js +27 -3
  165. package/bin/lib/version-gate.js +179 -0
  166. package/bin/npx-entry.js +0 -0
  167. package/package.json +1 -1
  168. package/.aether/agents/aether-ambassador.md +0 -140
  169. package/.aether/agents/aether-archaeologist.md +0 -108
  170. package/.aether/agents/aether-architect.md +0 -133
  171. package/.aether/agents/aether-auditor.md +0 -144
  172. package/.aether/agents/aether-builder.md +0 -184
  173. package/.aether/agents/aether-chaos.md +0 -115
  174. package/.aether/agents/aether-chronicler.md +0 -122
  175. package/.aether/agents/aether-gatekeeper.md +0 -116
  176. package/.aether/agents/aether-includer.md +0 -117
  177. package/.aether/agents/aether-keeper.md +0 -177
  178. package/.aether/agents/aether-measurer.md +0 -128
  179. package/.aether/agents/aether-oracle.md +0 -137
  180. package/.aether/agents/aether-probe.md +0 -133
  181. package/.aether/agents/aether-queen.md +0 -286
  182. package/.aether/agents/aether-route-setter.md +0 -130
  183. package/.aether/agents/aether-sage.md +0 -106
  184. package/.aether/agents/aether-scout.md +0 -101
  185. package/.aether/agents/aether-surveyor-disciplines.md +0 -391
  186. package/.aether/agents/aether-surveyor-nest.md +0 -329
  187. package/.aether/agents/aether-surveyor-pathogens.md +0 -264
  188. package/.aether/agents/aether-surveyor-provisions.md +0 -334
  189. package/.aether/agents/aether-tracker.md +0 -137
  190. package/.aether/agents/aether-watcher.md +0 -174
  191. package/.aether/agents/aether-weaver.md +0 -130
  192. package/.aether/commands/claude/archaeology.md +0 -334
  193. package/.aether/commands/claude/build.md +0 -65
  194. package/.aether/commands/claude/chaos.md +0 -336
  195. package/.aether/commands/claude/colonize.md +0 -259
  196. package/.aether/commands/claude/continue.md +0 -60
  197. package/.aether/commands/claude/council.md +0 -507
  198. package/.aether/commands/claude/data-clean.md +0 -81
  199. package/.aether/commands/claude/dream.md +0 -268
  200. package/.aether/commands/claude/entomb.md +0 -498
  201. package/.aether/commands/claude/export-signals.md +0 -57
  202. package/.aether/commands/claude/feedback.md +0 -96
  203. package/.aether/commands/claude/flag.md +0 -151
  204. package/.aether/commands/claude/flags.md +0 -169
  205. package/.aether/commands/claude/focus.md +0 -76
  206. package/.aether/commands/claude/help.md +0 -154
  207. package/.aether/commands/claude/history.md +0 -140
  208. package/.aether/commands/claude/import-signals.md +0 -71
  209. package/.aether/commands/claude/init.md +0 -505
  210. package/.aether/commands/claude/insert-phase.md +0 -105
  211. package/.aether/commands/claude/interpret.md +0 -278
  212. package/.aether/commands/claude/lay-eggs.md +0 -210
  213. package/.aether/commands/claude/maturity.md +0 -113
  214. package/.aether/commands/claude/memory-details.md +0 -77
  215. package/.aether/commands/claude/migrate-state.md +0 -171
  216. package/.aether/commands/claude/oracle.md +0 -642
  217. package/.aether/commands/claude/organize.md +0 -232
  218. package/.aether/commands/claude/patrol.md +0 -620
  219. package/.aether/commands/claude/pause-colony.md +0 -233
  220. package/.aether/commands/claude/phase.md +0 -115
  221. package/.aether/commands/claude/pheromones.md +0 -156
  222. package/.aether/commands/claude/plan.md +0 -693
  223. package/.aether/commands/claude/preferences.md +0 -65
  224. package/.aether/commands/claude/quick.md +0 -100
  225. package/.aether/commands/claude/redirect.md +0 -76
  226. package/.aether/commands/claude/resume-colony.md +0 -197
  227. package/.aether/commands/claude/resume.md +0 -388
  228. package/.aether/commands/claude/run.md +0 -231
  229. package/.aether/commands/claude/seal.md +0 -774
  230. package/.aether/commands/claude/skill-create.md +0 -286
  231. package/.aether/commands/claude/status.md +0 -410
  232. package/.aether/commands/claude/swarm.md +0 -349
  233. package/.aether/commands/claude/tunnels.md +0 -426
  234. package/.aether/commands/claude/update.md +0 -132
  235. package/.aether/commands/claude/verify-castes.md +0 -143
  236. package/.aether/commands/claude/watch.md +0 -239
  237. package/.aether/commands/opencode/archaeology.md +0 -331
  238. package/.aether/commands/opencode/build.md +0 -1168
  239. package/.aether/commands/opencode/chaos.md +0 -329
  240. package/.aether/commands/opencode/colonize.md +0 -195
  241. package/.aether/commands/opencode/continue.md +0 -1436
  242. package/.aether/commands/opencode/council.md +0 -437
  243. package/.aether/commands/opencode/data-clean.md +0 -77
  244. package/.aether/commands/opencode/dream.md +0 -260
  245. package/.aether/commands/opencode/entomb.md +0 -377
  246. package/.aether/commands/opencode/export-signals.md +0 -54
  247. package/.aether/commands/opencode/feedback.md +0 -99
  248. package/.aether/commands/opencode/flag.md +0 -149
  249. package/.aether/commands/opencode/flags.md +0 -167
  250. package/.aether/commands/opencode/focus.md +0 -73
  251. package/.aether/commands/opencode/help.md +0 -157
  252. package/.aether/commands/opencode/history.md +0 -136
  253. package/.aether/commands/opencode/import-signals.md +0 -68
  254. package/.aether/commands/opencode/init.md +0 -518
  255. package/.aether/commands/opencode/insert-phase.md +0 -111
  256. package/.aether/commands/opencode/interpret.md +0 -272
  257. package/.aether/commands/opencode/lay-eggs.md +0 -213
  258. package/.aether/commands/opencode/maturity.md +0 -108
  259. package/.aether/commands/opencode/memory-details.md +0 -83
  260. package/.aether/commands/opencode/migrate-state.md +0 -165
  261. package/.aether/commands/opencode/oracle.md +0 -593
  262. package/.aether/commands/opencode/organize.md +0 -226
  263. package/.aether/commands/opencode/patrol.md +0 -626
  264. package/.aether/commands/opencode/pause-colony.md +0 -203
  265. package/.aether/commands/opencode/phase.md +0 -113
  266. package/.aether/commands/opencode/pheromones.md +0 -162
  267. package/.aether/commands/opencode/plan.md +0 -684
  268. package/.aether/commands/opencode/preferences.md +0 -71
  269. package/.aether/commands/opencode/quick.md +0 -91
  270. package/.aether/commands/opencode/redirect.md +0 -84
  271. package/.aether/commands/opencode/resume-colony.md +0 -190
  272. package/.aether/commands/opencode/resume.md +0 -394
  273. package/.aether/commands/opencode/run.md +0 -237
  274. package/.aether/commands/opencode/seal.md +0 -452
  275. package/.aether/commands/opencode/skill-create.md +0 -63
  276. package/.aether/commands/opencode/status.md +0 -307
  277. package/.aether/commands/opencode/swarm.md +0 -15
  278. package/.aether/commands/opencode/tunnels.md +0 -400
  279. package/.aether/commands/opencode/update.md +0 -127
  280. package/.aether/commands/opencode/verify-castes.md +0 -139
  281. package/.aether/commands/opencode/watch.md +0 -227
@@ -57,7 +57,7 @@ body_claude: |
57
57
 
58
58
  ### Step 2: Maturity Gate
59
59
 
60
- Run `bash .aether/aether-utils.sh milestone-detect` to get `milestone`, `phases_completed`, `total_phases`.
60
+ Run `aether milestone-detect` to get `milestone`, `phases_completed`, `total_phases`.
61
61
 
62
62
  **If milestone is already "Crowned Anthill":**
63
63
  ```
@@ -119,8 +119,8 @@ body_claude: |
119
119
 
120
120
  if [[ "$phases_completed" -ge 3 ]]; then
121
121
  # Generate Sage name and dispatch
122
- sage_name=$(bash .aether/aether-utils.sh generate-ant-name "sage")
123
- bash .aether/aether-utils.sh spawn-log "Queen" "sage" "$sage_name" "Colony analytics review"
122
+ sage_name=$(aether generate-ant-name --caste "sage")
123
+ aether spawn-log --name "Queen" --caste "sage" --id "$sage_name" --description "Colony analytics review"
124
124
 
125
125
  # Display spawn notification
126
126
  echo ""
@@ -159,7 +159,7 @@ body_claude: |
159
159
 
160
160
  **IMPORTANT:** You are strictly read-only. Do not modify any files.
161
161
 
162
- Log activity: bash .aether/aether-utils.sh activity-log "ANALYZING" "{sage_name}" "description"
162
+ Log activity: aether activity-log "ANALYZING" "{sage_name}" "description"
163
163
 
164
164
  Return ONLY this JSON (no other text):
165
165
  {{
@@ -192,7 +192,7 @@ body_claude: |
192
192
 
193
193
  Log completion and update swarm display:
194
194
  ```bash
195
- bash .aether/aether-utils.sh spawn-complete "$sage_name" "completed" "Analytics review complete"
195
+ aether spawn-complete --id "$sage_name" --status "completed" --summary "Analytics review complete"
196
196
  ```
197
197
 
198
198
  **Display Sage completion line:**
@@ -204,7 +204,7 @@ body_claude: |
204
204
  **Log high-priority recommendations to midden (non-blocking):**
205
205
  For each recommendation with priority <= 2:
206
206
  ```bash
207
- bash .aether/aether-utils.sh midden-write "analytics" "Sage recommendation (P{priority}): {action}" "sage"
207
+ aether midden-write "analytics" "Sage recommendation (P{priority}): {action}" "sage"
208
208
  ```
209
209
 
210
210
  **Display insights summary:**
@@ -239,7 +239,7 @@ body_claude: |
239
239
  colony=$(echo "$encoded" | base64 -d | jq -r '.colonies[0] // "unknown"')
240
240
  [[ -z "$content" ]] && continue
241
241
 
242
- result=$(bash .aether/aether-utils.sh learning-promote-auto "$wisdom_type" "$content" "$colony" "learning" 2>/dev/null || echo '{}')
242
+ result=$(aether learning-promote-auto "$wisdom_type" "$content" "$colony" "learning" 2>/dev/null || echo '{}')
243
243
  was_promoted=$(echo "$result" | jq -r '.result.promoted // false' 2>/dev/null || echo "false")
244
244
  if [[ "$was_promoted" == "true" ]]; then
245
245
  auto_promoted_count=$((auto_promoted_count + 1))
@@ -254,7 +254,7 @@ body_claude: |
254
254
  # --- END Batch auto-promotion ---
255
255
 
256
256
  # Check for pending proposals
257
- proposals=$(bash .aether/aether-utils.sh learning-check-promotion 2>/dev/null || echo '{"proposals":[]}')
257
+ proposals=$(aether learning-check-promotion 2>/dev/null || echo '{"proposals":[]}')
258
258
  proposal_count=$(echo "$proposals" | jq '.proposals | length')
259
259
 
260
260
  if [[ "$proposal_count" -gt 0 ]]; then
@@ -268,7 +268,7 @@ body_claude: |
268
268
  echo ""
269
269
 
270
270
  # Run approval workflow (blocking)
271
- bash .aether/aether-utils.sh learning-approve-proposals
271
+ aether learning-approve-proposals
272
272
 
273
273
  echo ""
274
274
  echo "Wisdom review complete. Proceeding with sealing ceremony..."
@@ -318,7 +318,7 @@ body_claude: |
318
318
  [[ -n "$repo_domain_tags" ]] && promote_args+=(--domain "$repo_domain_tags")
319
319
 
320
320
  # Call hive-promote which orchestrates abstract + store
321
- result=$(bash .aether/aether-utils.sh "${promote_args[@]}" 2>/dev/null || echo '{}')
321
+ result=$(aether "${promote_args[@]}" 2>/dev/null || echo '{}')
322
322
  was_promoted=$(echo "$result" | jq -r '.result.action // "skipped"' 2>/dev/null || echo "skipped")
323
323
 
324
324
  if [[ "$was_promoted" == "promoted" || "$was_promoted" == "merged" ]]; then
@@ -338,7 +338,7 @@ body_claude: |
338
338
 
339
339
  Log the seal ceremony to activity log:
340
340
  ```bash
341
- bash .aether/aether-utils.sh activity-log "MODIFIED" "Queen" "Colony sealed - wisdom review completed"
341
+ aether activity-log "MODIFIED" "Queen" "Colony sealed - wisdom review completed"
342
342
  ```
343
343
 
344
344
  ### Step 4.4: Checkpoint State
@@ -347,7 +347,7 @@ body_claude: |
347
347
 
348
348
  Run using the Bash tool with description "Checkpointing colony state before seal...":
349
349
  ```bash
350
- bash .aether/aether-utils.sh state-checkpoint "pre-seal" 2>/dev/null || echo "Warning: State checkpoint failed -- continuing without backup" >&2
350
+ aether state-checkpoint "pre-seal" 2>/dev/null || echo "Warning: State checkpoint failed -- continuing without backup" >&2
351
351
  ```
352
352
 
353
353
  ### Step 4.5: Increment Colony Version
@@ -382,7 +382,7 @@ body_claude: |
382
382
  2. Set `milestone_updated_at` to current ISO-8601 timestamp
383
383
  3. Append event: `"<timestamp>|milestone_reached|seal|Achieved Crowned Anthill milestone"`
384
384
 
385
- Run `bash .aether/aether-utils.sh validate-state colony` after write.
385
+ Run `aether validate-state colony` after write.
386
386
 
387
387
  ### Step 5.1: Update Changelog
388
388
 
@@ -395,7 +395,7 @@ body_claude: |
395
395
  - Summarize the goal and key outcomes in one line
396
396
 
397
397
  ```bash
398
- bash .aether/aether-utils.sh changelog-append \
398
+ aether changelog-append \
399
399
  "$(date +%Y-%m-%d)" \
400
400
  "seal-crowned-anthill" \
401
401
  "00" \
@@ -416,7 +416,7 @@ body_claude: |
416
416
 
417
417
  Run using the Bash tool (ignore errors):
418
418
  ```bash
419
- bash .aether/aether-utils.sh registry-add "$(pwd)" "$(jq -r '.version // "unknown"' ~/.aether/version.json 2>/dev/null || echo 'unknown')" --active false 2>/dev/null || true
419
+ aether registry-add --path "$(pwd)" "$(jq -r '.version // "unknown"' ~/.aether/version.json 2>/dev/null || echo 'unknown')" --active false 2>/dev/null || true
420
420
  ```
421
421
 
422
422
  If the command fails, proceed silently. This is optional bookkeeping.
@@ -428,10 +428,10 @@ body_claude: |
428
428
  **Generate Chronicler name and dispatch:**
429
429
  ```bash
430
430
  # Generate unique chronicler name
431
- chronicler_name=$(bash .aether/aether-utils.sh generate-ant-name "chronicler")
431
+ chronicler_name=$(aether generate-ant-name --caste "chronicler")
432
432
 
433
433
  # Log spawn and update swarm display
434
- bash .aether/aether-utils.sh spawn-log "Queen" "chronicler" "$chronicler_name" "Documentation coverage audit"
434
+ aether spawn-log --name "Queen" --caste "chronicler" --id "$chronicler_name" --description "Documentation coverage audit"
435
435
  ```
436
436
 
437
437
  **Display:**
@@ -469,7 +469,7 @@ body_claude: |
469
469
 
470
470
  **IMPORTANT:** You are strictly read-only. Do not modify any files.
471
471
 
472
- Log activity: bash .aether/aether-utils.sh activity-log "SURVEYING" "{chronicler_name}" "description"
472
+ Log activity: aether activity-log "SURVEYING" "{chronicler_name}" "description"
473
473
 
474
474
  Return ONLY this JSON (no other text):
475
475
  {
@@ -498,7 +498,7 @@ body_claude: |
498
498
 
499
499
  Log completion and update swarm display:
500
500
  ```bash
501
- bash .aether/aether-utils.sh spawn-complete "$chronicler_name" "completed" "Documentation audit complete"
501
+ aether spawn-complete --id "$chronicler_name" --status "completed" --summary "Documentation audit complete"
502
502
  ```
503
503
 
504
504
  **Display Chronicler completion line:**
@@ -509,7 +509,7 @@ body_claude: |
509
509
  **Log gaps to midden (non-blocking):**
510
510
  For each gap in `gaps_identified` with severity "high" or "medium":
511
511
  ```bash
512
- bash .aether/aether-utils.sh midden-write "documentation" "Gap ({severity}): {description} at {location}" "chronicler"
512
+ aether midden-write "documentation" "Gap ({severity}): {description} at {location}" "chronicler"
513
513
  ```
514
514
 
515
515
  **Display summary:**
@@ -580,7 +580,7 @@ body_claude: |
580
580
  ```bash
581
581
  # Check if xmllint is available
582
582
  if command -v xmllint >/dev/null 2>&1; then
583
- xml_result=$(bash .aether/aether-utils.sh colony-archive-xml ".aether/exchange/colony-archive.xml" 2>&1)
583
+ xml_result=$(aether colony-archive-xml --output ".aether/exchange/colony-archive.xml" 2>&1)
584
584
  xml_ok=$(echo "$xml_result" | jq -r '.ok // false' 2>/dev/null)
585
585
  if [[ "$xml_ok" == "true" ]]; then
586
586
  xml_pheromone_count=$(echo "$xml_result" | jq -r '.result.pheromone_count // 0' 2>/dev/null)
@@ -590,7 +590,7 @@ body_claude: |
590
590
  fi
591
591
 
592
592
  # Also export standalone pheromones.xml for cross-colony sharing
593
- pher_result=$(bash .aether/aether-utils.sh pheromone-export-xml ".aether/exchange/pheromones.xml" 2>&1)
593
+ pher_result=$(aether pheromone-export-xml --output ".aether/exchange/pheromones.xml" 2>&1)
594
594
  pher_ok=$(echo "$pher_result" | jq -r '.ok // false' 2>/dev/null)
595
595
  if [[ "$pher_ok" == "true" ]]; then
596
596
  pher_signal_count=$(jq '[.signals[] | select(.active != false)] | length' .aether/data/pheromones.json 2>/dev/null || echo "0")
@@ -600,7 +600,7 @@ body_claude: |
600
600
  fi
601
601
 
602
602
  # Export standalone queen-wisdom.xml for cross-colony wisdom sharing
603
- wisdom_result=$(bash .aether/aether-utils.sh wisdom-export-xml ".aether/exchange/queen-wisdom.xml" 2>&1)
603
+ wisdom_result=$(aether wisdom-export-xml ".aether/exchange/queen-wisdom.xml" 2>&1)
604
604
  wisdom_ok=$(echo "$wisdom_result" | jq -r '.ok // false' 2>/dev/null)
605
605
  if [[ "$wisdom_ok" == "true" ]]; then
606
606
  wisdom_count=$(echo "$wisdom_result" | jq -r '.result.entries // 0' 2>/dev/null)
@@ -610,7 +610,7 @@ body_claude: |
610
610
  fi
611
611
 
612
612
  # Export standalone colony-registry.xml for lineage tracking
613
- registry_result=$(bash .aether/aether-utils.sh registry-export-xml ".aether/exchange/colony-registry.xml" 2>&1)
613
+ registry_result=$(aether registry-export-xml ".aether/exchange/colony-registry.xml" 2>&1)
614
614
  registry_ok=$(echo "$registry_result" | jq -r '.ok // false' 2>/dev/null)
615
615
  if [[ "$registry_ok" == "true" ]]; then
616
616
  registry_count=$(echo "$registry_result" | jq -r '.result.colonies // 0' 2>/dev/null)
@@ -689,7 +689,7 @@ body_claude: |
689
689
 
690
690
  Generate a seal commit message:
691
691
  ```bash
692
- seal_commit=$(bash .aether/aether-utils.sh generate-commit-message seal "$phases_completed" "$goal" "$colony_age_days" 2>/dev/null)
692
+ seal_commit=$(aether generate-commit-message seal "$phases_completed" "$goal" "$colony_age_days" 2>/dev/null)
693
693
  seal_message=$(echo "$seal_commit" | jq -r '.result.message // "aether-seal: colony sealed"')
694
694
  seal_body=$(echo "$seal_commit" | jq -r '.result.body // ""')
695
695
  ```
@@ -932,7 +932,7 @@ body_opencode: |
932
932
  - Summarize the goal and key outcomes in one line
933
933
 
934
934
  ```bash
935
- bash .aether/aether-utils.sh changelog-append \
935
+ aether changelog-append \
936
936
  "$(date +%Y-%m-%d)" \
937
937
  "seal-crowned-anthill" \
938
938
  "00" \
@@ -953,7 +953,7 @@ body_opencode: |
953
953
 
954
954
  Run using the Bash tool (ignore errors):
955
955
  ```bash
956
- bash .aether/aether-utils.sh registry-add "$(pwd)" "$(jq -r '.version // "unknown"' ~/.aether/version.json 2>/dev/null || echo 'unknown')" --active false 2>/dev/null || true
956
+ aether registry-add --path "$(pwd)" "$(jq -r '.version // "unknown"' ~/.aether/version.json 2>/dev/null || echo 'unknown')" --active false 2>/dev/null || true
957
957
  ```
958
958
 
959
959
  If the command fails, proceed silently. This is optional bookkeeping.
@@ -998,7 +998,7 @@ body_opencode: |
998
998
  [[ -n "$repo_domain_tags" ]] && promote_args+=(--domain "$repo_domain_tags")
999
999
 
1000
1000
  # Call hive-promote which orchestrates abstract + store
1001
- result=$(bash .aether/aether-utils.sh "${promote_args[@]}" 2>/dev/null || echo '{}')
1001
+ result=$(aether "${promote_args[@]}" 2>/dev/null || echo '{}')
1002
1002
  was_promoted=$(echo "$result" | jq -r '.result.action // "skipped"' 2>/dev/null || echo "skipped")
1003
1003
 
1004
1004
  if [[ "$was_promoted" == "promoted" || "$was_promoted" == "merged" ]]; then
@@ -1044,7 +1044,7 @@ body_opencode: |
1044
1044
  ```bash
1045
1045
  # Check if xmllint is available
1046
1046
  if command -v xmllint >/dev/null 2>&1; then
1047
- xml_result=$(bash .aether/aether-utils.sh colony-archive-xml ".aether/exchange/colony-archive.xml" 2>&1)
1047
+ xml_result=$(aether colony-archive-xml --output ".aether/exchange/colony-archive.xml" 2>&1)
1048
1048
  xml_ok=$(echo "$xml_result" | jq -r '.ok // false' 2>/dev/null)
1049
1049
  if [[ "$xml_ok" == "true" ]]; then
1050
1050
  xml_pheromone_count=$(echo "$xml_result" | jq -r '.result.pheromone_count // 0' 2>/dev/null)
@@ -1054,7 +1054,7 @@ body_opencode: |
1054
1054
  fi
1055
1055
 
1056
1056
  # Also export standalone pheromones.xml for cross-colony sharing
1057
- pher_result=$(bash .aether/aether-utils.sh pheromone-export-xml ".aether/exchange/pheromones.xml" 2>&1)
1057
+ pher_result=$(aether pheromone-export-xml --output ".aether/exchange/pheromones.xml" 2>&1)
1058
1058
  pher_ok=$(echo "$pher_result" | jq -r '.ok // false' 2>/dev/null)
1059
1059
  if [[ "$pher_ok" == "true" ]]; then
1060
1060
  pher_signal_count=$(jq '[.signals[] | select(.active != false)] | length' .aether/data/pheromones.json 2>/dev/null || echo "0")
@@ -1064,7 +1064,7 @@ body_opencode: |
1064
1064
  fi
1065
1065
 
1066
1066
  # Export standalone queen-wisdom.xml for cross-colony wisdom sharing
1067
- wisdom_result=$(bash .aether/aether-utils.sh wisdom-export-xml ".aether/exchange/queen-wisdom.xml" 2>&1)
1067
+ wisdom_result=$(aether wisdom-export-xml ".aether/exchange/queen-wisdom.xml" 2>&1)
1068
1068
  wisdom_ok=$(echo "$wisdom_result" | jq -r '.ok // false' 2>/dev/null)
1069
1069
  if [[ "$wisdom_ok" == "true" ]]; then
1070
1070
  wisdom_count=$(echo "$wisdom_result" | jq -r '.result.entries // 0' 2>/dev/null)
@@ -1074,7 +1074,7 @@ body_opencode: |
1074
1074
  fi
1075
1075
 
1076
1076
  # Export standalone colony-registry.xml for lineage tracking
1077
- registry_result=$(bash .aether/aether-utils.sh registry-export-xml ".aether/exchange/colony-registry.xml" 2>&1)
1077
+ registry_result=$(aether registry-export-xml ".aether/exchange/colony-registry.xml" 2>&1)
1078
1078
  registry_ok=$(echo "$registry_result" | jq -r '.ok // false' 2>/dev/null)
1079
1079
  if [[ "$registry_ok" == "true" ]]; then
1080
1080
  registry_count=$(echo "$registry_result" | jq -r '.result.colonies // 0' 2>/dev/null)
@@ -1145,7 +1145,7 @@ body_opencode: |
1145
1145
 
1146
1146
  Generate a seal commit message:
1147
1147
  ```bash
1148
- seal_commit=$(bash .aether/aether-utils.sh generate-commit-message seal "$phases_completed" "$goal" "$colony_age_days" 2>/dev/null)
1148
+ seal_commit=$(aether generate-commit-message seal "$phases_completed" "$goal" "$colony_age_days" 2>/dev/null)
1149
1149
  seal_message=$(echo "$seal_commit" | jq -r '.result.message // "aether-seal: colony sealed"')
1150
1150
  seal_body=$(echo "$seal_commit" | jq -r '.result.body // ""')
1151
1151
  ```
@@ -225,7 +225,7 @@ body_claude: |
225
225
  Run using the Bash tool with description "Verifying skill frontmatter...":
226
226
 
227
227
  ```bash
228
- bash .aether/aether-utils.sh skill-parse-frontmatter ~/.aether/skills/domain/{SKILL_NAME}/SKILL.md
228
+ aether skill-parse-frontmatter ~/.aether/skills/domain/{SKILL_NAME}/SKILL.md
229
229
  ```
230
230
 
231
231
  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.
@@ -235,7 +235,7 @@ body_claude: |
235
235
  Run using the Bash tool with description "Rebuilding skill cache...":
236
236
 
237
237
  ```bash
238
- bash .aether/aether-utils.sh skill-cache-rebuild
238
+ aether skill-cache-rebuild
239
239
  ```
240
240
 
241
241
  **4d. Show the result**
@@ -330,8 +330,8 @@ body_opencode: |
330
330
  ### Step 4: Write and Verify
331
331
 
332
332
  1. Write to `~/.aether/skills/domain/{name}/SKILL.md`
333
- 2. Run: `bash .aether/aether-utils.sh skill-parse-frontmatter ~/.aether/skills/domain/{name}/SKILL.md`
334
- 3. Run: `bash .aether/aether-utils.sh skill-cache-rebuild`
333
+ 2. Run: `aether skill-parse-frontmatter ~/.aether/skills/domain/{name}/SKILL.md`
334
+ 3. Run: `aether skill-cache-rebuild`
335
335
  4. Show the generated skill to the user
336
336
  5. Ask if they want to adjust anything
337
337
 
@@ -8,7 +8,7 @@ body: |
8
8
 
9
9
  ### Step 0: Version Check (Non-blocking)
10
10
 
11
- {{TOOL_PREFIX "Checking colony version..."}} `bash .aether/aether-utils.sh version-check-cached 2>/dev/null || true`
11
+ {{TOOL_PREFIX "Checking colony version..."}} `aether version-check-cached 2>/dev/null || true`
12
12
 
13
13
  If the command succeeds and the JSON result contains a non-empty string, display it as a one-line notice. Proceed regardless of outcome.
14
14
 
@@ -50,7 +50,7 @@ body: |
50
50
 
51
51
  ### Step 1.5: Load State and Show Resumption Context
52
52
 
53
- {{TOOL_PREFIX "Loading colony state..."}} `bash .aether/aether-utils.sh load-state`
53
+ {{TOOL_PREFIX "Loading colony state..."}} `aether load-state`
54
54
 
55
55
  If successful and goal is not null:
56
56
  1. Extract current_phase from state
@@ -68,7 +68,7 @@ body: |
68
68
  - Read .aether/HANDOFF.md content for additional context
69
69
  - Remove .aether/HANDOFF.md after displaying (cleanup)
70
70
 
71
- {{TOOL_PREFIX "Releasing colony lock..."}} `bash .aether/aether-utils.sh unload-state` to release lock.
71
+ {{TOOL_PREFIX "Releasing colony lock..."}} `aether unload-state` to release lock.
72
72
 
73
73
  ### Step 2: Compute Summary
74
74
 
@@ -116,7 +116,7 @@ body: |
116
116
 
117
117
  Run using the Bash tool with description "Reading colony depth...":
118
118
  ```bash
119
- depth_result=$(bash .aether/aether-utils.sh colony-depth get 2>/dev/null || echo '{"ok":true,"result":{"depth":"standard","source":"default"}}')
119
+ depth_result=$(aether colony-depth get 2>/dev/null || echo '{"ok":true,"result":{"depth":"standard","source":"default"}}')
120
120
  colony_depth=$(echo "$depth_result" | jq -r '.result.depth // "standard"')
121
121
  depth_source=$(echo "$depth_result" | jq -r '.result.source // "default"')
122
122
  echo "colony_depth=$colony_depth"
@@ -150,7 +150,7 @@ body: |
150
150
  - Constraints count: `constraints.length`
151
151
 
152
152
  **Flags:**
153
- {{TOOL_PREFIX "Checking for blockers..."}} `bash .aether/aether-utils.sh flag-check-blockers`
153
+ {{TOOL_PREFIX "Checking for blockers..."}} `aether flag-check-blockers`
154
154
  Extract:
155
155
  - Blockers count (critical, block advancement)
156
156
  - Issues count (high, warnings)
@@ -161,7 +161,7 @@ body: |
161
161
 
162
162
  {{TOOL_PREFIX "Checking escalation state..."}}
163
163
  ```bash
164
- escalated_count=$(bash .aether/aether-utils.sh flag-list --type blocker 2>/dev/null | jq '[.result.flags[] | select(.source == "escalation")] | length' 2>/dev/null || echo "0")
164
+ escalated_count=$(aether flag-list --type blocker --json 2>/dev/null | jq '[.result.flags[] | select(.source == "escalation")] | length' 2>/dev/null || echo "0")
165
165
  echo "escalated_count=$escalated_count"
166
166
  ```
167
167
 
@@ -180,7 +180,7 @@ body: |
180
180
 
181
181
  ### Step 2.6: Detect Milestone
182
182
 
183
- {{TOOL_PREFIX "Detecting colony milestone..."}} `bash .aether/aether-utils.sh milestone-detect`
183
+ {{TOOL_PREFIX "Detecting colony milestone..."}} `aether milestone-detect`
184
184
 
185
185
  Extract from JSON result:
186
186
  - `milestone`: Current milestone name
@@ -192,7 +192,7 @@ body: |
192
192
 
193
193
  {{TOOL_PREFIX "Loading memory health metrics..."}}
194
194
  ```bash
195
- bash .aether/aether-utils.sh memory-metrics
195
+ aether memory-metrics
196
196
  ```
197
197
 
198
198
  Extract from JSON result:
@@ -226,8 +226,8 @@ body: |
226
226
  fi
227
227
 
228
228
  # Generate progress bars
229
- phase_bar=$(bash .aether/aether-utils.sh generate-progress-bar "$current_phase" "$total_phases" 20)
230
- task_bar=$(bash .aether/aether-utils.sh generate-progress-bar "$tasks_completed" "$tasks_total" 20)
229
+ phase_bar=$(aether generate-progress-bar "$current_phase" "$total_phases" 20)
230
+ task_bar=$(aether generate-progress-bar "$tasks_completed" "$tasks_total" 20)
231
231
 
232
232
  echo "phase_bar=$phase_bar"
233
233
  echo "task_bar=$task_bar"
@@ -303,7 +303,7 @@ body: |
303
303
  **Colony Vital Signs:**
304
304
  After the Memory Health table, run:
305
305
  ```bash
306
- bash .aether/aether-utils.sh colony-vital-signs
306
+ aether colony-vital-signs
307
307
  ```
308
308
 
309
309
  Extract from JSON result:
@@ -347,7 +347,7 @@ body: |
347
347
  **Data Safety:**
348
348
  After the Colony Vital Signs panel, run:
349
349
  ```bash
350
- bash .aether/aether-utils.sh data-safety-stats
350
+ aether data-safety-stats
351
351
  ```
352
352
 
353
353
  If the result contains non-zero counts, display:
@@ -365,7 +365,7 @@ body: |
365
365
  **Pheromone Summary:**
366
366
  After the Data Safety section, run:
367
367
  ```bash
368
- bash .aether/aether-utils.sh pheromone-count
368
+ aether pheromone-count
369
369
  ```
370
370
 
371
371
  Display:
@@ -402,7 +402,7 @@ body: |
402
402
  current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
403
403
  total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
404
404
 
405
- bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_phases"
405
+ aether print-next-up
406
406
  ```
407
407
 
408
408
  This auto-generates state-based recommendations (IDLE → init, READY → build, EXECUTING → continue, PLANNING → plan).
@@ -57,7 +57,7 @@ body_claude: |
57
57
 
58
58
  Initialize swarm findings:
59
59
  ```bash
60
- bash .aether/aether-utils.sh swarm-findings-init "<swarm_id>"
60
+ aether swarm-findings-init --id "<swarm_id>"
61
61
  ```
62
62
 
63
63
  #### Step 2.5: Check for Stale Swarm Session
@@ -69,19 +69,19 @@ body_claude: |
69
69
 
70
70
  Check for stale swarm files:
71
71
  ```bash
72
- stale_check=$(bash .aether/aether-utils.sh session-verify-fresh --command swarm "" "$SWARM_START")
72
+ stale_check=$(aether session-verify-fresh --command swarm "" "$SWARM_START")
73
73
  has_stale=$(echo "$stale_check" | jq -r '.stale | length')
74
74
 
75
75
  if [[ "$has_stale" -gt 0 ]]; then
76
76
  # Auto-clear stale swarm findings (safe - findings are temporary)
77
- bash .aether/aether-utils.sh session-clear --command swarm
77
+ aether session-clear --command swarm
78
78
  echo "Cleared stale swarm findings for fresh investigation"
79
79
  fi
80
80
  ```
81
81
 
82
82
  After initializing findings, verify swarm files are fresh:
83
83
  ```bash
84
- verify_result=$(bash .aether/aether-utils.sh session-verify-fresh --command swarm "" "$SWARM_START")
84
+ verify_result=$(aether session-verify-fresh --command swarm "" "$SWARM_START")
85
85
  if [[ $(echo "$verify_result" | jq -r '.missing | length') -gt 0 ]]; then
86
86
  echo "Warning: Swarm files not properly initialized"
87
87
  fi
@@ -103,7 +103,7 @@ body_claude: |
103
103
 
104
104
  Before any investigation that might lead to fixes, run using the Bash tool:
105
105
  ```bash
106
- bash .aether/aether-utils.sh autofix-checkpoint "pre-swarm-$SWARM_ID"
106
+ aether autofix-checkpoint --name "pre-swarm-$SWARM_ID"
107
107
  ```
108
108
 
109
109
  Store the result for potential rollback:
@@ -118,7 +118,7 @@ body_claude: |
118
118
 
119
119
  Read existing blockers for context:
120
120
  ```bash
121
- bash .aether/aether-utils.sh flag-list --type blocker
121
+ aether flag-list --type blocker --json
122
122
  ```
123
123
 
124
124
  Read recent activity:
@@ -206,7 +206,7 @@ body_claude: |
206
206
 
207
207
  As each scout returns, add their findings:
208
208
  ```bash
209
- bash .aether/aether-utils.sh swarm-findings-add "{swarm_id}" "{scout_type}" "{confidence}" '{finding_json}'
209
+ aether swarm-findings-add "{swarm_id}" "{scout_type}" "{confidence}" '{finding_json}'
210
210
  ```
211
211
 
212
212
  Display each scout's report as they complete:
@@ -235,7 +235,7 @@ body_claude: |
235
235
  Rank fix options:
236
236
  ```
237
237
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
238
- S O L U T I O N R A N K I N G
238
+ 🏆 S O L U T I O N R A N K I N G
239
239
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
240
240
 
241
241
  #1 [0.85 confidence] {best solution}
@@ -291,8 +291,8 @@ body_claude: |
291
291
 
292
292
  Set solution in swarm findings and log success:
293
293
  ```bash
294
- bash .aether/aether-utils.sh swarm-solution-set "{swarm_id}" '{solution_json}'
295
- bash .aether/aether-utils.sh activity-log "SWARM_SUCCESS" "Queen" "Swarm {swarm_id} fixed: {brief description}"
294
+ aether swarm-solution-set "{swarm_id}" '{solution_json}'
295
+ aether activity-log "SWARM_SUCCESS" "Queen" "Swarm {swarm_id} fixed: {brief description}"
296
296
  ```
297
297
 
298
298
  **If verification fails:**
@@ -307,8 +307,8 @@ body_claude: |
307
307
 
308
308
  Rollback and log failure:
309
309
  ```bash
310
- bash .aether/aether-utils.sh autofix-rollback "{checkpoint_type}" "{checkpoint_ref}"
311
- bash .aether/aether-utils.sh activity-log "SWARM_FAILED" "Queen" "Swarm {swarm_id} fix failed verification"
310
+ aether autofix-rollback --type "{checkpoint_type}" --ref "{checkpoint_ref}"
311
+ aether activity-log "SWARM_FAILED" "Queen" "Swarm {swarm_id} fix failed verification"
312
312
  ```
313
313
 
314
314
  Track attempt count. If this is the 3rd failure on the same issue:
@@ -334,7 +334,7 @@ body_claude: |
334
334
 
335
335
  Archive findings:
336
336
  ```bash
337
- bash .aether/aether-utils.sh swarm-cleanup "{swarm_id}" --archive
337
+ aether swarm-cleanup "{swarm_id}" --archive
338
338
  ```
339
339
 
340
340
  Generate the state-based Next Up block:
@@ -342,7 +342,7 @@ body_claude: |
342
342
  state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
343
343
  current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
344
344
  total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
345
- bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_phases"
345
+ aether print-next-up
346
346
  ```
347
347
 
348
348
  body_opencode: |
@@ -28,7 +28,7 @@ body_claude: |
28
28
 
29
29
  ### Step 2: List All Chambers
30
30
 
31
- Run using the Bash tool with description "Loading chamber list...": `bash .aether/aether-utils.sh chamber-list`
31
+ Run using the Bash tool with description "Loading chamber list...": `aether chamber-list`
32
32
 
33
33
  Parse JSON result into array of chambers.
34
34
 
@@ -126,7 +126,7 @@ body_claude: |
126
126
  ```
127
127
 
128
128
  To get the hash status, run using the Bash tool with description "Verifying chamber integrity...":
129
- - Run `bash .aether/aether-utils.sh chamber-verify .aether/chambers/{chamber_name}`
129
+ - Run `aether chamber-verify --path .aether/chambers/{chamber_name}`
130
130
  - If verified: hash_status = "verified"
131
131
  - If not verified: hash_status = "hash mismatch"
132
132
  - If error: hash_status = "error"
@@ -341,7 +341,7 @@ body_claude: |
341
341
  # Import the EXTRACTED pheromone-only XML (NOT the combined colony-archive.xml)
342
342
  # $import_tmp_pheromones has <pheromones> as root — the format pheromone-import-xml expects
343
343
  # Second argument triggers prefix-tagging — imported signal IDs become "{source_colony}:original_id"
344
- import_result=$(bash .aether/aether-utils.sh pheromone-import-xml "$import_tmp_pheromones" "$source_colony" 2>&1)
344
+ import_result=$(aether pheromone-import-xml --input "$import_tmp_pheromones" --colony "$source_colony" 2>&1)
345
345
  import_ok=$(echo "$import_result" | jq -r '.ok // false' 2>/dev/null)
346
346
 
347
347
  if [[ "$import_ok" == "true" ]]; then
@@ -394,7 +394,7 @@ body_claude: |
394
394
  state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
395
395
  current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
396
396
  total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
397
- bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_phases"
397
+ aether print-next-up
398
398
  ```
399
399
 
400
400
  ## Implementation Notes
@@ -445,7 +445,7 @@ body_opencode: |
445
445
 
446
446
  ### Step 2: List All Chambers
447
447
 
448
- Run: `bash .aether/aether-utils.sh chamber-list`
448
+ Run: `aether chamber-list`
449
449
 
450
450
  Parse JSON result into array of chambers.
451
451
 
@@ -508,7 +508,7 @@ body_opencode: |
508
508
  ```
509
509
 
510
510
  To get the counts and hash status:
511
- - Run `bash .aether/aether-utils.sh chamber-verify .aether/chambers/{chamber_name}`
511
+ - Run `aether chamber-verify --path .aether/chambers/{chamber_name}`
512
512
  - If verified: hash_status = "✅"
513
513
  - If not verified: hash_status = "⚠️ hash mismatch"
514
514
  - If error: hash_status = "⚠️ error"
@@ -751,7 +751,7 @@ body_opencode: |
751
751
  # Import the EXTRACTED pheromone-only XML (NOT the combined colony-archive.xml)
752
752
  # $import_tmp_pheromones has <pheromones> as root — the format pheromone-import-xml expects
753
753
  # Second argument triggers prefix-tagging — imported signal IDs become "{source_colony}:original_id"
754
- import_result=$(bash .aether/aether-utils.sh pheromone-import-xml "$import_tmp_pheromones" "$source_colony" 2>&1)
754
+ import_result=$(aether pheromone-import-xml --input "$import_tmp_pheromones" --colony "$source_colony" 2>&1)
755
755
  import_ok=$(echo "$import_result" | jq -r '.ok // false' 2>/dev/null)
756
756
 
757
757
  if [[ "$import_ok" == "true" ]]; then
@@ -126,6 +126,6 @@ body: |
126
126
  state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
127
127
  current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
128
128
  total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
129
- bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_phases"
129
+ aether print-next-up
130
130
  ```
131
131
  {{/claude}}
@@ -65,10 +65,10 @@ body: |
65
65
  ## Step 2: Check System Status
66
66
 
67
67
  {{#claude}}
68
- Run using the Bash tool with description "Checking colony version...": `bash .aether/aether-utils.sh version-check-cached 2>/dev/null || echo "Utils available"`
68
+ Run using the Bash tool with description "Checking colony version...": `aether version-check-cached 2>/dev/null || echo "Utils available"`
69
69
  {{/claude}}
70
70
  {{#opencode}}
71
- Run using Bash tool: `bash .aether/aether-utils.sh version-check 2>/dev/null || echo "Utils available"`
71
+ Run using Bash tool: `aether version-check-cached 2>/dev/null || echo "Utils available"`
72
72
  {{/opencode}}
73
73
 
74
74
  Check LiteLLM proxy status:
@@ -138,7 +138,7 @@ body: |
138
138
  state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
139
139
  current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
140
140
  total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
141
- bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_phases"
141
+ aether print-next-up
142
142
  ```
143
143
  {{/claude}}
144
144