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
@@ -292,12 +292,12 @@ body_claude: |
292
292
 
293
293
  ```bash
294
294
  # For each scenario where status == "finding" AND severity is "CRITICAL" or "HIGH":
295
- bash .aether/aether-utils.sh flag-add "blocker" "{scenario.title}" "{scenario.description}" "chaos-standalone" {current_phase_number}
295
+ aether flag-add --severity "blocker" --title "{scenario.title}" --description "{scenario.description}" --source "chaos-standalone" --phase {current_phase_number}
296
296
  ```
297
297
 
298
298
  Log each flag creation by running using the Bash tool with description "Logging chaos flag...":
299
299
  ```bash
300
- bash .aether/aether-utils.sh activity-log "FLAG" "Chaos Ant" "Created blocker: {scenario.title}"
300
+ aether activity-log "FLAG" "Chaos Ant" "Created blocker: {scenario.title}"
301
301
  ```
302
302
 
303
303
  The `{current_phase_number}` comes from the colony state loaded in Step 1 (`.aether/data/COLONY_STATE.json` field `current_phase`).
@@ -308,7 +308,7 @@ body_claude: |
308
308
 
309
309
  Run using the Bash tool with description "Logging chaos activity...":
310
310
  ```bash
311
- 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"
311
+ aether activity-log "CHAOS" "Chaos Ant" "Resilience test on {target}: {findings_count} finding(s) ({critical} critical, {high} high, {medium} medium, {low} low), {resilient_count} resilient"
312
312
  ```
313
313
 
314
314
  Generate the state-based Next Up block by running using the Bash tool with description "Generating Next Up suggestions...":
@@ -316,7 +316,7 @@ body_claude: |
316
316
  state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
317
317
  current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
318
318
  total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
319
- bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_phases"
319
+ aether print-next-up
320
320
  ```
321
321
 
322
322
  ## Investigation Guidelines
@@ -620,12 +620,12 @@ body_opencode: |
620
620
 
621
621
  ```bash
622
622
  # For each scenario where status == "finding" AND severity is "CRITICAL" or "HIGH":
623
- bash .aether/aether-utils.sh flag-add "blocker" "{scenario.title}" "{scenario.description}" "chaos-standalone" {current_phase_number}
623
+ aether flag-add --severity "blocker" --title "{scenario.title}" --description "{scenario.description}" --source "chaos-standalone" --phase {current_phase_number}
624
624
  ```
625
625
 
626
626
  Log each flag creation:
627
627
  ```bash
628
- bash .aether/aether-utils.sh activity-log "FLAG" "Chaos Ant" "Created blocker: {scenario.title}"
628
+ aether activity-log "FLAG" "Chaos Ant" "Created blocker: {scenario.title}"
629
629
  ```
630
630
 
631
631
  The `{current_phase_number}` comes from the colony state loaded in Step 1 (`.aether/data/COLONY_STATE.json` field `current_phase`).
@@ -635,7 +635,7 @@ body_opencode: |
635
635
  ### Step 7: Log Activity
636
636
 
637
637
  ```bash
638
- 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"
638
+ aether activity-log "CHAOS" "Chaos Ant" "Resilience test on {target}: {findings_count} finding(s) ({critical} critical, {high} high, {medium} medium, {low} low), {resilient_count} resilient"
639
639
  ```
640
640
 
641
641
  ## Investigation Guidelines
@@ -106,14 +106,14 @@ body_claude: |
106
106
  SURVEY_START=$(date +%s)
107
107
 
108
108
  # Check for stale survey files
109
- stale_check=$(bash .aether/aether-utils.sh session-verify-fresh --command survey "" "$SURVEY_START")
109
+ stale_check=$(aether session-verify-fresh --command survey "" "$SURVEY_START")
110
110
  has_stale=$(echo "$stale_check" | jq -r '.stale | length')
111
111
  has_fresh=$(echo "$stale_check" | jq -r '.fresh | length')
112
112
 
113
113
  if [[ "$has_stale" -gt 0 ]] || [[ "$has_fresh" -gt 0 ]]; then
114
114
  # Found existing survey files
115
115
  if [[ "$force_resurvey" == "true" ]]; then
116
- bash .aether/aether-utils.sh session-clear --command survey
116
+ aether session-clear --command survey
117
117
  echo "Cleared existing survey files for fresh territory mapping"
118
118
  else
119
119
  echo "Found existing territory survey. Use --force-resurvey to remap."
@@ -124,15 +124,15 @@ body_claude: |
124
124
 
125
125
  Generate unique names for the 4 Surveyor Ants (each name must be captured separately):
126
126
  ```bash
