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
@@ -36,7 +36,7 @@ body_claude: |
36
36
 
37
37
  ### Step 1.5: Load State and Show Resumption Context
38
38
 
39
- Run using Bash tool: `bash .aether/aether-utils.sh load-state`
39
+ Run using Bash tool: `aether load-state`
40
40
 
41
41
  If successful and goal is not null:
42
42
  1. Extract current_phase from state
@@ -51,7 +51,7 @@ body_claude: |
51
51
  - Read .aether/HANDOFF.md for additional context
52
52
  - Remove .aether/HANDOFF.md after display (cleanup)
53
53
 
54
- Run: `bash .aether/aether-utils.sh unload-state` to release lock.
54
+ Run: `aether unload-state` to release lock.
55
55
 
56
56
  **Error handling:**
57
57
  - If E_FILE_NOT_FOUND: "No colony initialized. Run /ant:init first." and stop
@@ -87,7 +87,7 @@ body_claude: |
87
87
 
88
88
  Run using the Bash tool with description "Loading compact planning context...":
89
89
  ```bash
90
- bash .aether/aether-utils.sh context-capsule --compact --json 2>/dev/null
90
+ aether context-capsule --compact --json 2>/dev/null
91
91
  ```
92
92
 
93
93
  If JSON is valid and `.ok == true`, extract `.result.prompt_section` into `context_capsule_prompt`.
@@ -169,7 +169,7 @@ body_claude: |
169
169
  **1. Retrieve hive wisdom for research priming:**
170
170
 
171
171
  ```bash
172
- hive_context=$(bash .aether/aether-utils.sh hive-read --limit 5 --format text 2>/dev/null)
172
+ hive_context=$(aether hive-read --limit 5 --format text 2>/dev/null)
173
173
  ```
174
174
 
175
175
  Parse the JSON result to extract `.result.text` as `hive_text`. If command fails or returns empty, set `hive_text = ""`.
@@ -571,7 +571,7 @@ body_claude: |
571
571
  echo "ERROR: Plan write verification failed (phases=$verify_phases, generated_at=$verify_timestamp, state=$verify_state)"
572
572
  echo "Attempting retry write..."
573
573
  # Retry: re-read, update, write via state API
574
- 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)"
574
+ 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)"
575
575
  verify_phases=$(jq '.plan.phases | length' .aether/data/COLONY_STATE.json)
576
576
  if [[ "$verify_phases" -lt 1 ]]; then
577
577
  echo "FATAL: Retry write also failed. Plan was not persisted."
@@ -582,7 +582,7 @@ body_claude: |
582
582
  echo "Plan verified: $verify_phases phases, generated_at=$verify_timestamp, state=$verify_state"
583
583
  ```
584
584
 
585
- Log: `bash .aether/aether-utils.sh activity-log "PLAN_COMPLETE" "queen" "Plan finalized with {confidence}% confidence"`
585
+ Log: `aether activity-log "PLAN_COMPLETE" "queen" "Plan finalized with {confidence}% confidence"`
586
586
 
587
587
  Update watch-status.txt:
588
588
  ```
@@ -601,7 +601,7 @@ body_claude: |
601
601
  Update the session tracking file to enable `/ant:resume` after context clear:
602
602
 
603
603
  ```bash
604
- bash .aether/aether-utils.sh session-update "/ant:plan" "/ant:build 1" "Plan generated with {confidence}% confidence, {N} phases"
604
+ aether session-update --command "/ant:plan" --worker "/ant:build 1" --summary "Plan generated with {confidence}% confidence, {N} phases"
605
605
  ```
606
606
 
607
607
  ### Step 7: Display Plan
@@ -650,7 +650,7 @@ body_claude: |
650
650
  state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
651
651
  current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
652
652
  total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
