aether-colony 5.0.0 → 5.1.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 (312) hide show
  1. package/.aether/aether-utils.sh +3150 -3349
  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 +438 -0
  30. package/.aether/commands/continue.yaml +1484 -0
  31. package/.aether/commands/council.yaml +304 -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 +469 -0
  44. package/.aether/commands/insert-phase.yaml +98 -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 +1313 -0
  57. package/.aether/commands/preferences.yaml +63 -0
  58. package/.aether/commands/redirect.yaml +123 -0
  59. package/.aether/commands/resume-colony.yaml +373 -0
  60. package/.aether/commands/resume.yaml +398 -0
  61. package/.aether/commands/run.yaml +193 -0
  62. package/.aether/commands/seal.yaml +1205 -0
  63. package/.aether/commands/skill-create.yaml +337 -0
  64. package/.aether/commands/status.yaml +364 -0
  65. package/.aether/commands/swarm.yaml +352 -0
  66. package/.aether/commands/tunnels.yaml +814 -0
  67. package/.aether/commands/update.yaml +131 -0
  68. package/.aether/commands/verify-castes.yaml +159 -0
  69. package/.aether/commands/watch.yaml +454 -0
  70. package/.aether/docs/INCIDENT_TEMPLATE.md +32 -0
  71. package/.aether/docs/QUEEN-SYSTEM.md +11 -11
  72. package/.aether/docs/README.md +32 -2
  73. package/.aether/docs/command-playbooks/README.md +23 -0
  74. package/.aether/docs/command-playbooks/build-complete.md +349 -0
  75. package/.aether/docs/command-playbooks/build-context.md +282 -0
  76. package/.aether/docs/command-playbooks/build-full.md +1682 -0
  77. package/.aether/docs/command-playbooks/build-prep.md +283 -0
  78. package/.aether/docs/command-playbooks/build-verify.md +405 -0
  79. package/.aether/docs/command-playbooks/build-wave.md +749 -0
  80. package/.aether/docs/command-playbooks/continue-advance.md +524 -0
  81. package/.aether/docs/command-playbooks/continue-finalize.md +447 -0
  82. package/.aether/docs/command-playbooks/continue-full.md +1724 -0
  83. package/.aether/docs/command-playbooks/continue-gates.md +686 -0
  84. package/.aether/docs/command-playbooks/continue-verify.md +406 -0
  85. package/.aether/docs/context-continuity.md +84 -0
  86. package/.aether/docs/disciplines/DISCIPLINES.md +9 -7
  87. package/.aether/docs/error-codes.md +1 -1
  88. package/.aether/docs/known-issues.md +34 -173
  89. package/.aether/docs/pheromones.md +86 -6
  90. package/.aether/docs/plans/pheromone-display-plan.md +257 -0
  91. package/.aether/docs/queen-commands.md +10 -9
  92. package/.aether/docs/source-of-truth-map.md +132 -0
  93. package/.aether/docs/xml-utilities.md +47 -0
  94. package/.aether/rules/aether-colony.md +23 -13
  95. package/.aether/scripts/incident-test-add.sh +47 -0
  96. package/.aether/scripts/weekly-audit.sh +79 -0
  97. package/.aether/skills/.index.json +649 -0
  98. package/.aether/skills/colony/.manifest.json +16 -0
  99. package/.aether/skills/colony/build-discipline/SKILL.md +78 -0
  100. package/.aether/skills/colony/colony-interaction/SKILL.md +56 -0
  101. package/.aether/skills/colony/colony-lifecycle/SKILL.md +77 -0
  102. package/.aether/skills/colony/colony-visuals/SKILL.md +112 -0
  103. package/.aether/skills/colony/context-management/SKILL.md +80 -0
  104. package/.aether/skills/colony/error-presentation/SKILL.md +99 -0
  105. package/.aether/skills/colony/pheromone-protocol/SKILL.md +79 -0
  106. package/.aether/skills/colony/pheromone-visibility/SKILL.md +81 -0
  107. package/.aether/skills/colony/state-safety/SKILL.md +84 -0
  108. package/.aether/skills/colony/worker-priming/SKILL.md +82 -0
  109. package/.aether/skills/domain/.manifest.json +24 -0
  110. package/.aether/skills/domain/README.md +33 -0
  111. package/.aether/skills/domain/django/SKILL.md +49 -0
  112. package/.aether/skills/domain/docker/SKILL.md +52 -0
  113. package/.aether/skills/domain/golang/SKILL.md +52 -0
  114. package/.aether/skills/domain/graphql/SKILL.md +51 -0
  115. package/.aether/skills/domain/html-css/SKILL.md +48 -0
  116. package/.aether/skills/domain/nextjs/SKILL.md +45 -0
  117. package/.aether/skills/domain/nodejs/SKILL.md +53 -0
  118. package/.aether/skills/domain/postgresql/SKILL.md +53 -0
  119. package/.aether/skills/domain/prisma/SKILL.md +59 -0
  120. package/.aether/skills/domain/python/SKILL.md +50 -0
  121. package/.aether/skills/domain/rails/SKILL.md +52 -0
  122. package/.aether/skills/domain/react/SKILL.md +45 -0
  123. package/.aether/skills/domain/rest-api/SKILL.md +58 -0
  124. package/.aether/skills/domain/svelte/SKILL.md +47 -0
  125. package/.aether/skills/domain/tailwind/SKILL.md +45 -0
  126. package/.aether/skills/domain/testing/SKILL.md +53 -0
  127. package/.aether/skills/domain/typescript/SKILL.md +58 -0
  128. package/.aether/skills/domain/vue/SKILL.md +49 -0
  129. package/.aether/templates/QUEEN.md.template +23 -41
  130. package/.aether/templates/colony-state-reset.jq.template +1 -0
  131. package/.aether/templates/colony-state.template.json +4 -0
  132. package/.aether/templates/learning-observations.template.json +6 -0
  133. package/.aether/templates/midden.template.json +13 -0
  134. package/.aether/templates/pheromones.template.json +6 -0
  135. package/.aether/templates/session.template.json +9 -0
  136. package/.aether/utils/atomic-write.sh +63 -17
  137. package/.aether/utils/chamber-utils.sh +145 -2
  138. package/.aether/utils/emoji-audit.sh +166 -0
  139. package/.aether/utils/error-handler.sh +21 -7
  140. package/.aether/utils/file-lock.sh +182 -27
  141. package/.aether/utils/flag.sh +267 -0
  142. package/.aether/utils/hive.sh +572 -0
  143. package/.aether/utils/learning.sh +1928 -0
  144. package/.aether/utils/midden.sh +342 -0
  145. package/.aether/utils/oracle/oracle.md +168 -0
  146. package/.aether/utils/oracle/oracle.sh +1023 -0
  147. package/.aether/utils/pheromone.sh +2029 -0
  148. package/.aether/utils/queen.sh +1698 -0
  149. package/.aether/utils/scan.sh +860 -0
  150. package/.aether/utils/semantic-cli.sh +10 -8
  151. package/.aether/utils/session.sh +552 -0
  152. package/.aether/utils/skills.sh +509 -0
  153. package/.aether/utils/spawn-tree.sh +103 -271
  154. package/.aether/utils/spawn.sh +260 -0
  155. package/.aether/utils/state-api.sh +199 -0
  156. package/.aether/utils/state-loader.sh +8 -6
  157. package/.aether/utils/suggest.sh +611 -0
  158. package/.aether/utils/swarm-display.sh +10 -1
  159. package/.aether/utils/swarm.sh +1004 -0
  160. package/.aether/utils/watch-spawn-tree.sh +11 -2
  161. package/.aether/utils/xml-compose.sh +2 -2
  162. package/.aether/utils/xml-convert.sh +9 -5
  163. package/.aether/utils/xml-core.sh +5 -9
  164. package/.aether/utils/xml-query.sh +4 -4
  165. package/.aether/workers.md +86 -67
  166. package/.claude/agents/ant/aether-ambassador.md +2 -1
  167. package/.claude/agents/ant/aether-archaeologist.md +6 -1
  168. package/.claude/agents/ant/aether-architect.md +236 -0
  169. package/.claude/agents/ant/aether-auditor.md +6 -1
  170. package/.claude/agents/ant/aether-builder.md +38 -1
  171. package/.claude/agents/ant/aether-chaos.md +2 -1
  172. package/.claude/agents/ant/aether-chronicler.md +1 -0
  173. package/.claude/agents/ant/aether-gatekeeper.md +6 -1
  174. package/.claude/agents/ant/aether-includer.md +1 -0
  175. package/.claude/agents/ant/aether-keeper.md +1 -0
  176. package/.claude/agents/ant/aether-measurer.md +6 -1
  177. package/.claude/agents/ant/aether-oracle.md +237 -0
  178. package/.claude/agents/ant/aether-probe.md +2 -1
  179. package/.claude/agents/ant/aether-queen.md +6 -1
  180. package/.claude/agents/ant/aether-route-setter.md +6 -1
  181. package/.claude/agents/ant/aether-sage.md +68 -3
  182. package/.claude/agents/ant/aether-scout.md +38 -1
  183. package/.claude/agents/ant/aether-surveyor-disciplines.md +2 -1
  184. package/.claude/agents/ant/aether-surveyor-nest.md +2 -1
  185. package/.claude/agents/ant/aether-surveyor-pathogens.md +2 -1
  186. package/.claude/agents/ant/aether-surveyor-provisions.md +2 -1
  187. package/.claude/agents/ant/aether-tracker.md +6 -1
  188. package/.claude/agents/ant/aether-watcher.md +37 -1
  189. package/.claude/agents/ant/aether-weaver.md +2 -1
  190. package/.claude/commands/ant/archaeology.md +1 -8
  191. package/.claude/commands/ant/build.md +43 -1159
  192. package/.claude/commands/ant/chaos.md +1 -14
  193. package/.claude/commands/ant/colonize.md +1 -14
  194. package/.claude/commands/ant/continue.md +40 -1026
  195. package/.claude/commands/ant/council.md +9 -16
  196. package/.claude/commands/ant/data-clean.md +81 -0
  197. package/.claude/commands/ant/dream.md +12 -9
  198. package/.claude/commands/ant/entomb.md +62 -87
  199. package/.claude/commands/ant/export-signals.md +57 -0
  200. package/.claude/commands/ant/feedback.md +18 -0
  201. package/.claude/commands/ant/flag.md +12 -0
  202. package/.claude/commands/ant/flags.md +22 -8
  203. package/.claude/commands/ant/focus.md +18 -0
  204. package/.claude/commands/ant/help.md +40 -8
  205. package/.claude/commands/ant/history.md +3 -0
  206. package/.claude/commands/ant/import-signals.md +71 -0
  207. package/.claude/commands/ant/init.md +316 -191
  208. package/.claude/commands/ant/insert-phase.md +101 -0
  209. package/.claude/commands/ant/interpret.md +11 -0
  210. package/.claude/commands/ant/lay-eggs.md +167 -158
  211. package/.claude/commands/ant/maturity.md +22 -11
  212. package/.claude/commands/ant/memory-details.md +77 -0
  213. package/.claude/commands/ant/migrate-state.md +6 -0
  214. package/.claude/commands/ant/oracle.md +317 -62
  215. package/.claude/commands/ant/organize.md +10 -5
  216. package/.claude/commands/ant/patrol.md +620 -0
  217. package/.claude/commands/ant/pause-colony.md +8 -22
  218. package/.claude/commands/ant/phase.md +26 -37
  219. package/.claude/commands/ant/pheromones.md +156 -0
  220. package/.claude/commands/ant/plan.md +175 -52
  221. package/.claude/commands/ant/preferences.md +65 -0
  222. package/.claude/commands/ant/redirect.md +18 -0
  223. package/.claude/commands/ant/resume-colony.md +34 -20
  224. package/.claude/commands/ant/resume.md +51 -7
  225. package/.claude/commands/ant/run.md +195 -0
  226. package/.claude/commands/ant/seal.md +497 -78
  227. package/.claude/commands/ant/skill-create.md +286 -0
  228. package/.claude/commands/ant/status.md +127 -1
  229. package/.claude/commands/ant/swarm.md +11 -23
  230. package/.claude/commands/ant/tunnels.md +1 -0
  231. package/.claude/commands/ant/update.md +58 -135
  232. package/.claude/commands/ant/verify-castes.md +90 -42
  233. package/.claude/commands/ant/watch.md +1 -0
  234. package/.opencode/agents/aether-ambassador.md +1 -1
  235. package/.opencode/agents/aether-architect.md +133 -0
  236. package/.opencode/agents/aether-builder.md +3 -3
  237. package/.opencode/agents/aether-oracle.md +137 -0
  238. package/.opencode/agents/aether-queen.md +1 -1
  239. package/.opencode/agents/aether-route-setter.md +1 -1
  240. package/.opencode/agents/aether-scout.md +1 -1
  241. package/.opencode/agents/aether-surveyor-disciplines.md +6 -1
  242. package/.opencode/agents/aether-surveyor-nest.md +6 -1
  243. package/.opencode/agents/aether-surveyor-pathogens.md +6 -1
  244. package/.opencode/agents/aether-surveyor-provisions.md +6 -1
  245. package/.opencode/agents/aether-tracker.md +1 -1
  246. package/.opencode/agents/aether-watcher.md +1 -1
  247. package/.opencode/agents/aether-weaver.md +1 -1
  248. package/.opencode/commands/ant/archaeology.md +7 -14
  249. package/.opencode/commands/ant/build.md +54 -88
  250. package/.opencode/commands/ant/chaos.md +7 -24
  251. package/.opencode/commands/ant/colonize.md +8 -17
  252. package/.opencode/commands/ant/continue.md +595 -66
  253. package/.opencode/commands/ant/council.md +11 -22
  254. package/.opencode/commands/ant/data-clean.md +77 -0
  255. package/.opencode/commands/ant/dream.md +15 -17
  256. package/.opencode/commands/ant/entomb.md +28 -18
  257. package/.opencode/commands/ant/export-signals.md +54 -0
  258. package/.opencode/commands/ant/feedback.md +24 -5
  259. package/.opencode/commands/ant/flag.md +16 -4
  260. package/.opencode/commands/ant/flags.md +24 -10
  261. package/.opencode/commands/ant/focus.md +22 -5
  262. package/.opencode/commands/ant/help.md +41 -8
  263. package/.opencode/commands/ant/history.md +9 -0
  264. package/.opencode/commands/ant/import-signals.md +68 -0
  265. package/.opencode/commands/ant/init.md +365 -156
  266. package/.opencode/commands/ant/insert-phase.md +107 -0
  267. package/.opencode/commands/ant/interpret.md +16 -0
  268. package/.opencode/commands/ant/lay-eggs.md +184 -112
  269. package/.opencode/commands/ant/maturity.md +18 -2
  270. package/.opencode/commands/ant/memory-details.md +83 -0
  271. package/.opencode/commands/ant/migrate-state.md +12 -0
  272. package/.opencode/commands/ant/oracle.md +322 -67
  273. package/.opencode/commands/ant/organize.md +14 -12
  274. package/.opencode/commands/ant/patrol.md +626 -0
  275. package/.opencode/commands/ant/pause-colony.md +12 -29
  276. package/.opencode/commands/ant/phase.md +30 -40
  277. package/.opencode/commands/ant/pheromones.md +162 -0
  278. package/.opencode/commands/ant/plan.md +184 -56
  279. package/.opencode/commands/ant/preferences.md +71 -0
  280. package/.opencode/commands/ant/redirect.md +22 -5
  281. package/.opencode/commands/ant/resume-colony.md +38 -27
  282. package/.opencode/commands/ant/resume.md +71 -20
  283. package/.opencode/commands/ant/run.md +201 -0
  284. package/.opencode/commands/ant/seal.md +230 -25
  285. package/.opencode/commands/ant/skill-create.md +63 -0
  286. package/.opencode/commands/ant/status.md +124 -31
  287. package/.opencode/commands/ant/swarm.md +3 -345
  288. package/.opencode/commands/ant/tunnels.md +3 -9
  289. package/.opencode/commands/ant/update.md +63 -127
  290. package/.opencode/commands/ant/verify-castes.md +96 -42
  291. package/.opencode/commands/ant/watch.md +7 -0
  292. package/CHANGELOG.md +278 -1
  293. package/README.md +188 -340
  294. package/bin/cli.js +236 -429
  295. package/bin/generate-commands.js +186 -0
  296. package/bin/generate-commands.sh +128 -89
  297. package/bin/lib/spawn-logger.js +0 -15
  298. package/bin/lib/update-transaction.js +285 -35
  299. package/bin/npx-install.js +178 -0
  300. package/bin/validate-package.sh +85 -3
  301. package/package.json +7 -3
  302. package/.aether/CONTEXT.md +0 -160
  303. package/.aether/docs/QUEEN.md +0 -84
  304. package/.aether/exchange/colony-registry.xml +0 -11
  305. package/.aether/exchange/pheromones.xml +0 -87
  306. package/.aether/exchange/queen-wisdom.xml +0 -14
  307. package/.aether/model-profiles.yaml +0 -100
  308. package/.aether/utils/spawn-with-model.sh +0 -56
  309. package/bin/lib/model-profiles.js +0 -445
  310. package/bin/lib/model-verify.js +0 -288
  311. package/bin/lib/proxy-health.js +0 -253
  312. package/bin/lib/telemetry.js +0 -441
