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
@@ -53,7 +53,6 @@ Do not touch during init:
53
53
  - .aether/dreams/ (user notes)
54
54
  - .aether/chambers/ (archived colonies)
55
55
  - .env* files
56
- - .claude/settings.json
57
56
  - .github/workflows/
58
57
  </read_only>
59
58
 
@@ -102,7 +101,7 @@ Stop here. Do not proceed.
102
101
 
103
102
  Run:
104
103
  ```
105
- bash .aether/aether-utils.sh queen-init
104
+ aether queen-init
106
105
  ```
107
106
 
108
107
  Parse the JSON result:
@@ -115,7 +114,7 @@ This step is non-blocking -- proceed regardless of outcome.
115
114
 
116
115
  Run the scan via Bash tool:
117
116
  ```bash
118
- scan_result=$(bash .aether/aether-utils.sh init-research 2>/dev/null)
117
+ scan_result=$(aether init-research 2>/dev/null)
119
118
  scan_data=$(echo "$scan_result" | jq '.result')
120
119
  ```
121
120
 
@@ -168,7 +167,7 @@ Strip `(Colony: ...)` suffixes using sed. If grep finds nothing, variables remai
168
167
  Display a brief header:
169
168
  ```
170
169
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
171
- A E T H E R C O L O N Y I N I T
170
+ 🥚 A E T H E R C O L O N Y I N I T
172
171
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
173
172
  ```
174
173
 
@@ -286,14 +285,14 @@ Only reached after user approval. ALL file writes happen here.
286
285
 
287
286
  1. Write charter content via:
288
287
  ```bash
289
- bash .aether/aether-utils.sh charter-write --intent "{approved_intent}" --vision "{approved_vision}" --governance "{approved_governance}" --goals "{approved_goals}"
288
+ aether charter-write --intent "{approved_intent}" --vision "{approved_vision}" --governance "{approved_governance}" --goals "{approved_goals}"
290
289
  ```
291
290
 
292
291
  2. Auto-apply approved pheromone suggestions (see pheromone auto-apply below).
293
292
 
294
293
  3. Update the goal field in COLONY_STATE.json in-place using the state API:
295
294
  ```bash
296
- bash .aether/aether-utils.sh state-write "$(jq --arg new_goal "{approved_intent}" '.goal = $new_goal' .aether/data/COLONY_STATE.json)"
295
+ aether state-write "$(jq --arg new_goal "{approved_intent}" '.goal = $new_goal' .aether/data/COLONY_STATE.json)"
297
296
  ```
298
297
 
299
298
  4. **Verify the write** — read back and confirm goal is set:
@@ -311,7 +310,7 @@ if [[ "$verify_goal" == "null" || -z "$verify_goal" ]]; then
311
310
  fi
312
311
  ```
313
312
 
314
- 5. Run `bash .aether/aether-utils.sh session-init "$(jq -r '.session_id' .aether/data/COLONY_STATE.json)" "{approved_intent}"`
313
+ 5. Run `aether session-init "$(jq -r '.session_id' .aether/data/COLONY_STATE.json)" "{approved_intent}"`
315
314
 
316
315
  6. Skip to Step 8 (display result). Do NOT write COLONY_STATE.json from template, do NOT write constraints.json, do NOT write pheromones.json.
317
316
 
@@ -369,12 +368,12 @@ for template in pheromones midden learning-observations; do
369
368
  done
370
369
  ```
371
370
 
372
- 8. Run `bash .aether/aether-utils.sh context-update init "{approved_intent}"`
373
- 9. Run `bash .aether/aether-utils.sh validate-state colony`
371
+ 8. Run `aether context-update init "{approved_intent}"`
372
+ 9. Run `aether validate-state colony`
374
373
  10. Register repo (silent on failure):
375
374
  ```bash
376
- domain_tags=$(bash .aether/aether-utils.sh domain-detect 2>/dev/null | jq -r '.result.tags // ""' || echo "")
377
- bash .aether/aether-utils.sh registry-add "$(pwd)" "$(jq -r '.version // "unknown"' ~/.aether/version.json 2>/dev/null || echo 'unknown')" --goal "{approved_intent}" --active true --tags "$domain_tags" 2>/dev/null || true
375
+ domain_tags=$(aether domain-detect 2>/dev/null | jq -r '.result.tags // ""' || echo "")
376
+ aether registry-add --path "$(pwd)" "$(jq -r '.version // "unknown"' ~/.aether/version.json 2>/dev/null || echo 'unknown')" --goal "{approved_intent}" --active true --tags "$domain_tags" 2>/dev/null || true
378
377
  cp ~/.aether/version.json .aether/version.json 2>/dev/null || true
379
378
  ```