653
- bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_phases"
653
+ aether print-next-up
654
654
  ```
655
655
 
656
656
  ---
@@ -725,7 +725,7 @@ body_opencode: |
725
725
 
726
726
  ### Step 1.5: Load State and Show Resumption Context
727
727
 
728
- Run using Bash tool: `bash .aether/aether-utils.sh load-state`
728
+ Run using Bash tool: `aether load-state`
729
729
 
730
730
  If successful and goal is not null:
731
731
  1. Extract current_phase from state
@@ -740,7 +740,7 @@ body_opencode: |
740
740
  - Read .aether/HANDOFF.md for additional context
741
741
  - Remove .aether/HANDOFF.md after display (cleanup)
742
742
 
743
- Run: `bash .aether/aether-utils.sh unload-state` to release lock.
743
+ Run: `aether unload-state` to release lock.
744
744
 
745
745
  **Error handling:**
746
746
  - If E_FILE_NOT_FOUND: "No colony initialized. Run /ant:init first." and stop
@@ -776,7 +776,7 @@ body_opencode: |
776
776
 
777
777
  Run using the Bash tool with description "Loading compact planning context...":
778
778
  ```bash
779
- bash .aether/aether-utils.sh context-capsule --compact --json 2>/dev/null
779
+ aether context-capsule --compact --json 2>/dev/null
780
780
  ```
781
781
 
782
782
  If JSON is valid and `.ok == true`, extract `.result.prompt_section` into `context_capsule_prompt`.
@@ -858,7 +858,7 @@ body_opencode: |
858
858
  **1. Retrieve hive wisdom for research priming:**
859
859
 
860
860
  ```bash
861
- hive_context=$(bash .aether/aether-utils.sh hive-read --limit 5 --format text 2>/dev/null)
861
+ hive_context=$(aether hive-read --limit 5 --format text 2>/dev/null)
862
862
  ```
863
863
 
864
864
  Parse the JSON result to extract `.result.text` as `hive_text`. If command fails or returns empty, set `hive_text = ""`.
@@ -1260,7 +1260,7 @@ body_opencode: |
1260
1260
  if [[ "$verify_phases" -lt 1 || "$verify_timestamp" == "null" || "$verify_state" != "READY" ]]; then
1261
1261
  echo "ERROR: Plan write verification failed (phases=$verify_phases, generated_at=$verify_timestamp, state=$verify_state)"
1262
1262
  echo "Attempting retry write..."
1263
- 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)"
1263
+ 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)"
1264
1264
  verify_phases=$(jq '.plan.phases | length' .aether/data/COLONY_STATE.json)
1265
1265
  if [[ "$verify_phases" -lt 1 ]]; then
1266
1266
  echo "FATAL: Retry write also failed. Plan was not persisted."
@@ -1271,7 +1271,7 @@ body_opencode: |
1271
1271
  echo "Plan verified: $verify_phases phases, generated_at=$verify_timestamp, state=$verify_state"
1272
1272
  ```
1273
1273
 
1274
- Log plan completion: `bash .aether/aether-utils.sh activity-log "PLAN_COMPLETE" "queen" "Plan finalized with {confidence}% confidence"`
1274
+ Log plan completion: `aether activity-log "PLAN_COMPLETE" "queen" "Plan finalized with {confidence}% confidence"`
1275
1275
 
1276
1276
  Update watch-status.txt:
1277
1277
  ```
@@ -31,7 +31,7 @@ body: |
31
31
 
32
32
  {{TOOL_PREFIX "Naming scout..."}}
33
33
  ```bash
34
- bash .aether/aether-utils.sh generate-ant-name "scout"
34
+ aether generate-ant-name --caste "scout"
35
35
  ```
36
36
 
37
37
  Capture the output as `scout_name`.
@@ -46,7 +46,7 @@ body: |
46
46
 
47
47
  {{TOOL_PREFIX "Dispatching scout..."}}
48
48
  ```bash
49
- bash .aether/aether-utils.sh spawn-log "Queen" "scout" "{scout_name}" "Quick query: {query}"
49
+ aether spawn-log --name "Queen" --caste "scout" --id "{scout_name}" --description "Quick query: {query}"
50
50
  ```
51
51
 
52
52
  {{#claude}}
@@ -86,14 +86,14 @@ body: |
86
86
 
87
87
  {{TOOL_PREFIX "Recording scout completion..."}}
88
88
  ```bash
