aether-colony 5.0.0 β†’ 5.2.1

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 (317) hide show
  1. package/.aether/aether-utils.sh +3226 -3345
  2. package/.aether/agents-claude/aether-ambassador.md +265 -0
  3. package/.aether/agents-claude/aether-archaeologist.md +327 -0
  4. package/.aether/agents-claude/aether-architect.md +236 -0
  5. package/.aether/agents-claude/aether-auditor.md +271 -0
  6. package/.aether/agents-claude/aether-builder.md +224 -0
  7. package/.aether/agents-claude/aether-chaos.md +269 -0
  8. package/.aether/agents-claude/aether-chronicler.md +305 -0
  9. package/.aether/agents-claude/aether-gatekeeper.md +330 -0
  10. package/.aether/agents-claude/aether-includer.md +374 -0
  11. package/.aether/agents-claude/aether-keeper.md +272 -0
  12. package/.aether/agents-claude/aether-measurer.md +322 -0
  13. package/.aether/agents-claude/aether-oracle.md +237 -0
  14. package/.aether/agents-claude/aether-probe.md +211 -0
  15. package/.aether/agents-claude/aether-queen.md +330 -0
  16. package/.aether/agents-claude/aether-route-setter.md +178 -0
  17. package/.aether/agents-claude/aether-sage.md +418 -0
  18. package/.aether/agents-claude/aether-scout.md +179 -0
  19. package/.aether/agents-claude/aether-surveyor-disciplines.md +417 -0
  20. package/.aether/agents-claude/aether-surveyor-nest.md +355 -0
  21. package/.aether/agents-claude/aether-surveyor-pathogens.md +289 -0
  22. package/.aether/agents-claude/aether-surveyor-provisions.md +360 -0
  23. package/.aether/agents-claude/aether-tracker.md +270 -0
  24. package/.aether/agents-claude/aether-watcher.md +280 -0
  25. package/.aether/agents-claude/aether-weaver.md +248 -0
  26. package/.aether/commands/archaeology.yaml +653 -0
  27. package/.aether/commands/build.yaml +1221 -0
  28. package/.aether/commands/chaos.yaml +653 -0
  29. package/.aether/commands/colonize.yaml +442 -0
  30. package/.aether/commands/continue.yaml +1484 -0
  31. package/.aether/commands/council.yaml +509 -0
  32. package/.aether/commands/data-clean.yaml +80 -0
  33. package/.aether/commands/dream.yaml +275 -0
  34. package/.aether/commands/entomb.yaml +863 -0
  35. package/.aether/commands/export-signals.yaml +64 -0
  36. package/.aether/commands/feedback.yaml +158 -0
  37. package/.aether/commands/flag.yaml +160 -0
  38. package/.aether/commands/flags.yaml +177 -0
  39. package/.aether/commands/focus.yaml +112 -0
  40. package/.aether/commands/help.yaml +167 -0
  41. package/.aether/commands/history.yaml +137 -0
  42. package/.aether/commands/import-signals.yaml +79 -0
  43. package/.aether/commands/init.yaml +502 -0
  44. package/.aether/commands/insert-phase.yaml +102 -0
  45. package/.aether/commands/interpret.yaml +285 -0
  46. package/.aether/commands/lay-eggs.yaml +224 -0
  47. package/.aether/commands/maturity.yaml +122 -0
  48. package/.aether/commands/memory-details.yaml +74 -0
  49. package/.aether/commands/migrate-state.yaml +174 -0
  50. package/.aether/commands/oracle.yaml +1224 -0
  51. package/.aether/commands/organize.yaml +446 -0
  52. package/.aether/commands/patrol.yaml +621 -0
  53. package/.aether/commands/pause-colony.yaml +424 -0
  54. package/.aether/commands/phase.yaml +124 -0
  55. package/.aether/commands/pheromones.yaml +153 -0
  56. package/.aether/commands/plan.yaml +1364 -0
  57. package/.aether/commands/preferences.yaml +63 -0
  58. package/.aether/commands/quick.yaml +104 -0
  59. package/.aether/commands/redirect.yaml +123 -0
  60. package/.aether/commands/resume-colony.yaml +375 -0
  61. package/.aether/commands/resume.yaml +407 -0
  62. package/.aether/commands/run.yaml +229 -0
  63. package/.aether/commands/seal.yaml +1214 -0
  64. package/.aether/commands/skill-create.yaml +337 -0
  65. package/.aether/commands/status.yaml +408 -0
  66. package/.aether/commands/swarm.yaml +352 -0
  67. package/.aether/commands/tunnels.yaml +814 -0
  68. package/.aether/commands/update.yaml +131 -0
  69. package/.aether/commands/verify-castes.yaml +159 -0
  70. package/.aether/commands/watch.yaml +454 -0
  71. package/.aether/docs/INCIDENT_TEMPLATE.md +32 -0
  72. package/.aether/docs/QUEEN-SYSTEM.md +11 -11
  73. package/.aether/docs/README.md +32 -2
  74. package/.aether/docs/command-playbooks/README.md +23 -0
  75. package/.aether/docs/command-playbooks/build-complete.md +349 -0
  76. package/.aether/docs/command-playbooks/build-context.md +282 -0
  77. package/.aether/docs/command-playbooks/build-full.md +1683 -0
  78. package/.aether/docs/command-playbooks/build-prep.md +284 -0
  79. package/.aether/docs/command-playbooks/build-verify.md +405 -0
  80. package/.aether/docs/command-playbooks/build-wave.md +749 -0
  81. package/.aether/docs/command-playbooks/continue-advance.md +524 -0
  82. package/.aether/docs/command-playbooks/continue-finalize.md +447 -0
  83. package/.aether/docs/command-playbooks/continue-full.md +1725 -0
  84. package/.aether/docs/command-playbooks/continue-gates.md +686 -0
  85. package/.aether/docs/command-playbooks/continue-verify.md +407 -0
  86. package/.aether/docs/context-continuity.md +84 -0
  87. package/.aether/docs/disciplines/DISCIPLINES.md +9 -7
  88. package/.aether/docs/error-codes.md +1 -1
  89. package/.aether/docs/known-issues.md +34 -173
  90. package/.aether/docs/pheromones.md +86 -6
  91. package/.aether/docs/plans/pheromone-display-plan.md +257 -0
  92. package/.aether/docs/queen-commands.md +10 -9
  93. package/.aether/docs/source-of-truth-map.md +132 -0
  94. package/.aether/docs/xml-utilities.md +47 -0
  95. package/.aether/rules/aether-colony.md +23 -13
  96. package/.aether/scripts/incident-test-add.sh +47 -0
  97. package/.aether/scripts/weekly-audit.sh +79 -0
  98. package/.aether/skills/.index.json +649 -0
  99. package/.aether/skills/colony/.manifest.json +16 -0
  100. package/.aether/skills/colony/build-discipline/SKILL.md +78 -0
  101. package/.aether/skills/colony/colony-interaction/SKILL.md +56 -0
  102. package/.aether/skills/colony/colony-lifecycle/SKILL.md +77 -0
  103. package/.aether/skills/colony/colony-visuals/SKILL.md +112 -0
  104. package/.aether/skills/colony/context-management/SKILL.md +80 -0
  105. package/.aether/skills/colony/error-presentation/SKILL.md +99 -0
  106. package/.aether/skills/colony/pheromone-protocol/SKILL.md +79 -0
  107. package/.aether/skills/colony/pheromone-visibility/SKILL.md +81 -0
  108. package/.aether/skills/colony/state-safety/SKILL.md +84 -0
  109. package/.aether/skills/colony/worker-priming/SKILL.md +82 -0
  110. package/.aether/skills/domain/.manifest.json +24 -0
  111. package/.aether/skills/domain/README.md +33 -0
  112. package/.aether/skills/domain/django/SKILL.md +49 -0
  113. package/.aether/skills/domain/docker/SKILL.md +52 -0
  114. package/.aether/skills/domain/golang/SKILL.md +52 -0
  115. package/.aether/skills/domain/graphql/SKILL.md +51 -0
  116. package/.aether/skills/domain/html-css/SKILL.md +48 -0
  117. package/.aether/skills/domain/nextjs/SKILL.md +45 -0
  118. package/.aether/skills/domain/nodejs/SKILL.md +53 -0
  119. package/.aether/skills/domain/postgresql/SKILL.md +53 -0
  120. package/.aether/skills/domain/prisma/SKILL.md +59 -0
  121. package/.aether/skills/domain/python/SKILL.md +50 -0
  122. package/.aether/skills/domain/rails/SKILL.md +52 -0
  123. package/.aether/skills/domain/react/SKILL.md +45 -0
  124. package/.aether/skills/domain/rest-api/SKILL.md +58 -0
  125. package/.aether/skills/domain/svelte/SKILL.md +47 -0
  126. package/.aether/skills/domain/tailwind/SKILL.md +45 -0
  127. package/.aether/skills/domain/testing/SKILL.md +53 -0
  128. package/.aether/skills/domain/typescript/SKILL.md +58 -0
  129. package/.aether/skills/domain/vue/SKILL.md +49 -0
  130. package/.aether/templates/QUEEN.md.template +23 -41
  131. package/.aether/templates/colony-state-reset.jq.template +1 -0
  132. package/.aether/templates/colony-state.template.json +4 -0
  133. package/.aether/templates/learning-observations.template.json +6 -0
  134. package/.aether/templates/midden.template.json +13 -0
  135. package/.aether/templates/pheromones.template.json +6 -0
  136. package/.aether/templates/session.template.json +9 -0
  137. package/.aether/utils/atomic-write.sh +63 -17
  138. package/.aether/utils/chamber-utils.sh +145 -2
  139. package/.aether/utils/council.sh +425 -0
  140. package/.aether/utils/emoji-audit.sh +166 -0
  141. package/.aether/utils/error-handler.sh +21 -7
  142. package/.aether/utils/file-lock.sh +182 -27
  143. package/.aether/utils/flag.sh +278 -0
  144. package/.aether/utils/hive.sh +572 -0
  145. package/.aether/utils/immune.sh +508 -0
  146. package/.aether/utils/learning.sh +1928 -0
  147. package/.aether/utils/midden.sh +520 -0
  148. package/.aether/utils/oracle/oracle.md +168 -0
  149. package/.aether/utils/oracle/oracle.sh +1023 -0
  150. package/.aether/utils/pheromone.sh +2029 -0
  151. package/.aether/utils/queen.sh +1710 -0
  152. package/.aether/utils/scan.sh +860 -0
  153. package/.aether/utils/semantic-cli.sh +10 -8
  154. package/.aether/utils/session.sh +816 -0
  155. package/.aether/utils/skills.sh +509 -0
  156. package/.aether/utils/spawn-tree.sh +103 -271
  157. package/.aether/utils/spawn.sh +260 -0
  158. package/.aether/utils/state-api.sh +389 -0
  159. package/.aether/utils/state-loader.sh +8 -6
  160. package/.aether/utils/suggest.sh +611 -0
  161. package/.aether/utils/swarm-display.sh +10 -1
  162. package/.aether/utils/swarm.sh +1004 -0
  163. package/.aether/utils/watch-spawn-tree.sh +11 -2
  164. package/.aether/utils/xml-compose.sh +2 -2
  165. package/.aether/utils/xml-convert.sh +9 -5
  166. package/.aether/utils/xml-core.sh +5 -9
  167. package/.aether/utils/xml-query.sh +4 -4
  168. package/.aether/workers.md +86 -67
  169. package/.claude/agents/ant/aether-ambassador.md +2 -1
  170. package/.claude/agents/ant/aether-archaeologist.md +6 -1
  171. package/.claude/agents/ant/aether-architect.md +236 -0
  172. package/.claude/agents/ant/aether-auditor.md +6 -1
  173. package/.claude/agents/ant/aether-builder.md +38 -1
  174. package/.claude/agents/ant/aether-chaos.md +2 -1
  175. package/.claude/agents/ant/aether-chronicler.md +1 -0
  176. package/.claude/agents/ant/aether-gatekeeper.md +6 -1
  177. package/.claude/agents/ant/aether-includer.md +1 -0
  178. package/.claude/agents/ant/aether-keeper.md +1 -0
  179. package/.claude/agents/ant/aether-measurer.md +6 -1
  180. package/.claude/agents/ant/aether-oracle.md +237 -0
  181. package/.claude/agents/ant/aether-probe.md +2 -1
  182. package/.claude/agents/ant/aether-queen.md +6 -1
  183. package/.claude/agents/ant/aether-route-setter.md +6 -1
  184. package/.claude/agents/ant/aether-sage.md +68 -3
  185. package/.claude/agents/ant/aether-scout.md +38 -1
  186. package/.claude/agents/ant/aether-surveyor-disciplines.md +2 -1
  187. package/.claude/agents/ant/aether-surveyor-nest.md +2 -1
  188. package/.claude/agents/ant/aether-surveyor-pathogens.md +2 -1
  189. package/.claude/agents/ant/aether-surveyor-provisions.md +2 -1
  190. package/.claude/agents/ant/aether-tracker.md +6 -1
  191. package/.claude/agents/ant/aether-watcher.md +37 -1
  192. package/.claude/agents/ant/aether-weaver.md +2 -1
  193. package/.claude/commands/ant/archaeology.md +1 -8
  194. package/.claude/commands/ant/build.md +43 -1159
  195. package/.claude/commands/ant/chaos.md +1 -14
  196. package/.claude/commands/ant/colonize.md +3 -14
  197. package/.claude/commands/ant/continue.md +40 -1026
  198. package/.claude/commands/ant/council.md +213 -15
  199. package/.claude/commands/ant/data-clean.md +81 -0
  200. package/.claude/commands/ant/dream.md +12 -9
  201. package/.claude/commands/ant/entomb.md +62 -87
  202. package/.claude/commands/ant/export-signals.md +57 -0
  203. package/.claude/commands/ant/feedback.md +18 -0
  204. package/.claude/commands/ant/flag.md +12 -0
  205. package/.claude/commands/ant/flags.md +22 -8
  206. package/.claude/commands/ant/focus.md +18 -0
  207. package/.claude/commands/ant/help.md +40 -8
  208. package/.claude/commands/ant/history.md +3 -0
  209. package/.claude/commands/ant/import-signals.md +71 -0
  210. package/.claude/commands/ant/init.md +349 -191
  211. package/.claude/commands/ant/insert-phase.md +105 -0
  212. package/.claude/commands/ant/interpret.md +11 -0
  213. package/.claude/commands/ant/lay-eggs.md +167 -158
  214. package/.claude/commands/ant/maturity.md +22 -11
  215. package/.claude/commands/ant/memory-details.md +77 -0
  216. package/.claude/commands/ant/migrate-state.md +6 -0
  217. package/.claude/commands/ant/oracle.md +317 -62
  218. package/.claude/commands/ant/organize.md +10 -5
  219. package/.claude/commands/ant/patrol.md +620 -0
  220. package/.claude/commands/ant/pause-colony.md +8 -22
  221. package/.claude/commands/ant/phase.md +26 -37
  222. package/.claude/commands/ant/pheromones.md +156 -0
  223. package/.claude/commands/ant/plan.md +199 -50
  224. package/.claude/commands/ant/preferences.md +65 -0
  225. package/.claude/commands/ant/quick.md +100 -0
  226. package/.claude/commands/ant/redirect.md +18 -0
  227. package/.claude/commands/ant/resume-colony.md +37 -22
  228. package/.claude/commands/ant/resume.md +60 -7
  229. package/.claude/commands/ant/run.md +231 -0
  230. package/.claude/commands/ant/seal.md +506 -78
  231. package/.claude/commands/ant/skill-create.md +286 -0
  232. package/.claude/commands/ant/status.md +171 -1
  233. package/.claude/commands/ant/swarm.md +11 -23
  234. package/.claude/commands/ant/tunnels.md +1 -0
  235. package/.claude/commands/ant/update.md +58 -135
  236. package/.claude/commands/ant/verify-castes.md +90 -42
  237. package/.claude/commands/ant/watch.md +1 -0
  238. package/.opencode/agents/aether-ambassador.md +1 -1
  239. package/.opencode/agents/aether-architect.md +133 -0
  240. package/.opencode/agents/aether-builder.md +3 -3
  241. package/.opencode/agents/aether-oracle.md +137 -0
  242. package/.opencode/agents/aether-queen.md +1 -1
  243. package/.opencode/agents/aether-route-setter.md +1 -1
  244. package/.opencode/agents/aether-scout.md +1 -1
  245. package/.opencode/agents/aether-surveyor-disciplines.md +6 -1
  246. package/.opencode/agents/aether-surveyor-nest.md +6 -1
  247. package/.opencode/agents/aether-surveyor-pathogens.md +6 -1
  248. package/.opencode/agents/aether-surveyor-provisions.md +6 -1
  249. package/.opencode/agents/aether-tracker.md +1 -1
  250. package/.opencode/agents/aether-watcher.md +1 -1
  251. package/.opencode/agents/aether-weaver.md +1 -1
  252. package/.opencode/commands/ant/archaeology.md +7 -14
  253. package/.opencode/commands/ant/build.md +54 -88
  254. package/.opencode/commands/ant/chaos.md +7 -24
  255. package/.opencode/commands/ant/colonize.md +10 -17
  256. package/.opencode/commands/ant/continue.md +595 -66
  257. package/.opencode/commands/ant/council.md +150 -18
  258. package/.opencode/commands/ant/data-clean.md +77 -0
  259. package/.opencode/commands/ant/dream.md +15 -17
  260. package/.opencode/commands/ant/entomb.md +28 -18
  261. package/.opencode/commands/ant/export-signals.md +54 -0
  262. package/.opencode/commands/ant/feedback.md +24 -5
  263. package/.opencode/commands/ant/flag.md +16 -4
  264. package/.opencode/commands/ant/flags.md +24 -10
  265. package/.opencode/commands/ant/focus.md +22 -5
  266. package/.opencode/commands/ant/help.md +41 -8
  267. package/.opencode/commands/ant/history.md +9 -0
  268. package/.opencode/commands/ant/import-signals.md +68 -0
  269. package/.opencode/commands/ant/init.md +396 -154
  270. package/.opencode/commands/ant/insert-phase.md +111 -0
  271. package/.opencode/commands/ant/interpret.md +16 -0
  272. package/.opencode/commands/ant/lay-eggs.md +184 -112
  273. package/.opencode/commands/ant/maturity.md +18 -2
  274. package/.opencode/commands/ant/memory-details.md +83 -0
  275. package/.opencode/commands/ant/migrate-state.md +12 -0
  276. package/.opencode/commands/ant/oracle.md +322 -67
  277. package/.opencode/commands/ant/organize.md +14 -12
  278. package/.opencode/commands/ant/patrol.md +626 -0
  279. package/.opencode/commands/ant/pause-colony.md +12 -29
  280. package/.opencode/commands/ant/phase.md +30 -40
  281. package/.opencode/commands/ant/pheromones.md +162 -0
  282. package/.opencode/commands/ant/plan.md +210 -57
  283. package/.opencode/commands/ant/preferences.md +71 -0
  284. package/.opencode/commands/ant/quick.md +91 -0
  285. package/.opencode/commands/ant/redirect.md +22 -5
  286. package/.opencode/commands/ant/resume-colony.md +41 -29
  287. package/.opencode/commands/ant/resume.md +80 -20
  288. package/.opencode/commands/ant/run.md +237 -0
  289. package/.opencode/commands/ant/seal.md +230 -25
  290. package/.opencode/commands/ant/skill-create.md +63 -0
  291. package/.opencode/commands/ant/status.md +125 -30
  292. package/.opencode/commands/ant/swarm.md +3 -345
  293. package/.opencode/commands/ant/tunnels.md +3 -9
  294. package/.opencode/commands/ant/update.md +63 -127
  295. package/.opencode/commands/ant/verify-castes.md +96 -42
  296. package/.opencode/commands/ant/watch.md +7 -0
  297. package/CHANGELOG.md +368 -1
  298. package/README.md +195 -324
  299. package/bin/cli.js +236 -429
  300. package/bin/generate-commands.js +186 -0
  301. package/bin/generate-commands.sh +128 -89
  302. package/bin/lib/spawn-logger.js +0 -15
  303. package/bin/lib/update-transaction.js +285 -35
  304. package/bin/npx-install.js +178 -0
  305. package/bin/validate-package.sh +85 -3
  306. package/package.json +16 -4
  307. package/.aether/CONTEXT.md +0 -160
  308. package/.aether/docs/QUEEN.md +0 -84
  309. package/.aether/exchange/colony-registry.xml +0 -11
  310. package/.aether/exchange/pheromones.xml +0 -87
  311. package/.aether/exchange/queen-wisdom.xml +0 -14
  312. package/.aether/model-profiles.yaml +0 -100
  313. package/.aether/utils/spawn-with-model.sh +0 -56
  314. package/bin/lib/model-profiles.js +0 -445
  315. package/bin/lib/model-verify.js +0 -288
  316. package/bin/lib/proxy-health.js +0 -253
  317. package/bin/lib/telemetry.js +0 -441