127
- bash .aether/aether-utils.sh generate-ant-name "surveyor"
128
- bash .aether/aether-utils.sh generate-ant-name "surveyor"
129
- bash .aether/aether-utils.sh generate-ant-name "surveyor"
130
- bash .aether/aether-utils.sh generate-ant-name "surveyor"
127
+ aether generate-ant-name --caste "surveyor"
128
+ aether generate-ant-name --caste "surveyor"
129
+ aether generate-ant-name --caste "surveyor"
130
+ aether generate-ant-name --caste "surveyor"
131
131
  ```
132
132
 
133
133
  Log the dispatches (consolidated - fire-and-forget logging):
134
134
  ```bash
135
- 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"
135
+ aether spawn-log --name "Queen" --caste "surveyor" --id "{provisions_name}" --description "Mapping provisions and trails" && aether spawn-log --name "Queen" --caste "surveyor" --id "{nest_name}" --description "Mapping nest structure" && aether spawn-log --name "Queen" --caste "surveyor" --id "{disciplines_name}" --description "Mapping disciplines and sentinels" && aether spawn-log --name "Queen" --caste "surveyor" --id "{pathogens_name}" --description "Identifying pathogens"
136
136
  ```
137
137
 
138
138
  **Spawn 4 Surveyor Ants in parallel using the Task tool:**
@@ -176,7 +176,7 @@ body_claude: |
176
176
 
177
177
  Verify that all survey files were created after the session start:
178
178
  ```bash
179
- verify_result=$(bash .aether/aether-utils.sh session-verify-fresh --command survey "" "$SURVEY_START")
179
+ verify_result=$(aether session-verify-fresh --command survey "" "$SURVEY_START")
180
180
  fresh_count=$(echo "$verify_result" | jq -r '.fresh | length')
181
181
 
182
182
  if [[ "$fresh_count" -lt 7 ]]; then
@@ -252,7 +252,7 @@ body_claude: |
252
252
  state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
253
253
  current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
254
254
  total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
255
- bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_phases"
255
+ aether print-next-up
256
256
  ```
257
257
 
258
258
  body_opencode: |
@@ -323,18 +323,18 @@ body_opencode: |
323
323
 
324
324
  Generate unique names for the 4 Surveyor Ants and log their dispatch:
325
325
  ```bash
326
- bash .aether/aether-utils.sh generate-ant-name "surveyor"
327
- bash .aether/aether-utils.sh generate-ant-name "surveyor"
328
- bash .aether/aether-utils.sh generate-ant-name "surveyor"
329
- bash .aether/aether-utils.sh generate-ant-name "surveyor"
326
+ aether generate-ant-name --caste "surveyor"
327
+ aether generate-ant-name --caste "surveyor"
328
+ aether generate-ant-name --caste "surveyor"
329
+ aether generate-ant-name --caste "surveyor"
330
330
  ```
331
331
 
332
332
  Log the dispatch:
333
333
  ```bash
334
- bash .aether/aether-utils.sh spawn-log "Queen" "surveyor" "{provisions_name}" "Mapping provisions and trails"
335
- bash .aether/aether-utils.sh spawn-log "Queen" "surveyor" "{nest_name}" "Mapping nest structure"
336
- bash .aether/aether-utils.sh spawn-log "Queen" "surveyor" "{disciplines_name}" "Mapping disciplines and sentinels"
337
- bash .aether/aether-utils.sh spawn-log "Queen" "surveyor" "{pathogens_name}" "Identifying pathogens"
334
+ aether spawn-log --name "Queen" --caste "surveyor" --id "{provisions_name}" --description "Mapping provisions and trails"
335
+ aether spawn-log --name "Queen" --caste "surveyor" --id "{nest_name}" --description "Mapping nest structure"
336
+ aether spawn-log --name "Queen" --caste "surveyor" --id "{disciplines_name}" --description "Mapping disciplines and sentinels"
337
+ aether spawn-log --name "Queen" --caste "surveyor" --id "{pathogens_name}" --description "Identifying pathogens"
338
338
  ```
339
339
 
340
340
  **Spawn 4 Surveyor Ants in parallel using the Task tool:**
@@ -84,7 +84,7 @@ body_opencode: |
84
84
 
85
85
  ### Step 1.5: Load State and Show Resumption Context
86
86
 
87
- Run using Bash tool: `bash .aether/aether-utils.sh load-state`
87
+ Run using Bash tool: `aether load-state`
88
88
 
89
89
  If successful and goal is not null:
90
90
  1. Extract current_phase from state
@@ -99,7 +99,7 @@ body_opencode: |
99
99
  - Read .aether/HANDOFF.md for additional context
100
100
  - Remove .aether/HANDOFF.md after display (cleanup)
101
101
 
102
- Run: `bash .aether/aether-utils.sh unload-state` to release lock.
102
+ Run: `aether unload-state` to release lock.
103
103
 
104
104
  **Error handling:**
105
105
  - If E_FILE_NOT_FOUND: "No colony initialized. Run /ant:init first." and stop
@@ -125,7 +125,7 @@ body_opencode: |
125
125
 
126
126
  Run:
127
127
  ```bash