89
- bash .aether/aether-utils.sh spawn-complete "{scout_name}" "completed" "Quick query answered"
89
+ aether spawn-complete --id "{scout_name}" --status "completed" --summary "Quick query answered"
90
90
  ```
91
91
 
92
92
  ### Step 5: Update Session (lightweight)
93
93
 
94
94
  {{TOOL_PREFIX "Updating session..."}}
95
95
  ```bash
96
- bash .aether/aether-utils.sh session-update "/ant:quick" "" "Quick query: {query truncated to 60 chars}" 2>/dev/null || true
96
+ aether session-update --command "/ant:quick" --worker "" --summary "Quick query: {query truncated to 60 chars}" 2>/dev/null || true
97
97
  ```
98
98
 
99
99
  **NOTE:** This command does NOT:
@@ -32,7 +32,7 @@ body: |
32
32
  {{#claude}}
33
33
  {{TOOL_PREFIX "Setting colony redirect..."}}
34
34
  ```bash
35
- bash .aether/aether-utils.sh pheromone-write REDIRECT "<content>" --strength 0.9 --reason "User warned colony away from pattern" --ttl <ttl>
35
+ aether pheromone-write --type REDIRECT --content "<content>" --strength 0.9 --reason "User warned colony away from pattern" --ttl <ttl>
36
36
  ```
37
37
 
38
38
  Parse the returned JSON for the signal ID.
@@ -41,14 +41,14 @@ body: |
41
41
 
42
42
  {{TOOL_PREFIX "Updating context document..."}}
43
43
  ```bash
44
- bash .aether/aether-utils.sh context-update constraint redirect "<content>" "user" 2>/dev/null || true
44
+ aether context-update --section constraint --key redirect --content "<content>" "user" 2>/dev/null || true
45
45
  ```
46
46
 
47
47
  ### Step 3: Get Active Counts
48
48
 
49
49
  {{TOOL_PREFIX "Counting active signals..."}}
50
50
  ```bash
51
- bash .aether/aether-utils.sh pheromone-count
51
+ aether pheromone-count
52
52
  ```
53
53
 
54
54
  ### Step 4: Confirm
@@ -86,8 +86,8 @@ body: |
86
86
 
87
87
  **Write pheromone signal and update context:**
88
88
  ```bash
89
- bash .aether/aether-utils.sh pheromone-write REDIRECT "$normalized_args" --strength 0.9 --reason "User warned colony away from pattern" 2>/dev/null || true
90
- bash .aether/aether-utils.sh context-update constraint redirect "$normalized_args" "user" 2>/dev/null || true
89
+ aether pheromone-write --type REDIRECT --content "$normalized_args" --strength 0.9 --reason "User warned colony away from pattern" 2>/dev/null || true
90
+ aether context-update --section constraint --key redirect --content "$normalized_args" "user" 2>/dev/null || true
91
91
  ```
92
92
 
93
93
  ### Step 3: Confirm
@@ -118,6 +118,6 @@ body: |
118
118
  state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
119
119
  current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
120
120
  total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
121
- bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_phases"
121
+ aether print-next-up
122
122
  ```
123
123
  {{/claude}}
@@ -14,13 +14,13 @@ body_claude: |
14
14
  If `visual_mode` is true, run using the Bash tool with description "Initializing resume display...":
15
15
  ### Step 0.5: Version Check (Non-blocking)
16
16
 
17
- Run using the Bash tool with description "Checking colony version...": `bash .aether/aether-utils.sh version-check-cached 2>/dev/null || true`
17
+ Run using the Bash tool with description "Checking colony version...": `aether version-check-cached 2>/dev/null || true`
18
18
 
19
19
  If the command succeeds and the JSON result contains a non-empty string, display it as a one-line notice. Proceed regardless of outcome.
20
20
 
21
21
  ### Step 1: Load State and Validate
22
22
 
23
- Run using the Bash tool with description "Restoring colony session...": `bash .aether/aether-utils.sh load-state`
23
+ Run using the Bash tool with description "Restoring colony session...": `aether load-state`
24
24
 
25
25
  If successful:
26
26
  1. Parse state from result
@@ -35,7 +35,7 @@ body_claude: |
35
35
 
36
36
  Run using the Bash tool with description "Loading active pheromones...":
