aether-colony 5.0.0 β†’ 5.2.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (317) hide show
  1. package/.aether/aether-utils.sh +3226 -3345
  2. package/.aether/agents-claude/aether-ambassador.md +265 -0
  3. package/.aether/agents-claude/aether-archaeologist.md +327 -0
  4. package/.aether/agents-claude/aether-architect.md +236 -0
  5. package/.aether/agents-claude/aether-auditor.md +271 -0
  6. package/.aether/agents-claude/aether-builder.md +224 -0
  7. package/.aether/agents-claude/aether-chaos.md +269 -0
  8. package/.aether/agents-claude/aether-chronicler.md +305 -0
  9. package/.aether/agents-claude/aether-gatekeeper.md +330 -0
  10. package/.aether/agents-claude/aether-includer.md +374 -0
  11. package/.aether/agents-claude/aether-keeper.md +272 -0
  12. package/.aether/agents-claude/aether-measurer.md +322 -0
  13. package/.aether/agents-claude/aether-oracle.md +237 -0
  14. package/.aether/agents-claude/aether-probe.md +211 -0
  15. package/.aether/agents-claude/aether-queen.md +330 -0
  16. package/.aether/agents-claude/aether-route-setter.md +178 -0
  17. package/.aether/agents-claude/aether-sage.md +418 -0
  18. package/.aether/agents-claude/aether-scout.md +179 -0
  19. package/.aether/agents-claude/aether-surveyor-disciplines.md +417 -0
  20. package/.aether/agents-claude/aether-surveyor-nest.md +355 -0
  21. package/.aether/agents-claude/aether-surveyor-pathogens.md +289 -0
  22. package/.aether/agents-claude/aether-surveyor-provisions.md +360 -0
  23. package/.aether/agents-claude/aether-tracker.md +270 -0
  24. package/.aether/agents-claude/aether-watcher.md +280 -0
  25. package/.aether/agents-claude/aether-weaver.md +248 -0
  26. package/.aether/commands/archaeology.yaml +653 -0
  27. package/.aether/commands/build.yaml +1221 -0
  28. package/.aether/commands/chaos.yaml +653 -0
  29. package/.aether/commands/colonize.yaml +442 -0
  30. package/.aether/commands/continue.yaml +1484 -0
  31. package/.aether/commands/council.yaml +509 -0
  32. package/.aether/commands/data-clean.yaml +80 -0
  33. package/.aether/commands/dream.yaml +275 -0
  34. package/.aether/commands/entomb.yaml +863 -0
  35. package/.aether/commands/export-signals.yaml +64 -0
  36. package/.aether/commands/feedback.yaml +158 -0
  37. package/.aether/commands/flag.yaml +160 -0
  38. package/.aether/commands/flags.yaml +177 -0
  39. package/.aether/commands/focus.yaml +112 -0
  40. package/.aether/commands/help.yaml +167 -0
  41. package/.aether/commands/history.yaml +137 -0
  42. package/.aether/commands/import-signals.yaml +79 -0
  43. package/.aether/commands/init.yaml +502 -0
  44. package/.aether/commands/insert-phase.yaml +102 -0
  45. package/.aether/commands/interpret.yaml +285 -0
  46. package/.aether/commands/lay-eggs.yaml +224 -0
  47. package/.aether/commands/maturity.yaml +122 -0
  48. package/.aether/commands/memory-details.yaml +74 -0
  49. package/.aether/commands/migrate-state.yaml +174 -0
  50. package/.aether/commands/oracle.yaml +1224 -0
  51. package/.aether/commands/organize.yaml +446 -0
  52. package/.aether/commands/patrol.yaml +621 -0
  53. package/.aether/commands/pause-colony.yaml +424 -0
  54. package/.aether/commands/phase.yaml +124 -0
  55. package/.aether/commands/pheromones.yaml +153 -0
  56. package/.aether/commands/plan.yaml +1364 -0
  57. package/.aether/commands/preferences.yaml +63 -0
  58. package/.aether/commands/quick.yaml +104 -0
  59. package/.aether/commands/redirect.yaml +123 -0
  60. package/.aether/commands/resume-colony.yaml +375 -0
  61. package/.aether/commands/resume.yaml +407 -0
  62. package/.aether/commands/run.yaml +229 -0
  63. package/.aether/commands/seal.yaml +1214 -0
  64. package/.aether/commands/skill-create.yaml +337 -0
  65. package/.aether/commands/status.yaml +408 -0
  66. package/.aether/commands/swarm.yaml +352 -0
  67. package/.aether/commands/tunnels.yaml +814 -0
  68. package/.aether/commands/update.yaml +131 -0
  69. package/.aether/commands/verify-castes.yaml +159 -0
  70. package/.aether/commands/watch.yaml +454 -0
  71. package/.aether/docs/INCIDENT_TEMPLATE.md +32 -0
  72. package/.aether/docs/QUEEN-SYSTEM.md +11 -11
  73. package/.aether/docs/README.md +32 -2
  74. package/.aether/docs/command-playbooks/README.md +23 -0
  75. package/.aether/docs/command-playbooks/build-complete.md +349 -0
  76. package/.aether/docs/command-playbooks/build-context.md +282 -0
  77. package/.aether/docs/command-playbooks/build-full.md +1683 -0
  78. package/.aether/docs/command-playbooks/build-prep.md +284 -0
  79. package/.aether/docs/command-playbooks/build-verify.md +405 -0
  80. package/.aether/docs/command-playbooks/build-wave.md +749 -0
  81. package/.aether/docs/command-playbooks/continue-advance.md +524 -0
  82. package/.aether/docs/command-playbooks/continue-finalize.md +447 -0
  83. package/.aether/docs/command-playbooks/continue-full.md +1725 -0
  84. package/.aether/docs/command-playbooks/continue-gates.md +686 -0
  85. package/.aether/docs/command-playbooks/continue-verify.md +407 -0
  86. package/.aether/docs/context-continuity.md +84 -0
  87. package/.aether/docs/disciplines/DISCIPLINES.md +9 -7
  88. package/.aether/docs/error-codes.md +1 -1
  89. package/.aether/docs/known-issues.md +34 -173
  90. package/.aether/docs/pheromones.md +86 -6
  91. package/.aether/docs/plans/pheromone-display-plan.md +257 -0
  92. package/.aether/docs/queen-commands.md +10 -9
  93. package/.aether/docs/source-of-truth-map.md +132 -0
  94. package/.aether/docs/xml-utilities.md +47 -0
  95. package/.aether/rules/aether-colony.md +23 -13
  96. package/.aether/scripts/incident-test-add.sh +47 -0
  97. package/.aether/scripts/weekly-audit.sh +79 -0
  98. package/.aether/skills/.index.json +649 -0
  99. package/.aether/skills/colony/.manifest.json +16 -0
  100. package/.aether/skills/colony/build-discipline/SKILL.md +78 -0
  101. package/.aether/skills/colony/colony-interaction/SKILL.md +56 -0
  102. package/.aether/skills/colony/colony-lifecycle/SKILL.md +77 -0
  103. package/.aether/skills/colony/colony-visuals/SKILL.md +112 -0
  104. package/.aether/skills/colony/context-management/SKILL.md +80 -0
  105. package/.aether/skills/colony/error-presentation/SKILL.md +99 -0
  106. package/.aether/skills/colony/pheromone-protocol/SKILL.md +79 -0
  107. package/.aether/skills/colony/pheromone-visibility/SKILL.md +81 -0
  108. package/.aether/skills/colony/state-safety/SKILL.md +84 -0
  109. package/.aether/skills/colony/worker-priming/SKILL.md +82 -0
  110. package/.aether/skills/domain/.manifest.json +24 -0
  111. package/.aether/skills/domain/README.md +33 -0
  112. package/.aether/skills/domain/django/SKILL.md +49 -0
  113. package/.aether/skills/domain/docker/SKILL.md +52 -0
  114. package/.aether/skills/domain/golang/SKILL.md +52 -0
  115. package/.aether/skills/domain/graphql/SKILL.md +51 -0
  116. package/.aether/skills/domain/html-css/SKILL.md +48 -0
  117. package/.aether/skills/domain/nextjs/SKILL.md +45 -0
  118. package/.aether/skills/domain/nodejs/SKILL.md +53 -0
  119. package/.aether/skills/domain/postgresql/SKILL.md +53 -0
  120. package/.aether/skills/domain/prisma/SKILL.md +59 -0
  121. package/.aether/skills/domain/python/SKILL.md +50 -0
  122. package/.aether/skills/domain/rails/SKILL.md +52 -0
  123. package/.aether/skills/domain/react/SKILL.md +45 -0
  124. package/.aether/skills/domain/rest-api/SKILL.md +58 -0
  125. package/.aether/skills/domain/svelte/SKILL.md +47 -0
  126. package/.aether/skills/domain/tailwind/SKILL.md +45 -0
  127. package/.aether/skills/domain/testing/SKILL.md +53 -0
  128. package/.aether/skills/domain/typescript/SKILL.md +58 -0
  129. package/.aether/skills/domain/vue/SKILL.md +49 -0
  130. package/.aether/templates/QUEEN.md.template +23 -41
  131. package/.aether/templates/colony-state-reset.jq.template +1 -0
  132. package/.aether/templates/colony-state.template.json +4 -0
  133. package/.aether/templates/learning-observations.template.json +6 -0
  134. package/.aether/templates/midden.template.json +13 -0
  135. package/.aether/templates/pheromones.template.json +6 -0
  136. package/.aether/templates/session.template.json +9 -0
  137. package/.aether/utils/atomic-write.sh +63 -17
  138. package/.aether/utils/chamber-utils.sh +145 -2
  139. package/.aether/utils/council.sh +425 -0
  140. package/.aether/utils/emoji-audit.sh +166 -0
  141. package/.aether/utils/error-handler.sh +21 -7
  142. package/.aether/utils/file-lock.sh +182 -27
  143. package/.aether/utils/flag.sh +278 -0
  144. package/.aether/utils/hive.sh +572 -0
  145. package/.aether/utils/immune.sh +508 -0
  146. package/.aether/utils/learning.sh +1928 -0
  147. package/.aether/utils/midden.sh +520 -0
  148. package/.aether/utils/oracle/oracle.md +168 -0
  149. package/.aether/utils/oracle/oracle.sh +1023 -0
  150. package/.aether/utils/pheromone.sh +2029 -0
  151. package/.aether/utils/queen.sh +1710 -0
  152. package/.aether/utils/scan.sh +860 -0
  153. package/.aether/utils/semantic-cli.sh +10 -8
  154. package/.aether/utils/session.sh +816 -0
  155. package/.aether/utils/skills.sh +509 -0
  156. package/.aether/utils/spawn-tree.sh +103 -271
  157. package/.aether/utils/spawn.sh +260 -0
  158. package/.aether/utils/state-api.sh +389 -0
  159. package/.aether/utils/state-loader.sh +8 -6
  160. package/.aether/utils/suggest.sh +611 -0
  161. package/.aether/utils/swarm-display.sh +10 -1
  162. package/.aether/utils/swarm.sh +1004 -0
  163. package/.aether/utils/watch-spawn-tree.sh +11 -2
  164. package/.aether/utils/xml-compose.sh +2 -2
  165. package/.aether/utils/xml-convert.sh +9 -5
  166. package/.aether/utils/xml-core.sh +5 -9
  167. package/.aether/utils/xml-query.sh +4 -4
  168. package/.aether/workers.md +86 -67
  169. package/.claude/agents/ant/aether-ambassador.md +2 -1
  170. package/.claude/agents/ant/aether-archaeologist.md +6 -1
  171. package/.claude/agents/ant/aether-architect.md +236 -0
  172. package/.claude/agents/ant/aether-auditor.md +6 -1
  173. package/.claude/agents/ant/aether-builder.md +38 -1
  174. package/.claude/agents/ant/aether-chaos.md +2 -1
  175. package/.claude/agents/ant/aether-chronicler.md +1 -0
  176. package/.claude/agents/ant/aether-gatekeeper.md +6 -1
  177. package/.claude/agents/ant/aether-includer.md +1 -0
  178. package/.claude/agents/ant/aether-keeper.md +1 -0
  179. package/.claude/agents/ant/aether-measurer.md +6 -1
  180. package/.claude/agents/ant/aether-oracle.md +237 -0
  181. package/.claude/agents/ant/aether-probe.md +2 -1
  182. package/.claude/agents/ant/aether-queen.md +6 -1
  183. package/.claude/agents/ant/aether-route-setter.md +6 -1
  184. package/.claude/agents/ant/aether-sage.md +68 -3
  185. package/.claude/agents/ant/aether-scout.md +38 -1
  186. package/.claude/agents/ant/aether-surveyor-disciplines.md +2 -1
  187. package/.claude/agents/ant/aether-surveyor-nest.md +2 -1
  188. package/.claude/agents/ant/aether-surveyor-pathogens.md +2 -1
  189. package/.claude/agents/ant/aether-surveyor-provisions.md +2 -1
  190. package/.claude/agents/ant/aether-tracker.md +6 -1
  191. package/.claude/agents/ant/aether-watcher.md +37 -1
  192. package/.claude/agents/ant/aether-weaver.md +2 -1
  193. package/.claude/commands/ant/archaeology.md +1 -8
  194. package/.claude/commands/ant/build.md +43 -1159
  195. package/.claude/commands/ant/chaos.md +1 -14
  196. package/.claude/commands/ant/colonize.md +3 -14
  197. package/.claude/commands/ant/continue.md +40 -1026
  198. package/.claude/commands/ant/council.md +213 -15
  199. package/.claude/commands/ant/data-clean.md +81 -0
  200. package/.claude/commands/ant/dream.md +12 -9
  201. package/.claude/commands/ant/entomb.md +62 -87
  202. package/.claude/commands/ant/export-signals.md +57 -0
  203. package/.claude/commands/ant/feedback.md +18 -0
  204. package/.claude/commands/ant/flag.md +12 -0
  205. package/.claude/commands/ant/flags.md +22 -8
  206. package/.claude/commands/ant/focus.md +18 -0
  207. package/.claude/commands/ant/help.md +40 -8
  208. package/.claude/commands/ant/history.md +3 -0
  209. package/.claude/commands/ant/import-signals.md +71 -0
  210. package/.claude/commands/ant/init.md +349 -191
  211. package/.claude/commands/ant/insert-phase.md +105 -0
  212. package/.claude/commands/ant/interpret.md +11 -0
  213. package/.claude/commands/ant/lay-eggs.md +167 -158
  214. package/.claude/commands/ant/maturity.md +22 -11
  215. package/.claude/commands/ant/memory-details.md +77 -0
  216. package/.claude/commands/ant/migrate-state.md +6 -0
  217. package/.claude/commands/ant/oracle.md +317 -62
  218. package/.claude/commands/ant/organize.md +10 -5
  219. package/.claude/commands/ant/patrol.md +620 -0
  220. package/.claude/commands/ant/pause-colony.md +8 -22
  221. package/.claude/commands/ant/phase.md +26 -37
  222. package/.claude/commands/ant/pheromones.md +156 -0
  223. package/.claude/commands/ant/plan.md +199 -50
  224. package/.claude/commands/ant/preferences.md +65 -0
  225. package/.claude/commands/ant/quick.md +100 -0
  226. package/.claude/commands/ant/redirect.md +18 -0
  227. package/.claude/commands/ant/resume-colony.md +37 -22
  228. package/.claude/commands/ant/resume.md +60 -7
  229. package/.claude/commands/ant/run.md +231 -0
  230. package/.claude/commands/ant/seal.md +506 -78
  231. package/.claude/commands/ant/skill-create.md +286 -0
  232. package/.claude/commands/ant/status.md +171 -1
  233. package/.claude/commands/ant/swarm.md +11 -23
  234. package/.claude/commands/ant/tunnels.md +1 -0
  235. package/.claude/commands/ant/update.md +58 -135
  236. package/.claude/commands/ant/verify-castes.md +90 -42
  237. package/.claude/commands/ant/watch.md +1 -0
  238. package/.opencode/agents/aether-ambassador.md +1 -1
  239. package/.opencode/agents/aether-architect.md +133 -0
  240. package/.opencode/agents/aether-builder.md +3 -3
  241. package/.opencode/agents/aether-oracle.md +137 -0
  242. package/.opencode/agents/aether-queen.md +1 -1
  243. package/.opencode/agents/aether-route-setter.md +1 -1
  244. package/.opencode/agents/aether-scout.md +1 -1
  245. package/.opencode/agents/aether-surveyor-disciplines.md +6 -1
  246. package/.opencode/agents/aether-surveyor-nest.md +6 -1
  247. package/.opencode/agents/aether-surveyor-pathogens.md +6 -1
  248. package/.opencode/agents/aether-surveyor-provisions.md +6 -1
  249. package/.opencode/agents/aether-tracker.md +1 -1
  250. package/.opencode/agents/aether-watcher.md +1 -1
  251. package/.opencode/agents/aether-weaver.md +1 -1
  252. package/.opencode/commands/ant/archaeology.md +7 -14
  253. package/.opencode/commands/ant/build.md +54 -88
  254. package/.opencode/commands/ant/chaos.md +7 -24
  255. package/.opencode/commands/ant/colonize.md +10 -17
  256. package/.opencode/commands/ant/continue.md +595 -66
  257. package/.opencode/commands/ant/council.md +150 -18
  258. package/.opencode/commands/ant/data-clean.md +77 -0
  259. package/.opencode/commands/ant/dream.md +15 -17
  260. package/.opencode/commands/ant/entomb.md +28 -18
  261. package/.opencode/commands/ant/export-signals.md +54 -0
  262. package/.opencode/commands/ant/feedback.md +24 -5
  263. package/.opencode/commands/ant/flag.md +16 -4
  264. package/.opencode/commands/ant/flags.md +24 -10
  265. package/.opencode/commands/ant/focus.md +22 -5
  266. package/.opencode/commands/ant/help.md +41 -8
  267. package/.opencode/commands/ant/history.md +9 -0
  268. package/.opencode/commands/ant/import-signals.md +68 -0
  269. package/.opencode/commands/ant/init.md +396 -154
  270. package/.opencode/commands/ant/insert-phase.md +111 -0
  271. package/.opencode/commands/ant/interpret.md +16 -0
  272. package/.opencode/commands/ant/lay-eggs.md +184 -112
  273. package/.opencode/commands/ant/maturity.md +18 -2
  274. package/.opencode/commands/ant/memory-details.md +83 -0
  275. package/.opencode/commands/ant/migrate-state.md +12 -0
  276. package/.opencode/commands/ant/oracle.md +322 -67
  277. package/.opencode/commands/ant/organize.md +14 -12
  278. package/.opencode/commands/ant/patrol.md +626 -0
  279. package/.opencode/commands/ant/pause-colony.md +12 -29
  280. package/.opencode/commands/ant/phase.md +30 -40
  281. package/.opencode/commands/ant/pheromones.md +162 -0
  282. package/.opencode/commands/ant/plan.md +210 -57
  283. package/.opencode/commands/ant/preferences.md +71 -0
  284. package/.opencode/commands/ant/quick.md +91 -0
  285. package/.opencode/commands/ant/redirect.md +22 -5
  286. package/.opencode/commands/ant/resume-colony.md +41 -29
  287. package/.opencode/commands/ant/resume.md +80 -20
  288. package/.opencode/commands/ant/run.md +237 -0
  289. package/.opencode/commands/ant/seal.md +230 -25
  290. package/.opencode/commands/ant/skill-create.md +63 -0
  291. package/.opencode/commands/ant/status.md +125 -30
  292. package/.opencode/commands/ant/swarm.md +3 -345
  293. package/.opencode/commands/ant/tunnels.md +3 -9
  294. package/.opencode/commands/ant/update.md +63 -127
  295. package/.opencode/commands/ant/verify-castes.md +96 -42
  296. package/.opencode/commands/ant/watch.md +7 -0
  297. package/CHANGELOG.md +368 -1
  298. package/README.md +195 -324
  299. package/bin/cli.js +236 -429
  300. package/bin/generate-commands.js +186 -0
  301. package/bin/generate-commands.sh +128 -89
  302. package/bin/lib/spawn-logger.js +0 -15
  303. package/bin/lib/update-transaction.js +285 -35
  304. package/bin/npx-install.js +178 -0
  305. package/bin/validate-package.sh +85 -3
  306. package/package.json +16 -4
  307. package/.aether/CONTEXT.md +0 -160
  308. package/.aether/docs/QUEEN.md +0 -84
  309. package/.aether/exchange/colony-registry.xml +0 -11
  310. package/.aether/exchange/pheromones.xml +0 -87
  311. package/.aether/exchange/queen-wisdom.xml +0 -14
  312. package/.aether/model-profiles.yaml +0 -100
  313. package/.aether/utils/spawn-with-model.sh +0 -56
  314. package/bin/lib/model-profiles.js +0 -445
  315. package/bin/lib/model-verify.js +0 -288
  316. package/bin/lib/proxy-health.js +0 -253
  317. package/bin/lib/telemetry.js +0 -441