@@ -0,0 +1,71 @@
1
+ <!-- Generated from .aether/commands/preferences.yaml - DO NOT EDIT DIRECTLY -->
2
+ ---
3
+ name: ant:preferences
4
+ description: "📝🐜👑🐜📝 Add or list user preferences in hub QUEEN.md"
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**. Manage user preferences in the hub `~/.aether/QUEEN.md`.
14
+
15
+ ## Instructions
16
+
17
+ The input is: `$normalized_args`
18
+
19
+ ### Step 1: Validate
20
+
21
+ If `$normalized_args` empty -> show usage: `/ant:preferences "preference text"` or `/ant:preferences --list`, stop.
22
+
23
+ ### Step 2: Route
24
+
25
+ - `$normalized_args` is `--list` -> **List mode**
26
+ - Otherwise -> **Add mode**
27
+
28
+ ### List Mode
29
+
30
+ Read `~/.aether/QUEEN.md`. If missing -> "No hub QUEEN.md found. Run /ant:init to create one.", stop.
31
+
32
+ Find the `## User Preferences` section (with or without emoji). Extract bullet lines (`- ...`) between that heading and the next `---`.
33
+
34
+ If user-added bullets exist, output each. Otherwise:
35
+ ```
36
+ No user preferences set yet.
37
+ Add one with: /ant:preferences "your preference"
38
+ ```
39
+ Stop.
40
+
41
+ ### Add Mode
42
+
43
+ Set `PREF` to `$normalized_args` (strip surrounding quotes).
44
+ If length > 500 chars -> "Preference too long (max 500 chars)", stop.
45
+
46
+ Read `~/.aether/QUEEN.md`. If missing -> "No hub QUEEN.md found. Run /ant:init to create one.", stop.
47
+
48
+ **If `## User Preferences` section exists** (with or without emoji):
49
+ 1. Remove `*No user preferences recorded yet.*` placeholder if present
50
+ 2. Append `- $PREF` at end of section (before next `---`)
51
+
52
+ **If section missing** (migration case):
53
+ 1. Insert before `## Evolution Log` (with or without emoji):
54
+ ```
55
+ ## User Preferences
56
+
57
+ - $PREF
58
+
59
+ ---
60
+
61
+ ```
62
+
63
+ Update METADATA comment: increment `stats.total_user_prefs` by 1.
64
+
65
+ ### Confirm
66
+
67
+ Output (2 lines, no banners):
68
+ ```
69
+ Preference saved to hub QUEEN.md
70
+ "$PREF"
71
+ ```
@@ -1,18 +1,22 @@
1
+ <!-- Generated from .aether/commands/redirect.yaml - DO NOT EDIT DIRECTLY -->
1
2
  ---
