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
@@ -1,34 +1,23 @@
1
+ <!-- Generated from .aether/commands/resume-colony.yaml - DO NOT EDIT DIRECTLY -->
1
2
  ---
2
3
  name: ant:resume-colony
3
4
  description: "🚦➡️🐜💨💨 Resume colony from saved session - restores all state"
4
5
  ---
5
6
 
6
- You are the **Queen Ant Colony**. Restore state from a paused session.
7
-
8
- ## Instructions
9
-
10
7
  ### Step -1: Normalize Arguments
11
8
 
12
9
  Run: `normalized_args=$(bash .aether/aether-utils.sh normalize-args "$@")`
13
10
 
14
11
  This ensures arguments work correctly in both Claude Code and OpenCode. Use `$normalized_args` throughout this command.
15
12
 
13
+ You are the **Queen Ant Colony**. Restore state from a paused session.
14
+
15
+ ## Instructions
16
+
16
17
  Parse `$normalized_args`:
17
18
  - If contains `--no-visual`: set `visual_mode = false` (visual is ON by default)
18
19
  - Otherwise: set `visual_mode = true`
19
20
 
20
- ### Step 0: Initialize Visual Mode (if enabled)
21
-
22
- If `visual_mode` is true:
23
- ```bash
24
- # Generate session ID
25
- resume_id="resume-$(date +%s)"
26
-
27
- # Initialize swarm display
28
- bash .aether/aether-utils.sh swarm-display-init "$resume_id"
29
- bash .aether/aether-utils.sh swarm-display-update "Queen" "prime" "excavating" "Resuming colony" "Colony" '{"read":0,"grep":0,"edit":0,"bash":0}' 0 "fungus_garden" 0
30
- ```
31
-
32
21
  ### Step 0.5: Version Check (Non-blocking)
33
22
 
34
23
  Run using the Bash tool: `bash .aether/aether-utils.sh version-check 2>/dev/null || true`
@@ -42,20 +31,43 @@ Run using Bash tool: `bash .aether/aether-utils.sh load-state`
42
31
  If successful:
43
32
  1. Parse state from result
44
33
  2. If goal is null: Show "No colony state found..." message and stop
45
- 3. Check if paused flag is true - if not, note "Colony was not paused, but resuming anyway"
46
- 4. Extract all state fields for display
34
+ 3. If `milestone` == `"Crowned Anthill"`: Show "This colony has been sealed. Start a new colony with `/ant:init \"new goal\"`." and stop
35
+ 4. Check if paused flag is true - if not, note "Colony was not paused, but resuming anyway"
36
+ 5. Extract all state fields for display
47
37
 