@@ -1,17 +1,18 @@
1
+ <!-- Generated from .aether/commands/init.yaml - DO NOT EDIT DIRECTLY -->
1
2
  ---
2
3
  name: ant:init
3
- description: "πŸŒ±πŸœπŸ†•πŸœπŸŒ± Initialize Aether colony - Queen sets intention, colony mobilizes"
4
+ description: "Initialize Aether colony - scan repo, approve charter, create colony"
4
5
  ---
5
6
 
6
- You are the **Queen Ant Colony**. Initialize the colony with the Queen's intention.
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
- This ensures arguments work correctly in both Claude Code and OpenCode.
11
+ This ensures arguments work correctly in both Claude Code and OpenCode. Use `$normalized_args` throughout this command.
12
+
13
+ You are the **Queen Ant Colony**. Initialize the colony with the Queen's intention.
14
+
15
+ ## Instructions
15
16
 
16
17
  The user's goal is: `$normalized_args`
17
18
 
@@ -19,25 +20,42 @@ Parse `$normalized_args`:
19
20
  - If contains `--no-visual`: set `visual_mode = false` (visual is ON by default)
20
21
  - Otherwise: set `visual_mode = true`
21
22
 
23
+
22
24
  Note: Use `$normalized_args` instead of `$ARGUMENTS` throughout this command.