2
3
  name: ant:redirect
3
4
  description: "⚠️🐜🚧🐜⚠️ Emit REDIRECT signal to warn colony away from patterns"
4
5
  ---
5
6
 
6
- You are the **Queen**. Add an AVOID constraint.
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
+
14
+
15
+ You are the **Queen**. Add an AVOID constraint.
16
+
17
+
18
+ ## Instructions
19
+
16
20
  The pattern to avoid is: `$normalized_args`
17
21
 
18
22
  ### Step 1: Validate
@@ -20,11 +24,15 @@ The pattern to avoid is: `$normalized_args`
20
24
  If `$normalized_args` empty -> show usage: `/ant:redirect <pattern to avoid>`, stop.
21
25
  If content > 500 chars -> "Redirect content too long (max 500 chars)", stop.
22
26
 
23
- ### Step 2: Read + Update Constraints
27
+
28
+
29
+ ### Step 2: Write Signal
24
30
 
25
31
  Read `.aether/data/COLONY_STATE.json`.
26
32
  If `goal: null` -> "No colony initialized.", stop.
27
33
 
34
+
35
+
28
36
  Read `.aether/data/constraints.json`. If file doesn't exist, create it with:
29
37
  ```json
30
38
  {"version": "1.0", "focus": [], "constraints": []}
@@ -47,6 +55,12 @@ If `constraints` array exceeds 10 entries, remove the oldest entries to keep onl
47
55
 
48
56
  Write constraints.json.
49
57
 
58
+ **Write pheromone signal and update context:**
59
+ ```bash
60
+ bash .aether/aether-utils.sh pheromone-write REDIRECT "$normalized_args" --strength 0.9 --reason "User warned colony away from pattern" 2>/dev/null || true
61
+ bash .aether/aether-utils.sh context-update constraint redirect "$normalized_args" "user" 2>/dev/null || true
62
+ ```
63
+
50
64
  ### Step 3: Confirm
51
65
 
52
66
  Output header:
@@ -65,3 +79,6 @@ Then output:
65
79
 
66
80
  🐜 Colony warned away from this pattern.
67
81
  ```
