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,438 @@
1
+ name: "ant:colonize"
2
+ description: "📊🐜🗺️🐜📊 Survey territory with 4 parallel scouts for comprehensive colony intelligence"
3
+ body_claude: |
4
+ You are the **Queen**. Dispatch Surveyor Ants to map the territory.
5
+
6
+ The arguments are: `$ARGUMENTS`
7
+
8
+ **Parse arguments:**
9
+ - If contains `--no-visual`: set `visual_mode = false` (visual is ON by default)
10
+ - If contains `--force` or `--force-resurvey`: set `force_resurvey = true`
11
+ - Otherwise: set `visual_mode = true`, `force_resurvey = false`
12
+
13
+ <failure_modes>
14
+ ### Existing Survey Overwrite
15
+ If .aether/data/survey/ already contains survey documents:
16
+ - Warn before overwriting: "Existing survey found from [date]. Re-surveying will replace it."
17
+ - Options: (1) Continue and overwrite, (2) Keep existing survey, (3) Merge (re-survey only outdated sections)
18
+
19
+ ### Surveyor Spawn Failure
20
+ If a surveyor agent fails during codebase exploration:
21
+ - Report which survey document was not produced
22
+ - Partial surveys are acceptable -- note which documents are complete vs. missing
23
+ - Recovery: user can re-run /ant:colonize to regenerate missing surveys
24
+ </failure_modes>
25
+
26
+ <success_criteria>
27
+ Command is complete when:
28
+ - All surveyor agents have completed their exploration
29
+ - Survey documents exist in .aether/data/survey/
30
+ - COLONY_STATE.json reflects colonized status
31
+ - User sees summary of survey findings
32
+ </success_criteria>
33
+
34
+ <read_only>
35
+ Do not touch during colonize:
36
+ - .aether/dreams/ (user notes)
37
+ - .aether/chambers/ (archived colonies)
38
+ - Source code files (survey is read-only exploration)
39
+ - .env* files
40
+ - .claude/settings.json
41
+ - COLONY_STATE.json structure beyond colonize-specific fields
42
+ </read_only>
43
+
44
+ ## Instructions
45
+
46
+ ### Step 0: Initialize Visual Mode (if enabled)
47
+
48
+ Display header:
49
+ ```
50
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
51
+ 📊🐜🗺️🐜📊 C O L O N I Z E — T e r r i t o r y S u r v e y
52
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
53
+
54
+ Queen dispatching Surveyor Ants...
55
+ ```
56
+
57
+ ### Step 1: Validate
58
+
59
+ Read `.aether/data/COLONY_STATE.json`.
60
+
61
+ **If the file does not exist or cannot be read:**
62
+ 1. Create `.aether/data/` directory if it does not exist.
63
+ 2. Write a minimal COLONY_STATE.json:
64
+ `{"version": "3.0", "goal": null, "state": "IDLE", "current_phase": 0, "session_id": null, "initialized_at": null, "build_started_at": null, "plan": {"generated_at": null, "confidence": null, "phases": []}, "memory": {"phase_learnings": [], "decisions": [], "instincts": []}, "errors": {"records": [], "flagged_patterns": []}, "signals": [], "graveyards": [], "events": []}`
65
+ 3. Output: "No colony state found. Bootstrapping minimal state for territory survey."
66
+
67
+ **If the file exists:** continue.
68
+
69
+ **If `plan.phases` is not empty:** output "Colony already has phases. Use /ant:continue.", stop.
70
+
71
+ ### Step 2: Quick Surface Scan (for session context)
72
+
73
+ Use Glob to find key files (read up to 20 total) to provide context for the survey.
74
+
75
+ **Package manifests:**
76
+ - package.json, Cargo.toml, pyproject.toml, go.mod, Gemfile, pom.xml, build.gradle
77
+
78
+ **Documentation:**
79
+ - README.md, README.*, docs/README.md
80
+
81
+ **Entry points:**
82
+ - src/index.*, src/main.*, main.*, app.*, lib/index.*, index.*
83
+
84
+ **Config:**
85
+ - tsconfig.json, .eslintrc.*, jest.config.*, vite.config.*, webpack.config.*
86
+
87
+ Read found files. Extract basic info:
88
+ - Tech stack (language, framework)
89
+ - Entry points (main files)
90
+ - Key directories
91
+
92
+ ### Step 3: Dispatch Surveyor Ants (Parallel)
93
+
94
+ Create the survey directory:
95
+ ```bash
96
+ mkdir -p .aether/data/survey
97
+ ```
98
+
99
+ #### Step 3.1: Check for Stale Survey Session
100
+
101
+ Before dispatching surveyors, check for existing survey files and capture session start time:
102
+
103
+ ```bash
104
+ SURVEY_START=$(date +%s)
105
+
106
+ # Check for stale survey files
107
+ stale_check=$(bash .aether/aether-utils.sh session-verify-fresh --command survey "" "$SURVEY_START")
108
+ has_stale=$(echo "$stale_check" | jq -r '.stale | length')
109
+ has_fresh=$(echo "$stale_check" | jq -r '.fresh | length')
110
+
111
+ if [[ "$has_stale" -gt 0 ]] || [[ "$has_fresh" -gt 0 ]]; then
112
+ # Found existing survey files
113
+ if [[ "$force_resurvey" == "true" ]]; then
114
+ bash .aether/aether-utils.sh session-clear --command survey
115
+ echo "Cleared existing survey files for fresh territory mapping"
116
+ else
117
+ echo "Found existing territory survey. Use --force-resurvey to remap."
118
+ # Continue - will use existing survey files
119
+ fi
120
+ fi
121
+ ```
122
+
123
+ Generate unique names for the 4 Surveyor Ants (each name must be captured separately):
124
+ ```bash
125
+ bash .aether/aether-utils.sh generate-ant-name "surveyor"
126
+ bash .aether/aether-utils.sh generate-ant-name "surveyor"
127
+ bash .aether/aether-utils.sh generate-ant-name "surveyor"
128
+ bash .aether/aether-utils.sh generate-ant-name "surveyor"
129
+ ```
130
+
131
+ Log the dispatches (consolidated - fire-and-forget logging):
132
+ ```bash
133
+ bash .aether/aether-utils.sh spawn-log "Queen" "surveyor" "{provisions_name}" "Mapping provisions and trails" && bash .aether/aether-utils.sh spawn-log "Queen" "surveyor" "{nest_name}" "Mapping nest structure" && bash .aether/aether-utils.sh spawn-log "Queen" "surveyor" "{disciplines_name}" "Mapping disciplines and sentinels" && bash .aether/aether-utils.sh spawn-log "Queen" "surveyor" "{pathogens_name}" "Identifying pathogens"
134
+ ```
135
+
136
+ **Spawn 4 Surveyor Ants in parallel using the Task tool:**
137
+
138
+ Each Task should use `subagent_type="aether-surveyor-{focus}"`:
139
+ 1. `aether-surveyor-provisions` — Maps PROVISIONS.md and TRAILS.md
140
+ 2. `aether-surveyor-nest` — Maps BLUEPRINT.md and CHAMBERS.md
141
+ 3. `aether-surveyor-disciplines` — Maps DISCIPLINES.md and SENTINEL-PROTOCOLS.md
142
+ 4. `aether-surveyor-pathogens` — Maps PATHOGENS.md
143
+
144
+ **Prompt for each surveyor:**
145
+ ```
146
+ You are Surveyor Ant {name}. Explore this codebase and write your survey documents.
147
+
148
+ Focus: {provisions|nest|disciplines|pathogens}
149
+
150
+ The surface scan found:
151
+ - Language: {language}
152
+ - Framework: {framework}
153
+ - Key directories: {dirs}
154
+
155
+ Write your documents to `.aether/data/survey/` following your agent template.
156
+ Return only confirmation when complete — do not include document contents.
157
+ ```
158
+
159
+ Collect confirmations from all 4 surveyors. Each should return:
160
+ - Document name(s) written
161
+ - Line count(s)
162
+ - Brief status
163
+
164
+ ### Step 4: Verify Survey Completeness
165
+
166
+ Check that all 7 documents were created (consolidated):
167
+ ```bash
168
+ ls .aether/data/survey/PROVISIONS.md .aether/data/survey/TRAILS.md .aether/data/survey/BLUEPRINT.md .aether/data/survey/CHAMBERS.md .aether/data/survey/DISCIPLINES.md .aether/data/survey/SENTINEL-PROTOCOLS.md .aether/data/survey/PATHOGENS.md 2>&1 | grep -q "No such file" && echo "Some documents missing" || echo "All survey documents present"
169
+ ```
170
+
171
+ If any documents are missing, note which ones in the output.
172
+
173
+ #### Step 4.5: Verify Survey Files Are Fresh
174
+
175
+ Verify that all survey files were created after the session start:
176
+ ```bash
177
+ verify_result=$(bash .aether/aether-utils.sh session-verify-fresh --command survey "" "$SURVEY_START")
178
+ fresh_count=$(echo "$verify_result" | jq -r '.fresh | length')
179
+
180
+ if [[ "$fresh_count" -lt 7 ]]; then
181
+ echo "Warning: Some survey files may be stale or missing"
182
+ echo "$verify_result" | jq -r '.stale[], .missing[]' | while read doc; do
183
+ echo " - $doc"
184
+ done
185
+ fi
186
+ ```
187
+
188
+ ### Step 5: Update State
189
+
190
+ Read `.aether/data/COLONY_STATE.json`. Update:
191
+ - Set `state` to `"IDLE"` (ready for planning)
192
+ - Set `territory_surveyed` to `"<ISO-8601 UTC>"`
193
+
194
+ Write Event: Append to the `events` array as pipe-delimited string:
195
+ `"<ISO-8601 UTC>|territory_surveyed|colonize|Territory surveyed: 7 documents"`
196
+
197
+ If the `events` array exceeds 100 entries, remove the oldest entries to keep only 100.
198
+
199
+ Write the updated COLONY_STATE.json.
200
+
201
+ ### Step 6: Confirm
202
+
203
+ Output header:
204
+
205
+ ```
206
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
207
+ 📊🐜🗺️🐜📊 T E R R I T O R Y S U R V E Y C O M P L E T E
208
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
209
+ ```
210
+
211
+ Then output:
212
+
213
+ ```
214
+ 🗺️ Colony territory has been surveyed.
215
+
216
+ Survey Reports:
217
+ 📦 PROVISIONS.md — Tech stack & dependencies
218
+ 🛤️ TRAILS.md — External integrations
219
+ 📐 BLUEPRINT.md — Architecture patterns
220
+ 🏠 CHAMBERS.md — Directory structure
221
+ 📜 DISCIPLINES.md — Coding conventions
222
+ 🛡️ SENTINEL-PROTOCOLS.md — Testing patterns
223
+ ⚠️ PATHOGENS.md — Tech debt & concerns
224
+
225
+ Location: .aether/data/survey/
226
+
227
+ {If any docs missing:}
228
+ ⚠️ Missing: {list missing documents}
229
+ {/if}
230
+
231
+ Stack: <language> + <framework>
232
+ Entry: <main entry point>
233
+ Files: <total count> across <N> directories
234
+
235
+ {Read the goal from COLONY_STATE.json. If goal is null:}
236
+ Next:
237
+ /ant:init "<goal>" Set colony goal (required before planning)
238
+ /ant:focus "<area>" Inject focus before planning
239
+ /ant:redirect "<pat>" Inject constraint before planning
240
+
241
+ {If goal is not null:}
242
+ Next:
243
+ /ant:plan Generate project plan (will load relevant survey docs)
244
+ /ant:focus "<area>" Inject focus before planning
245
+ /ant:redirect "<pat>" Inject constraint before planning
246
+ ```
247
+
248
+ Generate the state-based Next Up block:
249
+ ```bash
250
+ state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
251
+ current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
252
+ total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
253
+ bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_phases"
254
+ ```
255
+
256
+ body_opencode: |
257
+ You are the **Queen**. Dispatch Surveyor Ants to map the territory.
258
+
259
+ The arguments are: `$normalized_args`
260
+
261
+ **Parse arguments:**
262
+ - If contains `--no-visual`: set `visual_mode = false` (visual is ON by default)
263
+ - Otherwise: set `visual_mode = true`
264
+
265
+ ## Instructions
266
+
267
+ ### Step 0: Display Header
268
+
269
+ Display header:
270
+ ```
271
+ 📊🐜🗺️🐜📊 ═══════════════════════════════════════════════
272
+ C O L O N I Z E — T e r r i t o r y S u r v e y
273
+ ═══════════════════════════════════════════════ 📊🐜🗺️🐜📊
274
+
275
+ Queen dispatching Surveyor Ants...
276
+ ```
277
+
278
+ ### Step 1: Validate
279
+
280
+ Read `.aether/data/COLONY_STATE.json`.
281
+
282
+ **If the file does not exist or cannot be read:**
283
+ 1. Create `.aether/data/` directory if it does not exist.
284
+ 2. Write a minimal COLONY_STATE.json:
285
+ `{"version": "3.0", "goal": null, "state": "IDLE", "current_phase": 0, "session_id": null, "initialized_at": null, "build_started_at": null, "plan": {"generated_at": null, "confidence": null, "phases": []}, "memory": {"phase_learnings": [], "decisions": [], "instincts": []}, "errors": {"records": [], "flagged_patterns": []}, "signals": [], "graveyards": [], "events": []}`
286
+ 3. Output: "No colony state found. Bootstrapping minimal state for territory survey."
287
+
288
+ **If the file exists:** continue.
289
+
290
+ **If `plan.phases` is not empty:** output "Colony already has phases. Use /ant:continue.", stop.
291
+
292
+ ### Step 2: Quick Surface Scan (for session context)
293
+
294
+ Use Glob to find key files (read up to 20 total) to provide context for the survey.
295
+
296
+ **Package manifests:**
297
+ - package.json, Cargo.toml, pyproject.toml, go.mod, Gemfile, pom.xml, build.gradle
298
+
299
+ **Documentation:**
300
+ - README.md, README.*, docs/README.md
301
+
302
+ **Entry points:**
303
+ - src/index.*, src/main.*, main.*, app.*, lib/index.*, index.*
304
+
305
+ **Config:**
306
+ - tsconfig.json, .eslintrc.*, jest.config.*, vite.config.*, webpack.config.*
307
+
308
+ Read found files. Extract basic info:
309
+ - Tech stack (language, framework)
310
+ - Entry points (main files)
311
+ - Key directories
312
+
313
+ ### Step 3: Dispatch Surveyor Ants (Parallel)
314
+
315
+ Create the survey directory:
316
+ ```bash
317
+ mkdir -p .aether/data/survey
318
+ ```
319
+
320
+ Generate unique names for the 4 Surveyor Ants and log their dispatch:
321
+ ```bash
322
+ bash .aether/aether-utils.sh generate-ant-name "surveyor"
323
+ bash .aether/aether-utils.sh generate-ant-name "surveyor"
324
+ bash .aether/aether-utils.sh generate-ant-name "surveyor"
325
+ bash .aether/aether-utils.sh generate-ant-name "surveyor"
326
+ ```
327
+
328
+ Log the dispatch:
329
+ ```bash
330
+ bash .aether/aether-utils.sh spawn-log "Queen" "surveyor" "{provisions_name}" "Mapping provisions and trails"
331
+ bash .aether/aether-utils.sh spawn-log "Queen" "surveyor" "{nest_name}" "Mapping nest structure"
332
+ bash .aether/aether-utils.sh spawn-log "Queen" "surveyor" "{disciplines_name}" "Mapping disciplines and sentinels"
333
+ bash .aether/aether-utils.sh spawn-log "Queen" "surveyor" "{pathogens_name}" "Identifying pathogens"
334
+ ```
335
+
336
+ **Spawn 4 Surveyor Ants in parallel using the Task tool:**
337
+
338
+ Each Task should use `subagent_type="aether-surveyor-{focus}"`:
339
+ 1. `aether-surveyor-provisions` — Maps PROVISIONS.md and TRAILS.md
340
+ 2. `aether-surveyor-nest` — Maps BLUEPRINT.md and CHAMBERS.md
341
+ 3. `aether-surveyor-disciplines` — Maps DISCIPLINES.md and SENTINEL-PROTOCOLS.md
342
+ 4. `aether-surveyor-pathogens` — Maps PATHOGENS.md
343
+
344
+ **Prompt for each surveyor:**
345
+ ```
346
+ You are Surveyor Ant {name}. Explore this codebase and write your survey documents.
347
+
348
+ Focus: {provisions|nest|disciplines|pathogens}
349
+
350
+ The surface scan found:
351
+ - Language: {language}
352
+ - Framework: {framework}
353
+ - Key directories: {dirs}
354
+
355
+ Write your documents to `.aether/data/survey/` following your agent template.
356
+ Return only confirmation when complete — do not include document contents.
357
+ ```
358
+
359
+ Collect confirmations from all 4 surveyors. Each should return:
360
+ - Document name(s) written
361
+ - Line count(s)
362
+ - Brief status
363
+
364
+ ### Step 4: Verify Survey Completeness
365
+
366
+ Check that all 7 documents were created:
367
+ ```bash
368
+ ls .aether/data/survey/PROVISIONS.md 2>/dev/null && echo "PROVISIONS: OK" || echo "PROVISIONS: MISSING"
369
+ ls .aether/data/survey/TRAILS.md 2>/dev/null && echo "TRAILS: OK" || echo "TRAILS: MISSING"
370
+ ls .aether/data/survey/BLUEPRINT.md 2>/dev/null && echo "BLUEPRINT: OK" || echo "BLUEPRINT: MISSING"
371
+ ls .aether/data/survey/CHAMBERS.md 2>/dev/null && echo "CHAMBERS: OK" || echo "CHAMBERS: MISSING"
372
+ ls .aether/data/survey/DISCIPLINES.md 2>/dev/null && echo "DISCIPLINES: OK" || echo "DISCIPLINES: MISSING"
373
+ ls .aether/data/survey/SENTINEL-PROTOCOLS.md 2>/dev/null && echo "SENTINEL: OK" || echo "SENTINEL: MISSING"
374
+ ls .aether/data/survey/PATHOGENS.md 2>/dev/null && echo "PATHOGENS: OK" || echo "PATHOGENS: MISSING"
375
+ ```
376
+
377
+ If any documents are missing, note which ones in the output.
378
+
379
+ ### Step 5: Update State
380
+
381
+ Read `.aether/data/COLONY_STATE.json`. Update:
382
+ - Set `state` to `"IDLE"` (ready for planning)
383
+ - Set `territory_surveyed` to `"<ISO-8601 UTC>"`
384
+
385
+ Write Event: Append to the `events` array as pipe-delimited string:
386
+ `"<ISO-8601 UTC>|territory_surveyed|colonize|Territory surveyed: 7 documents"`
387
+
388
+ If the `events` array exceeds 100 entries, remove the oldest entries to keep only 100.
389
+
390
+ Write the updated COLONY_STATE.json.
391
+
392
+ ### Step 6: Confirm
393
+
394
+ Output header:
395
+
396
+ ```
397
+ 📊🐜🗺️🐜📊 ═══════════════════════════════════════════════════
398
+ T E R R I T O R Y S U R V E Y C O M P L E T E
399
+ ═══════════════════════════════════════════════════ 📊🐜🗺️🐜📊
400
+ ```
401
+
402
+ Then output:
403
+
404
+ ```
405
+ 🗺️ Colony territory has been surveyed.
406
+
407
+ Survey Reports:
408
+ 📦 PROVISIONS.md — Tech stack & dependencies
409
+ 🛤️ TRAILS.md — External integrations
410
+ 📐 BLUEPRINT.md — Architecture patterns
411
+ 🏠 CHAMBERS.md — Directory structure
412
+ 📜 DISCIPLINES.md — Coding conventions
413
+ 🛡️ SENTINEL-PROTOCOLS.md — Testing patterns
414
+ ⚠️ PATHOGENS.md — Tech debt & concerns
415
+
416
+ Location: .aether/data/survey/
417
+
418
+ {If any docs missing:}
419
+ ⚠️ Missing: {list missing documents}
420
+ {/if}
421
+
422
+ Stack: <language> + <framework>
423
+ Entry: <main entry point>
424
+ Files: <total count> across <N> directories
425
+
426
+ {Read the goal from COLONY_STATE.json. If goal is null:}
427
+ Next:
428
+ /ant:init "<goal>" Set colony goal (required before planning)
429
+ /ant:focus "<area>" Inject focus before planning
430
+ /ant:redirect "<pat>" Inject constraint before planning
431
+
432
+ {If goal is not null:}
433
+ Next:
434
+ /ant:plan Generate project plan (will load relevant survey docs)
435
+ /ant:focus "<area>" Inject focus before planning
436
+ /ant:redirect "<pat>" Inject constraint before planning
437
+ ```
438
+