23
25
 
24
26
  ### Step 0: Initialize Visual Mode (if enabled)
25
27
 
26
28
  If `visual_mode` is true:
27
- ```bash
28
- # Generate session ID
29
- init_id="init-$(date +%s)"
30
29
 
31
- # Initialize swarm display
32
- bash .aether/aether-utils.sh swarm-display-init "$init_id"
33
- bash .aether/aether-utils.sh swarm-display-update "Queen" "prime" "excavating" "Colony initialization" "Colony" '{"read":0,"grep":0,"edit":0,"bash":0}' 0 "fungus_garden" 0
34
- ```
35
-
36
- ### Step 0.5: Version Check (Non-blocking)
37
-
38
- Run using the Bash tool: `bash .aether/aether-utils.sh version-check 2>/dev/null || true`
39
30
 
40
- If the command succeeds and the JSON result contains a non-empty string, display it as a one-line notice. Proceed regardless of outcome.
31
+ <failure_modes>
32
+ ### Colony State Overwrite
33
+ Re-init mode detects existing COLONY_STATE.json and preserves all state. Charter content is updated in-place via charter-write. Colony state, wisdom, instincts, learnings, pheromones, and phase progress are never reset.
34
+
35
+ ### Write Failure Mid-Init
36
+ If writing COLONY_STATE.json fails partway:
37
+ - Remove the incomplete file (partial state is worse than no state)
38
+ - Report the error
39
+ - Recovery: user can run /ant:init again safely
40
+ </failure_modes>
41
+
42
+ <success_criteria>
43
+ Command is complete when:
44
+ - User has approved the charter prompt (Charter, Context, Pheromones sections)
45
+ - Charter content is written to QUEEN.md via charter-write
46
+ - COLONY_STATE.json exists and is valid JSON (fresh init only)
47
+ - Session file is written
48
+ - User sees confirmation of colony creation or re-init
49
+ </success_criteria>
50
+
51
+ <read_only>
52
+ Do not touch during init:
53
+ - .aether/dreams/ (user notes)
54
+ - .aether/chambers/ (archived colonies)
55
+ - .env* files
56
+ - .claude/settings.json
57
+ - .github/workflows/
58
+ </read_only>
41
59
 