128
- survey_check=$(bash .aether/aether-utils.sh survey-verify 2>/dev/null || true)
128
+ survey_check=$(aether survey-verify 2>/dev/null || true)
129
129
  survey_docs=$(ls -1 .aether/data/survey/*.md 2>/dev/null | wc -l | tr -d ' ')
130
130
  survey_latest=$(ls -t .aether/data/survey/*.md 2>/dev/null | head -1)
131
131
  if [[ -n "$survey_latest" ]]; then
@@ -234,7 +234,7 @@ body_opencode: |
234
234
  3. **If spawning Probe:**
235
235
 
236
236
  a. Generate Probe name and dispatch:
237
- Run using the Bash tool with description "Generating Probe name...": `probe_name=$(bash .aether/aether-utils.sh generate-ant-name "probe") && bash .aether/aether-utils.sh spawn-log "Queen" "probe" "$probe_name" "Coverage improvement: ${coverage_percent}%" && echo "{\"name\":\"$probe_name\"}"`
237
+ Run using the Bash tool with description "Generating Probe name...": `probe_name=$(aether generate-ant-name --caste "probe") && aether spawn-log --name "Queen" --caste "probe" --id "$probe_name" --description "Coverage improvement: ${coverage_percent}%" && echo "{\"name\":\"$probe_name\"}"`
238
238
 
239
239
  b. Display:
240
240
  ```
@@ -264,10 +264,10 @@ body_opencode: |
264
264
  f. Parse Probe JSON output and log completion:
265
265
  Extract: `tests_added`, `coverage.lines`, `coverage.branches`, `coverage.functions`, `edge_cases_discovered`
266
266
 
267
- Run using the Bash tool with description "Logging Probe completion...": `bash .aether/aether-utils.sh spawn-complete "$probe_name" "completed" "{probe_summary}"`
267
+ Run using the Bash tool with description "Logging Probe completion...": `aether spawn-complete --id "$probe_name" --status "completed" --summary "{probe_summary}"`
268
268
 
269
269
  g. Log findings to midden:
270
- Run using the Bash tool with description "Logging Probe findings to midden...": `bash .aether/aether-utils.sh midden-write "coverage" "Probe generated tests, coverage: ${coverage_lines}%/${coverage_branches}%/${coverage_functions}%" "probe"`
270
+ Run using the Bash tool with description "Logging Probe findings to midden...": `aether midden-write "coverage" "Probe generated tests, coverage: ${coverage_lines}%/${coverage_branches}%/${coverage_functions}%" "probe"`
271
271
 
272
272
  4. **NON-BLOCKING continuation:**
273
273
  Display Probe findings summary:
@@ -416,8 +416,8 @@ body_opencode: |
416
416
  **CRITICAL:** Do NOT proceed to Step 1.7. Do NOT advance the phase.
417
417
  Log the violation:
418
418
  ```bash
419
- bash .aether/aether-utils.sh activity-log "BLOCKED" "colony" "Spawn gate failed: {task_count} tasks, 0 spawns"
420
- bash .aether/aether-utils.sh error-flag-pattern "no-spawn-violation" "Prime Worker completed phase without spawning specialists" "critical"
419
+ aether activity-log "BLOCKED" "colony" "Spawn gate failed: {task_count} tasks, 0 spawns"
420
+ aether error-flag-pattern "no-spawn-violation" "Prime Worker completed phase without spawning specialists" "critical"
421
421
  ```
422
422
 
423
423
  **HARD REJECTION - If watcher_count == 0 (no testing separation):**
@@ -458,7 +458,7 @@ body_opencode: |
458
458
  Scan all modified/created files for known anti-patterns. This catches recurring bugs before they reach production.
459
459
 
460
460
  ```bash
461
- bash .aether/aether-utils.sh check-antipattern "{file_path}"
461
+ aether check-antipattern "{file_path}"
462
462
  ```
463
463
 
464
464
  Run for each file in `files_created` and `files_modified` from Prime Worker output.
@@ -567,7 +567,7 @@ body_opencode: |
567
567
  Run using the Bash tool with description "Establishing test baseline...": `test_output_before=$(npm test 2>&1 || echo "TEST_FAILED") && tests_passing_before=$(echo "$test_output_before" | grep -oE '[0-9]+ passing' | grep -oE '[0-9]+' || echo "0") && echo "Baseline: $tests_passing_before tests passing"`
568
568
 
569
569
  b. **Generate Weaver name and dispatch:**
570
- Run using the Bash tool with description "Generating Weaver name...": `weaver_name=$(bash .aether/aether-utils.sh generate-ant-name "weaver") && bash .aether/aether-utils.sh spawn-log "Queen" "weaver" "$weaver_name" "Proactive refactoring" && echo "{\"name\":\"$weaver_name\"}"`
570
+ Run using the Bash tool with description "Generating Weaver name...": `weaver_name=$(aether generate-ant-name --caste "weaver") && aether spawn-log --name "Queen" --caste "weaver" --id "$weaver_name" --description "Proactive refactoring" && echo "{\"name\":\"$weaver_name\"}"`
571
571
 
572
572
  c. **Display:**
573
573
  ```
@@ -613,10 +613,10 @@ body_opencode: |
613
613
  ```
614
614
 
615
615
  g. **Log completion:**
616
- Run using the Bash tool with description "Logging Weaver completion...": `bash .aether/aether-utils.sh spawn-complete "$weaver_name" "$weaver_status" "Refactoring $weaver_status"`
616
+ Run using the Bash tool with description "Logging Weaver completion...": `aether spawn-complete --id "$weaver_name" --status "$weaver_status" --summary "Refactoring $weaver_status"`
617
617
 
618
618
  h. **Log to midden:**
619
- Run using the Bash tool with description "Logging refactoring activity to midden...": `bash .aether/aether-utils.sh midden-write "refactoring" "Weaver refactored files, complexity before/after: ${complexity_before}/${complexity_after}" "weaver"`
619
+ Run using the Bash tool with description "Logging refactoring activity to midden...": `aether midden-write "refactoring" "Weaver refactored files, complexity before/after: ${complexity_before}/${complexity_after}" "weaver"`
620
620
 
621
621
  5. **Display completion:**
622
622
  ```
@@ -645,7 +645,7 @@ body_opencode: |
645
645
  **If package.json exists:**
646
646
 
647
647
  1. Generate Gatekeeper name and log spawn:
648
- Run using the Bash tool with description "Generating Gatekeeper name...": `gatekeeper_name=$(bash .aether/aether-utils.sh generate-ant-name "gatekeeper") && bash .aether/aether-utils.sh spawn-log "Queen" "gatekeeper" "$gatekeeper_name" "Supply chain security audit" && echo "{\"name\":\"$gatekeeper_name\"}"`
648
+ Run using the Bash tool with description "Generating Gatekeeper name...": `gatekeeper_name=$(aether generate-ant-name --caste "gatekeeper") && aether spawn-log --name "Queen" --caste "gatekeeper" --id "$gatekeeper_name" --description "Supply chain security audit" && echo "{\"name\":\"$gatekeeper_name\"}"`
649
649
 
650
650
  2. Display:
651
651
  ```
@@ -667,7 +667,7 @@ body_opencode: |
667
667
  5. Parse Gatekeeper JSON output and log completion:
668
668
  Extract: `security.critical`, `security.high`, `status`
669
669
 
670
- Run using the Bash tool with description "Logging Gatekeeper completion...": `bash .aether/aether-utils.sh spawn-complete "$gatekeeper_name" "completed" "{gatekeeper_summary}"`
670
+ Run using the Bash tool with description "Logging Gatekeeper completion...": `aether spawn-complete --id "$gatekeeper_name" --status "completed" --summary "{gatekeeper_summary}"`
671
671
 
672
672
  **Gate Decision Logic:**
673
673
 
@@ -695,7 +695,7 @@ body_opencode: |
695
695
  Security warnings logged to midden for later review.
696
696
  Proceeding with caution...
697
697
  ```
698
- Run using the Bash tool with description "Logging high-severity warnings...": `bash .aether/aether-utils.sh midden-write "security" "High CVEs found: $high_count" "gatekeeper"`
698
+ Run using the Bash tool with description "Logging high-severity warnings...": `aether midden-write "security" "High CVEs found: $high_count" "gatekeeper"`
699
699
  Continue to Step 1.9.
700
700
 
701
701
  - **If clean (no critical or high):**
@@ -709,7 +709,7 @@ body_opencode: |
709
709
  **Code quality audit -- runs on every `/ant:continue` for consistent coverage.**
710
710
 
711
711
  1. Generate Auditor name and log spawn:
712
- Run using the Bash tool with description "Generating Auditor name...": `auditor_name=$(bash .aether/aether-utils.sh generate-ant-name "auditor") && bash .aether/aether-utils.sh spawn-log "Queen" "auditor" "$auditor_name" "Code quality audit" && echo "{\"name\":\"$auditor_name\"}"`
712
+ Run using the Bash tool with description "Generating Auditor name...": `auditor_name=$(aether generate-ant-name --caste "auditor") && aether spawn-log --name "Queen" --caste "auditor" --id "$auditor_name" --description "Code quality audit" && echo "{\"name\":\"$auditor_name\"}"`
713
713
 
714
714
  2. Display:
715
715
  ```
@@ -734,7 +734,7 @@ body_opencode: |
734
734
  6. Parse Auditor JSON output and log completion:
735
735
  Extract: `findings.critical`, `findings.high`, `findings.medium`, `findings.low`, `findings.info`, `overall_score`, `dimensions_audited`
736
736
 
737
- Run using the Bash tool with description "Logging Auditor completion...": `bash .aether/aether-utils.sh spawn-complete "$auditor_name" "completed" "{auditor_summary}"`
737
+ Run using the Bash tool with description "Logging Auditor completion...": `aether spawn-complete --id "$auditor_name" --status "completed" --summary "{auditor_summary}"`
738
738
 
739
739
  **Gate Decision Logic:**
740
740
 
@@ -756,7 +756,7 @@ body_opencode: |
756
756
 
757
757
  The phase will NOT advance with critical quality issues.
758
758
  ```
759
- Run using the Bash tool with description "Logging critical quality block...": `bash .aether/aether-utils.sh error-flag-pattern "auditor-critical-findings" "$critical_count critical quality issues found" "critical"`
759
+ Run using the Bash tool with description "Logging critical quality block...": `aether error-flag-pattern "auditor-critical-findings" "$critical_count critical quality issues found" "critical"`
760
760
  **CRITICAL:** Do NOT proceed to Step 1.10. Stop here.
761
761
 
762
762
  - **Else if `overall_score < 60`:**
@@ -774,7 +774,7 @@ body_opencode: |
774
774
 
775
775
  The phase will NOT advance with quality score below 60.
776
776
  ```
777
- Run using the Bash tool with description "Logging quality score block...": `bash .aether/aether-utils.sh error-flag-pattern "auditor-quality-score" "Score $overall_score below threshold 60" "critical"`
777
+ Run using the Bash tool with description "Logging quality score block...": `aether error-flag-pattern "auditor-quality-score" "Score $overall_score below threshold 60" "critical"`
778
778
  **CRITICAL:** Do NOT proceed to Step 1.10. Stop here.
779
779
 
780
780
  - **Else if `findings.high > 0`:**
@@ -787,7 +787,7 @@ body_opencode: |
787
787
  Quality warnings logged to midden for later review.
788
788
  Proceeding with caution...
789
789
  ```
790
- Run using the Bash tool with description "Logging high-quality warnings...": `bash .aether/aether-utils.sh midden-write "quality" "High severity issues: $high_count (score: $overall_score)" "auditor"`
790
+ Run using the Bash tool with description "Logging high-quality warnings...": `aether midden-write "quality" "High severity issues: $high_count (score: $overall_score)" "auditor"`
791
791
  Continue to Step 1.10.
792
792
 
793
793
  - **If clean (score >= 60, no critical):**
@@ -833,7 +833,7 @@ body_opencode: |
833
833
 
834
834
  **CRITICAL:** Do NOT proceed. Log the violation:
835
835
  ```bash
836
- bash .aether/aether-utils.sh error-flag-pattern "fabricated-tdd" "Prime Worker reported TDD metrics without creating test files" "critical"
836
+ aether error-flag-pattern "fabricated-tdd" "Prime Worker reported TDD metrics without creating test files" "critical"
837
837
  ```
838
838
 
839
839
  **If tests_added == 0 or test files exist matching claims:**
@@ -879,7 +879,7 @@ body_opencode: |
879
879
 
880
880
  Use AskUserQuestion to get issue details. Log to errors.records:
881
881
  ```bash
882
- bash .aether/aether-utils.sh error-add "runtime" "critical" "{user_description}" {phase}
882
+ aether error-add "runtime" "critical" "{user_description}" {phase}
883
883
  ```
884
884
 
885
885
  Do NOT proceed to Step 2.
@@ -915,12 +915,12 @@ body_opencode: |
915
915
 
916
916
  First, auto-resolve any flags eligible for resolution now that verification has passed:
917
917
  ```bash
918
- bash .aether/aether-utils.sh flag-auto-resolve "build_pass"
918
+ aether flag-auto-resolve "build_pass"
919
919
  ```
920
920
 
921
921
  Then check for remaining blocking flags:
922
922
  ```bash
923
- bash .aether/aether-utils.sh flag-check-blockers {current_phase}
923
+ aether flag-check-blockers {current_phase}
924
924
  ```
925
925
 
926
926
  Parse result for `blockers`, `issues`, and `notes` counts.
@@ -1022,7 +1022,7 @@ body_opencode: |
1022
1022
 
1023
1023
  Run using the Bash tool with description "Recording learning observations...":
1024
1024
  ```bash
1025
- colony_name=$(bash .aether/aether-utils.sh colony-name 2>/dev/null | jq -r '.result.name // ""')
1025
+ colony_name=$(aether colony-name 2>/dev/null | jq -r '.result.name // ""')
1026
1026
  [[ -z "$colony_name" ]] && colony_name="unknown"
1027
1027
 
1028
1028
  # Get learnings from the current phase
@@ -1032,7 +1032,7 @@ body_opencode: |
1032
1032
  echo "$current_phase_learnings" | jq -r '.learnings[]?.claim // empty' 2>/dev/null | while read -r claim; do
1033
1033
  if [[ -n "$claim" ]]; then
1034
1034
  # Default wisdom_type to "pattern" (threshold: 3 observations)
1035
- bash .aether/aether-utils.sh memory-capture "learning" "$claim" "pattern" "worker:continue" 2>/dev/null || true
1035
+ aether memory-capture "learning" "$claim" "pattern" "worker:continue" 2>/dev/null || true
1036
1036
  fi
1037
1037
  done
1038
1038
  echo "Recorded observations for threshold tracking"
@@ -1108,7 +1108,7 @@ body_opencode: |
1108
1108
  Write COLONY_STATE.json.
1109
1109
 
1110
1110
  Validate the state file:
1111
- Run using the Bash tool with description "Validating colony state...": `bash .aether/aether-utils.sh validate-state colony`
1111
+ Run using the Bash tool with description "Validating colony state...": `aether validate-state colony`
1112
1112
 
1113
1113
  ### Step 2.1: Auto-Emit Phase Pheromones (SILENT)
1114
1114
 
@@ -1126,7 +1126,7 @@ body_opencode: |
1126
1126
  phase_feedback="Phase $phase_id ($phase_name) completed. Key patterns: {brief summary of 1-3 learnings from Step 2}"
1127
1127
  # Fallback if no learnings: "Phase $phase_id ($phase_name) completed without notable patterns."
1128
1128
 
1129
- bash .aether/aether-utils.sh pheromone-write FEEDBACK "$phase_feedback" \
1129
+ aether pheromone-write --type FEEDBACK --content "$phase_feedback" \
1130
1130
  --strength 0.6 \
1131
1131
  --source "worker:continue" \
1132
1132
  --reason "Auto-emitted on phase advance: captures what worked and what was learned" \
@@ -1146,7 +1146,7 @@ body_opencode: |
1146
1146
  For each pattern returned by the above query, emit a REDIRECT signal:
1147
1147
 
1148
1148
  ```bash
1149
- bash .aether/aether-utils.sh pheromone-write REDIRECT "$pattern_text" \
1149
+ aether pheromone-write --type REDIRECT --content "$pattern_text" \
1150
1150
  --strength 0.7 \
1151
1151
  --source "system" \
1152
1152
  --reason "Auto-emitted: error pattern recurred across 2+ phases" \
@@ -1156,7 +1156,7 @@ body_opencode: |
1156
1156
  Also capture each recurring pattern as a resolution candidate:
1157
1157
 
1158
1158
  ```bash
1159
- bash .aether/aether-utils.sh memory-capture \
1159
+ aether memory-capture \
1160
1160
  "resolution" \
1161
1161
  "$pattern_text" \
1162
1162
  "pattern" \
@@ -1169,7 +1169,7 @@ body_opencode: |
1169
1169
 
1170
1170
  After auto-emission, expire all signals with `expires_at == "phase_end"`:
1171
1171
 
1172
- Run using the Bash tool with description "Maintaining pheromone memory...": `bash .aether/aether-utils.sh pheromone-expire --phase-end-only 2>/dev/null && bash .aether/aether-utils.sh eternal-init 2>/dev/null`
1172
+ Run using the Bash tool with description "Maintaining pheromone memory...": `aether pheromone-expire --phase-end-only 2>/dev/null && aether eternal-init 2>/dev/null`
1173
1173
 
1174
1174
  ### Step 2.1.5: Check for Promotion Proposals
1175
1175
 
@@ -1179,7 +1179,7 @@ body_opencode: |
1179
1179
 
1180
1180
  1. **Check for proposals:**
1181
1181
  ```bash
1182
- proposals=$(bash .aether/aether-utils.sh learning-check-promotion 2>/dev/null || echo '{"proposals":[]}')
1182
+ proposals=$(aether learning-check-promotion 2>/dev/null || echo '{"proposals":[]}')
1183
1183
  proposal_count=$(echo "$proposals" | jq '.proposals | length')
1184
1184
  ```
1185
1185
 
@@ -1189,7 +1189,7 @@ body_opencode: |
1189
1189
 
1190
1190
  ```bash
1191
1191
  if [[ "$proposal_count" -gt 0 ]]; then
1192
- bash .aether/aether-utils.sh learning-approve-proposals
1192
+ aether learning-approve-proposals
1193
1193
  fi
1194
1194
  # If no proposals, silently skip without notice
1195
1195
  ```
@@ -1258,7 +1258,7 @@ body_opencode: |
1258
1258
  **Step 2.3.1: Collect plan data**
1259
1259
 
1260
1260
  ```bash
1261
- bash .aether/aether-utils.sh changelog-collect-plan-data "{phase_identifier}" "{plan_number}"
1261
+ aether changelog-collect-plan-data "{phase_identifier}" "{plan_number}"
1262
1262
  ```
1263
1263
 
1264
1264
  Parse the returned JSON to extract `files`, `decisions`, `worked`, and `requirements` arrays.
@@ -1274,7 +1274,7 @@ body_opencode: |
1274
1274
  **Step 2.3.2: Append changelog entry**
1275
1275
 
1276
1276
  ```bash
1277
- bash .aether/aether-utils.sh changelog-append \
1277
+ aether changelog-append \
1278
1278
  "$(date +%Y-%m-%d)" \
1279
1279
  "{phase_identifier}" \
1280
1280
  "{plan_number}" \
@@ -1296,7 +1296,7 @@ body_opencode: |
1296
1296
 
1297
1297
  1. **Generate the commit message:**
1298
1298
  ```bash
1299
- bash .aether/aether-utils.sh generate-commit-message "milestone" {phase_id} "{phase_name}" "{one_line_summary}"
1299
+ aether generate-commit-message --type "milestone" --phase {phase_id} --subject "{phase_name}" "{one_line_summary}"
1300
1300
  ```
1301
1301
  Parse the returned JSON to extract `message` and `files_changed`.
1302
1302
 
@@ -1397,18 +1397,18 @@ body_opencode: |
1397
1397
 
1398
1398
  **Log the activity:**
1399
1399
  ```bash
1400
- bash .aether/aether-utils.sh context-update activity "continue" "Phase {prev_id} completed, advanced to {next_id}" "---"
1400
+ aether context-update activity "continue" "Phase {prev_id} completed, advanced to {next_id}" "---"
1401
1401
  ```
1402
1402
 
1403
1403
  **Update the phase:**
1404
1404
  ```bash
1405
- bash .aether/aether-utils.sh context-update update-phase {next_id} "{next_phase_name}" "YES" "Phase advanced, ready to build"
1405
+ aether context-update update-phase {next_id} "{next_phase_name}" "YES" "Phase advanced, ready to build"
1406
1406
  ```
1407
1407
 
1408
1408
  **Log any decisions from this session:**
1409
1409
  If any architectural decisions were made during verification, also run:
1410
1410
  ```bash
1411
- bash .aether/aether-utils.sh context-update decision "{decision_description}" "{rationale}" "Queen"
1411
+ aether context-update decision "{decision_description}" "{rationale}" "Queen"
1412
1412
  ```
1413
1413
 
1414
1414
  ### Step 2.7: Project Completion
@@ -1480,5 +1480,5 @@ body_opencode: |
1480
1480
 
1481
1481
  Update the session tracking file to enable `/ant:resume` after context clear:
1482
1482
 
1483
- Run using the Bash tool with description "Saving session state...": `bash .aether/aether-utils.sh session-update "/ant:continue" "/ant:build {next_id}" "Phase {prev_id} completed, advanced to Phase {next_id}"`
1483
+ Run using the Bash tool with description "Saving session state...": `aether session-update --command "/ant:continue" --worker "/ant:build {next_id}" --summary "Phase {prev_id} completed, advanced to Phase {next_id}"`
1484
1484
 
@@ -22,7 +22,7 @@ body: |
22
22
 
23
23
  Run using the Bash tool with description "Checking deliberation budget...":
24
24
  ```bash
25
- bash .aether/aether-utils.sh council-budget-check
25
+ aether council-budget-check
26
26
  ```
27
27
 
28
28
  Parse result. If `allowed` is `false`:
@@ -38,7 +38,7 @@ body: |
38
38
 
39
39
  Run using the Bash tool with description "Opening deliberation...":
40
40
  ```bash
41
- bash .aether/aether-utils.sh council-deliberate --proposal "<proposal>"
41
+ aether council-deliberate --proposal "<proposal>"
42
42
  ```
43
43
 
44
44
  Capture `deliberation_id` from `result.id`.
@@ -81,7 +81,7 @@ body: |
81
81
 
82
82
  Record the argument:
83
83
  ```bash
84
- bash .aether/aether-utils.sh council-advocate \
84
+ aether council-advocate \
85
85
  --deliberation-id "<deliberation_id>" \
86
86
  --argument "<advocate_argument>"
87
87
  ```
@@ -119,7 +119,7 @@ body: |
119
119
 
120
120
  Record the argument:
121
121
  ```bash
122
- bash .aether/aether-utils.sh council-challenger \
122
+ aether council-challenger \
123
123
  --deliberation-id "<deliberation_id>" \
124
124
  --argument "<challenger_argument>"
125
125
  ```
@@ -162,7 +162,7 @@ body: |
162
162
 
163
163
  Record the sage synthesis:
164
164
  ```bash
165
- bash .aether/aether-utils.sh council-sage \
165
+ aether council-sage \
166
166
  --deliberation-id "<deliberation_id>" \
167
167
  --synthesis "<synthesis>" \
168
168
  --recommendation "<recommendation>"
@@ -504,6 +504,6 @@ body: |
504
504
  state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
505
505
  current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
506
506
  total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
507
- bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_phases"
507
+ aether print-next-up
508
508
  ```
509
509
  {{/claude}}
@@ -16,7 +16,7 @@ body: |
16
16
 
17
17
  Run using the Bash tool with description "Scanning colony data for test artifacts...":
18
18
  ```bash
19
- bash .aether/aether-utils.sh data-clean --dry-run
19
+ aether data-clean --dry-run
20
20
  ```
21
21
 
22
22
  Display the output to the user. This shows artifact counts per data file without modifying anything.
@@ -45,7 +45,7 @@ body: |
45
45
 
46
46
  If user confirmed, run using the Bash tool with description "Removing test artifacts...":
47
47
  ```bash
48
- bash .aether/aether-utils.sh data-clean --confirm
48
+ aether data-clean --confirm
49
49
  ```
50
50
 
51
51
  ### Step 4: Summary
@@ -75,6 +75,6 @@ body: |
75
75
  state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
76
76
  current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
77
77
  total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
78
- bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_phases"
78
+ aether print-next-up
79
79
  ```
80
80
  {{/claude}}
@@ -234,7 +234,7 @@ body: |
234
234
  Run using the Bash tool with description "Logging dream activity...":
235
235
  {{/claude}}
236
236
  ```bash
237
- bash .aether/aether-utils.sh activity-log "DREAM" "Dreamer" "Dream session: {N} observations, {concerns} concerns, {pheromones} pheromone suggestions"
237
+ aether activity-log "DREAM" "Dreamer" "Dream session: {N} observations, {concerns} concerns, {pheromones} pheromone suggestions"
238
238
  ```
239
239
 
240
240
  {{#claude}}
@@ -243,7 +243,7 @@ body: |
243
243
  state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
244
244
  current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
245
245
  total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
246
- bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_phases"
246
+ aether print-next-up
247
247
  ```
248
248
 
249
249
  {{/claude}}