380
379
  11. Seed QUEEN.md from hive (non-blocking):
@@ -384,10 +383,10 @@ domain_tags=$(jq -r --arg repo "$(pwd)" \
384
383
  "$HOME/.aether/registry.json" 2>/dev/null || echo "")
385
384
  seed_args="queen-seed-from-hive --limit 5"
386
385
  [[ -n "$domain_tags" ]] && seed_args="$seed_args --domain $domain_tags"
387
- seed_result=$(bash .aether/aether-utils.sh $seed_args 2>/dev/null || echo '{}')
386
+ seed_result=$(aether $seed_args 2>/dev/null || echo '{}')
388
387
  seeded_count=$(echo "$seed_result" | jq -r '.result.seeded // 0' 2>/dev/null || echo "0")
389
388
  ```
390
- 12. Run `bash .aether/aether-utils.sh session-init "{session_id}" "{approved_intent}"`
389
+ 12. Run `aether session-init "{session_id}" "{approved_intent}"`
391
390
 
392
391
  **Pheromone auto-apply (referenced by both re-init and fresh init paths above):**
393
392
 
@@ -395,7 +394,7 @@ If approved pheromone suggestions exist (the user kept them in the prompt and di
395
394
 
396
395
  For each approved pheromone suggestion, call:
397
396
  ```bash
398
- bash .aether/aether-utils.sh pheromone-write "{type}" '{content}' --source "system:init" --reason '{reason}' --ttl "30d" 2>/dev/null || true
397
+ aether pheromone-write "{type}" '{content}' --source "system:init" --reason '{reason}' --ttl "30d" 2>/dev/null || true
399
398
  ```
400
399
 
401
400
  Implementation notes:
@@ -453,21 +452,21 @@ Import ALL available data types (per D-09 -- no cherry-picking):
453
452
  ```bash
454
453
  # Import pheromones (per D-09)
455
454
  if [[ -f "$latest_chamber/pheromones.xml" ]]; then
456
- pher_import=$(bash .aether/aether-utils.sh pheromone-import-xml "$latest_chamber/pheromones.xml" "imported" 2>/dev/null || echo '{"ok":false}')
455
+ pher_import=$(aether pheromone-import-xml --input "$latest_chamber/pheromones.xml" --colony "imported" 2>/dev/null || echo '{"ok":false}')
457
456
  pher_imported=$(echo "$pher_import" | jq -r '.result.imported // 0' 2>/dev/null || echo "0")
458
457
  echo "Pheromones: ${pher_imported} signal(s) imported"
459
458
  fi
460
459
 
461
460
  # Import wisdom to queen-wisdom.json (per D-09)
462
461
  if [[ -f "$latest_chamber/queen-wisdom.xml" ]]; then
463
- wis_import=$(bash .aether/aether-utils.sh wisdom-import-xml "$latest_chamber/queen-wisdom.xml" ".aether/data/queen-wisdom.json" 2>/dev/null || echo '{"ok":false}')
462
+ wis_import=$(aether wisdom-import-xml "$latest_chamber/queen-wisdom.xml" ".aether/data/queen-wisdom.json" 2>/dev/null || echo '{"ok":false}')
464
463
  wis_imported=$(echo "$wis_import" | jq -r '.result.imported // 0' 2>/dev/null || echo "0")
465
464
  echo "Wisdom: ${wis_imported} entries(s) imported to queen-wisdom.json"
466
465
  fi
467
466
 
468
467
  # Import registry lineage (per D-09)
469
468
  if [[ -f "$latest_chamber/colony-registry.xml" ]]; then
470
- reg_import=$(bash .aether/aether-utils.sh registry-import-xml "$latest_chamber/colony-registry.xml" 2>/dev/null || echo '{"ok":false}')
469
+ reg_import=$(aether registry-import-xml "$latest_chamber/colony-registry.xml" 2>/dev/null || echo '{"ok":false}')
471
470
  reg_imported=$(echo "$reg_import" | jq -r '.result.imported // 0' 2>/dev/null || echo "0")