42
60
  ### Step 1: Validate Input
43
61
 
@@ -46,8 +64,8 @@ If `$normalized_args` is empty or blank, output:
46
64
  ```
47
65
  Aether Colony
48
66
 
49
- Initialize the colony with a goal. This creates the colony state,
50
- initializes constraints, and logs the init event.
67
+ Initialize the colony with a goal. This scans the repo, generates
68
+ a charter for your approval, then creates colony files.
51
69
 
52
70
  Usage: /ant:init "<your goal here>"
53
71
 
@@ -59,211 +77,435 @@ Aether Colony
59
77
 
60
78
  Stop here. Do not proceed.
61
79
 
62
- ### Step 1.5: Bootstrap System Files (Conditional)
80
+ ### Step 1.5: Verify Aether Setup
63
81
 
64
82
  Check if `.aether/aether-utils.sh` exists using the Read tool.
65
83
 
66
- **If the file already exists** β€” skip this step entirely. System files are present.
84
+ **If the file already exists** -- skip this step entirely. Aether is set up.
67
85
 
68
86
  **If the file does NOT exist:**
69
- - Check if `~/.aether/system/aether-utils.sh` exists (expand `~` to the user's home directory)
70
- - **If the hub exists:** Run using the Bash tool:
71
- ```bash
72
- mkdir -p .aether/docs .aether/utils .aether/templates .aether/schemas .aether/exchange .claude/rules && \
73
- cp -f ~/.aether/system/aether-utils.sh .aether/ && \
74
- cp -f ~/.aether/system/workers.md .aether/ 2>/dev/null || true && \
75
- cp -f ~/.aether/system/CONTEXT.md .aether/ 2>/dev/null || true && \
76
- cp -f ~/.aether/system/model-profiles.yaml .aether/ 2>/dev/null || true && \
77
- cp -Rf ~/.aether/system/docs/* .aether/docs/ 2>/dev/null || true && \
78
- cp -Rf ~/.aether/system/utils/* .aether/utils/ 2>/dev/null || true && \
79
- cp -Rf ~/.aether/system/templates/* .aether/templates/ 2>/dev/null || true && \
80
- cp -Rf ~/.aether/system/schemas/* .aether/schemas/ 2>/dev/null || true && \
81
- cp -Rf ~/.aether/system/exchange/* .aether/exchange/ 2>/dev/null || true && \
82
- cp -Rf ~/.aether/system/rules/* .claude/rules/ 2>/dev/null || true && \
83
- chmod +x .aether/aether-utils.sh
84
- ```
85
- This copies system files from the global hub into `.aether/` and rules into `.claude/rules/`. Display:
86
- ```
87
- Bootstrapped system files from global hub.
88
- ```
89
- - **If the hub does NOT exist:** Output:
90
- ```
91
- No Aether system files found locally or in ~/.aether/system/.
92
- Run `aether install` or `npx aether-colony install` to set up the global hub first.
93
- ```
94
- Stop here. Do not proceed.
87
+ ```
88
+ Aether is not set up in this repo yet.
95
89
 
96
- ### Step 2: Read Current State
90
+ Run /ant:lay-eggs first to create the .aether/ directory
91
+ with all system files, then run /ant:init "your goal" to
92
+ start a colony.
97
93
 
98
- Use the Read tool to read `.aether/data/COLONY_STATE.json`.
94
+ If the global hub isn't installed either:
95
+ npm install -g aether-colony (installs the hub)
96
+ /ant:lay-eggs (sets up this repo)
97
+ /ant:init "your goal" (starts the colony)
98
+ ```
99
+ Stop here. Do not proceed.
99
100
 
100
- If the `goal` field is not null, output:
101
+ ### Step 2: Initialize QUEEN.md
101
102
 
103
+ Run:
102
104
  ```
103
- Colony already initialized with goal: "{existing_goal}"
104
-
105
- To reinitialize with a new goal, the current state will be reset.
106
- Proceeding with new goal: "{new_goal}"
105
+ bash .aether/aether-utils.sh queen-init
107
106
  ```
108
107
 
109
- ### Step 2.5: Load Prior Colony Knowledge (Optional)
108
+ Parse the JSON result:
109
+ - If `created` is true: Display `QUEEN.md initialized`
110
+ - If `created` is false and `reason` is "already_exists": Display `QUEEN.md already exists`
110
111
 
111
- Check if `.aether/data/completion-report.md` exists using the Read tool.
112
+ This step is non-blocking -- proceed regardless of outcome.
112
113
 
113
- **If the file does NOT exist**, skip to Step 3 β€” this is a fresh colony with no prior history.
114
+ ### Step 3: Scan Repository
114
115
 
115
- **If the file exists**, read it and extract:
116
- 1. **Instincts** β€” look for the `## Colony Instincts` section. Each line has format: `N. [confidence] domain: description`. Keep only instincts with confidence >= 0.5.
117
- 2. **Learnings** β€” look for the `## Colony Learnings (Validated)` section. Keep all numbered items.
116
+ Run the scan via Bash tool:
117
+ ```bash
118
+ scan_result=$(bash .aether/aether-utils.sh init-research 2>/dev/null)
119
+ scan_data=$(echo "$scan_result" | jq '.result')
120
+ ```
118
121
 
119
- Store the extracted instincts and learnings for use in Step 3. Display a brief note:
122
+ Extract fields with jq defaults for missing data:
123
+ - `tech_langs`: `.tech_stack.languages | if length > 0 then join(", ") else "not detected" end`
124
+ - `tech_fwks`: `.tech_stack.frameworks | if length > 0 then join(", ") else "none" end`
125
+ - `tech_pkg`: `.tech_stack.package_managers | join(", ")`
126
+ - `complexity`: `.complexity.size`
127
+ - `file_count`: `.complexity.metrics.file_count`
128
+ - `top_dirs`: `.directory_structure.top_level_dirs | if . and length > 0 then join(", ") else "flat" end`
129
+ - `commit_count`: `.git_history.commit_count // "unknown"`
130
+ - `is_git`: `.git_history.is_git_repo // false`
131
+ - `survey_suggestion`: `.survey_status.suggestion.reason // empty`
132
+ - `has_active`: `.prior_colonies.has_active_colony // false`
133
+ - `active_goal`: `.prior_colonies.active_goal // empty`
134
+
135
+ **Intelligence fields (new):**
136
+ - `colony_context_colonies`: `.colony_context.prior_colonies // []` -- array of prior colony summaries (each has goal, phases, outcome, summary)
137
+ - `colony_context_charter`: `.colony_context.existing_charter // {}` -- existing charter content from QUEEN.md
138
+ - `governance_rules`: `.governance.rules // []` -- array of governance rule objects (each has rule, source, strength)
139
+ - `pheromone_suggestions`: `.pheromone_suggestions // []` -- array of suggestion objects (each has type, content, reason, priority)
140
+
141
+ If `scan_result` is empty or `jq` fails, set all fields to fallback values (empty arrays/objects for intelligence fields) and proceed (graceful degradation -- never stop init because scan fails).
142
+
143
+ ### Step 4: Detect Re-Init Mode
144
+
145
+ Use Read tool to check `.aether/data/COLONY_STATE.json`.
146
+
147
+ - If file exists AND has a non-null `goal` field:
148
+ - Check the `milestone` field. If `milestone == "Crowned Anthill"`:
149
+ - This is a **sealed colony**. Treat as **fresh init**, NOT re-init.
150
+ - Set `reinit_mode = false`
151
+ - Display: `Previous colony was sealed. Starting fresh colony.`
152
+ - The old COLONY_STATE.json will be overwritten in Step 7 (fresh init path).
153
+ - Otherwise (colony exists but is NOT sealed): set `reinit_mode = true`, store `existing_goal`
154
+ - If file does not exist or `goal` is null: set `reinit_mode = false`
155
+
156
+ If re-init mode, read existing charter entries from `.aether/QUEEN.md`:
157
+ ```bash
158
+ existing_intent=$(grep '\[charter\] \*\*Intent\*\*:' .aether/QUEEN.md 2>/dev/null | sed 's/.*\*\*Intent\*\*: //' | sed 's/ (Colony:.*//' || true)
159
+ existing_vision=$(grep '\[charter\] \*\*Vision\*\*:' .aether/QUEEN.md 2>/dev/null | sed 's/.*\*\*Vision\*\*: //' | sed 's/ (Colony:.*//' || true)
160
+ existing_governance=$(grep '\[charter\] \*\*Governance\*\*:' .aether/QUEEN.md 2>/dev/null | sed 's/.*\*\*Governance\*\*: //' | sed 's/ (Colony:.*//' || true)
161
+ existing_goals=$(grep '\[charter\] \*\*Goal\*\*:' .aether/QUEEN.md 2>/dev/null | sed 's/.*\*\*Goal\*\*: //' | sed 's/ (Colony:.*//' || true)
162
+ ```
163
+
164
+ Strip `(Colony: ...)` suffixes using sed. If grep finds nothing, variables remain empty.
165
+
166
+ ### Step 5: Assemble and Display Approval Prompt
120
167
 
168
+ Display a brief header:
121
169
  ```
