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,407 @@
1
+ ---
2
+ name: ant:resume
3
+ description: "Resume Previous Session"
4
+ body: |
5
+ # /ant:resume — Resume Previous Session
6
+
7
+ Resume work after `/clear` or in a new session. Reads colony state, detects codebase drift, and gives you a clear "do this next" recommendation.
8
+
9
+ ## Usage
10
+
11
+ ```bash
12
+ /ant:resume
13
+ ```
14
+
15
+ ---
16
+
17
+ ## Implementation
18
+
19
+ Execute the following steps in order when the user runs `/ant:resume`.
20
+
21
+ ---
22
+
23
+ ### Step 1: Read Session State
24
+
25
+ {{TOOL_PREFIX "Restoring colony session..."}}:
26
+ ```bash
27
+ bash .aether/aether-utils.sh session-read
28
+ ```
29
+
30
+ Parse the JSON result.
31
+
32
+ - If `exists` is `false`: display the following and **stop**:
33
+
34
+ ```
35
+ {{#claude}}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━{{/claude}}
36
+ {{#opencode}}═══════════════════════════════════════════════════{{/opencode}}
37
+ RESUME SESSION
38
+
39
+ No previous session found.
40
+
41
+ Start fresh: /ant:init "your goal"
42
+ Or check: /ant:status
43
+ {{#claude}}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━{{/claude}}
44
+ {{#opencode}}═══════════════════════════════════════════════════{{/opencode}}
45
+ ```
46
+
47
+ - If `exists` is `true`: extract from the session data:
48
+ - `colony_goal`
49
+ - `current_phase`
50
+ - `last_command`
51
+ - `suggested_next`
52
+ - `baseline_commit`
53
+ - `session_id`
54
+
55
+ ---
56
+
57
+ ### Step 2: Read COLONY_STATE.json (Authoritative Source)
58
+
59
+ Use the Read tool to read `.aether/data/COLONY_STATE.json`.
60
+
61
+ COLONY_STATE.json is the authoritative source for goal and state (session.json may be stale). Extract:
62
+ - `goal` (use this as authoritative, overriding session.json colony_goal)
63
+ - `milestone` (check for sealed colony)
64
+ - `state` (READY, PLANNING, EXECUTING, PAUSED)
65
+ - `current_phase`
66
+ - `plan.phases` (array with id, name, status for each phase)
67
+ - `plan.generated_at`
68
+ - `memory.decisions` (flat list — do NOT distinguish user vs Claude origin)
69
+ - `events` (last 5 for recent activity context)
70
+
71
+ **If `milestone` == `"Crowned Anthill"`:** This colony has been sealed. Display:
72
+ ```
73
+ This colony has been sealed (Crowned Anthill).
74
+
75
+ Start a new colony with /ant:init "new goal"
76
+ ```
77
+ Stop here — do NOT display stale phase data from the sealed colony.
78
+
79
+ If the file is missing or the JSON cannot be parsed, **stop immediately** and display:
80
+
81
+ ```
82
+ State file missing or corrupted.
83
+
84
+ Options:
85
+ 1. Start fresh with /ant:init "goal"
86
+ 2. Try to recover (I'll look for backup files)
87
+
88
+ What would you like to do?
89
+ ```
90
+
91
+ Do NOT proceed with stale or fabricated data.
92
+
93
+ ---
94
+
95
+ ### Step 3: Read Pheromone Signals
96
+
97
+ {{#claude}}
98
+ Use the Read tool to read `.aether/data/constraints.json`.
99
+
100
+ Extract the following top-level keys:
101
+ - `focus` array — active focus signals (if key missing, treat as empty array)
102
+ - `constraints` array — active redirect/constraint signals (if key missing, treat as empty array)
103
+
104
+ If the file is missing: skip silently (no pheromones active).
105
+
106
+ Pheromones persist until explicitly cleared — no decay.
107
+ {{/claude}}
108
+ {{#opencode}}
109
+ {{TOOL_PREFIX "Loading active pheromone signals..."}}:
110
+ ```bash
111
+ bash .aether/aether-utils.sh pheromone-read all
112
+ ```
113
+
114
+ Parse the JSON result. Extract `.result.signals` array.
115
+
116
+ - If `ok` is `true` and `.result.signals` is non-empty: store signals for dashboard rendering in Step 8
117
+ - If `ok` is `true` and `.result.signals` is empty: no active pheromones (skip in dashboard)
118
+ - If the command fails or returns an error: skip silently (no pheromones active)
119
+
120
+ Note: pheromone-read applies decay calculation automatically. The `effective_strength` field reflects current signal strength after time-based decay. Signals below 0.1 effective strength are already filtered out.
121
+ {{/opencode}}
122
+
123
+ ---
124
+
125
+ ### Step 4: Read CONTEXT.md
126
+
127
+ Use the Read tool to read `.aether/CONTEXT.md` if it exists.
128
+
129
+ If missing: fall back to COLONY_STATE.json for narrative context. Note: "Context document not found — reconstructing from state."
130
+
131
+ ---
132
+
133
+ ### Step 5: Drift Detection
134
+
135
+ Extract `baseline_commit` from the session.json data read in Step 1.
136
+
137
+ ```bash
138
+ current_commit=$(git rev-parse HEAD 2>/dev/null || echo "")
139
+ ```
140
+
141
+ If `baseline_commit` is non-empty and differs from `current_commit`:
142
+
143
+ ```bash
144
+ commit_count=$(git rev-list --count "$baseline_commit..HEAD" 2>/dev/null || echo "0")
145
+ changed_count=$(git diff --stat "$baseline_commit" HEAD 2>/dev/null | tail -1 | grep -oE '[0-9]+ file' | grep -oE '[0-9]+' || echo "0")
146
+ ```
147
+
148
+ Store `drift_detected=true`, `commit_count`, `changed_count` for dashboard rendering.
149
+
150
+ If `baseline_commit` is empty or matches `current_commit`: set `drift_detected=false`.
151
+
152
+ Restore identically regardless of time elapsed — no warnings about session age.
153
+
154
+ ---
155
+
156
+ ### Step 6: Compute Workflow Position and Next-Step Guidance
157
+
158
+ Compute `suggested_next` dynamically from COLONY_STATE.json data. Do not use the static value from session.json.
159
+
160
+ Use this decision tree:
161
+
162
+ ```
163
+ Case 1 — No plan created yet:
164
+ Check: plan.phases is empty AND plan.generated_at is null
165
+ recommended = "/ant:plan"
166
+ reason = "No plan created yet"
167
+ alternatives = ["/ant:colonize — analyze codebase first"]
168
+
169
+ Case 2 — Plan ready, first phase not started:
170
+ Check: plan.phases is not empty AND state == "READY" AND current_phase == 0
171
+ recommended = "/ant:build 1"
172
+ reason = "Plan ready, first phase not started"
173
+ alternatives = ["/ant:plan — review or regenerate plan"]
174
+
175
+ Case 3 — Build in progress:
176
+ Check: state == "EXECUTING"
177
+ recommended = "/ant:continue"
178
+ reason = "Build in progress"
179
+ alternatives = ["/ant:build {current_phase} — rebuild current phase", "/ant:flags — check for blockers"]
180
+
181
+ Case 4 — Phase complete, next phase available:
182
+ Check: state == "READY" AND current_phase > 0 AND current_phase < plan.phases.length
183
+ next = current_phase + 1
184
+ recommended = "/ant:build {next}"
185
+ reason = "Phase {current_phase} complete, ready for next"
186
+ alternatives = ["/ant:plan — regenerate plan", "/ant:phase {next} — preview next phase"]
187
+
188
+ Case 5 — All phases complete:
189
+ Check: state == "READY" AND current_phase > 0 AND current_phase >= plan.phases.length
190
+ recommended = "/ant:seal"
191
+ reason = "All phases complete"
192
+ alternatives = ["/ant:status — view final state"]
193
+
194
+ Case 6 — Colony paused:
195
+ Check: state == "PAUSED"
196
+ recommended = "/ant:resume-colony"
197
+ reason = "Colony is paused"
198
+ alternatives = ["/ant:status — check state first"]
199
+
200
+ Default:
201
+ recommended = "/ant:status"
202
+ reason = "Check colony status"
203
+ alternatives = []
204
+ ```
205
+
206
+ ---
207
+
208
+ ### Step 7: Workflow-Step Blocking (Early-Return Guards)
209
+
210
+ Run these guards BEFORE rendering the dashboard. If a blocking condition is detected, output the block message and STOP. Do not render the dashboard. Do not offer alternative commands.
211
+
212
+ **BLOCK CONDITION 1: No plan exists**
213
+
214
+ Check: plan.phases is empty AND plan.generated_at is null
215
+
216
+ Output and STOP:
217
+
218
+ ```
219
+ BLOCKED: No plan exists yet.
220
+ Required: Run /ant:plan to create a build plan.
221
+ Goal: {goal}
222
+ ```
223
+
224
+ Stop here — do not continue to Step 8 or render the dashboard.
225
+
226
+ ---
227
+
228
+ **BLOCK CONDITION 2: Plan attempted but failed**
229
+
230
+ Check: plan.phases is empty AND plan.generated_at is not null
231
+
232
+ Output and STOP:
233
+
234
+ ```
235
+ BLOCKED: Plan was attempted but has no phases.
236
+ Required: Run /ant:plan to regenerate the plan.
237
+ Goal: {goal}
238
+ ```
239
+
240
+ Stop here — do not continue to Step 8 or render the dashboard.
241
+
242
+ ---
243
+
244
+ **BLOCK CONDITION 3: Build interrupted**
245
+
246
+ Check: state == "EXECUTING" AND the last 3 events show no recent build activity
247
+
248
+ Output and STOP:
249
+
250
+ ```
251
+ BLOCKED: Build may have been interrupted.
252
+ Required: Run /ant:continue to check and advance.
253
+ Goal: {goal}
254
+ ```
255
+
256
+ Stop here — do not continue to Step 8 or render the dashboard.
257
+
258
+ ---
259
+
260
+ ### Step 8: Render Dashboard
261
+
262
+ Lead with the next-step recommendation. Context follows underneath ("straight to action" ordering).
263
+
264
+ ```
265
+ {{#claude}}━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━{{/claude}}
266
+ {{#opencode}}═══════════════════════════════════════════════════{{/opencode}}
267
+ RESUME SESSION
268
+
269
+ Next: {recommended}
270
+ {reason}
271
+ {if alternatives exist:}
272
+ Also: {alternatives, comma-separated}
273
+ {end}
274
+
275
+ {if drift_detected:}
276
+ Note: Codebase changed since last session ({commit_count} commit(s), {changed_count} file(s) modified)
277
+ {end}
278
+
279
+ Goal: {goal}
280
+ State: {state}
281
+ Phase: {current_phase}/{total_phases}
282
+
283
+ Phase Progress:
284
+ {for each phase in plan.phases:}
285
+ [{status_icon}] Phase {id}: {name}
286
+ {end}
287
+ ```
288
+
289
+ Status icons:
290
+ - completed: `v` (checkmark)
291
+ - in_progress: `~` (tilde)
292
+ - pending: ` ` (space)
293
+
294
+ ```
295
+ {if memory.decisions is not empty:}
296
+ Recent Decisions:
297
+ {for each of the last 5 decisions:}
298
+ - {decision text}
299
+ {end}
300
+ {end}
301
+
302
+ {if signals array from Step 3 is not empty:}
303
+ Active Signals:
304
+ {{#claude}}
305
+ {for each focus signal:}
306
+ FOCUS: {focus text}
307
+ {end}
308
+ {for each constraint signal:}
309
+ REDIRECT: {constraint text}
310
+ {end}
311
+ {{/claude}}
312
+ {{#opencode}}
313
+ {for each signal in signals:}
314
+ {signal.type}: "{signal.content}" [{signal.effective_strength * 100 | floor}%]
315
+ {end}
316
+ {{/opencode}}
317
+ {end}
318
+ ```
319
+
320
+ ---
321
+
322
+ ### Step 8.5: Display Memory Health (Secondary)
323
+
324
+ {{TOOL_PREFIX "Loading memory health..."}}:
325
+ ```bash
326
+ bash .aether/aether-utils.sh resume-dashboard
327
+ ```
328
+
329
+ Extract memory_health from the JSON result:
330
+ - wisdom_count
331
+ - pending_promotions
332
+ - recent_failures
333
+
334
+ Display after the main dashboard:
335
+ ```
336
+ 📊 Memory Health
337
+ Wisdom: {wisdom_count} entries | Pending: {pending_promotions} promotions | Failures: {recent_failures} recent
338
+
339
+ Run /ant:memory-details for full breakdown
340
+ ```
341
+
342
+ If all counts are 0, show:
343
+ ```
344
+ 📊 Memory Health
345
+ No accumulated wisdom yet. Complete phases to build colony memory.
346
+ ```
347
+
348
+ Last Command: {last_command}
349
+ Session: {session_id}
350
+ ```
351
+
352
+ ---
353
+
354
+ ### Step 9: Mark Session Resumed
355
+
356
+ {{TOOL_PREFIX "Marking session as resumed..."}}:
357
+ ```bash
358
+ bash .aether/aether-utils.sh session-mark-resumed
359
+ ```
360
+
361
+ ### Step 10: Next Up
362
+
363
+ Generate the state-based Next Up block by {{TOOL_PREFIX "Generating Next Up suggestions..."}}:
364
+ ```bash
365
+ state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
366
+ current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
367
+ total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
368
+ bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_phases"
369
+ ```
370
+
371
+ ---
372
+
373
+ ## Error Handling Reference
374
+
375
+ | Condition | Response |
376
+ |-----------|----------|
377
+ | session.json missing (exists=false) | "No previous session found" — offer /ant:init and /ant:status |
378
+ | COLONY_STATE.json missing or corrupted | Pause, ask user: start fresh or recover |
379
+ {{#claude}}
380
+ | constraints.json missing | Skip silently (no pheromones) |
381
+ {{/claude}}
382
+ {{#opencode}}
383
+ | pheromone-read fails | Skip silently (no pheromones) |
384
+ {{/opencode}}
385
+ | CONTEXT.md missing | Fall back to COLONY_STATE.json narrative |
386
+ | No plan phases, no generated_at | BLOCK — redirect to /ant:plan |
387
+ | Plan attempted but no phases | BLOCK — redirect to /ant:plan |
388
+ | State EXECUTING, events show no activity | BLOCK — redirect to /ant:continue |
389
+ | baseline_commit matches current HEAD | No drift warning shown |
390
+ | baseline_commit differs from current HEAD | Show informational drift note |
391
+
392
+ ---
393
+
394
+ ## Key Constraints
395
+
396
+ {{#claude}}
397
+ - Use Read tool for COLONY_STATE.json and constraints.json (not bash cat/jq).
398
+ {{/claude}}
399
+ {{#opencode}}
400
+ - Use Read tool for COLONY_STATE.json (not bash cat/jq). Use Bash tool for pheromone-read (applies decay calculation).
401
+ {{/opencode}}
402
+ - Use Bash tool only for aether-utils.sh commands and git commands
403
+ - Handle ALL missing/corrupted file cases gracefully
404
+ - Time-agnostic: restore identically regardless of how long ago the session was
405
+ - Decisions shown as flat list — no user vs Claude distinction
406
+ - Blocking guards run BEFORE dashboard rendering (early-return pattern)
407
+ - Drift detection is informational only — not alarming, not a blocker
@@ -0,0 +1,229 @@
1
+ name: "ant:run"
2
+ description: "Autopilot — builds, verifies, learns, and advances through phases automatically with smart pausing"
3
+ description_opencode: "🤖🐜🔄🐜🤖 Autopilot — builds, verifies, learns, and advances through phases automatically with smart pausing"
4
+ body: |
5
+ You are the **Queen**. Execute `/ant:run` — the adaptive autopilot loop.
6
+
7
+ The arguments are: `{{ARGUMENTS}}`
8
+
9
+ ## Purpose
10
+
11
+ This command automates the build-continue-advance cycle across multiple phases.
12
+ It reads and executes the same playbooks used by `/ant:build` and `/ant:continue`,
13
+ chaining them in a loop with intelligent pause conditions.
14
+
15
+ ## Rules
16
+
17
+ 1. Do **not** invoke nested slash commands (`/ant:build`, `/ant:continue`, etc.).
18
+ 2. Use the Read tool to load each playbook file, then execute it inline.
19
+ 3. Preserve variables/results from prior stages and pass them forward.
20
+ 4. Stop immediately on any pause condition (defined below).
21
+ 5. Keep existing behavior and output format from the playbooks.
22
+ 6. Log `autopilot_advance` events after each successful phase transition.
23
+
24
+ ## Arguments
25
+
26
+ Parse `{{ARGUMENTS}}` for:
27
+ - `--max-phases N` — Max phases to process (default: all remaining)
28
+ - `--replan-interval N` — Pause for replan suggestion every N phases (default: 2)
29
+ - `--continue` — Resume after a replan pause without replanning
30
+ - `--dry-run` — Preview plan without executing
31
+ - `--headless` — Run without interactive prompts; queue decisions for later review
32
+ - `--verbose` / `-v`, `--no-visual`, `--no-suggest` — Pass through to playbooks
33
+
34
+ ```
35
+ /ant:run Run all remaining phases
36
+ /ant:run --max-phases 2 Run at most 2 phases then stop
37
+ /ant:run --replan-interval 3 Suggest replan every 3 phases instead of 2
38
+ /ant:run --continue Resume after replan pause without replanning
39
+ /ant:run --dry-run Preview the autopilot plan
40
+ /ant:run --headless Run all phases without interactive prompts
41
+ /ant:run --max-phases 3 -v Run 3 phases with verbose output
42
+ ```
43
+
44
+ ## Dry Run Mode
45
+
46
+ If `--dry-run`: read COLONY_STATE.json, list remaining incomplete phases
47
+ (applying `--max-phases` cap), display the plan, then stop without executing.
48
+
49
+ ```
50
+ ━━━ A U T O P I L O T P R E V I E W ━━━
51
+ Goal: {goal} | Current: Phase {N} | Remaining: {count} | Max: {max or "all"}
52
+
53
+ Phase {id}: {name} ({task_count} tasks) -> build -> continue -> advance
54
+ ...
55
+
56
+ Pause triggers: test failures, critical Chaos findings, new blockers,
57
+ security gate failures, quality gate failures, runtime verification needed,
58
+ replan suggestion (every {replan_interval} phases)
59
+ ```
60
+
61
+ ## Autopilot Loop
62
+
63
+ ### Step 0: Initialize
64
+
65
+ 1. Read `.aether/data/COLONY_STATE.json`; validate goal + plan.phases exist
66
+ - If `milestone` == `"Crowned Anthill"`: output "This colony has been sealed. Start a new colony with `/ant:init \"new goal\"`." and stop
67
+ 2. Determine remaining incomplete phases; apply `--max-phases` cap
68
+ 3. Set `phases_completed = 0`, `autopilot_start = $(date +%s)`
69
+ 4. Record pre-build blocker count: `bash .aether/aether-utils.sh flag-check-blockers {phase}`
70
+ 5. If `--headless` flag is present:
71
+ - Run: `bash .aether/aether-utils.sh autopilot-set-headless true`
72
+ - Display: `Headless mode: ON — interactive prompts will be queued as pending decisions`
73
+ 6. Display: `AUTOPILOT ENGAGED | Goal: {goal} | Phase {N} | Max: {max or "all"}`
74
+
75
+ ### Step 1: Build Phase
76
+
77
+ Execute build playbooks in order, carrying cross-stage state
78
+ (`phase_id`, `visual_mode`, `verbose_mode`, `suggest_enabled`,
79
+ `prompt_section`, `wave_results`,
80
+ `verification_status`, `synthesis_status`, `next_action`):
81
+
82
+ 1. `.aether/docs/command-playbooks/build-prep.md`
83
+ 2. `.aether/docs/command-playbooks/build-context.md`
84
+ 3. `.aether/docs/command-playbooks/build-wave.md`
85
+ 4. `.aether/docs/command-playbooks/build-verify.md`
86
+ 5. `.aether/docs/command-playbooks/build-complete.md`
87
+
88
+ Capture the synthesis result for pause evaluation.
89
+
90
+ ### Step 2: Build Pause Check
91
+
92
+ **PAUSE if ANY of these are true** (display reason, log event, STOP):
93
+
94
+ | # | Condition | Source |
95
+ |---|-----------|--------|
96
+ | 1 | Watcher `verification_passed == false` | build-verify synthesis |
97
+ | 2 | Any Chaos finding severity `critical` or `high` | build-verify synthesis |
98
+ | 3 | New blocker flags created (count increased since Step 0.4) | flag-check-blockers |
99
+
100
+ On pause, display the AUTOPILOT PAUSED banner with reason, affected phase,
101
+ specific issues, and instruction: "Fix issues, then run /ant:run to resume."
102
+ Log: `"<timestamp>|autopilot_paused|run|Paused at Phase {id}: {reason}"`
103
+
104
+ **Headless override for visual checkpoints:** If headless mode is active and a
105
+ visual checkpoint prompt would normally be shown to the user, instead queue it as
106
+ a pending decision:
107
+ ```bash
108
+ bash .aether/aether-utils.sh pending-decision-add \
109
+ --title "Visual checkpoint: Phase {id}" \
110
+ --type "checkpoint" \
111
+ --description "{checkpoint_description}" \
112
+ --phase "{id}" \
113
+ --source "build-pause-check"
114
+ ```
115
+ Then continue without pausing.
116
+
117
+ **If no pause:** proceed to Step 3.
118
+
119
+ ### Step 3: Continue (Verify + Advance)
120
+
121
+ Execute continue playbooks in order, carrying cross-stage state
122
+ (`visual_mode`, `state`, `current_phase`, `verification_results`,
123
+ `gate_results`, `advancement_result`, `next_phase_id`, `completion_state`):
124
+
125
+ 1. `.aether/docs/command-playbooks/continue-verify.md`
126
+ 2. `.aether/docs/command-playbooks/continue-gates.md`
127
+ 3. `.aether/docs/command-playbooks/continue-advance.md`
128
+ 4. `.aether/docs/command-playbooks/continue-finalize.md`
129
+
130
+ **Autopilot override for runtime verification (Step 1.11 in continue-gates):**
131
+ Skip the AskUserQuestion prompt. Instead, auto-PAUSE with reason
132
+ "Runtime verification required" so the user can test manually before resuming.
133
+
134
+ **Headless override for runtime verification:** If headless mode is active and
135
+ runtime verification would normally pause, queue as a pending decision instead:
136
+ ```bash
137
+ bash .aether/aether-utils.sh pending-decision-add \
138
+ --title "Runtime verification needed: Phase {id}" \
139
+ --type "runtime-verification" \
140
+ --description "Manual testing required before advancing past Phase {id}" \
141
+ --phase "{id}" \
142
+ --source "continue-gates"
143
+ ```
144
+ Then continue without pausing.
145
+
146
+ ### Step 4: Continue Pause Check
147
+
148
+ **PAUSE if ANY of these are true:**
149
+
150
+ | # | Condition | Source |
151
+ |---|-----------|--------|
152
+ | 4 | Verification loop reported NOT READY | continue-verify |
153
+ | 5 | Gatekeeper found critical CVEs | continue-gates |
154
+ | 6 | Auditor critical findings or score < 60 | continue-gates |
155
+ | 7 | Unresolved blocker flags remain | continue-gates |
156
+ | 8 | Runtime verification needed | continue-gates Step 1.11 |
157
+ | 9 | All phases complete (no next phase) | continue-advance |
158
+ | 10 | Replan trigger fires (unless `--continue`) | autopilot-check-replan (Step 5.5) |
159
+
160
+ For condition 9: jump to Step 6 (celebration). For condition 10: PAUSE with
161
+ replan suggestion (see Step 5.5). For all others: PAUSE with reason, log event, STOP.
162
+
163
+ **If no pause:** proceed to Step 5.
164
+
165
+ ### Step 5: Auto-Advance and Loop
166
+
167
+ 1. Increment `phases_completed`
168
+ 2. Update autopilot state: `bash .aether/aether-utils.sh autopilot-update --action advance --phase {next} --result success`
169
+ 3. Log: `"<timestamp>|autopilot_advance|run|Phase {prev} -> {next} ({phases_completed}/{max})"`
170
+ 4. Display: `--- Autopilot: Phase {prev} done -> Phase {next} ({N}/{max}) ---`
171
+ 5. **Replan check** (see Step 5.5)
172
+ 6. If `phases_completed >= max_phases` or no incomplete phases: go to Step 6
173
+ 7. Otherwise: update `current_phase`, return to Step 1
174
+
175
+ ### Step 5.5: Replan Trigger Check
176
+
177
+ After each successful phase advance, check if a replan pause should fire:
178
+
179
+ ```bash
180
+ bash .aether/aether-utils.sh autopilot-check-replan --interval {replan_interval}
181
+ ```
182
+
183
+ If `--continue` flag was passed: skip this check entirely (user dismissed replan).
184
+
185
+ If `result.should_replan == true`: **PAUSE** with replan suggestion banner:
186
+
187
+ ```
188
+ ━━━ R E P L A N S U G G E S T E D ━━━
189
+ Phases auto-completed: {N} | Learnings accumulated: {learnings_since_last}
190
+
191
+ The colony has completed {N} phases since the last plan review.
192
+ New learnings may have changed the optimal path forward.
193
+
194
+ Options:
195
+ /ant:plan Regenerate phases with current learnings
196
+ /ant:run --continue Dismiss and continue without replanning
197
+ ```
198
+
199
+ Log: `"<timestamp>|autopilot_replan_pause|run|Replan suggested after {N} phases ({learnings} learnings)"`
200
+
201
+ If `result.should_replan == false`: proceed normally (no pause).
202
+
203
+ ### Step 6: Final Summary
204
+
205
+ ```
206
+ ━━━ A U T O P I L O T C O M P L E T E ━━━
207
+ Phases completed: {N} | Elapsed: {Xm Ys} | Now at: Phase {current}
208
+
209
+ {all complete} -> Colony goal achieved! Run /ant:seal
210
+ {max reached} -> Run /ant:run to continue
211
+ {replan} -> Run /ant:plan to replan, or /ant:run --continue to dismiss
212
+ {paused} -> Fix {reason}, then /ant:run to resume
213
+ ```
214
+
215
+ If headless mode was active and pending decisions were queued, display:
216
+ ```
217
+ Pending decisions: {N} — run `pending-decision-list` to review
218
+ ```
219
+
220
+ Update session:
221
+ `bash .aether/aether-utils.sh session-update "/ant:run" "/ant:run" "Autopilot: {N} phases, now Phase {current}"`
222
+
223
+ ## Execution Contract
224
+
225
+ For each playbook stage: Read file, execute inline, track `{stage_name, status, key_outputs}`.
226
+ If `status == failed`: evaluate pause conditions. Pause = graceful stop with saved state.
227
+ Hard failure (e.g., state corruption) = halt immediately, no recovery attempt.
228
+
229
+ On every pause: save COLONY_STATE.json, log event, update session, display resume instructions.