472
471
  echo "Registry: ${reg_imported} colon(ies) lineage imported"
473
472
  fi
@@ -482,30 +481,48 @@ Display "Import skipped. Starting fresh colony." and proceed to Step 8.
482
481
  **If xml_import_available is false (no chambers, no XML, or no xmllint):**
483
482
 
484
483
  Skip silently -- proceed directly to Step 8 without any mention of import (per D-11).
484
+ ### Step 7.5: Install Clash Detection Hook
485
+
486
+ If `.aether/utils/clash-detect.sh` exists, run:
487
+
488
+ ```bash
489
+ aether clash-setup --install 2>/dev/null || true
490
+ ```
491
+
492
+ This installs the PreToolUse hook that prevents conflicting edits across worktrees.
493
+ Non-blocking — if it fails, init continues normally.
494
+
495
+ Also configure the merge driver for package-lock.json:
496
+
497
+ ```bash
498
+ git config merge.lockfile.driver "bash .aether/utils/merge-driver-lockfile.sh %O %A %B" 2>/dev/null || true
499
+ git config merge.lockfile.name "npm lockfile auto-merge" 2>/dev/null || true
500
+ ```
501
+
485
502
  ### Step 8: Display Result
486
503
 
487
504
  Display the success header and result block:
488
505
 
489
506
  ```
490
507
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
491
- A E T H E R C O L O N Y
508
+ 🥚 A E T H E R C O L O N Y
492
509
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
493
510
 
494
- Queen has set the colony's intention
511
+ 👑 Queen has set the colony's intention
495
512
 
496
513
  "{approved_intent}"
497
514
 
498
- Colony Status: READY
515
+ 🟢 Colony Status: READY
499
516
 
500
- {If re-init: " Mode: Re-init (charter updated, state preserved)"}
501
- {If fresh and seeded_count > 0: " Hive wisdom: {seeded_count} cross-colony pattern(s) seeded into QUEEN.md"}
517
+ {If re-init: " 🔄 Mode: Re-init (charter updated, state preserved)"}
518
+ {If fresh and seeded_count > 0: " 🧠 Hive wisdom: {seeded_count} cross-colony pattern(s) seeded into QUEEN.md"}
502
519
 
503
- State persisted -- safe to /clear, then run /ant:plan
520
+ 💾 State persisted -- safe to /clear, then run /ant:plan
504
521
 
505
522
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
506
- Next Up
523
+ 🐜 Next Up
507
524
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
508
- /ant:plan Generate execution plan
509
- /ant:status Check colony state
510
- /ant:focus Set initial focus
525
+ /ant:plan 📊 Generate execution plan
526
+ /ant:status 📋 Check colony state
527
+ /ant:focus 🎯 Set initial focus
511
528
  ```
@@ -76,7 +76,7 @@ Example:
76
76
  Run:
77
77
 
78
78
  ```bash
79
- bash .aether/aether-utils.sh phase-insert "<phase_name>" "<goal_text>" "<constraints_text>"
79
+ aether phase-insert --name "<phase_name>" --goal "<goal_text>" --constraints "<constraints_text>"
80
80
  ```
81
81
 
82
82
  Parse JSON result:
@@ -233,7 +233,7 @@ Wait for user response.
233
233
 
234
234
 
235
235
  ```bash
236
- bash .aether/aether-utils.sh activity-log "INTERPRET" "Interpreter" "Dream review: {dream_file}, {confirmed} confirmed, {partial} partial, {unconfirmed} unconfirmed, {refuted} refuted, {actions_taken} actions taken"
236
+ aether activity-log "INTERPRET" "Interpreter" "Dream review: {dream_file}, {confirmed} confirmed, {partial} partial, {unconfirmed} unconfirmed, {refuted} refuted, {actions_taken} actions taken"
237
237
  ```
238
238
 
239
239
  ### Step 8: Display Closing
@@ -147,7 +147,7 @@ echo "System files copied."
147
147
 
148
148
 
149
149
 
150
- Run: `bash .aether/aether-utils.sh queen-init`
150
+ Run: `aether queen-init`
151
151
 
152
152
 
153
153
  Parse the JSON result:
@@ -163,7 +163,7 @@ Attempt to register this repo in the global hub. Silent on failure — registry
163
163
  Run (ignore errors):
164
164
 