122
- 🧠 Prior colony knowledge found:
123
- {N} instinct(s) inherited (confidence >= 0.5)
124
- {N} validated learning(s) carried forward
170
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
171
+ A E T H E R C O L O N Y I N I T
172
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
125
173
  ```
126
174
 
127
- If no instincts meet the threshold, display:
175
+ If re-init mode, display:
128
176
  ```
129
- 🧠 Prior colony knowledge found but no high-confidence instincts to inherit.
177
+ Re-init mode detected (existing goal: "{existing_goal}")
178
+ Charter will be updated. All colony state, wisdom, instincts, and progress will be preserved.
130
179
  ```
131
180
 
132
- **Important:** This step is read-only and non-blocking. If the file is malformed or unreadable, skip silently and proceed to Step 3 with empty memory.
181
+ Then display the approval prompt as formatted Markdown. Section ordering: Prior Context (if any) -> Charter -> Context -> Pheromones.
182
+
183
+ **Section 1: Prior Context (conditional -- only when prior colonies exist)**
184
+
185
+ If `colony_context_colonies` has entries (length > 0), display:
186
+ ```markdown
187
+ ## Prior Context
133
188
 
134
- ### Step 3: Write Colony State
189
+ Previous colonies in this repo:
135
190
 
136
- Generate a session ID in the format `session_{unix_timestamp}_{random}` and an ISO-8601 UTC timestamp.
191
+ {For each colony (max 3, most recent first):}
192
+ - **{goal}** -- {outcome} ({phases} phases){if summary is non-empty: ". {summary}"}
193
+ ```
137
194
 
138
- Resolve the colony-state template path:
139
- Check `~/.aether/system/templates/colony-state.template.json` first,
140
- then `.aether/templates/colony-state.template.json`.
195
+ Per locked decision: when no prior colonies exist, omit this section entirely. No placeholder, no header.
141
196
 
142
- If no template found: output "Template missing: colony-state.template.json. Run aether update to fix." and stop.
197
+ Keep each colony to 1-2 lines. Show goal, outcome (milestone), phase count, and summary from CROWNED-ANTHILL.md if available.
143
198
 
144
- Read the template file. Follow its `_instructions` field.
145
- Replace all `__PLACEHOLDER__` values:
146
- - `__GOAL__` β†’ the user's goal from $normalized_args
147
- - `__SESSION_ID__` β†’ the generated session ID (format: `session_{unix_timestamp}_{random}`)
148
- - `__ISO8601_TIMESTAMP__` β†’ the current ISO-8601 UTC timestamp (used in both `initialized_at` and the events entry)
149
- - `__PHASE_LEARNINGS__` β†’ JSON array from Step 2.5, or `[]` if none
150
- - `__INSTINCTS__` β†’ JSON array from Step 2.5, or `[]` if none
199
+ **Section 2: Charter**
200
+ ```markdown
201
+ ## Charter
151
202
 