@@ -0,0 +1,408 @@
1
+ name: "ant:status"
2
+ description_claude: "πŸ“ˆπŸœπŸ˜οΈπŸœπŸ“ˆ Show colony status at a glance"
3
+ description_opencode: "πŸ“ˆπŸœπŸ˜οΈπŸœπŸ“ˆ Show colony status at a glance"
4
+ body: |
5
+ You are the **Queen**. Show colony status.
6
+
7
+ ## Instructions
8
+
9
+ ### Step 0: Version Check (Non-blocking)
10
+
11
+ {{TOOL_PREFIX "Checking colony version..."}} `bash .aether/aether-utils.sh version-check-cached 2>/dev/null || true`
12
+
13
+ If the command succeeds and the JSON result contains a non-empty string, display it as a one-line notice. Proceed regardless of outcome.
14
+
15
+ ### Step 1: Read State + Version Check
16
+
17
+ Read `.aether/data/COLONY_STATE.json`.
18
+
19
+ If file missing or `goal: null`:
20
+ ```
21
+ No colony initialized. Run /ant:init first.
22
+ ```
23
+ Stop here.
24
+
25
+ **Auto-upgrade old state:**
26
+ If `version` field is missing, "1.0", or "2.0":
27
+ 1. Preserve: `goal`, `state`, `current_phase`, `plan.phases` (keep phase structure)
28
+ 2. Write upgraded state:
29
+ ```json
30
+ {
31
+ "version": "3.0",
32
+ "goal": "<preserved>",
33
+ "state": "<preserved or 'READY'>",
34
+ "current_phase": <preserved or 0>,
35
+ "session_id": "migrated_<timestamp>",
36
+ "initialized_at": "<preserved or now>",
37
+ "build_started_at": null,
38
+ "plan": {
39
+ "generated_at": "<preserved or null>",
40
+ "confidence": null,
41
+ "phases": <preserved or []>
42
+ },
43
+ "memory": { "phase_learnings": [], "decisions": [], "instincts": [] },
44
+ "errors": { "records": [], "flagged_patterns": [] },
45
+ "events": ["<now>|state_upgraded|system|Auto-upgraded from v<old> to v3.0"]
46
+ }
47
+ ```
48
+ 3. Output: `State auto-upgraded to v3.0`
49
+ 4. Continue with command.
50
+
51
+ ### Step 1.5: Load State and Show Resumption Context
52
+
53
+ {{TOOL_PREFIX "Loading colony state..."}} `bash .aether/aether-utils.sh load-state`
54
+
55
+ If successful and goal is not null:
56
+ 1. Extract current_phase from state
57
+ 2. Get phase name from plan.phases[current_phase - 1].name (or "(unnamed)")
58
+ 3. Get last event timestamp from events array (last element)
59
+ 4. Display extended resumption context:
60
+ ```
61
+ πŸ”„ Resuming: Phase X - Name
62
+ Last activity: timestamp
63
+ ```
64
+
65
+ 5. Check for .aether/HANDOFF.md existence in the load-state output or via separate check
66
+ 6. If .aether/HANDOFF.md exists:
67
+ - Display: "Resuming from paused session"
68
+ - Read .aether/HANDOFF.md content for additional context
69
+ - Remove .aether/HANDOFF.md after displaying (cleanup)
70
+
71
+ {{TOOL_PREFIX "Releasing colony lock..."}} `bash .aether/aether-utils.sh unload-state` to release lock.
72
+
73
+ ### Step 2: Compute Summary
74
+
75
+ From state, extract:
76
+
77
+ ### Step 2.4: Survey Freshness (Advisory)
78
+
79
+ {{TOOL_PREFIX "Checking survey freshness..."}}
80
+ ```bash
81
+ survey_docs=$(ls -1 .aether/data/survey/*.md 2>/dev/null | wc -l | tr -d ' ')
82
+ survey_latest=$(ls -t .aether/data/survey/*.md 2>/dev/null | head -1)
83
+ if [[ -n "$survey_latest" ]]; then
84
+ now_epoch=$(date +%s)
85
+ modified_epoch=$(stat -f %m "$survey_latest" 2>/dev/null || stat -c %Y "$survey_latest" 2>/dev/null || echo 0)
86
+ survey_age_days=$(( (now_epoch - modified_epoch) / 86400 ))
87
+ else
88
+ survey_age_days=-1
89
+ fi
90
+ echo "survey_docs=$survey_docs"
91
+ echo "survey_age_days=$survey_age_days"
92
+ ```
93
+
94
+ Interpretation:
95
+ - If `survey_docs == 0`: `survey_status = "missing"`
96
+ - If `survey_age_days > 14`: `survey_status = "stale"`
97
+ - Otherwise: `survey_status = "fresh"`
98
+
99
+ ### Step 2.5: Gather Dream Information
100
+
101
+ {{TOOL_PREFIX "Counting dream entries..."}} `ls -1 .aether/dreams/*.md 2>/dev/null | wc -l`
102
+
103
+ Capture:
104
+ - Dream count: number of .md files in .aether/dreams/
105
+ - Latest dream: most recent file by name (files are timestamped: YYYY-MM-DD-HHMM.md)
106
+
107
+ To get latest dream timestamp, {{TOOL_PREFIX "Finding latest dream..."}}
108
+ ```bash
109
+ ls -1 .aether/dreams/*.md 2>/dev/null | sort | tail -1 | sed 's/.*\/\([0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}\)-\([0-9]\{4\}\).*/\1 \2/'
110
+ ```
111
+
112
+ Format the timestamp as: YYYY-MM-DD HH:MM
113
+
114
+ {{#claude}}
115
+ ### Step 2.5.5: Colony Depth
116
+
117
+ Run using the Bash tool with description "Reading colony depth...":
118
+ ```bash
119
+ depth_result=$(bash .aether/aether-utils.sh colony-depth get 2>/dev/null || echo '{"ok":true,"result":{"depth":"standard","source":"default"}}')
120
+ colony_depth=$(echo "$depth_result" | jq -r '.result.depth // "standard"')
121
+ depth_source=$(echo "$depth_result" | jq -r '.result.source // "default"')
122
+ echo "colony_depth=$colony_depth"
123
+ echo "depth_source=$depth_source"
124
+ ```
125
+
126
+ Store `colony_depth` and `depth_source` for the dashboard display.
127
+
128
+ Depth label mapping:
129
+ - light -> "Builder only (fastest)"
130
+ - standard -> "Builder + Scout (balanced)"
131
+ - deep -> "Builder + Scout + Oracle (thorough)"
132
+ - full -> "All agents (most thorough)"
133
+
134
+ From state, extract:
135
+ {{/claude}}
136
+
137
+ **Phase info:**
138
+ - Current phase number: `current_phase`
139
+ - Total phases: `plan.phases.length`
140
+ - Phase name: `plan.phases[current_phase - 1].name` (if exists)
141
+
142
+ **Task progress:**
143
+ - If phases exist, count tasks in current phase
144
+ - Completed: tasks with `status: "completed"`
145
+ - Total: all tasks in current phase
146
+
147
+ **Constraints:**
148
+ Read `.aether/data/constraints.json` if exists:
149
+ - Focus count: `focus.length`
150
+ - Constraints count: `constraints.length`
151
+
152
+ **Flags:**
153
+ {{TOOL_PREFIX "Checking for blockers..."}} `bash .aether/aether-utils.sh flag-check-blockers`
154
+ Extract:
155
+ - Blockers count (critical, block advancement)
156
+ - Issues count (high, warnings)
157
+ - Notes count (low, informational)
158
+
159
+ **Escalation state:**
160
+ Count escalated flags by checking for blocker flags with source "escalation":
161
+
162
+ {{TOOL_PREFIX "Checking escalation state..."}}
163
+ ```bash
164
+ escalated_count=$(bash .aether/aether-utils.sh flag-list --type blocker 2>/dev/null | jq '[.result.flags[] | select(.source == "escalation")] | length' 2>/dev/null || echo "0")
165
+ echo "escalated_count=$escalated_count"
166
+ ```
167
+
168
+ **Instincts:**
169
+ From `memory.instincts`:
170
+ - Total count: `instincts.length`
171
+ - High confidence (β‰₯0.7): count where confidence >= 0.7
172
+ - Top 3: sorted by confidence descending
173
+
174
+ **Colony state:**
175
+ - `state` field (IDLE, READY, EXECUTING, PLANNING)
176
+
177
+ **Milestone:**
178
+ - `milestone` field (First Mound, Open Chambers, Brood Stable, Ventilated Nest, Sealed Chambers, Crowned Anthill)
179
+ - `milestone_updated_at` field (timestamp of last milestone change)
180
+
181
+ ### Step 2.6: Detect Milestone
182
+
183
+ {{TOOL_PREFIX "Detecting colony milestone..."}} `bash .aether/aether-utils.sh milestone-detect`
184
+
185
+ Extract from JSON result:
186
+ - `milestone`: Current milestone name
187
+ - `version`: Computed version string
188
+ - `phases_completed`: Number of completed phases
189
+ - `total_phases`: Total phases in plan
190
+
191
+ ### Step 2.8: Load Memory Health Metrics
192
+
193
+ {{TOOL_PREFIX "Loading memory health metrics..."}}
194
+ ```bash
195
+ bash .aether/aether-utils.sh memory-metrics
196
+ ```
197
+
198
+ Extract from JSON result:
199
+ - wisdom.total
200
+ - pending.total
201
+ - recent_failures.count
202
+ - last_activity.queen_md_updated
203
+ - last_activity.learning_captured
204
+
205
+ Format timestamps for display (YYYY-MM-DD HH:MM).
206
+
207
+ ### Step 2.7: Generate Progress Bars
208
+
209
+ Calculate progress metrics and generate visual bars.
210
+
211
+ {{TOOL_PREFIX "Computing phase progress..."}}
212
+ ```bash
213
+ current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
214
+ total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
215
+
216
+ # Calculate task progress in current phase
217
+ if [[ "$current_phase" -gt 0 && "$current_phase" -le "$total_phases" ]]; then
218
+ phase_idx=$((current_phase - 1))
219
+ tasks_completed=$(jq -r ".plan.phases[$phase_idx].tasks // [] | map(select(.status == \"completed\")) | length" .aether/data/COLONY_STATE.json)
220
+ tasks_total=$(jq -r ".plan.phases[$phase_idx].tasks // [] | length" .aether/data/COLONY_STATE.json)
221
+ phase_name=$(jq -r ".plan.phases[$phase_idx].name // \"Unnamed\"" .aether/data/COLONY_STATE.json)
222
+ else
223
+ tasks_completed=0
224
+ tasks_total=0
225
+ phase_name="No plan created"
226
+ fi
227
+
228
+ # Generate progress bars
229
+ phase_bar=$(bash .aether/aether-utils.sh generate-progress-bar "$current_phase" "$total_phases" 20)
230
+ task_bar=$(bash .aether/aether-utils.sh generate-progress-bar "$tasks_completed" "$tasks_total" 20)
231
+
232
+ echo "phase_bar=$phase_bar"
233
+ echo "task_bar=$task_bar"
234
+ echo "phase_name=$phase_name"
235
+ ```
236
+
237
+ Store `phase_bar`, `task_bar`, and `phase_name` values for display in Step 3.
238
+
239
+ ### Step 3: Display
240
+
241
+ Output format:
242
+
243
+ ```
244
+ .-.
245
+ (o o) AETHER COLONY
246
+ | O | Status Report
247
+ `-`
248
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
249
+
250
+ πŸ‘‘ Goal: <goal (truncated to 60 chars)>
251
+
252
+ πŸ“ Progress
253
+ Phase: [β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘] <N>/<M> phases
254
+ Tasks: [β–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–ˆβ–‘β–‘β–‘β–‘] <completed>/<total> tasks in Phase <N>
255
+
256
+ 🎯 Focus: <focus_count> areas | 🚫 Avoid: <constraints_count> patterns
257
+ 🧠 Instincts: <total> learned (<high_confidence> strong)
258
+ 🚩 Flags: <blockers> blockers | <issues> issues | <notes> notes
259
+ {if escalated_count > 0:}
260
+ ⚠️ Escalated: {escalated_count} task(s) awaiting your decision
261
+ {end if}
262
+ πŸ† Milestone: <milestone> (<version>)
263
+ {{#claude}}
264
+ πŸ”¬ Depth: {colony_depth} β€” {label}{if depth_source == "default": " (default)"}
265
+ {{/claude}}
266
+ πŸ’­ Dreams: <dream_count> recorded (latest: <latest_dream>)
267
+ πŸ—ΊοΈ Survey: <survey_docs> docs (<survey_age_days>d old, <fresh|stale|missing>)
268
+
269
+ πŸ“š Memory Health
270
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
271
+ β”‚ Metric β”‚ Count β”‚ Last Updated β”‚
272
+ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
273
+ β”‚ Wisdom Entries β”‚ {wisdom_total:>6} β”‚ {queen_updated} β”‚
274
+ β”‚ Pending Promos β”‚ {pending_total:>6} β”‚ {learning_updated} β”‚
275
+ β”‚ Recent Failures β”‚ {failures_count:>6} β”‚ {last_failure} β”‚
276
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
277
+
278
+ State: <state>
279
+ ```
280
+
281
+ Use the `phase_bar` and `task_bar` values computed in Step 2.7 for the actual bar characters and counts.
282
+
283
+ **If instincts exist, also show top 3:**
284
+ ```
285
+ 🧠 Colony Instincts:
286
+ [0.9] 🐜 testing: Always run tests before completion
287
+ [0.8] 🐜 architecture: Use composition over inheritance
288
+ [0.7] 🐜 debugging: Trace to root cause first
289
+ ```
290
+
291
+ **Dream display:**
292
+ - If no dreams exist: `πŸ’­ Dreams: None recorded`
293
+ - If dreams exist: `πŸ’­ Dreams: <count> recorded (latest: YYYY-MM-DD HH:MM)`
294
+
295
+ **Memory Health display:**
296
+ - If memory-metrics returns empty/null values, show:
297
+ ```
298
+ πŸ“š Memory Health
299
+ No memory data available. Colony wisdom will accumulate as you complete phases.
300
+ ```
301
+
302
+ {{#claude}}
303
+ **Colony Vital Signs:**
304
+ After the Memory Health table, run:
305
+ ```bash
306
+ bash .aether/aether-utils.sh colony-vital-signs
307
+ ```
308
+
309
+ Extract from JSON result:
310
+ - build_velocity.phases_per_day and build_velocity.trend
311
+ - error_rate.errors_per_day and error_rate.status
312
+ - signal_health.active_count and signal_health.status
313
+ - memory_pressure.instinct_count and memory_pressure.status
314
+ - colony_age_hours
315
+ - overall_health (0-100 score)
316
+
317
+ Map overall_health score to a label:
318
+ - 80-100: "Thriving"
319
+ - 60-79: "Healthy"
320
+ - 40-59: "Stable"
321
+ - 20-39: "Struggling"
322
+ - 0-19: "Critical"
323
+
324
+ Display:
325
+ ```
326
+ πŸ’“ Colony Vital Signs
327
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
328
+ β”‚ Vital Sign β”‚ Value β”‚ Status β”‚
329
+ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
330
+ β”‚ Build Velocity β”‚ {phases_per_day}/d β”‚ {trend} β”‚
331
+ β”‚ Error Rate β”‚ {errors_per_day}/d β”‚ {error_status} β”‚
332
+ β”‚ Signal Health β”‚ {active_count} β”‚ {signal_status} β”‚
333
+ β”‚ Memory Pressure β”‚ {instinct_count} β”‚ {memory_status} β”‚
334
+ β”‚ Colony Age β”‚ {colony_age_hours}h β”‚ β”‚
335
+ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
336
+ β”‚ Overall Health β”‚ {overall_health}% β”‚ {health_label} β”‚
337
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
338
+ ```
339
+
340
+ If the command fails or returns no data, display:
341
+ ```
342
+ πŸ’“ Colony Vital Signs: No data available
343
+ ```
344
+ {{/claude}}
345
+
346
+ {{#claude}}
347
+ **Data Safety:**
348
+ After the Colony Vital Signs panel, run:
349
+ ```bash
350
+ bash .aether/aether-utils.sh data-safety-stats
351
+ ```
352
+
353
+ If the result contains non-zero counts, display:
354
+ ```
355
+ πŸ›‘οΈ Data Safety
356
+ Stale locks cleaned: {stale_locks_cleaned}
357
+ JSON validation rejects: {json_validation_rejects}
358
+ ```
359
+
360
+ If all counts are 0 or the subcommand returns no data, display:
361
+ ```
362
+ πŸ›‘οΈ Data Safety: No issues detected
363
+ ```
364
+
365
+ **Pheromone Summary:**
366
+ After the Data Safety section, run:
367
+ ```bash
368
+ bash .aether/aether-utils.sh pheromone-count
369
+ ```
370
+
371
+ Display:
372
+ ```
373
+ 🎯 Active Pheromones
374
+ β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
375
+ β”‚ Type β”‚ Count β”‚ Strongest Signal β”‚
376
+ β”œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”Όβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€
377
+ β”‚ 🎯 FOCUS β”‚ {n} β”‚ {strongest_focus or "none"} β”‚
378
+ β”‚ 🚫 REDIRECTβ”‚ {n} β”‚ {strongest_redirect or "none"} β”‚
379
+ β”‚ πŸ’¬ FEEDBACKβ”‚ {n} β”‚ {strongest_feedback or "none"} β”‚
380
+ β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”΄β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
381
+
382
+ Run /ant:pheromones for full details
383
+ ```
384
+
385
+ If all counts are 0:
386
+ ```
387
+ 🎯 Active Pheromones: None
388
+ Use /ant:focus, /ant:redirect, or /ant:feedback to inject signals
389
+ ```
390
+ {{/claude}}
391
+
392
+ **Edge cases:**
393
+ - No phases yet: show `[β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘] 0/0 phases`
394
+ - No tasks in phase: show `[β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘β–‘] 0/0 tasks in Phase 0`
395
+ - No constraints file: "Constraints: 0 focus, 0 avoid"
396
+
397
+ **At the end of the output, generate the Next Up block:**
398
+
399
+ {{TOOL_PREFIX "Generating next steps..."}}
400
+ ```bash
401
+ state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
402
+ current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
403
+ total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
404
+
405
+ bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_phases"
406
+ ```
407
+
408
+ This auto-generates state-based recommendations (IDLE β†’ init, READY β†’ build, EXECUTING β†’ continue, PLANNING β†’ plan).