165
165
  ```bash
166
- bash .aether/aether-utils.sh registry-add "$(pwd)" "$(jq -r '.version // "unknown"' ~/.aether/version.json 2>/dev/null || echo 'unknown')" 2>/dev/null || true
166
+ aether registry-add --path "$(pwd)" "$(jq -r '.version // "unknown"' ~/.aether/version.json 2>/dev/null || echo 'unknown')" 2>/dev/null || true
167
167
  ```
168
168
 
169
169
  ### Step 7: Verify Setup
@@ -17,7 +17,7 @@ You are the **Queen**. Display the colony's maturity journey.
17
17
  ### Step 1: Detect Current Milestone
18
18
 
19
19
  Run:
20
- `bash .aether/aether-utils.sh milestone-detect`
20
+ `aether milestone-detect`
21
21
 
22
22
  Parse JSON result to get:
23
23
  - `milestone`: Current milestone name (First Mound, Open Chambers, Brood Stable, Ventilated Nest, Sealed Chambers, Crowned Anthill)
@@ -26,7 +26,7 @@ Drill-down view of accumulated colony wisdom, pending promotions, and recent fai
26
26
 
27
27
  Run using the Bash tool with description "Loading colony memory...":
28
28
  ```bash
29
- bash .aether/aether-utils.sh memory-metrics
29
+ aether memory-metrics
30
30
  ```
31
31
 
32
32
  ### Step 2: Display Wisdom (from QUEEN.md)
@@ -49,10 +49,10 @@ Oracle peering into the depths...
49
49
 
50
50
  ### Step 0b: Stop Oracle
51
51
 
52
- Create the stop signal file:
52
+ Stop any active Oracle research:
53
53
 
54
54
  ```bash
55
- mkdir -p .aether/oracle && touch .aether/oracle/.stop
55
+ mkdir -p .aether/oracle && touch .aether/oracle/.stop && rm -f .aether/oracle/.loop-active
56
56
  ```
57
57
 
58
58
  Output:
@@ -60,8 +60,9 @@ Output:
60
60
  ```
61
61
  🔮 Oracle Stop Signal Sent
62
62
 
63
- Created .aether/oracle/.stop
64
- The research loop will halt at the end of the current iteration.
63
+ Created .aether/oracle/.stop (legacy tmux signal)
64
+ Removed .aether/oracle/.loop-active (in-session loop marker)
65
+ The research loop will halt at the next iteration boundary.
65
66
 
66
67
  To check final results: /ant:oracle status
67
68
  ```
@@ -283,6 +284,41 @@ Describe the research topic in detail. The more specific, the better the Oracle'
283
284
 
284
285
  (The user will type their topic via the "Other" free-text option.)
285
286
 
287
+ **Question 1.5: Research Brief — Formulate and Approve**
288
+
289
+ Take the user's raw topic (from `$normalized_args` or Question 1) and reformulate it into a structured research brief. The user may have typed casual natural language — your job is to sharpen it into a clear, well-scoped research prompt that will produce better results.
290
+
291
+ Display the brief for approval:
292
+
293
+ ```
294
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
295
+ 🔮 R E S E A R C H B R I E F
296
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
297
+
298
+ **Topic:** {reformulated topic — clear, specific, actionable}
299
+ **Core Question:** {the single most important question this research should answer}
300
+ **Context:** {what we already know from the codebase or user input}
301
+ **Success Criteria:** {what a good answer looks like — what would make this research useful}
302
+ ```
303
+
304
+ Guidelines for formulation:
305
+ - Turn vague topics into specific ones ("auth stuff" → "Authentication architecture: session-based vs token-based for this Node.js API")
306
+ - Add codebase context if relevant (tech stack, existing patterns)
307
+ - Make the core question answerable — not open-ended philosophy
308
+ - Keep success criteria concrete ("A recommendation with trade-offs" not "understand everything")
309
+
310
+ Then ask the user to approve:
311
+
312
+ ```
313
+ Does this capture what you're looking for? (approve / edit)
314
+ ```
315
+
316
+ - If the user approves: use the reformulated topic as the research topic going forward
317
+ - If the user edits: incorporate their changes, display the updated brief, and ask again
318
+ - Max 2 revision rounds (same as init). After 2, ask for final approval or cancel.
319
+
320
+ The approved **Topic** from the brief becomes the topic used in all subsequent steps (state.json, plan.json, research-plan.md).
321
+
286
322
  **Question 2: Research Template**