37
37
  ```bash
38
- bash .aether/aether-utils.sh pheromone-read
38
+ aether pheromone-read
39
39
  ```
40
40
 
41
41
  Use `.result.signals` as the active signal list (already decay-filtered by runtime logic).
@@ -127,7 +127,7 @@ body_claude: |
127
127
 
128
128
  Use Bash tool with description "Cleaning up handoff file..." to remove HANDOFF.md: `rm -f .aether/HANDOFF.md`
129
129
 
130
- Run using the Bash tool with description "Releasing colony lock...": `bash .aether/aether-utils.sh unload-state` to release lock.
130
+ Run using the Bash tool with description "Releasing colony lock...": `aether unload-state` to release lock.
131
131
 
132
132
  ### Step 7: Next Up
133
133
 
@@ -136,7 +136,7 @@ body_claude: |
136
136
  state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
137
137
  current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
138
138
  total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
139
- bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_phases"
139
+ aether print-next-up
140
140
  ```
141
141
 
142
142
  ---
@@ -204,13 +204,13 @@ body_opencode: |
204
204
 
205
205
  ### Step 0.5: Version Check (Non-blocking)
206
206
 
207
- Run using the Bash tool: `bash .aether/aether-utils.sh version-check 2>/dev/null || true`
207
+ Run using the Bash tool: `aether version-check-cached 2>/dev/null || true`
208
208
 
209
209
  If the command succeeds and the JSON result contains a non-empty string, display it as a one-line notice. Proceed regardless of outcome.
210
210
 
211
211
  ### Step 1: Load State and Validate
212
212
 
213
- Run using Bash tool: `bash .aether/aether-utils.sh load-state`
213
+ Run using Bash tool: `aether load-state`
214
214
 
215
215
  If successful:
216
216
  1. Parse state from result
@@ -225,7 +225,7 @@ body_opencode: |
225
225
 
226
226
  Run using the Bash tool:
227
227
  ```bash
228
- bash .aether/aether-utils.sh pheromone-read
228
+ aether pheromone-read
229
229
  ```
230
230
 
231
231
  Use `.result.signals` as the active signal list (already decay-filtered by runtime logic).
@@ -317,7 +317,7 @@ body_opencode: |
317
317
 
318
318
  Use Bash tool to remove HANDOFF.md: `rm -f .aether/HANDOFF.md`
319
319
 
320
- Run: `bash .aether/aether-utils.sh unload-state` to release lock.
320
+ Run: `aether unload-state` to release lock.
321
321
 
322
322
  ---
323
323
 
@@ -24,7 +24,7 @@ body: |
24
24
 
25
25
  {{TOOL_PREFIX "Restoring colony session..."}}:
26
26
  ```bash
27
- bash .aether/aether-utils.sh session-read
27
+ aether session-read
28
28
  ```
29
29
 
30
30
  Parse the JSON result.
@@ -94,21 +94,9 @@ body: |
94
94
 
95
95
  ### Step 3: Read Pheromone Signals
96
96
 
97
- {{#claude}}
98
- Use the Read tool to read `.aether/data/constraints.json`.
99
-
100
- Extract the following top-level keys:
101
- - `focus` array — active focus signals (if key missing, treat as empty array)
102
- - `constraints` array — active redirect/constraint signals (if key missing, treat as empty array)
103
-
104
- If the file is missing: skip silently (no pheromones active).
105
-
106
- Pheromones persist until explicitly cleared — no decay.
107
- {{/claude}}
108
- {{#opencode}}
109
97
  {{TOOL_PREFIX "Loading active pheromone signals..."}}:
110
98
  ```bash
