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