287
323
 
288
324
  ```
@@ -418,7 +454,7 @@ Use the Write tool to create `.aether/oracle/state.json`:
418
454
  For each focus area string from Question 7:
419
455
 
420
456
  ```bash
421
- bash .aether/aether-utils.sh pheromone-write FOCUS "$focus_area" \
457
+ aether pheromone-write --type FOCUS --content "$focus_area" \
422
458
  --strength 0.8 --source "oracle:wizard" \
423
459
  --reason "Focus area set in oracle wizard" --ttl "24h" 2>/dev/null || true
424
460
  ```
@@ -517,7 +553,7 @@ Proceed to Step 3.
517
553
 
518
554
  ---
519
555
 
520
- ### Step 3: Launch
556
+ ### Step 3: Launch (In-Session Loop)
521
557
 
522
558
  Output the research configuration summary, showing the sub-questions from plan.json:
523
559
 
@@ -541,53 +577,46 @@ Output the research configuration summary, showing the sub-questions from plan.j
541
577
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
542
578
  ```
543
579
 
544
- Now launch the loop. Try tmux first, fall back to manual.
545
-
546
- **Try tmux:**
580
+ **Create the loop marker file:**
547
581
 
548
582
  ```bash
549
- tmux new-session -d -s oracle "cd $(pwd) && bash .aether/utils/oracle/oracle.sh; echo ''; echo '🔮 Oracle loop finished. Press any key to close.'; read -n1" 2>/dev/null && echo "TMUX_OK" || echo "TMUX_FAIL"
550
- ```
551
-
552
- **If TMUX_OK:**
553
-
554
- ```
555
- 🔮 Oracle Launched
556
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
557
-
558
- The Oracle is researching in a background tmux session.
559
-
560
- 👁️ Watch live: tmux attach -t oracle
561
- 📊 Check status: /ant:oracle status
562
- 🛑 Stop early: /ant:oracle stop
563
-
564
- Research progress visible at .aether/oracle/research-plan.md
565
- The Oracle will stop when it reaches {target_confidence}% confidence
566
- or completes {max_iterations} iterations.
567
-
568
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
569
-
570
- You can keep working. The Oracle runs independently.
583
+ SESSION_ID="${CLAUDE_SESSION_ID:-$(uuidgen 2>/dev/null || date +%s)}"
584
+ MAX_IT=<max_iterations from wizard>
585
+ TARGET_CONF=<target_confidence from wizard>
586
+ cat > .aether/oracle/.loop-active <<MARKER
587
+ ---
588
+ iteration: 0
589
+ max_iterations: $MAX_IT
590
+ session_id: $SESSION_ID
591
+ phase: survey
592
+ target_confidence: $TARGET_CONF
593
+ synthesis_done: false
594
+ oracle_md_path: .aether/utils/oracle/oracle.md
595
+ ---
596
+ Oracle research loop active
597
+ MARKER
598
+ echo "LOOP_MARKER_CREATED"
571
599
  ```
572
600
 
573
- Stop here.
574
-
575
- **If TMUX_FAIL** (tmux not installed or error):
601
+ Output:
576
602
 
577
603
  ```
578
- 🔮 Ready to Launch
604
+ 🔮 Oracle Research Started (In-Session Loop)
579
605
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
580
606
 
581
- tmux not available. Run this in a separate terminal:
607
+ The Oracle is researching IN THIS SESSION.
582
608
 
583
- cd {current_working_directory}
584
- bash .aether/utils/oracle/oracle.sh
609
+ The Stop hook keeps the loop running automatically between iterations.
610
+ Phases advance: survey -> investigate -> synthesize -> verify
611
+ Loop ends when confidence target is reached or max iterations hit.
585
612
 
586
- Then come back here:
587
613
  📊 Check status: /ant:oracle status
588
614
  🛑 Stop early: /ant:oracle stop
589
615
 
590
616
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
617
+
618
+ You can continue chatting. The Oracle loop runs between your messages.
591
619
  ```
592
620
 
593
- Stop here.
621
+ **Now begin the first iteration.** Read `.aether/utils/oracle/oracle.md` and start survey phase research.
622
+ Target the first untouched question from plan.json. Update state files as you go.
@@ -36,7 +36,7 @@ From COLONY_STATE.json, extract:
36
36
 