111
- bash .aether/aether-utils.sh pheromone-read all
99
+ aether pheromone-read all
112
100
  ```
113
101
 
114
102
  Parse the JSON result. Extract `.result.signals` array.
@@ -118,7 +106,6 @@ body: |
118
106
  - If the command fails or returns an error: skip silently (no pheromones active)
119
107
 
120
108
  Note: pheromone-read applies decay calculation automatically. The `effective_strength` field reflects current signal strength after time-based decay. Signals below 0.1 effective strength are already filtered out.
121
- {{/opencode}}
122
109
 
123
110
  ---
124
111
 
@@ -301,19 +288,9 @@ body: |
301
288
 
302
289
  {if signals array from Step 3 is not empty:}
303
290
  Active Signals:
304
- {{#claude}}
305
- {for each focus signal:}
306
- FOCUS: {focus text}
307
- {end}
308
- {for each constraint signal:}
309
- REDIRECT: {constraint text}
310
- {end}
311
- {{/claude}}
312
- {{#opencode}}
313
291
  {for each signal in signals:}
314
292
  {signal.type}: "{signal.content}" [{signal.effective_strength * 100 | floor}%]
315
293
  {end}
316
- {{/opencode}}
317
294
  {end}
318
295
  ```
319
296
 
@@ -323,7 +300,7 @@ body: |
323
300
 
324
301
  {{TOOL_PREFIX "Loading memory health..."}}:
325
302
  ```bash
326
- bash .aether/aether-utils.sh resume-dashboard
303
+ aether resume-dashboard
327
304
  ```
328
305
 
329
306
  Extract memory_health from the JSON result:
@@ -355,7 +332,7 @@ body: |
355
332
 
356
333
  {{TOOL_PREFIX "Marking session as resumed..."}}:
357
334
  ```bash
358
- bash .aether/aether-utils.sh session-mark-resumed
335
+ aether session-mark-resumed
359
336
  ```
360
337
 
361
338
  ### Step 10: Next Up
@@ -365,7 +342,7 @@ body: |
365
342
  state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
366
343
  current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
367
344
  total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
368
- bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_phases"
345
+ aether print-next-up
369
346
  ```
370
347
 
371
348
  ---
@@ -376,12 +353,7 @@ body: |
376
353
  |-----------|----------|
377
354
  | session.json missing (exists=false) | "No previous session found" — offer /ant:init and /ant:status |
378
355
  | COLONY_STATE.json missing or corrupted | Pause, ask user: start fresh or recover |
379
- {{#claude}}
380
- | constraints.json missing | Skip silently (no pheromones) |
381
- {{/claude}}
382
- {{#opencode}}
383
356
  | pheromone-read fails | Skip silently (no pheromones) |
384
- {{/opencode}}
385
357
  | CONTEXT.md missing | Fall back to COLONY_STATE.json narrative |
386
358
  | No plan phases, no generated_at | BLOCK — redirect to /ant:plan |
387
359
  | Plan attempted but no phases | BLOCK — redirect to /ant:plan |
@@ -393,12 +365,7 @@ body: |
393
365
 
394
366
  ## Key Constraints
395
367
 
396
- {{#claude}}
397
- - Use Read tool for COLONY_STATE.json and constraints.json (not bash cat/jq).
398
- {{/claude}}
399
- {{#opencode}}
400
368
  - Use Read tool for COLONY_STATE.json (not bash cat/jq). Use Bash tool for pheromone-read (applies decay calculation).
401
- {{/opencode}}
402
369
  - Use Bash tool only for aether-utils.sh commands and git commands
403
370
  - Handle ALL missing/corrupted file cases gracefully
404
371
  - Time-agnostic: restore identically regardless of how long ago the session was
@@ -47,7 +47,7 @@ body: |
47
47
  (applying `--max-phases` cap), display the plan, then stop without executing.
48
48
 
49
49
  ```
50
- ━━━ A U T O P I L O T P R E V I E W ━━━
50
+ ━━━ 🤖 A U T O P I L O T P R E V I E W ━━━
51
51
  Goal: {goal} | Current: Phase {N} | Remaining: {count} | Max: {max or "all"}
52
52
 
53
53
  Phase {id}: {name} ({task_count} tasks) -> build -> continue -> advance
@@ -66,9 +66,9 @@ body: |
66
66
  - If `milestone` == `"Crowned Anthill"`: output "This colony has been sealed. Start a new colony with `/ant:init \"new goal\"`." and stop
67
67
  2. Determine remaining incomplete phases; apply `--max-phases` cap
68
68
  3. Set `phases_completed = 0`, `autopilot_start = $(date +%s)`
