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
@@ -1,400 +0,0 @@
1
- <!-- Generated from .aether/commands/tunnels.yaml - DO NOT EDIT DIRECTLY -->
2
- ---
3
- name: ant:tunnels
4
- description: "🕳️🐜🕳️ Explore tunnels (browse archived colonies, compare chambers)"
5
- ---
6
-
7
- ### Step -1: Normalize Arguments
8
-
9
- Run: `normalized_args=$(bash .aether/aether-utils.sh normalize-args "$@")`
10
-
11
- This ensures arguments work correctly in both Claude Code and OpenCode. Use `$normalized_args` throughout this command.
12
-
13
- You are the **Queen**. Browse the colony history.
14
-
15
- ## Instructions
16
-
17
- ### Step 1: Check for Chambers Directory
18
-
19
- Check if `.aether/chambers/` exists.
20
-
21
- If not:
22
- ```
23
- 🕳️ ═══════════════════════════════════════════════════
24
- T U N N E L S (Colony History)
25
- ══════════════════════════════════════════════════ 🕳️
26
-
27
- No chambers found.
28
-
29
- Archive colonies with /ant:entomb to build the tunnel network.
30
- ```
31
- Stop here.
32
-
33
- ### Step 2: List All Chambers
34
-
35
- Run: `bash .aether/aether-utils.sh chamber-list`
36
-
37
- Parse JSON result into array of chambers.
38
-
39
- If no chambers (empty array):
40
- ```
41
- 🕳️ ═══════════════════════════════════════════════════
42
- T U N N E L S (Colony History)
43
- ══════════════════════════════════════════════════ 🕳️
44
-
45
- Chambers: 0 colonies archived
46
-
47
- The tunnel network is empty.
48
- Archive colonies with /ant:entomb to preserve history.
49
- ```
50
- Stop here.
51
-
52
- ### Step 3: Handle Detail View (if argument provided)
53
-
54
- If `$normalized_args` is not empty:
55
- - Treat it as chamber name
56
- - Check if `.aether/chambers/{arguments}/` exists
57
- - If not found:
58
- ```
59
- Chamber not found: {arguments}
60
-
61
- Run /ant:tunnels to see available chambers.
62
- ```
63
- Stop here.
64
-
65
- - If found, read manifest.json and display detailed view:
66
- ```
67
- 🕳️ ═══════════════════════════════════════════════════
68
- C H A M B E R D E T A I L S
69
- ══════════════════════════════════════════════════ 🕳️
70
-
71
- 📦 {chamber_name}
72
-
73
- 👑 Goal:
74
- {goal}
75
-
76
- 🏆 Milestone: {milestone} ({version})
77
- 📍 Progress: {phases_completed} of {total_phases} phases
78
- 📅 Entombed: {entombed_at}
79
-
80
- {If decisions exist:}
81
- 🧠 Decisions Preserved:
82
- {N} architectural decisions recorded
83
- {End if}
84
-
85
- {If learnings exist:}
86
- 💡 Learnings Preserved:
87
- {N} validated learnings recorded
88
- {End if}
89
-
90
- 📁 Files:
91
- - COLONY_STATE.json (verified: {hash_status})
92
- - manifest.json
93
-
94
- Run /ant:tunnels to return to chamber list.
95
- ```
96
-
97
- To get the counts and hash status:
98
- - Run `bash .aether/aether-utils.sh chamber-verify .aether/chambers/{chamber_name}`
99
- - If verified: hash_status = "✅"
100
- - If not verified: hash_status = "⚠️ hash mismatch"
101
- - If error: hash_status = "⚠️ error"
102
-
103
- Check if `colony-archive.xml` exists in the chamber:
104
-
105
- ```bash
106
- chamber_has_xml=false
107
- [[ -f ".aether/chambers/{chamber_name}/colony-archive.xml" ]] && chamber_has_xml=true
108
- ```
109
-
110
- **If `colony-archive.xml` exists**, add import option to the detail view footer:
111
- ```
112
- 📁 Files:
113
- - COLONY_STATE.json (verified: {hash_status})
114
- - manifest.json
115
- - colony-archive.xml (XML Archive)
116
-
117
- Actions:
118
- 1. Import signals from this colony into current colony
119
- 2. Return to chamber list
120
-
121
- Select an action (1/2)
122
- ```
123
-
124
- Use AskUserQuestion with two options.
125
-
126
- If option 1 selected: proceed to Step 6 (Import Signals from Chamber).
127
- If option 2 selected: return to chamber list (run /ant:tunnels).
128
-
129
- **If `colony-archive.xml` does NOT exist**, show existing footer unchanged:
130
- ```
131
- Run /ant:tunnels to return to chamber list.
132
- ```
133
-
134
- Stop here.
135
-
136
- ### Step 5: Chamber Comparison Mode (Two Arguments)
137
-
138
- If two arguments provided (chamber names separated by space):
139
- - Treat as: `/ant:tunnels <chamber_a> <chamber_b>`
140
- - Run comparison: `bash .aether/utils/chamber-compare.sh compare <chamber_a> <chamber_b>`
141
-
142
- If either chamber not found:
143
- ```
144
- Chamber not found: {chamber_name}
145
-
146
- Available chambers:
147
- {list from chamber-list}
148
- ```
149
- Stop here.
150
-
151
- Display comparison header:
152
- ```
153
- 🕳️ ═══════════════════════════════════════════════════
154
- C H A M B E R C O M P A R I S O N
155
- ══════════════════════════════════════════════════ 🕳️
156
-
157
- 📦 {chamber_a} vs 📦 {chamber_b}
158
- ```
159
-
160
- Display side-by-side comparison:
161
- ```
162
- ┌─────────────────────┬─────────────────────┐
163
- │ {chamber_a} │ {chamber_b} │
164
- ├─────────────────────┼─────────────────────┤
165
- │ 👑 {goal_a} │ 👑 {goal_b} │
166
- │ │ │
167
- │ 🏆 {milestone_a} │ 🏆 {milestone_b} │
168
- │ {version_a} │ {version_b} │
169
- │ │ │
170
- │ 📍 {phases_a} done │ 📍 {phases_b} done │
171
- │ of {total_a} │ of {total_b} │
172
- │ │ │
173
- │ 🧠 {decisions_a} │ 🧠 {decisions_b} │
174
- │ decisions │ decisions │
175
- │ │ │
176
- │ 💡 {learnings_a} │ 💡 {learnings_b} │
177
- │ learnings │ learnings │
178
- │ │ │
179
- │ 📅 {date_a} │ 📅 {date_b} │
180
- └─────────────────────┴─────────────────────┘
181
- ```
182
-
183
- Display growth metrics:
184
- ```
185
- 📈 Growth Between Chambers:
186
- Phases: +{phases_diff} ({phases_a} → {phases_b})
187
- Decisions: +{decisions_diff} new
188
- Learnings: +{learnings_diff} new
189
- Time: {time_between} days apart
190
- ```
191
-
192
- If phases_diff > 0: show "📈 Colony grew"
193
- If phases_diff < 0: show "📉 Colony reduced (unusual)"
194
- If same_milestone: show "🏆 Same milestone reached"
195
- If milestone changed: show "🏆 Milestone advanced: {milestone_a} → {milestone_b}"
196
-
197
- Display pheromone trail diff (new decisions/learnings in B):
198
- ```bash
199
- bash .aether/utils/chamber-compare.sh diff <chamber_a> <chamber_b>
200
- ```
201
-
202
- Parse result and show:
203
- ```
204
- 🧠 New Decisions in {chamber_b}:
205
- {N} new architectural decisions
206
- {if N <= 5, list them; else show first 3 + "...and {N-3} more"}
207
-
208
- 💡 New Learnings in {chamber_b}:
209
- {N} new validated learnings
210
- {if N <= 5, list them; else show first 3 + "...and {N-3} more"}
211
- ```
212
-
213
- Display knowledge preservation:
214
- ```
215
- 📚 Knowledge Preservation:
216
- {preserved_decisions} decisions carried forward
217
- {preserved_learnings} learnings carried forward
218
- ```
219
-
220
- Footer:
221
- ```
222
- Run /ant:tunnels to see all chambers
223
- Run /ant:tunnels <chamber> to view single chamber details
224
- ```
225
-
226
- Stop here.
227
-
228
- ### Step 4: Display Chamber List (default view)
229
-
230
- ```
231
- 🕳️ ═══════════════════════════════════════════════════
232
- T U N N E L S (Colony History)
233
- ══════════════════════════════════════════════════ 🕳️
234
-
235
- Chambers: {count} colonies archived
236
-
237
- {For each chamber in sorted list:}
238
- 📦 {chamber_name}
239
- 👑 {goal (truncated to 50 chars)}
240
- 🏆 {milestone} ({version})
241
- 📍 {phases_completed} phases | 📅 {date}
242
-
243
- {End for}
244
-
245
- Run /ant:tunnels <chamber_name> to view details
246
- ```
247
-
248
- **Formatting details:**
249
- - Sort by entombed_at descending (newest first) - already sorted by chamber-list
250
- - Truncate goal to 50 characters with "..." if longer
251
- - Format date as YYYY-MM-DD from ISO timestamp (extract first 10 chars of entombed_at)
252
- - Show chamber count at top
253
-
254
- **Edge cases:**
255
- - Malformed manifest: show "⚠️ Invalid manifest" for that chamber and skip it
256
- - Missing COLONY_STATE.json: show "⚠️ Incomplete chamber" for that chamber
257
- - Very long chamber list: display all (no pagination for now)
258
-
259
- ### Step 6: Import Signals from Chamber
260
-
261
- When user selects "Import signals" from Step 3:
262
-
263
- **Step 6.1: Check XML tools**
264
- ```bash
265
- if command -v xmllint >/dev/null 2>&1; then
266
- xmllint_available=true
267
- else
268
- xmllint_available=false
269
- fi
270
- ```
271
-
272
- If xmllint not available:
273
- ```
274
- Import requires xmllint. Install it first:
275
- macOS: xcode-select --install
276
- Linux: apt-get install libxml2-utils
277
- ```
278
- Stop here (return to chamber list).
279
-
280
- **Step 6.2: Extract source colony name**
281
- ```bash
282
- chamber_xml=".aether/chambers/{chamber_name}/colony-archive.xml"
283
- # Extract colony_id from the archive root element
284
- source_colony=$(xmllint --xpath "string(/*/@colony_id)" "$chamber_xml" 2>/dev/null)
285
- [[ -z "$source_colony" ]] && source_colony="{chamber_name}"
286
- ```
287
-
288
- **Step 6.3: Extract pheromone section and show import preview**
289
-
290
- The combined `colony-archive.xml` contains pheromones, wisdom, and registry sections. Extract the pheromone section to a temp file before counting or importing. This prevents over-counting signals from wisdom/registry sections and ensures `pheromone-import-xml` receives the format it expects (`<pheromones>` as root element).
291
-
292
- ```bash
293
- # Extract the <pheromones> section from the combined archive into a standalone temp file
294
- import_tmp_dir=$(mktemp -d)
295
- import_tmp_pheromones="$import_tmp_dir/pheromones-extracted.xml"
296
-
297
- # Use xmllint to extract the pheromones element (with its namespace)
298
- xmllint --xpath "//*[local-name()='pheromones']" "$chamber_xml" > "$import_tmp_pheromones" 2>/dev/null
299
-
300
- # Add XML declaration to make it a standalone well-formed document
301
- if [[ -s "$import_tmp_pheromones" ]]; then
302
- # Portable approach: prepend declaration via temp file (avoids macOS/Linux sed -i differences)
303
- { echo '<?xml version="1.0" encoding="UTF-8"?>'; cat "$import_tmp_pheromones"; } > "$import_tmp_dir/tmp_decl.xml"
304
- mv "$import_tmp_dir/tmp_decl.xml" "$import_tmp_pheromones"
305
- fi
306
-
307
- # Count pheromone signals in extracted pheromone-only XML
308
- # Scoped to pheromone section only — no over-counting from wisdom/registry sections
309
- pheromone_count=$(xmllint --xpath "count(//*[local-name()='signal'])" "$import_tmp_pheromones" 2>/dev/null || echo "unknown")
310
- ```
311
-
312
- Display:
313
- ```
314
- IMPORT FROM COLONY: {source_colony}
315
-
316
- Source: .aether/chambers/{chamber_name}/colony-archive.xml
317
- Signals available: ~{pheromone_count} pheromone signals
318
-
319
- Import behavior:
320
- - Signals tagged with prefix "{source_colony}:" to identify origin
321
- - Additive merge — your current signals are never overwritten
322
- - On conflict, your current colony wins
323
-
324
- Import these signals? (yes/no)
325
- ```
326
-
327
- Use AskUserQuestion with yes/no options.
328
-
329
- If no: "Import cancelled." Clean up: `rm -rf "$import_tmp_dir"`. Return to chamber list.
330
-
331
- **Step 6.4: Perform import**
332
-
333
- Pass the extracted pheromone-only temp file (NOT the combined `colony-archive.xml`) to `pheromone-import-xml`, along with `$source_colony` as the second argument. This ensures:
334
- 1. `pheromone-import-xml` receives XML with `<pheromones>` as root element (the format it expects)
335
- 2. The prefix-tagging logic prepends `${source_colony}:` to each imported signal's ID before the merge
336
-
337
- ```bash
338
- # Import the EXTRACTED pheromone-only XML (NOT the combined colony-archive.xml)
339
- # $import_tmp_pheromones has <pheromones> as root — the format pheromone-import-xml expects
340
- # Second argument triggers prefix-tagging — imported signal IDs become "{source_colony}:original_id"
341
- import_result=$(bash .aether/aether-utils.sh pheromone-import-xml "$import_tmp_pheromones" "$source_colony" 2>&1)
342
- import_ok=$(echo "$import_result" | jq -r '.ok // false' 2>/dev/null)
343
-
344
- if [[ "$import_ok" == "true" ]]; then
345
- imported_count=$(echo "$import_result" | jq -r '.result.signal_count // 0' 2>/dev/null)
346
- else
347
- imported_count=0
348
- import_error=$(echo "$import_result" | jq -r '.error // "Unknown error"' 2>/dev/null)
349
- fi
350
-
351
- # Clean up temp files
352
- rm -rf "$import_tmp_dir"
353
- ```
354
-
355
- **Step 6.5: Display result**
356
-
357
- If import succeeded:
358
- ```
359
- SIGNALS IMPORTED
360
-
361
- Source: {source_colony}
362
- Imported: {imported_count} pheromone signals
363
- Tagged with: "{source_colony}:" prefix
364
-
365
- Your colony now carries wisdom from {source_colony}.
366
- Run /ant:status to see current colony state.
367
- ```
368
-
369
- If import failed:
370
- ```
371
- Import failed: {import_error}
372
-
373
- The archive may be malformed. Check:
374
- .aether/chambers/{chamber_name}/colony-archive.xml
375
- ```
376
-
377
- ## Implementation Notes
378
-
379
- The `chamber-list` utility returns JSON in this format:
380
- ```json
381
- {
382
- "ok": true,
383
- "result": [
384
- {
385
- "name": "add-user-auth-20260214-153022",
386
- "goal": "Add user authentication",
387
- "milestone": "Sealed Chambers",
388
- "phases_completed": 5,
389
- "entombed_at": "2026-02-14T15:30:22Z"
390
- }
391
- ]
392
- }
393
- ```
394
-
395
- Parse with jq: `jq -r '.result[] | "\(.name)|\(.goal)|\(.milestone)|\(.phases_completed)|\(.entombed_at)"'`
396
-
397
- For detail view, read manifest.json directly:
398
- ```bash
399
- jq -r '.goal, .milestone, .version, .phases_completed, .total_phases, .entombed_at, (.decisions | length), (.learnings | length)' .aether/chambers/{name}/manifest.json
400
- ```
@@ -1,127 +0,0 @@
1
- <!-- Generated from .aether/commands/update.yaml - DO NOT EDIT DIRECTLY -->
2
- ---
3
- name: ant:update
4
- description: "🔄🐜📦🐜🔄 Update Aether safely from the global hub (transactional)"
5
- ---
6
-
7
- ### Step -1: Normalize Arguments
8
-
9
- Run: `normalized_args=$(bash .aether/aether-utils.sh normalize-args "$@")`
10
-
11
- This ensures arguments work correctly in both Claude Code and OpenCode. Use `$normalized_args` throughout this command.
12
-
13
- You are the **Queen Ant Colony**. Update this repo's Aether system files from the global distribution hub.
14
-
15
- ## Safety Rules
16
-
17
- 1. Use the CLI transactional updater (`aether update`) instead of manual `cp` chains.
18
- 2. Never overwrite colony runtime data (`.aether/data/`) or user wisdom (`.aether/QUEEN.md`).
19
- 3. Do **not** assume version numbers are monotonic. Labels may reset; avoid "downgrade" wording.
20
- 4. If update reports dirty managed files, stop and show recovery options unless user requested force.
21
-
22
- ## Instructions
23
-
24
- ### Step 1: Check Hub Availability
25
-
26
- Run:
27
-
28
- ```bash
29
- test -f ~/.aether/version.json && cat ~/.aether/version.json || echo "__NO_HUB__"
30
- ```
31
-
32
- If output is `__NO_HUB__`, display:
33
-
34
- ```
35
- No Aether distribution hub found at ~/.aether/
36
-
37
- To set up the hub, run:
38
- npx aether-colony install
39
- - or -
40
- aether install
41
- ```
42
-
43
- Stop here.
44
-
45
- Parse `version` from the JSON as `available_version`.
46
-
47
- ### Step 1.5: Verify CLI Availability
48
-
49
- Run:
50
-
51
- ```bash
52
- command -v aether >/dev/null 2>&1 && echo "__CLI_OK__" || echo "__CLI_MISSING__"
53
- ```
54
-
55
- If output is `__CLI_MISSING__`, display:
56
-
57
- ```
58
- The transactional updater is not available because the `aether` CLI is missing.
59
-
60
- Install/update it, then retry:
61
- npx aether-colony install
62
- - or -
63
- npm i -g aether-colony
64
- ```
65
-
66
- Stop here.
67
-
68
- ### Step 2: Parse Force Flag
69
-
70
- Treat either of these as force:
71
- - `--force`
72
- - `--force-update`
73
-
74
- Set:
75
- - `update_flags="--force"` when force requested
76
- - `update_flags=""` otherwise
77
-
78
- ### Step 3: Dry-Run Preview
79
-
80
- Run:
81
-
82
- ```bash
83
- aether update --dry-run $update_flags
84
- ```
85
-
86
- If this fails, show the error output and stop.
87
-
88
- ### Step 4: Execute Transactional Update
89
-
90
- Run:
91
-
92
- ```bash
93
- aether update $update_flags
94
- ```
95
-
96
- This command handles:
97
- - checkpoint creation
98
- - safe sync
99
- - integrity verification
100
- - automatic rollback on failure
101
-
102
- ### Step 5: Clear Version Cache
103
-
104
-
105
-
106
- Run:
107
-
108
-
109
- ```bash
110
- rm -f .aether/data/.version-check-cache
111
- ```
112
-
113
- ### Step 6: Display Summary
114
-
115
- Display a concise summary:
116
-
117
- ```
118
- 🔄🐜📦🐜🔄 AETHER UPDATE COMPLETE
119
-
120
- Hub version label: {available_version}
121
- Update mode: {normal|force}
122
- Colony data (.aether/data/) untouched.
123
-
124
- Note: version labels are treated as identifiers, not strict upgrade/downgrade ordering.
125
- ```
126
-
127
-
@@ -1,139 +0,0 @@
1
- <!-- Generated from .aether/commands/verify-castes.yaml - DO NOT EDIT DIRECTLY -->
2
- ---
3
- name: ant:verify-castes
4
- description: "Verify colony caste assignments and system status"
5
- ---
6
-
7
- ### Step -1: Normalize Arguments
8
-
9
- Run: `normalized_args=$(bash .aether/aether-utils.sh normalize-args "$@")`
10
-
11
- This ensures arguments work correctly in both Claude Code and OpenCode. Use `$normalized_args` throughout this command.
12
-
13
- You are the **Queen**. Display the caste assignments and system status.
14
-
15
- ## Step 1: Show Caste Assignments
16
-
17
- Display the colony caste structure as a compact table:
18
-
19
-
20
-
21
- ```
22
- Aether Colony Caste System
23
- ═════════════════════════════════════════
24
-
25
-
26
- CASTE ASSIGNMENTS
27
- ────────────────────────────────────
28
- Caste Slot Active
29
- ────────────────────────────────────
30
- [reasoning]
31
- Archaeologist opus yes
32
- Architect opus yes
33
- Auditor opus yes
34
- Gatekeeper opus yes
35
- Measurer opus yes
36
- Oracle opus yes
37
- Queen opus yes
38
- Route-setter opus yes
39
- Sage opus yes
40
- Tracker opus yes
41
- ────────────────────────────────────
42
- [execution]
43
- Ambassador sonnet yes
44
- Builder sonnet yes
45
- Chaos sonnet yes
46
- Disciplines sonnet yes
47
- Nest sonnet yes
48
- Pathogens sonnet yes
49
- Probe sonnet yes
50
- Provisions sonnet yes
51
- Scout sonnet yes
52
- Weaver sonnet yes
53
- Watcher sonnet yes
54
- ────────────────────────────────────
55
- [inherit]
56
- Chronicler inherit yes
57
- Includer inherit yes
58
- Keeper inherit yes
59
-
60
-
61
- ═════════════════════════════════════════
62
-
63
- ```
64
-
65
- Source of truth: Agent frontmatter `model:` fields in `.claude/agents/ant/*.md`.
66
- Caste slots come from agent frontmatter (`model:` field).
67
-
68
- ## Step 2: Check System Status
69
-
70
-
71
-
72
- Run using Bash tool: `bash .aether/aether-utils.sh version-check 2>/dev/null || echo "Utils available"`
73
-
74
-
75
- Check LiteLLM proxy status:
76
- ```bash
77
- curl -s http://localhost:4000/health 2>/dev/null | grep -q "healthy" && echo "✓ Proxy healthy" || echo "⚠ Proxy not running"
78
- ```
79
-
80
- ## Step 3: Show Current Model Configuration
81
-
82
- Display the active model configuration:
83
-
84
-
85
-
86
- ```
87
- MODEL CONFIGURATION
88
- ════════════════════════════════
89
-
90
- Default: Claude API mode (opus -> claude-opus-4, sonnet -> claude-sonnet-4)
91
-
92
- To switch to GLM Proxy mode:
93
- cp ~/.claude/settings.json.glm ~/.claude/settings.json
94
- (opus -> glm-5, sonnet -> glm-5-turbo, haiku -> glm-4.5-air)
95
-
96
- To switch back to Claude API:
97
- cp ~/.claude/settings.json.claude ~/.claude/settings.json
98
-
99
-
100
- ════════════════════════════════
101
-
102
-
103
- Current model mapping from agent frontmatter:
104
- ```bash
105
- grep "^model:" .claude/agents/ant/*.md
106
- ```
107
-
108
- ## Step 4: Summary
109
-
110
-
111
-
112
- ```
113
- ═══════════════════════════════════════════════════════
114
- System Status
115
- ═══════════════════════════════════════════════════════
116
-
117
- Utils: ✓ Operational
118
- Proxy: {status from Step 2}
119
- Castes: 24 defined (10 opus, 11 sonnet, 3 inherit)
120
- Routing: Per-caste via agent frontmatter model: field
121
- ```
122
-
123
-
124
-
125
- ## Historical Note
126
-
127
- Per-caste model routing was initially attempted using environment variable
128
- injection at spawn time (archived in `.aether/archive/model-routing/`).
129
- That approach failed due to Claude Code Task tool limitations.
130
-
131
- The current approach uses agent frontmatter `model:` fields, which Claude Code
132
- handles natively. No Aether code intervention is required -- Claude Code reads
133
- the frontmatter and resolves the slot name through `ANTHROPIC_DEFAULT_*_MODEL`
134
- environment variables.
135
-
136
- To view the archived v1 configuration:
137
- ```bash
138
- git show model-routing-v1-archived
139
- ```