37
37
  Run using the Bash tool:
38
38
  ```bash
39
- bash .aether/aether-utils.sh pheromone-read
39
+ aether pheromone-read
40
40
  ```
41
41
 
42
42
  Use `.result.signals` as the active signal list (already decay-filtered by runtime logic).
@@ -213,7 +213,7 @@ Next:
213
213
 
214
214
  Use the Bash tool to run:
215
215
  ```
216
- bash .aether/aether-utils.sh activity-log "COMPLETE" "queen" "Hygiene report generated"
216
+ aether activity-log "COMPLETE" "queen" "Hygiene report generated"
217
217
  ```
218
218
 
219
219
  Display persistence confirmation:
@@ -85,7 +85,7 @@ Extract from COLONY_STATE.json:
85
85
  Display audit header:
86
86
  ```
87
87
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
88
- C O L O N Y A U D I T
88
+ 🔍 C O L O N Y A U D I T
89
89
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
90
90
 
91
91
  Goal: {goal}
@@ -255,12 +255,12 @@ Run these commands in parallel using the Bash tool:
255
255
 
256
256
  **Flags check:**
257
257
  ```bash
258
- bash .aether/aether-utils.sh flag-list 2>/dev/null || echo '{"result":{"flags":[]}}'
258
+ aether flag-list --json 2>/dev/null || echo '{"result":{"flags":[]}}'
259
259
  ```
260
260
 
261
261
  **Midden check:**
262
262
  ```bash
263
- bash .aether/aether-utils.sh midden-recent-failures 2>/dev/null || echo '{"result":{"failures":[]}}'
263
+ aether midden-recent-failures 2>/dev/null || echo '{"result":{"failures":[]}}'
264
264
  ```
265
265
 
266
266
  **Parse flag results:**
@@ -338,12 +338,12 @@ Display: `Checking colony health...`
338
338
 
339
339
  **Expire stale pheromones:**
340
340
  ```bash
341
- bash .aether/aether-utils.sh pheromone-expire 2>/dev/null || true
341
+ aether pheromone-expire 2>/dev/null || true
342
342
  ```
343
343
 
344
344
  **Load memory metrics:**
345
345
  ```bash
346
- bash .aether/aether-utils.sh memory-metrics 2>/dev/null || echo '{}'
346
+ aether memory-metrics 2>/dev/null || echo '{}'
347
347
  ```
348
348
 
349
349
  **Load instincts:**
@@ -363,7 +363,7 @@ From COLONY_STATE.json `events`:
363
363
 
364
364
  **Count pheromone signals:**
365
365
  ```bash
366
- bash .aether/aether-utils.sh pheromone-count 2>/dev/null || echo '{"result":{"count":0}}'
366
+ aether pheromone-count 2>/dev/null || echo '{"result":{"count":0}}'
367
367
  ```
368
368
 
369
369
  Display:
@@ -507,7 +507,7 @@ Display the formatted audit summary:
507
507
 
508
508
  ```
509
509
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
510
- A U D I T R E S U L T S
510
+ 📋 A U D I T R E S U L T S
511
511
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
512
512
 
513
513
  Goal: {goal}
@@ -592,7 +592,7 @@ Next:
592
592
 
593
593
  Run using the Bash tool:
594
594
  ```bash
595
- bash .aether/aether-utils.sh activity-log "COMPLETE" "queen" "Colony audit completed - {recommendation}"
595
+ aether activity-log "COMPLETE" "queen" "Colony audit completed - {recommendation}"
596
596
  ```
597
597
 
598
598
  Display persistence confirmation:
@@ -28,7 +28,7 @@ If `goal` is null, output `No colony initialized. Nothing to pause.` and stop.
28
28
 
29
29
  Run using the Bash tool:
30
30
  ```bash
31
- bash .aether/aether-utils.sh pheromone-read
31
+ aether pheromone-read
32
32
  ```
33
33
 
34
34
  Use `.result.signals` as the active signal list (already decay-filtered by runtime logic).
@@ -109,7 +109,7 @@ If `last_commit_suggestion_phase` equals the current phase, skip this step silen
109
109
 
110
110
  3. **Generate the commit message:**
111
111
  ```bash
112
- bash .aether/aether-utils.sh generate-commit-message "pause" {current_phase} "{phase_name}"
112
+ aether generate-commit-message --type "pause" --phase {current_phase} --subject "{phase_name}"
113
113
  ```