69
- 4. Record pre-build blocker count: `bash .aether/aether-utils.sh flag-check-blockers {phase}`
69
+ 4. Record pre-build blocker count: `aether flag-check-blockers {phase}`
70
70
  5. If `--headless` flag is present:
71
- - Run: `bash .aether/aether-utils.sh autopilot-set-headless true`
71
+ - Run: `aether autopilot-set-headless true`
72
72
  - Display: `Headless mode: ON — interactive prompts will be queued as pending decisions`
73
73
  6. Display: `AUTOPILOT ENGAGED | Goal: {goal} | Phase {N} | Max: {max or "all"}`
74
74
 
@@ -105,7 +105,7 @@ body: |
105
105
  visual checkpoint prompt would normally be shown to the user, instead queue it as
106
106
  a pending decision:
107
107
  ```bash
108
- bash .aether/aether-utils.sh pending-decision-add \
108
+ aether pending-decision-add \
109
109
  --title "Visual checkpoint: Phase {id}" \
110
110
  --type "checkpoint" \
111
111
  --description "{checkpoint_description}" \
@@ -134,7 +134,7 @@ body: |
134
134
  **Headless override for runtime verification:** If headless mode is active and
135
135
  runtime verification would normally pause, queue as a pending decision instead:
136
136
  ```bash
137
- bash .aether/aether-utils.sh pending-decision-add \
137
+ aether pending-decision-add \
138
138
  --title "Runtime verification needed: Phase {id}" \
139
139
  --type "runtime-verification" \
140
140
  --description "Manual testing required before advancing past Phase {id}" \
@@ -165,7 +165,7 @@ body: |
165
165
  ### Step 5: Auto-Advance and Loop
166
166
 
167
167
  1. Increment `phases_completed`
168
- 2. Update autopilot state: `bash .aether/aether-utils.sh autopilot-update --action advance --phase {next} --result success`
168
+ 2. Update autopilot state: `aether autopilot-update --action advance --phase {next} --result success`
169
169
  3. Log: `"<timestamp>|autopilot_advance|run|Phase {prev} -> {next} ({phases_completed}/{max})"`
170
170
  4. Display: `--- Autopilot: Phase {prev} done -> Phase {next} ({N}/{max}) ---`
171
171
  5. **Replan check** (see Step 5.5)
@@ -177,7 +177,7 @@ body: |
177
177
  After each successful phase advance, check if a replan pause should fire:
178
178
 
179
179
  ```bash
180
- bash .aether/aether-utils.sh autopilot-check-replan --interval {replan_interval}
180
+ aether autopilot-check-replan --interval {replan_interval}
181
181
  ```
182
182
 
183
183
  If `--continue` flag was passed: skip this check entirely (user dismissed replan).
@@ -185,7 +185,7 @@ body: |
185
185
  If `result.should_replan == true`: **PAUSE** with replan suggestion banner:
186
186
 
187
187
  ```
188
- ━━━ R E P L A N S U G G E S T E D ━━━
188
+ ━━━ 🔄 R E P L A N S U G G E S T E D ━━━
189
189
  Phases auto-completed: {N} | Learnings accumulated: {learnings_since_last}
190
190
 
191
191
  The colony has completed {N} phases since the last plan review.
@@ -203,7 +203,7 @@ body: |
203
203
  ### Step 6: Final Summary
204
204
 
205
205
  ```
206
- ━━━ A U T O P I L O T C O M P L E T E ━━━
206
+ ━━━ A U T O P I L O T C O M P L E T E ━━━
207
207
  Phases completed: {N} | Elapsed: {Xm Ys} | Now at: Phase {current}
208
208
 
209
209
  {all complete} -> Colony goal achieved! Run /ant:seal
@@ -218,7 +218,7 @@ body: |
218
218
  ```
219
219
 
220
220
  Update session:
221
- `bash .aether/aether-utils.sh session-update "/ant:run" "/ant:run" "Autopilot: {N} phases, now Phase {current}"`
221
+ `aether session-update --command "/ant:run" --worker "/ant:run" --summary "Autopilot: {N} phases, now Phase {current}"`
222
222
 
223
223
  ## Execution Contract
224
224