82
+
83
+
84
+
@@ -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`
@@ -49,13 +38,35 @@ Keep state loaded (don't unload yet) - we'll need it for the full display.
49
38
 
50
39
  ### Step 2: Compute Active Signals
51
40
 
52
- Read active signals from COLONY_STATE.json `signals` array (already loaded in Step 1).
41
+ Run using the Bash tool:
42
+ ```bash
43
+ bash .aether/aether-utils.sh pheromone-read
44
+ ```
45
+
46
+ Use `.result.signals` as the active signal list (already decay-filtered by runtime logic).
47
+ If empty, treat as "no active pheromones."
53
48
 
54
- Filter signals where:
55
- - `expires_at` is null (permanent signals like INIT), OR
56
- - `expires_at` > current timestamp (not expired)
49
+ ### Step 2.5: Load Survey Context (Advisory)
57
50
 
58
- If `signals` array is empty or all expired, treat as "no active pheromones."
51
+ Run:
52
+ ```bash
53
+ survey_docs=$(ls -1 .aether/data/survey/*.md 2>/dev/null | wc -l | tr -d ' ')
54
+ survey_latest=$(ls -t .aether/data/survey/*.md 2>/dev/null | head -1)
55
+ if [[ -n "$survey_latest" ]]; then
56
+ now_epoch=$(date +%s)
57
+ modified_epoch=$(stat -f %m "$survey_latest" 2>/dev/null || stat -c %Y "$survey_latest" 2>/dev/null || echo 0)
58
+ survey_age_days=$(( (now_epoch - modified_epoch) / 86400 ))
59
+ else
60
+ survey_age_days=-1
61
+ fi
62
+ echo "survey_docs=$survey_docs"
63
+ echo "survey_age_days=$survey_age_days"
64
+ ```
65
+
66
+ Interpretation:
67
+ - `survey_docs == 0` => survey missing
68
+ - `survey_age_days > 14` => survey stale
69
+ - otherwise survey fresh
59
70
 
60
71
  ### Step 3: Display Restored State
61
72
 
@@ -93,18 +104,18 @@ PHASE PROGRESS
93
104
  Phase <id>: <name> [<status>]
94
105
  (list all phases from plan.phases)
95
106
 
107
+ SURVEY CONTEXT
108
+ Docs: <survey_docs>
109
+ Age: <survey_age_days> days
110
+ Status: <fresh|stale|missing>
111
+ Recommendation: <if missing or stale, suggest /ant:colonize --force-resurvey>
112
+
96
113
  CONTEXT FROM HANDOFF
97
114
  <summarize what was happening from .aether/HANDOFF.md>
98
115
 
99
116
  NEXT ACTIONS
100
117
  ```
101
118
 
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
119
  Route to next action based on state:
109
120
  - If state is `READY` and there's a pending phase -> suggest `/ant:build <phase>`
110
121
  - 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:
@@ -84,15 +93,21 @@ Do NOT proceed with stale or fabricated data.
84
93
 
85
94
  ### Step 3: Read Pheromone Signals
86
95
 
87
- Use the Read tool to read `.aether/data/constraints.json`.
88
96
 
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
97
 
93
- If the file is missing: skip silently (no pheromones active).
98
+ Run::
99
+ ```bash
100
+ bash .aether/aether-utils.sh pheromone-read all
101
+ ```
102
+
103
+ Parse the JSON result. Extract `.result.signals` array.
104
+
105
+ - If `ok` is `true` and `.result.signals` is non-empty: store signals for dashboard rendering in Step 8
106
+ - If `ok` is `true` and `.result.signals` is empty: no active pheromones (skip in dashboard)
107
+ - If the command fails or returns an error: skip silently (no pheromones active)
108
+
109
+ 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
110
 
95
- Pheromones persist until explicitly cleared — no decay.
96
111
 
97
112
  ---
98
113
 
@@ -236,7 +251,8 @@ Stop here — do not continue to Step 8 or render the dashboard.
236
251
  Lead with the next-step recommendation. Context follows underneath ("straight to action" ordering).
237
252
 
238
253
  ```
239
- ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
254
+
255
+ ═══════════════════════════════════════════════════
240
256
  RESUME SESSION
241
257
 
242
258
  Next: {recommended}
@@ -272,15 +288,44 @@ Recent Decisions:
272
288
  {end}
273
289
  {end}
274
290
 
275
- {if focus array or constraints array is not empty:}
291
+ {if signals array from Step 3 is not empty:}
276
292
  Active Signals:
277
- {for each focus signal:}
278
- FOCUS: {focus text}
279
- {end}
280
- {for each constraint signal:}
281
- REDIRECT: {constraint text}
293
+
294
+
295
+ {for each signal in signals:}
296
+ {signal.type}: "{signal.content}" [{signal.effective_strength * 100 | floor}%]
282
297
  {end}
298
+
283
299
  {end}
300
+ ```
301
+
302
+ ---
303
+
304
+ ### Step 8.5: Display Memory Health (Secondary)
305
+
306
+ Run::
307
+ ```bash
308
+ bash .aether/aether-utils.sh resume-dashboard
309
+ ```
310
+
311
+ Extract memory_health from the JSON result:
312
+ - wisdom_count
313
+ - pending_promotions
314
+ - recent_failures
315
+
316
+ Display after the main dashboard:
317
+ ```
318
+ 📊 Memory Health
319
+ Wisdom: {wisdom_count} entries | Pending: {pending_promotions} promotions | Failures: {recent_failures} recent
320
+
321
+ Run /ant:memory-details for full breakdown
322
+ ```
323
+
324
+ If all counts are 0, show:
325
+ ```
326
+ 📊 Memory Health
327
+ No accumulated wisdom yet. Complete phases to build colony memory.
328
+ ```
284
329
 
285
330
  Last Command: {last_command}
286
331
  Session: {session_id}
@@ -290,14 +335,14 @@ Session: {session_id}
290
335
 
291
336
  ### Step 9: Mark Session Resumed
292
337
 
293
- Run using the Bash tool with description "Marking session as resumed...":
338
+ Run::
294
339
  ```bash
295
340
  bash .aether/aether-utils.sh session-mark-resumed
296
341
  ```
297
342
 
298
343
  ### Step 10: Next Up
299
344
 
300
- Generate the state-based Next Up block by running using the Bash tool with description "Generating Next Up suggestions...":
345
+ Generate the state-based Next Up block by Run::
301
346
  ```bash
302
347
  state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
303
348
  current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
@@ -313,7 +358,10 @@ bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_pha
313
358
  |-----------|----------|
314
359
  | session.json missing (exists=false) | "No previous session found" — offer /ant:init and /ant:status |
315
360
  | COLONY_STATE.json missing or corrupted | Pause, ask user: start fresh or recover |
316
- | constraints.json missing | Skip silently (no pheromones) |
361
+
362
+
363
+ | pheromone-read fails | Skip silently (no pheromones) |
364
+
317
365
  | CONTEXT.md missing | Fall back to COLONY_STATE.json narrative |
318
366
  | No plan phases, no generated_at | BLOCK — redirect to /ant:plan |
319
367
  | Plan attempted but no phases | BLOCK — redirect to /ant:plan |
@@ -325,7 +373,10 @@ bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_pha
325
373
 
326
374
  ## Key Constraints
327
375
 
328
- - Use Read tool for COLONY_STATE.json and constraints.json (not bash cat/jq)
376
+
377
+
378
+ - Use Read tool for COLONY_STATE.json (not bash cat/jq). Use Bash tool for pheromone-read (applies decay calculation).
379
+
329
380
  - Use Bash tool only for aether-utils.sh commands and git commands
330
381
  - Handle ALL missing/corrupted file cases gracefully
331
382
  - Time-agnostic: restore identically regardless of how long ago the session was
@@ -0,0 +1,201 @@
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
+ - `--verbose` / `-v`, `--no-visual`, `--no-suggest` — Pass through to playbooks
40
+
41
+ ```
42
+ /ant:run Run all remaining phases
43
+ /ant:run --max-phases 2 Run at most 2 phases then stop
44
+ /ant:run --replan-interval 3 Suggest replan every 3 phases instead of 2
45
+ /ant:run --continue Resume after replan pause without replanning
46
+ /ant:run --dry-run Preview the autopilot plan
47
+ /ant:run --max-phases 3 -v Run 3 phases with verbose output
48
+ ```
49
+
50
+ ## Dry Run Mode
51
+
52
+ If `--dry-run`: read COLONY_STATE.json, list remaining incomplete phases
53
+ (applying `--max-phases` cap), display the plan, then stop without executing.
54
+
55
+ ```
56
+ ━━━ A U T O P I L O T P R E V I E W ━━━
57
+ Goal: {goal} | Current: Phase {N} | Remaining: {count} | Max: {max or "all"}
58
+
59
+ Phase {id}: {name} ({task_count} tasks) -> build -> continue -> advance
60
+ ...
61
+
62
+ Pause triggers: test failures, critical Chaos findings, new blockers,
63
+ security gate failures, quality gate failures, runtime verification needed,
64
+ replan suggestion (every {replan_interval} phases)
65
+ ```
66
+
67
+ ## Autopilot Loop
68
+
69
+ ### Step 0: Initialize
70
+
71
+ 1. Read `.aether/data/COLONY_STATE.json`; validate goal + plan.phases exist
72
+ 2. Determine remaining incomplete phases; apply `--max-phases` cap
73
+ 3. Set `phases_completed = 0`, `autopilot_start = $(date +%s)`
74
+ 4. Record pre-build blocker count: `bash .aether/aether-utils.sh flag-check-blockers {phase}`
75
+ 5. Display: `AUTOPILOT ENGAGED | Goal: {goal} | Phase {N} | Max: {max or "all"}`
76
+
77
+ ### Step 1: Build Phase
78
+
79
+ Execute build playbooks in order, carrying cross-stage state
80
+ (`phase_id`, `visual_mode`, `verbose_mode`, `suggest_enabled`,
81
+ `prompt_section`, `wave_results`,
82
+ `verification_status`, `synthesis_status`, `next_action`):
83
+
84
+ 1. `.aether/docs/command-playbooks/build-prep.md`
85
+ 2. `.aether/docs/command-playbooks/build-context.md`
86
+ 3. `.aether/docs/command-playbooks/build-wave.md`
87
+ 4. `.aether/docs/command-playbooks/build-verify.md`
88
+ 5. `.aether/docs/command-playbooks/build-complete.md`
89
+
90
+ Capture the synthesis result for pause evaluation.
91
+
92
+ ### Step 2: Build Pause Check
93
+
94
+ **PAUSE if ANY of these are true** (display reason, log event, STOP):
95
+
96
+ | # | Condition | Source |
97
+ |---|-----------|--------|
98
+ | 1 | Watcher `verification_passed == false` | build-verify synthesis |
99
+ | 2 | Any Chaos finding severity `critical` or `high` | build-verify synthesis |
100
+ | 3 | New blocker flags created (count increased since Step 0.4) | flag-check-blockers |
101
+
102
+ On pause, display the AUTOPILOT PAUSED banner with reason, affected phase,
103
+ specific issues, and instruction: "Fix issues, then run /ant:run to resume."
104
+ Log: `"<timestamp>|autopilot_paused|run|Paused at Phase {id}: {reason}"`
105
+
106
+ **If no pause:** proceed to Step 3.
107
+
108
+ ### Step 3: Continue (Verify + Advance)
109
+
110
+ Execute continue playbooks in order, carrying cross-stage state
111
+ (`visual_mode`, `state`, `current_phase`, `verification_results`,
112
+ `gate_results`, `advancement_result`, `next_phase_id`, `completion_state`):
113
+
114
+ 1. `.aether/docs/command-playbooks/continue-verify.md`
115
+ 2. `.aether/docs/command-playbooks/continue-gates.md`
116
+ 3. `.aether/docs/command-playbooks/continue-advance.md`
117
+ 4. `.aether/docs/command-playbooks/continue-finalize.md`
118
+
119
+ **Autopilot override for runtime verification (Step 1.11 in continue-gates):**
120
+ Skip the AskUserQuestion prompt. Instead, auto-PAUSE with reason
121
+ "Runtime verification required" so the user can test manually before resuming.
122
+
123
+ ### Step 4: Continue Pause Check
124
+
125
+ **PAUSE if ANY of these are true:**
126
+
127
+ | # | Condition | Source |
128
+ |---|-----------|--------|
129
+ | 4 | Verification loop reported NOT READY | continue-verify |
130
+ | 5 | Gatekeeper found critical CVEs | continue-gates |
131
+ | 6 | Auditor critical findings or score < 60 | continue-gates |
132
+ | 7 | Unresolved blocker flags remain | continue-gates |
133
+ | 8 | Runtime verification needed | continue-gates Step 1.11 |
134
+ | 9 | All phases complete (no next phase) | continue-advance |
135
+ | 10 | Replan trigger fires (unless `--continue`) | autopilot-check-replan (Step 5.5) |
136
+
137
+ For condition 9: jump to Step 6 (celebration). For condition 10: PAUSE with
138
+ replan suggestion (see Step 5.5). For all others: PAUSE with reason, log event, STOP.
139
+
140
+ **If no pause:** proceed to Step 5.
141
+
142
+ ### Step 5: Auto-Advance and Loop
143
+
144
+ 1. Increment `phases_completed`
145
+ 2. Update autopilot state: `bash .aether/aether-utils.sh autopilot-update --action advance --phase {next} --result success`
146
+ 3. Log: `"<timestamp>|autopilot_advance|run|Phase {prev} -> {next} ({phases_completed}/{max})"`
147
+ 4. Display: `--- Autopilot: Phase {prev} done -> Phase {next} ({N}/{max}) ---`
148
+ 5. **Replan check** (see Step 5.5)
149
+ 6. If `phases_completed >= max_phases` or no incomplete phases: go to Step 6
150
+ 7. Otherwise: update `current_phase`, return to Step 1
151
+
152
+ ### Step 5.5: Replan Trigger Check
153
+
154
+ After each successful phase advance, check if a replan pause should fire:
155
+
156
+ ```bash
157
+ bash .aether/aether-utils.sh autopilot-check-replan --interval {replan_interval}
158
+ ```
159
+
160
+ If `--continue` flag was passed: skip this check entirely (user dismissed replan).
161
+
162
+ If `result.should_replan == true`: **PAUSE** with replan suggestion banner:
163
+
164
+ ```
165
+ ━━━ R E P L A N S U G G E S T E D ━━━
166
+ Phases auto-completed: {N} | Learnings accumulated: {learnings_since_last}
167
+
168
+ The colony has completed {N} phases since the last plan review.
169
+ New learnings may have changed the optimal path forward.
170
+
171
+ Options:
172
+ /ant:plan Regenerate phases with current learnings
173
+ /ant:run --continue Dismiss and continue without replanning
174
+ ```
175
+
176
+ Log: `"<timestamp>|autopilot_replan_pause|run|Replan suggested after {N} phases ({learnings} learnings)"`
177
+
178
+ If `result.should_replan == false`: proceed normally (no pause).
179
+
180
+ ### Step 6: Final Summary
181
+
182
+ ```
183
+ ━━━ A U T O P I L O T C O M P L E T E ━━━
184
+ Phases completed: {N} | Elapsed: {Xm Ys} | Now at: Phase {current}
185
+
186
+ {all complete} -> Colony goal achieved! Run /ant:seal
187
+ {max reached} -> Run /ant:run to continue
188
+ {replan} -> Run /ant:plan to replan, or /ant:run --continue to dismiss
189
+ {paused} -> Fix {reason}, then /ant:run to resume
190
+ ```
191
+
192
+ Update session:
193
+ `bash .aether/aether-utils.sh session-update "/ant:run" "/ant:run" "Autopilot: {N} phases, now Phase {current}"`
194
+
195
+ ## Execution Contract
196
+
197
+ For each playbook stage: Read file, execute inline, track `{stage_name, status, key_outputs}`.
198
+ If `status == failed`: evaluate pause conditions. Pause = graceful stop with saved state.
199
+ Hard failure (e.g., state corruption) = halt immediately, no recovery attempt.
200
+
201
+ On every pause: save COLONY_STATE.json, log event, update session, display resume instructions.