114
114
  Parse the returned JSON to extract `message` and `files_changed`.
115
115
 
@@ -118,7 +118,7 @@ Stop here.
118
118
 
119
119
  Run using the Bash tool with description "Displaying pheromones...":
120
120
  ```bash
121
- bash .aether/aether-utils.sh pheromone-display "{subcommand or 'all'}"
121
+ aether pheromone-display "{subcommand or 'all'}"
122
122
  ```
123
123
 
124
124
  The output will be the formatted pheromone table.
@@ -46,7 +46,7 @@ Stop here.
46
46
 
47
47
  ### Step 1.5: Load State and Show Resumption Context
48
48
 
49
- Run using Bash tool: `bash .aether/aether-utils.sh load-state`
49
+ Run using Bash tool: `aether load-state`
50
50
 
51
51
  If successful and goal is not null:
52
52
  1. Extract current_phase from state
@@ -61,7 +61,7 @@ If .aether/HANDOFF.md exists (detected in load-state output):
61
61
  - Read .aether/HANDOFF.md for additional context
62
62
  - Remove .aether/HANDOFF.md after display (cleanup)
63
63
 
64
- Run: `bash .aether/aether-utils.sh unload-state` to release lock.
64
+ Run: `aether unload-state` to release lock.
65
65
 
66
66
  **Error handling:**
67
67
  - If E_FILE_NOT_FOUND: "No colony initialized. Run /ant:init first." and stop
@@ -97,7 +97,7 @@ Select planning depth (prompt user if not explicitly provided):
97
97
 
98
98
  Run using the Bash tool with description "Loading compact planning context...":
99
99
  ```bash
100
- bash .aether/aether-utils.sh context-capsule --compact --json 2>/dev/null
100
+ aether context-capsule --compact --json 2>/dev/null
101
101
  ```
102
102
 
103
103
  If JSON is valid and `.ok == true`, extract `.result.prompt_section` into `context_capsule_prompt`.
@@ -179,7 +179,7 @@ Investigate domain knowledge for each phase before the planning loop begins. Thi
179
179
  **1. Retrieve hive wisdom for research priming:**
180
180
 
181
181
  ```bash
182
- hive_context=$(bash .aether/aether-utils.sh hive-read --limit 5 --format text 2>/dev/null)
182
+ hive_context=$(aether hive-read --limit 5 --format text 2>/dev/null)
183
183
  ```
184
184
 
185
185
  Parse the JSON result to extract `.result.text` as `hive_text`. If command fails or returns empty, set `hive_text = ""`.
@@ -581,7 +581,7 @@ verify_state=$(jq -r '.state' .aether/data/COLONY_STATE.json)
581
581
  if [[ "$verify_phases" -lt 1 || "$verify_timestamp" == "null" || "$verify_state" != "READY" ]]; then
582
582
  echo "ERROR: Plan write verification failed (phases=$verify_phases, generated_at=$verify_timestamp, state=$verify_state)"
583
583
  echo "Attempting retry write..."
584
- bash .aether/aether-utils.sh state-write "$(jq --argjson phases "$(echo '$PLAN_JSON' | jq '.plan.phases')" --arg ts "$(date -u +%Y-%m-%dT%H:%M:%SZ)" '.plan.phases = $phases | .plan.generated_at = $ts | .state = "READY"' .aether/data/COLONY_STATE.json)"
584
+ aether state-write "$(jq --argjson phases "$(echo '$PLAN_JSON' | jq '.plan.phases')" --arg ts "$(date -u +%Y-%m-%dT%H:%M:%SZ)" '.plan.phases = $phases | .plan.generated_at = $ts | .state = "READY"' .aether/data/COLONY_STATE.json)"
585
585
  verify_phases=$(jq '.plan.phases | length' .aether/data/COLONY_STATE.json)
586
586
  if [[ "$verify_phases" -lt 1 ]]; then
587
587
  echo "FATAL: Retry write also failed. Plan was not persisted."
@@ -592,7 +592,7 @@ fi
592
592
  echo "Plan verified: $verify_phases phases, generated_at=$verify_timestamp, state=$verify_state"