48
38
  Keep state loaded (don't unload yet) - we'll need it for the full display.
49
39
 
50
40
  ### Step 2: Compute Active Signals
51
41
 
52
- Read active signals from COLONY_STATE.json `signals` array (already loaded in Step 1).
42
+ Run using the Bash tool:
43
+ ```bash
44
+ bash .aether/aether-utils.sh pheromone-read
45
+ ```
46
+
47
+ Use `.result.signals` as the active signal list (already decay-filtered by runtime logic).
48
+ If empty, treat as "no active pheromones."
53
49
 
54
- Filter signals where:
55
- - `expires_at` is null (permanent signals like INIT), OR
56
- - `expires_at` > current timestamp (not expired)
50
+ ### Step 2.5: Load Survey Context (Advisory)
57
51
 
58
- If `signals` array is empty or all expired, treat as "no active pheromones."
52
+ Run:
53
+ ```bash
54
+ survey_docs=$(ls -1 .aether/data/survey/*.md 2>/dev/null | wc -l | tr -d ' ')
55
+ survey_latest=$(ls -t .aether/data/survey/*.md 2>/dev/null | head -1)
56
+ if [[ -n "$survey_latest" ]]; then
57
+ now_epoch=$(date +%s)
58
+ modified_epoch=$(stat -f %m "$survey_latest" 2>/dev/null || stat -c %Y "$survey_latest" 2>/dev/null || echo 0)
59
+ survey_age_days=$(( (now_epoch - modified_epoch) / 86400 ))
60
+ else
61
+ survey_age_days=-1
62
+ fi
63
+ echo "survey_docs=$survey_docs"
64
+ echo "survey_age_days=$survey_age_days"
65
+ ```
66
+
67
+ Interpretation:
68
+ - `survey_docs == 0` => survey missing
69
+ - `survey_age_days > 14` => survey stale
70
+ - otherwise survey fresh
59
71
 
60
72
  ### Step 3: Display Restored State
61
73
 
@@ -93,18 +105,18 @@ PHASE PROGRESS
93
105
  Phase <id>: <name> [<status>]
94
106
  (list all phases from plan.phases)
95
107
 
108
+ SURVEY CONTEXT
109
+ Docs: <survey_docs>
110
+ Age: <survey_age_days> days
111
+ Status: <fresh|stale|missing>
112
+ Recommendation: <if missing or stale, suggest /ant:colonize --force-resurvey>
113
+
96
114
  CONTEXT FROM HANDOFF
97
115
  <summarize what was happening from .aether/HANDOFF.md>
98
116
 
99
117
  NEXT ACTIONS
100
118
  ```
101
119
 
102
- **If visual_mode is true, render final swarm display:**
103
- ```bash
104
- bash .aether/aether-utils.sh swarm-display-update "Queen" "prime" "completed" "Colony resumed" "Colony" '{"read":3,"grep":0,"edit":2,"bash":1}' 100 "fungus_garden" 100
105
- bash .aether/aether-utils.sh swarm-display-render "$resume_id"
106
- ```
107
-
108
120
  Route to next action based on state:
109
121
  - If state is `READY` and there's a pending phase -> suggest `/ant:build <phase>`
110
122
  - If state is `EXECUTING` -> note that a build was interrupted, suggest restarting with `/ant:build <phase>`
@@ -1,8 +1,15 @@
1
+ <!-- Generated from .aether/commands/resume.yaml - DO NOT EDIT DIRECTLY -->
1
2
  ---
2
3
  name: ant:resume
3
4
  description: "Resume Previous Session"
4
5
  ---
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
+
6
13
  # /ant:resume — Resume Previous Session
7
14
 
8
15
  Resume work after `/clear` or in a new session. Reads colony state, detects codebase drift, and gives you a clear "do this next" recommendation.
@@ -23,7 +30,7 @@ Execute the following steps in order when the user runs `/ant:resume`.
23
30
 
24
31
  ### Step 1: Read Session State
25
32
 
26
- Run using the Bash tool with description "Restoring colony session...":
33
+ Run::
27
34
  ```bash
28
35
  bash .aether/aether-utils.sh session-read
29
36
  ```
@@ -33,14 +40,16 @@ Parse the JSON result.
33
40
  - If `exists` is `false`: display the following and **stop**:
34
41
 
35
42
  ```
36
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
43
+
44
+ ═══════════════════════════════════════════════════
37
45
  RESUME SESSION
38
46
 
39
47
  No previous session found.
40
48
 
41
49
  Start fresh: /ant:init "your goal"
42
50
  Or check: /ant:status
43
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
51
+
52
+ ═══════════════════════════════════════════════════
44
53
  ```
45
54
 
46
55
  - If `exists` is `true`: extract from the session data:
@@ -59,6 +68,7 @@ Use the Read tool to read `.aether/data/COLONY_STATE.json`.
59
68
 
60
69
  COLONY_STATE.json is the authoritative source for goal and state (session.json may be stale). Extract:
61
70
  - `goal` (use this as authoritative, overriding session.json colony_goal)
71
+ - `milestone` (check for sealed colony)
62
72
  - `state` (READY, PLANNING, EXECUTING, PAUSED)
63
73
  - `current_phase`
64
74
  - `plan.phases` (array with id, name, status for each phase)
@@ -66,6 +76,14 @@ COLONY_STATE.json is the authoritative source for goal and state (session.json m
66
76
  - `memory.decisions` (flat list — do NOT distinguish user vs Claude origin)
67
77
  - `events` (last 5 for recent activity context)
68
78
 
79
+ **If `milestone` == `"Crowned Anthill"`:** This colony has been sealed. Display:
80
+ ```
81
+ This colony has been sealed (Crowned Anthill).
82
+
83
+ Start a new colony with /ant:init "new goal"
84
+ ```
85
+ Stop here — do NOT display stale phase data from the sealed colony.
86
+
69
87
  If the file is missing or the JSON cannot be parsed, **stop immediately** and display:
70
88
 
71
89
  ```
@@ -84,15 +102,21 @@ Do NOT proceed with stale or fabricated data.
84
102
 
85
103
  ### Step 3: Read Pheromone Signals
86
104
 
87
- Use the Read tool to read `.aether/data/constraints.json`.
88
105
 
89
- Extract the following top-level keys:
90
- - `focus` array — active focus signals (if key missing, treat as empty array)
91
- - `constraints` array — active redirect/constraint signals (if key missing, treat as empty array)
92
106
 
93
- If the file is missing: skip silently (no pheromones active).
107
+ Run::
108
+ ```bash
109
+ bash .aether/aether-utils.sh pheromone-read all
110
+ ```
111
+
112
+ Parse the JSON result. Extract `.result.signals` array.
113
+
114
+ - If `ok` is `true` and `.result.signals` is non-empty: store signals for dashboard rendering in Step 8
115
+ - If `ok` is `true` and `.result.signals` is empty: no active pheromones (skip in dashboard)
116
+ - If the command fails or returns an error: skip silently (no pheromones active)
117
+
118
+ 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.
94
119
 
95
- Pheromones persist until explicitly cleared — no decay.
96
120
 
97
121
  ---
98
122
 
@@ -236,7 +260,8 @@ Stop here — do not continue to Step 8 or render the dashboard.
236
260
  Lead with the next-step recommendation. Context follows underneath ("straight to action" ordering).
237
261
 
238
262
  ```
239
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
263
+
264
+ ═══════════════════════════════════════════════════
240
265
  RESUME SESSION
241
266
 
242
267
  Next: {recommended}
@@ -272,15 +297,44 @@ Recent Decisions:
272
297
  {end}
273
298
  {end}
274
299
 
275
- {if focus array or constraints array is not empty:}
300
+ {if signals array from Step 3 is not empty:}
276
301
  Active Signals:
277
- {for each focus signal:}
278
- FOCUS: {focus text}
279
- {end}
280
- {for each constraint signal:}
281
- REDIRECT: {constraint text}
302
+
303
+
304
+ {for each signal in signals:}
305
+ {signal.type}: "{signal.content}" [{signal.effective_strength * 100 | floor}%]
282
306
  {end}
307
+
283
308
  {end}
309
+ ```
310
+
311
+ ---
312
+
313
+ ### Step 8.5: Display Memory Health (Secondary)
314
+
315
+ Run::
316
+ ```bash
317
+ bash .aether/aether-utils.sh resume-dashboard
318
+ ```
319
+
320
+ Extract memory_health from the JSON result:
321
+ - wisdom_count
322
+ - pending_promotions
323
+ - recent_failures
324
+
325
+ Display after the main dashboard:
326
+ ```
327
+ 📊 Memory Health
328
+ Wisdom: {wisdom_count} entries | Pending: {pending_promotions} promotions | Failures: {recent_failures} recent
329
+
330
+ Run /ant:memory-details for full breakdown
331
+ ```
332
+
333
+ If all counts are 0, show:
334
+ ```
335
+ 📊 Memory Health
336
+ No accumulated wisdom yet. Complete phases to build colony memory.
337
+ ```
284
338
 
285
339
  Last Command: {last_command}
286
340
  Session: {session_id}
@@ -290,14 +344,14 @@ Session: {session_id}
290
344
 
291
345
  ### Step 9: Mark Session Resumed
292
346
 
293
- Run using the Bash tool with description "Marking session as resumed...":
347
+ Run::
294
348
  ```bash
295
349
  bash .aether/aether-utils.sh session-mark-resumed
296
350
  ```
297
351
 
298
352
  ### Step 10: Next Up
299
353
 
300
- Generate the state-based Next Up block by running using the Bash tool with description "Generating Next Up suggestions...":
354
+ Generate the state-based Next Up block by Run::
301
355
  ```bash
302
356
  state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
303
357
  current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
@@ -313,7 +367,10 @@ bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_pha
313
367
  |-----------|----------|
314
368
  | session.json missing (exists=false) | "No previous session found" — offer /ant:init and /ant:status |
315
369
  | COLONY_STATE.json missing or corrupted | Pause, ask user: start fresh or recover |
316
- | constraints.json missing | Skip silently (no pheromones) |
370
+
371
+
372
+ | pheromone-read fails | Skip silently (no pheromones) |
373
+
317
374
  | CONTEXT.md missing | Fall back to COLONY_STATE.json narrative |
318
375
  | No plan phases, no generated_at | BLOCK — redirect to /ant:plan |
319
376
  | Plan attempted but no phases | BLOCK — redirect to /ant:plan |
@@ -325,7 +382,10 @@ bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_pha
325
382
 
326
383
  ## Key Constraints
327
384
 
328
- - Use Read tool for COLONY_STATE.json and constraints.json (not bash cat/jq)
385
+
386
+
387
+ - Use Read tool for COLONY_STATE.json (not bash cat/jq). Use Bash tool for pheromone-read (applies decay calculation).
388
+
329
389
  - Use Bash tool only for aether-utils.sh commands and git commands
330
390
  - Handle ALL missing/corrupted file cases gracefully
331
391
  - Time-agnostic: restore identically regardless of how long ago the session was
@@ -0,0 +1,237 @@
1
+ <!-- Generated from .aether/commands/run.yaml - DO NOT EDIT DIRECTLY -->
2
+ ---
3
+ name: ant:run
4
+ description: "🤖🐜🔄🐜🤖 Autopilot — builds, verifies, learns, and advances through phases automatically with smart pausing"
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**. Execute `/ant:run` — the adaptive autopilot loop.
14
+
15
+ The arguments are: `$normalized_args`
16
+
17
+ ## Purpose
18
+
19
+ This command automates the build-continue-advance cycle across multiple phases.
20
+ It reads and executes the same playbooks used by `/ant:build` and `/ant:continue`,
21
+ chaining them in a loop with intelligent pause conditions.
22
+
23
+ ## Rules
24
+
25
+ 1. Do **not** invoke nested slash commands (`/ant:build`, `/ant:continue`, etc.).
26
+ 2. Use the Read tool to load each playbook file, then execute it inline.
27
+ 3. Preserve variables/results from prior stages and pass them forward.
28
+ 4. Stop immediately on any pause condition (defined below).
29
+ 5. Keep existing behavior and output format from the playbooks.
30
+ 6. Log `autopilot_advance` events after each successful phase transition.
31
+
32
+ ## Arguments
33
+
34
+ Parse `$normalized_args` for:
35
+ - `--max-phases N` — Max phases to process (default: all remaining)
36
+ - `--replan-interval N` — Pause for replan suggestion every N phases (default: 2)
37
+ - `--continue` — Resume after a replan pause without replanning
38
+ - `--dry-run` — Preview plan without executing
39
+ - `--headless` — Run without interactive prompts; queue decisions for later review
40
+ - `--verbose` / `-v`, `--no-visual`, `--no-suggest` — Pass through to playbooks
41
+
42
+ ```
43
+ /ant:run Run all remaining phases
44
+ /ant:run --max-phases 2 Run at most 2 phases then stop
45
+ /ant:run --replan-interval 3 Suggest replan every 3 phases instead of 2
46
+ /ant:run --continue Resume after replan pause without replanning
47
+ /ant:run --dry-run Preview the autopilot plan
48
+ /ant:run --headless Run all phases without interactive prompts
49
+ /ant:run --max-phases 3 -v Run 3 phases with verbose output
50
+ ```
51
+
52
+ ## Dry Run Mode
53
+
54
+ If `--dry-run`: read COLONY_STATE.json, list remaining incomplete phases
55
+ (applying `--max-phases` cap), display the plan, then stop without executing.
56
+
57
+ ```
58
+ ━━━ A U T O P I L O T P R E V I E W ━━━
59
+ Goal: {goal} | Current: Phase {N} | Remaining: {count} | Max: {max or "all"}
60
+
61
+ Phase {id}: {name} ({task_count} tasks) -> build -> continue -> advance
62
+ ...
63
+
64
+ Pause triggers: test failures, critical Chaos findings, new blockers,
65
+ security gate failures, quality gate failures, runtime verification needed,
66
+ replan suggestion (every {replan_interval} phases)
67
+ ```
68
+
69
+ ## Autopilot Loop
70
+
71
+ ### Step 0: Initialize
72
+
73
+ 1. Read `.aether/data/COLONY_STATE.json`; validate goal + plan.phases exist
74
+ - If `milestone` == `"Crowned Anthill"`: output "This colony has been sealed. Start a new colony with `/ant:init \"new goal\"`." and stop
75
+ 2. Determine remaining incomplete phases; apply `--max-phases` cap
76
+ 3. Set `phases_completed = 0`, `autopilot_start = $(date +%s)`
77
+ 4. Record pre-build blocker count: `bash .aether/aether-utils.sh flag-check-blockers {phase}`
78
+ 5. If `--headless` flag is present:
79
+ - Run: `bash .aether/aether-utils.sh autopilot-set-headless true`
80
+ - Display: `Headless mode: ON — interactive prompts will be queued as pending decisions`
81
+ 6. Display: `AUTOPILOT ENGAGED | Goal: {goal} | Phase {N} | Max: {max or "all"}`
82
+
83
+ ### Step 1: Build Phase
84
+
85
+ Execute build playbooks in order, carrying cross-stage state
86
+ (`phase_id`, `visual_mode`, `verbose_mode`, `suggest_enabled`,
87
+ `prompt_section`, `wave_results`,
88
+ `verification_status`, `synthesis_status`, `next_action`):
89
+
90
+ 1. `.aether/docs/command-playbooks/build-prep.md`
91
+ 2. `.aether/docs/command-playbooks/build-context.md`
92
+ 3. `.aether/docs/command-playbooks/build-wave.md`
93
+ 4. `.aether/docs/command-playbooks/build-verify.md`
94
+ 5. `.aether/docs/command-playbooks/build-complete.md`
95
+
96
+ Capture the synthesis result for pause evaluation.
97
+
98
+ ### Step 2: Build Pause Check
99
+
100
+ **PAUSE if ANY of these are true** (display reason, log event, STOP):
101
+
102
+ | # | Condition | Source |
103
+ |---|-----------|--------|
104
+ | 1 | Watcher `verification_passed == false` | build-verify synthesis |
105
+ | 2 | Any Chaos finding severity `critical` or `high` | build-verify synthesis |
106
+ | 3 | New blocker flags created (count increased since Step 0.4) | flag-check-blockers |
107
+
108
+ On pause, display the AUTOPILOT PAUSED banner with reason, affected phase,
109
+ specific issues, and instruction: "Fix issues, then run /ant:run to resume."
110
+ Log: `"<timestamp>|autopilot_paused|run|Paused at Phase {id}: {reason}"`
111
+
112
+ **Headless override for visual checkpoints:** If headless mode is active and a
113
+ visual checkpoint prompt would normally be shown to the user, instead queue it as
114
+ a pending decision:
115
+ ```bash
116
+ bash .aether/aether-utils.sh pending-decision-add \
117
+ --title "Visual checkpoint: Phase {id}" \
118
+ --type "checkpoint" \
119
+ --description "{checkpoint_description}" \
120
+ --phase "{id}" \
121
+ --source "build-pause-check"
122
+ ```
123
+ Then continue without pausing.
124
+
125
+ **If no pause:** proceed to Step 3.
126
+
127
+ ### Step 3: Continue (Verify + Advance)
128
+
129
+ Execute continue playbooks in order, carrying cross-stage state
130
+ (`visual_mode`, `state`, `current_phase`, `verification_results`,
131
+ `gate_results`, `advancement_result`, `next_phase_id`, `completion_state`):
132
+
133
+ 1. `.aether/docs/command-playbooks/continue-verify.md`
134
+ 2. `.aether/docs/command-playbooks/continue-gates.md`
135
+ 3. `.aether/docs/command-playbooks/continue-advance.md`
136
+ 4. `.aether/docs/command-playbooks/continue-finalize.md`
137
+
138
+ **Autopilot override for runtime verification (Step 1.11 in continue-gates):**
139
+ Skip the AskUserQuestion prompt. Instead, auto-PAUSE with reason
140
+ "Runtime verification required" so the user can test manually before resuming.
141
+
142
+ **Headless override for runtime verification:** If headless mode is active and
143
+ runtime verification would normally pause, queue as a pending decision instead:
144
+ ```bash
145
+ bash .aether/aether-utils.sh pending-decision-add \
146
+ --title "Runtime verification needed: Phase {id}" \
147
+ --type "runtime-verification" \
148
+ --description "Manual testing required before advancing past Phase {id}" \
149
+ --phase "{id}" \
150
+ --source "continue-gates"
151
+ ```
152
+ Then continue without pausing.
153
+
154
+ ### Step 4: Continue Pause Check
155
+
156
+ **PAUSE if ANY of these are true:**
157
+
158
+ | # | Condition | Source |
159
+ |---|-----------|--------|
160
+ | 4 | Verification loop reported NOT READY | continue-verify |
161
+ | 5 | Gatekeeper found critical CVEs | continue-gates |
162
+ | 6 | Auditor critical findings or score < 60 | continue-gates |
163
+ | 7 | Unresolved blocker flags remain | continue-gates |
164
+ | 8 | Runtime verification needed | continue-gates Step 1.11 |
165
+ | 9 | All phases complete (no next phase) | continue-advance |
166
+ | 10 | Replan trigger fires (unless `--continue`) | autopilot-check-replan (Step 5.5) |
167
+
168
+ For condition 9: jump to Step 6 (celebration). For condition 10: PAUSE with
169
+ replan suggestion (see Step 5.5). For all others: PAUSE with reason, log event, STOP.
170
+
171
+ **If no pause:** proceed to Step 5.
172
+
173
+ ### Step 5: Auto-Advance and Loop
174
+
175
+ 1. Increment `phases_completed`
176
+ 2. Update autopilot state: `bash .aether/aether-utils.sh autopilot-update --action advance --phase {next} --result success`
177
+ 3. Log: `"<timestamp>|autopilot_advance|run|Phase {prev} -> {next} ({phases_completed}/{max})"`
178
+ 4. Display: `--- Autopilot: Phase {prev} done -> Phase {next} ({N}/{max}) ---`
179
+ 5. **Replan check** (see Step 5.5)
180
+ 6. If `phases_completed >= max_phases` or no incomplete phases: go to Step 6
181
+ 7. Otherwise: update `current_phase`, return to Step 1
182
+
183
+ ### Step 5.5: Replan Trigger Check
184
+
185
+ After each successful phase advance, check if a replan pause should fire:
186
+
187
+ ```bash
188
+ bash .aether/aether-utils.sh autopilot-check-replan --interval {replan_interval}
189
+ ```
190
+
191
+ If `--continue` flag was passed: skip this check entirely (user dismissed replan).
192
+
193
+ If `result.should_replan == true`: **PAUSE** with replan suggestion banner:
194
+
195
+ ```
196
+ ━━━ R E P L A N S U G G E S T E D ━━━
197
+ Phases auto-completed: {N} | Learnings accumulated: {learnings_since_last}
198
+
199
+ The colony has completed {N} phases since the last plan review.
200
+ New learnings may have changed the optimal path forward.
201
+
202
+ Options:
203
+ /ant:plan Regenerate phases with current learnings
204
+ /ant:run --continue Dismiss and continue without replanning
205
+ ```
206
+
207
+ Log: `"<timestamp>|autopilot_replan_pause|run|Replan suggested after {N} phases ({learnings} learnings)"`
208
+
209
+ If `result.should_replan == false`: proceed normally (no pause).
210
+
211
+ ### Step 6: Final Summary
212
+
213
+ ```
214
+ ━━━ A U T O P I L O T C O M P L E T E ━━━
215
+ Phases completed: {N} | Elapsed: {Xm Ys} | Now at: Phase {current}
216
+
217
+ {all complete} -> Colony goal achieved! Run /ant:seal
218
+ {max reached} -> Run /ant:run to continue
219
+ {replan} -> Run /ant:plan to replan, or /ant:run --continue to dismiss
220
+ {paused} -> Fix {reason}, then /ant:run to resume
221
+ ```
222
+
223
+ If headless mode was active and pending decisions were queued, display:
224
+ ```
225
+ Pending decisions: {N} — run `pending-decision-list` to review
226
+ ```
227
+
228
+ Update session:
229
+ `bash .aether/aether-utils.sh session-update "/ant:run" "/ant:run" "Autopilot: {N} phases, now Phase {current}"`
230
+
231
+ ## Execution Contract
232
+
233
+ For each playbook stage: Read file, execute inline, track `{stage_name, status, key_outputs}`.
234
+ If `status == failed`: evaluate pause conditions. Pause = graceful stop with saved state.
235
+ Hard failure (e.g., state corruption) = halt immediately, no recovery attempt.
236
+
237
+ On every pause: save COLONY_STATE.json, log event, update session, display resume instructions.