152
- IMPORTANT: `__PHASE_LEARNINGS__` and `__INSTINCTS__` must be JSON array values (e.g., `[]` not `"[]"`).
203
+ **Intent:** {user's goal from $normalized_args, or existing_intent if re-init}
204
+ **Vision:** {derived from user's goal by Claude, or existing_vision if re-init}
205
+ **Governance:** {see governance logic below}
206
+ **Goals:** {blank for fresh init, or existing_goals if re-init}
207
+ ```
153
208
 
154
- **If Step 2.5 found instincts to inherit**, convert each into the instinct format for the `__INSTINCTS__` array. Each inherited instinct should have:
155
- - `id`: `instinct_inherited_{index}`
156
- - `trigger`: inferred from the instinct description
157
- - `action`: the instinct description
158
- - `confidence`: the original confidence value (from the completion report)
159
- - `domain`: the original domain (from the completion report)
160
- - `source`: `"inherited:completion-report"`
161
- - `evidence`: `["Validated in prior colony session"]`
162
- - `created_at`: current ISO-8601 timestamp
163
- - `last_applied`: null
164
- - `applications`: 0
165
- - `successes`: 0
209
+ For fresh init, Claude should derive a brief Vision from the user's goal (1-2 sentences). Goals start blank. The user fills them in if desired.
166
210
 
167
- **If Step 2.5 found validated learnings**, seed the `__PHASE_LEARNINGS__` array with each as:
168
- - `phase`: `"inherited"`
169
- - `learning`: the learning text
170
- - `status`: `"validated"`
171
- - `source`: `"inherited:completion-report"`
211
+ **Governance field logic:**
212
+ - For fresh init with `governance_rules` available (length > 0): pre-populate with semicolon-separated rule text from the detected rules. Format: `"TDD required; ESLint enforced; Follow CONTRIBUTING.md"`. These are editable by the user.
213
+ - For fresh init with no governance_rules: leave blank.
214
+ - For re-init with existing_governance non-empty: pre-populate from existing QUEEN.md charter entries.
215
+ - For re-init with existing_governance empty but governance_rules available: pre-populate from governance_rules.
172
216
 
173
- **If Step 2.5 was skipped or found nothing**, use empty arrays `[]` for both `__PHASE_LEARNINGS__` and `__INSTINCTS__`.
217
+ For re-init, pre-populate Intent, Vision, and Goals from existing QUEEN.md charter entries.
174
218
 
175
- Remove ALL keys starting with underscore (`_template`, `_version`, `_instructions`, `_comment_*`).
176
- Write the resulting JSON to `.aether/data/COLONY_STATE.json` using the Write tool.
219
+ **Section 3: Context**
220
+ ```markdown
221
+ ## Context
177
222
 
178
- ### Step 4: Initialize Constraints
223
+ **Tech Stack:** {tech_langs} | {tech_fwks} | {tech_pkg}
224
+ **Project Size:** {complexity} ({file_count} files)
225
+ **Structure:** {top_dirs}
226
+ **Git:** {commit_count} commits
227
+ {if survey_suggestion: **Note:** {survey_suggestion}}
228
+ ```
179
229
 
180
- Resolve the constraints template path:
181
- Check `~/.aether/system/templates/constraints.template.json` first,
182
- then `.aether/templates/constraints.template.json`.
230
+ **Section 4: Pheromones**
183
231
 
184
- If no template found: output "Template missing: constraints.template.json. Run aether update to fix." and stop.
232
+ If `pheromone_suggestions` has entries (length > 0), display:
233
+ ```markdown
234
+ ## Pheromones
185
235
 
186
- Read the template file. Follow its `_instructions` field.
187
- No placeholder substitution needed β€” the data keys are written as-is.
188
- Remove ALL keys starting with underscore (`_template`, `_version`, `_instructions`, `_comment_*`).
189
- Write the resulting JSON to `.aether/data/constraints.json` using the Write tool.
236
+ Suggested signals based on repo analysis:
190
237
 
191
- ### Step 5: Validate State File
238
+ 1. [FOCUS] Testing infrastructure present (47 test files) -- maintain TDD discipline
239
+ 2. [REDIRECT] Environment files detected -- never commit secrets or .env files
240
+ 3. [FOCUS] Code quality tools configured -- follow existing lint/format rules
192
241
 
193
- Use the Bash tool to run:
242
+ Edit, remove, or add signals as needed. Approved signals will be auto-applied.
194
243
  ```
195
- bash .aether/aether-utils.sh validate-state colony
244
+
245
+ The numbered list uses the actual type and content from `pheromone_suggestions`. Each line format: `{N}. [{type}] {content}`.
246
+
247
+ Per locked decision: suggestions are fully editable. User can reword, remove, or add their own.
248
+ Per locked decision: all sections look the same -- no visual distinction between auto-generated and user-written content.
249
+
250
+ If no pheromone suggestions available (empty array), display the existing default:
251
+ ```markdown
252
+ ## Pheromones
253
+
254
+ No pheromone suggestions yet -- use /ant:focus and /ant:redirect to guide the colony.
255
+ ```
256
+
257
+ End with clear instructions:
258
+ ```
259
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
260
+ Review the prompt above. You can:
261
+ - Edit any section (just describe your changes)
262
+ - Say "approve" or "looks good" to proceed
263
+ - Say "cancel" to abort
264
+
265
+ If you don't respond, the colony will not be initialized.
266
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
196
267
  ```
197
268
 
198
- This validates COLONY_STATE.json structure. If validation fails, output a warning.
269
+ **STOP HERE.** Wait for the user's response. Do NOT proceed to Step 6 until the user responds.
199
270
 
200
- ### Step 5.5: Detect Nestmates
271
+ ### Step 6: Handle User Response
201
272
 
202
- Run using Bash tool: `node -e "const nl = require('./bin/lib/nestmate-loader'); console.log(JSON.stringify(nl.findNestmates(process.cwd())))"`
273
+ Parse the user's response:
274
+ - If the user approves (says "approve", "looks good", "yes", "ok", or similar): proceed to Step 7
275
+ - If the user provides edits: apply the edits to the relevant section(s), re-display the full prompt, increment a revision counter, and wait again
276
+ - If the user cancels: display "Colony initialization cancelled." and stop
277
+ - Max 2 revision rounds. After 2 rejections/edits, display: "Maximum revisions reached. Approve current version, or cancel init?" and wait for final decision
203
278
 
204
- If nestmates are found:
205
- 1. Display: `Nestmates found: N related colonies`
206
- 2. List each nestmate with name and truncated goal
207
- 3. Check for shared TO-DOs or cross-project dependencies
279
+ When applying edits, Claude updates the section content in memory (not files) and re-displays the full prompt. Each re-display includes a revision counter: "(Revision {N}/2)"
208
280
 
209
- ### Step 5.6: Register Repo (Silent)
281
+ ### Step 7: Create Colony (Post-Approval)
210
282
 
211
- Attempt to register this repo in the global hub. Both steps are silent on failure β€” registry is not required for the colony to work.
283
+ Only reached after user approval. ALL file writes happen here.
212
284
 
213
- Run using the Bash tool (ignore errors):
285
+ **If re-init mode:**
286
+
287
+ 1. Write charter content via:
288
+ ```bash
289
+ bash .aether/aether-utils.sh charter-write --intent "{approved_intent}" --vision "{approved_vision}" --governance "{approved_governance}" --goals "{approved_goals}"
214
290
  ```
215
- bash .aether/aether-utils.sh registry-add "$(pwd)" "$(jq -r '.version // "unknown"' ~/.aether/version.json 2>/dev/null || echo 'unknown')" 2>/dev/null || true
291
+
292
+ 2. Auto-apply approved pheromone suggestions (see pheromone auto-apply below).
293
+
294
+ 3. Update the goal field in COLONY_STATE.json in-place using the state API:
295
+ ```bash
296
+ bash .aether/aether-utils.sh state-write "$(jq --arg new_goal "{approved_intent}" '.goal = $new_goal' .aether/data/COLONY_STATE.json)"
216
297
  ```
217
298
 
218
- Then attempt to write `.aether/version.json` with the hub version:
299
+ 4. **Verify the write** β€” read back and confirm goal is set:
300
+ ```bash
301
+ verify_goal=$(jq -r '.goal' .aether/data/COLONY_STATE.json)
302
+ if [[ "$verify_goal" == "null" || -z "$verify_goal" ]]; then
303
+ echo "ERROR: Colony state write failed β€” goal is still null after write. Re-run /ant:init."
304
+ # Attempt recovery: write goal directly
305
+ jq --arg g "{approved_intent}" '.goal = $g' .aether/data/COLONY_STATE.json > .aether/data/COLONY_STATE.json.tmp && mv .aether/data/COLONY_STATE.json.tmp .aether/data/COLONY_STATE.json
306
+ verify_goal=$(jq -r '.goal' .aether/data/COLONY_STATE.json)
307
+ if [[ "$verify_goal" == "null" || -z "$verify_goal" ]]; then
308
+ echo "FATAL: Recovery write also failed. Colony state may be corrupted."
309
+ stop
310
+ fi
311
+ fi
312
+ ```
313
+
314
+ 5. Run `bash .aether/aether-utils.sh session-init "$(jq -r '.session_id' .aether/data/COLONY_STATE.json)" "{approved_intent}"`
315
+
316
+ 6. Skip to Step 8 (display result). Do NOT write COLONY_STATE.json from template, do NOT write constraints.json, do NOT write pheromones.json.
317
+
318
+ **If fresh init:**
319
+
320
+ 1. Initialize QUEEN.md (already done in Step 2)
321
+ 2. Write charter content via charter-write (same command as above)
322
+ 3. Auto-apply approved pheromone suggestions (see pheromone auto-apply below).
323
+ 4. Write COLONY_STATE.json from template:
324
+ - Generate a session ID in the format `session_{unix_timestamp}_{random}` and an ISO-8601 UTC timestamp
325
+ - Resolve template: check `~/.aether/system/templates/colony-state.template.json` first, then `.aether/templates/colony-state.template.json`
326
+ - If no template found: output "Template missing: colony-state.template.json. Run aether update to fix." and stop
327
+ - Read the template file. Follow its `_instructions` field
328
+ - Replace placeholders: `__GOAL__` with approved intent, `__SESSION_ID__` with generated session ID, `__ISO8601_TIMESTAMP__` with current timestamp, `__PHASE_LEARNINGS__` with `[]`, `__INSTINCTS__` with `[]`
329
+ - Remove ALL keys starting with underscore
330
+ - Write the resulting JSON to `.aether/data/COLONY_STATE.json` using the Write tool
331
+
332
+ 5. **Verify the write** β€” read back and confirm COLONY_STATE.json is valid and goal is set:
333
+ ```bash
334
+ verify_goal=$(jq -r '.goal' .aether/data/COLONY_STATE.json 2>/dev/null)
335
+ verify_valid=$(jq -e . .aether/data/COLONY_STATE.json >/dev/null 2>&1 && echo "valid" || echo "invalid")
336
+ if [[ "$verify_valid" != "valid" || "$verify_goal" == "null" || -z "$verify_goal" ]]; then
337
+ echo "ERROR: Colony state write verification failed (valid=$verify_valid, goal=$verify_goal)"
338
+ echo "The colony file may be corrupted. Remove .aether/data/COLONY_STATE.json and re-run /ant:init."
339
+ stop
340
+ fi
341
+ echo "Colony state verified: goal=\"$verify_goal\""
219
342
  ```
343
+
344
+ 6. Write constraints.json from template:
345
+ - Resolve template: check `~/.aether/system/templates/constraints.template.json` first, then `.aether/templates/constraints.template.json`
346
+ - If no template found: output "Template missing: constraints.template.json. Run aether update to fix." and stop
347
+ - Read template, follow `_instructions`, remove `_` prefixed keys, write to `.aether/data/constraints.json`
348
+
349
+ 7. Initialize runtime files from templates (non-blocking):
350
+ ```bash
351
+ for template in pheromones midden learning-observations; do
352
+ if [[ "$template" == "midden" ]]; then
353
+ target=".aether/data/midden/midden.json"
354
+ else
355
+ target=".aether/data/${template}.json"
356
+ fi
357
+ if [[ ! -f "$target" ]]; then
358
+ template_file=""
359
+ for path in ~/.aether/system/templates/${template}.template.json .aether/templates/${template}.template.json; do
360
+ if [[ -f "$path" ]]; then
361
+ template_file="$path"
362
+ break
363
+ fi
364
+ done
365
+ if [[ -n "$template_file" ]]; then
366
+ jq 'with_entries(select(.key | startswith("_") | not))' "$template_file" > "$target" 2>/dev/null || true
367
+ fi
368
+ fi
369
+ done
370
+ ```
371
+
372
+ 8. Run `bash .aether/aether-utils.sh context-update init "{approved_intent}"`
373
+ 9. Run `bash .aether/aether-utils.sh validate-state colony`
374
+ 10. Register repo (silent on failure):
375
+ ```bash
376
+ domain_tags=$(bash .aether/aether-utils.sh domain-detect 2>/dev/null | jq -r '.result.tags // ""' || echo "")
377
+ bash .aether/aether-utils.sh registry-add "$(pwd)" "$(jq -r '.version // "unknown"' ~/.aether/version.json 2>/dev/null || echo 'unknown')" --goal "{approved_intent}" --active true --tags "$domain_tags" 2>/dev/null || true
220
378
  cp ~/.aether/version.json .aether/version.json 2>/dev/null || true
221
379
  ```
380
+ 11. Seed QUEEN.md from hive (non-blocking):
381
+ ```bash
382
+ domain_tags=$(jq -r --arg repo "$(pwd)" \
383
+ '[.repos[] | select(.path == $repo) | .domain_tags // []] | .[0] // [] | join(",")' \
384
+ "$HOME/.aether/registry.json" 2>/dev/null || echo "")
385
+ seed_args="queen-seed-from-hive --limit 5"
386
+ [[ -n "$domain_tags" ]] && seed_args="$seed_args --domain $domain_tags"
387
+ seed_result=$(bash .aether/aether-utils.sh $seed_args 2>/dev/null || echo '{}')
388
+ seeded_count=$(echo "$seed_result" | jq -r '.result.seeded // 0' 2>/dev/null || echo "0")
389
+ ```
390
+ 12. Run `bash .aether/aether-utils.sh session-init "{session_id}" "{approved_intent}"`
391
+
392
+ **Pheromone auto-apply (referenced by both re-init and fresh init paths above):**
393
+
394
+ If approved pheromone suggestions exist (the user kept them in the prompt and didn't remove them during the approval loop):
395
+
396
+ For each approved pheromone suggestion, call:
397
+ ```bash
398
+ bash .aether/aether-utils.sh pheromone-write "{type}" '{content}' --source "system:init" --reason '{reason}' --ttl "30d" 2>/dev/null || true
399
+ ```
222
400
 
223
- If either command fails, proceed silently. These are optional bookkeeping.
401
+ Implementation notes:
402
+ - Claude (the LLM executing init.md) tracks which pheromones the user kept, edited, or removed during the approval loop (Step 6). Only emit pheromones that survived approval.
403
+ - Use single quotes around pheromone content and reason to avoid shell metacharacter issues (per pitfall 4).
404
+ - Each `pheromone-write` call uses `2>/dev/null || true` to make it non-blocking -- a failed write should never stop colony creation.
405
+ - The `--source "system:init"` tag identifies these as init-derived pheromones.
406
+ - The `--ttl "30d"` gives suggestions a 30-day lifespan (project-level conventions, not phase-specific).
407
+ - `pheromone-write` handles deduplication via content hashing -- if a signal with the same content already exists, it will reinforce rather than duplicate.
224
408
 
225
- ### Step 6: Display Result
409
+ ### Step 7.5: Import Previous Colony Data (optional)
410
+
411
+ Check if previous colony chambers contain importable XML data:
226
412
 
227
- **If visual_mode is true, render final swarm display:**
228
413
  ```bash
229
- bash .aether/aether-utils.sh swarm-display-update "Queen" "prime" "completed" "Colony initialized" "Colony" '{"read":5,"grep":2,"edit":3,"bash":2}' 100 "fungus_garden" 100
230
- bash .aether/aether-utils.sh swarm-display-render "$init_id"
414
+ # Find most recent chamber with XML files (per D-07)
415
+ latest_chamber=$(ls -d .aether/chambers/20* 2>/dev/null | sort -r | head -1)
416
+ xml_import_available=false
417
+ import_summary=""
418
+
419
+ if [[ -n "$latest_chamber" ]]; then
420
+ xml_count=$(find "$latest_chamber" -maxdepth 1 -name "*.xml" ! -name "colony-archive.xml" 2>/dev/null | wc -l | tr -d ' ')
421
+ if [[ "$xml_count" -gt 0 ]] && command -v xmllint >/dev/null 2>&1; then
422
+ xml_import_available=true
423
+ chamber_name=$(basename "$latest_chamber")
424
+ # Count importable items for display
425
+ signal_count=$(jq '.signals | length' "$latest_chamber/pheromones.json" 2>/dev/null || echo "0")
426
+ import_summary="Found ${signal_count} signal(s) and ${xml_count} XML file(s) from colony '${chamber_name}'"
427
+ fi
428
+ fi
231
429
  ```
232
430
 
233
- Output this header:
431
+ **If xml_import_available is true:**
234
432
 
433
+ Display the import offer (per D-08):
235
434
  ```
236
- πŸŒ±πŸœπŸ†•πŸœπŸŒ± ═══════════════════════════════════════════════════
237
- A E T H E R C O L O N Y
238
- ═══════════════════════════════════════════════════ πŸŒ±πŸœπŸ†•πŸœπŸŒ±
435
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
436
+ PREVIOUS COLONY DATA FOUND
437
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
438
+
439
+ {import_summary}
440
+
441
+ Import signals and wisdom from this colony?
442
+ This will add to (not replace) your current colony data.
443
+
444
+ Import? (yes/no)
239
445
  ```
240
446
 
241
- Then output the result:
447
+ Use `AskUserQuestion` with yes/no options.
448
+
449
+ **If user selects "yes":**
450
+
451
+ Import ALL available data types (per D-09 -- no cherry-picking):
242
452
 
453
+ ```bash
454
+ # Import pheromones (per D-09)
455
+ if [[ -f "$latest_chamber/pheromones.xml" ]]; then
456
+ pher_import=$(bash .aether/aether-utils.sh pheromone-import-xml "$latest_chamber/pheromones.xml" "imported" 2>/dev/null || echo '{"ok":false}')
457
+ pher_imported=$(echo "$pher_import" | jq -r '.result.imported // 0' 2>/dev/null || echo "0")
458
+ echo "Pheromones: ${pher_imported} signal(s) imported"
459
+ fi
460
+
461
+ # Import wisdom to queen-wisdom.json (per D-09)
462
+ if [[ -f "$latest_chamber/queen-wisdom.xml" ]]; then
463
+ wis_import=$(bash .aether/aether-utils.sh wisdom-import-xml "$latest_chamber/queen-wisdom.xml" ".aether/data/queen-wisdom.json" 2>/dev/null || echo '{"ok":false}')
464
+ wis_imported=$(echo "$wis_import" | jq -r '.result.imported // 0' 2>/dev/null || echo "0")
465
+ echo "Wisdom: ${wis_imported} entries(s) imported to queen-wisdom.json"
466
+ fi
467
+
468
+ # Import registry lineage (per D-09)
469
+ if [[ -f "$latest_chamber/colony-registry.xml" ]]; then
470
+ reg_import=$(bash .aether/aether-utils.sh registry-import-xml "$latest_chamber/colony-registry.xml" 2>/dev/null || echo '{"ok":false}')
471
+ reg_imported=$(echo "$reg_import" | jq -r '.result.imported // 0' 2>/dev/null || echo "0")
472
+ echo "Registry: ${reg_imported} colon(ies) lineage imported"
473
+ fi
243
474
  ```
244
- πŸ‘‘ Queen has set the colony's intention
245
475
 
246
- "{goal}"
476
+ All imports are non-blocking -- log warning and continue if any fails.
477
+
478
+ **If user selects "no":**
479
+
480
+ Display "Import skipped. Starting fresh colony." and proceed to Step 8.
481
+
482
+ **If xml_import_available is false (no chambers, no XML, or no xmllint):**
483
+
484
+ Skip silently -- proceed directly to Step 8 without any mention of import (per D-11).
485
+ ### Step 8: Display Result
486
+
487
+ Display the success header and result block:
488
+
489
+ ```
490
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
491
+ A E T H E R C O L O N Y
492
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
247
493
 
248
- 🏠 Colony Status: READY
249
- πŸ“‹ Session: <session_id>
494
+ Queen has set the colony's intention
250
495
 
251
- {If instincts or learnings were inherited from Step 2.5:}
252
- 🧠 Inherited from prior colony:
253
- {N} instinct(s) | {N} learning(s)
254
- {End if}
496
+ "{approved_intent}"
255
497
 
256
- {If nestmates found in Step 5.5:}
257
- 🏘️ Nest Context: {N} sibling colonies detected
258
- Context from related projects will be automatically considered
259
- during planning and execution.
260
- {End if}
498
+ Colony Status: READY
261
499
 
262
- 🐜 The colony awaits your command:
500
+ {If re-init: " Mode: Re-init (charter updated, state preserved)"}
501
+ {If fresh and seeded_count > 0: " Hive wisdom: {seeded_count} cross-colony pattern(s) seeded into QUEEN.md"}
263
502
 
264
- /ant:plan πŸ“‹ Generate project plan
265
- /ant:colonize πŸ—ΊοΈ Analyze existing codebase first
266
- /ant:watch πŸ‘οΈ Set up live visibility
503
+ State persisted -- safe to /clear, then run /ant:plan
267
504
 
268
- πŸ’Ύ State persisted β€” safe to /clear, then run /ant:plan
505
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
506
+ Next Up
507
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
508
+ /ant:plan Generate execution plan
509
+ /ant:status Check colony state
510
+ /ant:focus Set initial focus
269
511
  ```