593
593
  ```
594
594
 
595
- Log plan completion: `bash .aether/aether-utils.sh activity-log "PLAN_COMPLETE" "queen" "Plan finalized with {confidence}% confidence"`
595
+ Log plan completion: `aether activity-log "PLAN_COMPLETE" "queen" "Plan finalized with {confidence}% confidence"`
596
596
 
597
597
  Update watch-status.txt:
598
598
  ```
@@ -39,7 +39,7 @@ Stop here.
39
39
 
40
40
  Run:
41
41
  ```bash
42
- bash .aether/aether-utils.sh generate-ant-name "scout"
42
+ aether generate-ant-name --caste "scout"
43
43
  ```
44
44
 
45
45
  Capture the output as `scout_name`.
@@ -54,7 +54,7 @@ Spawning {scout_name} — {query truncated to 50 chars}
54
54
 
55
55
  Run:
56
56
  ```bash
57
- bash .aether/aether-utils.sh spawn-log "Queen" "scout" "{scout_name}" "Quick query: {query}"
57
+ aether spawn-log --name "Queen" --caste "scout" --id "{scout_name}" --description "Quick query: {query}"
58
58
  ```
59
59
 
60
60
 
@@ -73,14 +73,14 @@ Display your findings directly to the user.
73
73
 
74
74
  Run:
75
75
  ```bash
76
- bash .aether/aether-utils.sh spawn-complete "{scout_name}" "completed" "Quick query answered"
76
+ aether spawn-complete --id "{scout_name}" --status "completed" --summary "Quick query answered"
77
77
  ```
78
78
 
79
79
  ### Step 5: Update Session (lightweight)
80
80
 
81
81
  Run:
82
82
  ```bash
83
- bash .aether/aether-utils.sh session-update "/ant:quick" "" "Quick query: {query truncated to 60 chars}" 2>/dev/null || true
83
+ aether session-update --command "/ant:quick" --worker "" --summary "Quick query: {query truncated to 60 chars}" 2>/dev/null || true
84
84
  ```
85
85
 
86
86
  **NOTE:** This command does NOT:
@@ -57,8 +57,8 @@ Write constraints.json.
57
57
 
58
58
  **Write pheromone signal and update context:**
59
59
  ```bash
60
- bash .aether/aether-utils.sh pheromone-write REDIRECT "$normalized_args" --strength 0.9 --reason "User warned colony away from pattern" 2>/dev/null || true
61
- bash .aether/aether-utils.sh context-update constraint redirect "$normalized_args" "user" 2>/dev/null || true
60
+ aether pheromone-write --type REDIRECT --content "$normalized_args" --strength 0.9 --reason "User warned colony away from pattern" 2>/dev/null || true
61
+ aether context-update --section constraint --key redirect --content "$normalized_args" "user" 2>/dev/null || true
62
62
  ```
63
63
 
64
64
  ### Step 3: Confirm
@@ -20,13 +20,13 @@ Parse `$normalized_args`:
20
20
 
21
21
  ### Step 0.5: Version Check (Non-blocking)
22
22
 
23
- Run using the Bash tool: `bash .aether/aether-utils.sh version-check 2>/dev/null || true`
23
+ Run using the Bash tool: `aether version-check-cached 2>/dev/null || true`
24
24
 
25
25
  If the command succeeds and the JSON result contains a non-empty string, display it as a one-line notice. Proceed regardless of outcome.
26
26
 
27
27
  ### Step 1: Load State and Validate
28
28
 
29
- Run using Bash tool: `bash .aether/aether-utils.sh load-state`
29
+ Run using Bash tool: `aether load-state`
30
30
 
31
31
  If successful:
32
32
  1. Parse state from result
@@ -41,7 +41,7 @@ Keep state loaded (don't unload yet) - we'll need it for the full display.
41
41
 
42
42
  Run using the Bash tool:
43
43
  ```bash
44
- bash .aether/aether-utils.sh pheromone-read
44
+ aether pheromone-read
45
45
  ```
46
46
 
47
47
  Use `.result.signals` as the active signal list (already decay-filtered by runtime logic).
@@ -133,7 +133,7 @@ Use Write tool to update COLONY_STATE.json:
133
133
 
134
134
  Use Bash tool to remove HANDOFF.md: `rm -f .aether/HANDOFF.md`
135
135
 
136
- Run: `bash .aether/aether-utils.sh unload-state` to release lock.
136
+ Run: `aether unload-state` to release lock.
137
137
 
138
138
  ---
139
139