aether-colony 3.1.17 → 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 (378) hide show
  1. package/.aether/aether-utils.sh +5354 -0
  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 +211 -0
  72. package/.aether/docs/README.md +98 -0
  73. package/.aether/docs/caste-system.md +48 -0
  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 +1682 -0
  78. package/.aether/docs/command-playbooks/build-prep.md +283 -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 +1724 -0
  84. package/.aether/docs/command-playbooks/continue-gates.md +686 -0
  85. package/.aether/docs/command-playbooks/continue-verify.md +406 -0
  86. package/.aether/docs/context-continuity.md +84 -0
  87. package/{runtime → .aether/docs/disciplines}/DISCIPLINES.md +13 -11
  88. package/.aether/docs/error-codes.md +268 -0
  89. package/.aether/docs/known-issues.md +94 -0
  90. package/{runtime → .aether}/docs/pheromones.md +86 -6
  91. package/.aether/docs/plans/pheromone-display-plan.md +257 -0
  92. package/.aether/docs/queen-commands.md +98 -0
  93. package/.aether/docs/source-of-truth-map.md +132 -0
  94. package/.aether/docs/xml-utilities.md +47 -0
  95. package/{runtime → .aether}/exchange/pheromone-xml.sh +2 -1
  96. package/{runtime → .aether}/exchange/registry-xml.sh +7 -3
  97. package/{runtime → .aether}/exchange/wisdom-xml.sh +11 -4
  98. package/.aether/rules/aether-colony.md +144 -0
  99. package/.aether/schemas/example-prompt-builder.xml +234 -0
  100. package/.aether/scripts/incident-test-add.sh +47 -0
  101. package/.aether/scripts/weekly-audit.sh +79 -0
  102. package/.aether/skills/.index.json +649 -0
  103. package/.aether/skills/colony/.manifest.json +16 -0
  104. package/.aether/skills/colony/build-discipline/SKILL.md +78 -0
  105. package/.aether/skills/colony/colony-interaction/SKILL.md +56 -0
  106. package/.aether/skills/colony/colony-lifecycle/SKILL.md +77 -0
  107. package/.aether/skills/colony/colony-visuals/SKILL.md +112 -0
  108. package/.aether/skills/colony/context-management/SKILL.md +80 -0
  109. package/.aether/skills/colony/error-presentation/SKILL.md +99 -0
  110. package/.aether/skills/colony/pheromone-protocol/SKILL.md +79 -0
  111. package/.aether/skills/colony/pheromone-visibility/SKILL.md +81 -0
  112. package/.aether/skills/colony/state-safety/SKILL.md +84 -0
  113. package/.aether/skills/colony/worker-priming/SKILL.md +82 -0
  114. package/.aether/skills/domain/.manifest.json +24 -0
  115. package/.aether/skills/domain/README.md +33 -0
  116. package/.aether/skills/domain/django/SKILL.md +49 -0
  117. package/.aether/skills/domain/docker/SKILL.md +52 -0
  118. package/.aether/skills/domain/golang/SKILL.md +52 -0
  119. package/.aether/skills/domain/graphql/SKILL.md +51 -0
  120. package/.aether/skills/domain/html-css/SKILL.md +48 -0
  121. package/.aether/skills/domain/nextjs/SKILL.md +45 -0
  122. package/.aether/skills/domain/nodejs/SKILL.md +53 -0
  123. package/.aether/skills/domain/postgresql/SKILL.md +53 -0
  124. package/.aether/skills/domain/prisma/SKILL.md +59 -0
  125. package/.aether/skills/domain/python/SKILL.md +50 -0
  126. package/.aether/skills/domain/rails/SKILL.md +52 -0
  127. package/.aether/skills/domain/react/SKILL.md +45 -0
  128. package/.aether/skills/domain/rest-api/SKILL.md +58 -0
  129. package/.aether/skills/domain/svelte/SKILL.md +47 -0
  130. package/.aether/skills/domain/tailwind/SKILL.md +45 -0
  131. package/.aether/skills/domain/testing/SKILL.md +53 -0
  132. package/.aether/skills/domain/typescript/SKILL.md +58 -0
  133. package/.aether/skills/domain/vue/SKILL.md +49 -0
  134. package/.aether/templates/QUEEN.md.template +61 -0
  135. package/.aether/templates/colony-state-reset.jq.template +23 -0
  136. package/.aether/templates/colony-state.template.json +39 -0
  137. package/.aether/templates/constraints.template.json +9 -0
  138. package/.aether/templates/crowned-anthill.template.md +36 -0
  139. package/.aether/templates/handoff-build-error.template.md +30 -0
  140. package/.aether/templates/handoff-build-success.template.md +39 -0
  141. package/.aether/templates/handoff.template.md +40 -0
  142. package/.aether/templates/learning-observations.template.json +6 -0
  143. package/.aether/templates/midden.template.json +13 -0
  144. package/.aether/templates/pheromones.template.json +6 -0
  145. package/.aether/templates/session.template.json +9 -0
  146. package/{runtime → .aether}/utils/atomic-write.sh +68 -22
  147. package/{runtime → .aether}/utils/chamber-compare.sh +23 -10
  148. package/.aether/utils/chamber-utils.sh +440 -0
  149. package/.aether/utils/emoji-audit.sh +166 -0
  150. package/{runtime → .aether}/utils/error-handler.sh +34 -8
  151. package/.aether/utils/file-lock.sh +313 -0
  152. package/.aether/utils/flag.sh +267 -0
  153. package/.aether/utils/hive.sh +572 -0
  154. package/.aether/utils/learning.sh +1928 -0
  155. package/.aether/utils/midden.sh +342 -0
  156. package/.aether/utils/oracle/oracle.md +168 -0
  157. package/.aether/utils/oracle/oracle.sh +1023 -0
  158. package/.aether/utils/pheromone.sh +2029 -0
  159. package/.aether/utils/queen.sh +1698 -0
  160. package/.aether/utils/scan.sh +860 -0
  161. package/.aether/utils/semantic-cli.sh +415 -0
  162. package/.aether/utils/session.sh +552 -0
  163. package/.aether/utils/skills.sh +509 -0
  164. package/.aether/utils/spawn-tree.sh +260 -0
  165. package/.aether/utils/spawn.sh +260 -0
  166. package/.aether/utils/state-api.sh +199 -0
  167. package/{runtime → .aether}/utils/state-loader.sh +8 -6
  168. package/.aether/utils/suggest.sh +611 -0
  169. package/{runtime → .aether}/utils/swarm-display.sh +10 -1
  170. package/.aether/utils/swarm.sh +1004 -0
  171. package/{runtime → .aether}/utils/watch-spawn-tree.sh +11 -2
  172. package/{runtime → .aether}/utils/xml-compose.sh +9 -3
  173. package/.aether/utils/xml-convert.sh +277 -0
  174. package/{runtime → .aether}/utils/xml-core.sh +5 -9
  175. package/.aether/utils/xml-query.sh +201 -0
  176. package/.aether/utils/xml-utils.sh +110 -0
  177. package/{runtime → .aether}/workers.md +97 -81
  178. package/.claude/agents/ant/aether-ambassador.md +265 -0
  179. package/.claude/agents/ant/aether-archaeologist.md +327 -0
  180. package/.claude/agents/ant/aether-architect.md +236 -0
  181. package/.claude/agents/ant/aether-auditor.md +271 -0
  182. package/.claude/agents/ant/aether-builder.md +224 -0
  183. package/.claude/agents/ant/aether-chaos.md +269 -0
  184. package/.claude/agents/ant/aether-chronicler.md +305 -0
  185. package/.claude/agents/ant/aether-gatekeeper.md +330 -0
  186. package/.claude/agents/ant/aether-includer.md +374 -0
  187. package/.claude/agents/ant/aether-keeper.md +272 -0
  188. package/.claude/agents/ant/aether-measurer.md +322 -0
  189. package/.claude/agents/ant/aether-oracle.md +237 -0
  190. package/.claude/agents/ant/aether-probe.md +211 -0
  191. package/.claude/agents/ant/aether-queen.md +330 -0
  192. package/.claude/agents/ant/aether-route-setter.md +178 -0
  193. package/.claude/agents/ant/aether-sage.md +418 -0
  194. package/.claude/agents/ant/aether-scout.md +179 -0
  195. package/.claude/agents/ant/aether-surveyor-disciplines.md +417 -0
  196. package/.claude/agents/ant/aether-surveyor-nest.md +355 -0
  197. package/.claude/agents/ant/aether-surveyor-pathogens.md +289 -0
  198. package/.claude/agents/ant/aether-surveyor-provisions.md +360 -0
  199. package/.claude/agents/ant/aether-tracker.md +270 -0
  200. package/.claude/agents/ant/aether-watcher.md +280 -0
  201. package/.claude/agents/ant/aether-weaver.md +248 -0
  202. package/.claude/commands/ant/archaeology.md +16 -14
  203. package/.claude/commands/ant/build.md +43 -1028
  204. package/.claude/commands/ant/chaos.md +19 -23
  205. package/.claude/commands/ant/colonize.md +52 -31
  206. package/.claude/commands/ant/continue.md +40 -1016
  207. package/.claude/commands/ant/council.md +21 -18
  208. package/.claude/commands/ant/data-clean.md +81 -0
  209. package/.claude/commands/ant/dream.md +27 -15
  210. package/.claude/commands/ant/entomb.md +317 -225
  211. package/.claude/commands/ant/export-signals.md +57 -0
  212. package/.claude/commands/ant/feedback.md +48 -26
  213. package/.claude/commands/ant/flag.md +30 -10
  214. package/.claude/commands/ant/flags.md +34 -12
  215. package/.claude/commands/ant/focus.md +45 -19
  216. package/.claude/commands/ant/help.md +50 -8
  217. package/.claude/commands/ant/history.md +13 -0
  218. package/.claude/commands/ant/import-signals.md +71 -0
  219. package/.claude/commands/ant/init.md +345 -194
  220. package/.claude/commands/ant/insert-phase.md +101 -0
  221. package/.claude/commands/ant/interpret.md +26 -4
  222. package/.claude/commands/ant/lay-eggs.md +184 -127
  223. package/.claude/commands/ant/maturity.md +32 -11
  224. package/.claude/commands/ant/memory-details.md +77 -0
  225. package/.claude/commands/ant/migrate-state.md +20 -2
  226. package/.claude/commands/ant/oracle.md +337 -74
  227. package/.claude/commands/ant/organize.md +39 -25
  228. package/.claude/commands/ant/patrol.md +620 -0
  229. package/.claude/commands/ant/pause-colony.md +23 -27
  230. package/.claude/commands/ant/phase.md +40 -42
  231. package/.claude/commands/ant/pheromones.md +156 -0
  232. package/.claude/commands/ant/plan.md +185 -51
  233. package/.claude/commands/ant/preferences.md +65 -0
  234. package/.claude/commands/ant/redirect.md +45 -30
  235. package/.claude/commands/ant/resume-colony.md +51 -27
  236. package/.claude/commands/ant/resume.md +314 -94
  237. package/.claude/commands/ant/run.md +195 -0
  238. package/.claude/commands/ant/seal.md +650 -221
  239. package/.claude/commands/ant/skill-create.md +286 -0
  240. package/.claude/commands/ant/status.md +196 -31
  241. package/.claude/commands/ant/swarm.md +16 -46
  242. package/.claude/commands/ant/tunnels.md +280 -105
  243. package/.claude/commands/ant/update.md +73 -89
  244. package/.claude/commands/ant/verify-castes.md +100 -42
  245. package/.claude/commands/ant/watch.md +14 -12
  246. package/.opencode/agents/aether-ambassador.md +63 -20
  247. package/.opencode/agents/aether-archaeologist.md +29 -12
  248. package/.opencode/agents/aether-architect.md +103 -36
  249. package/.opencode/agents/aether-auditor.md +51 -18
  250. package/.opencode/agents/aether-builder.md +70 -20
  251. package/.opencode/agents/aether-chaos.md +29 -12
  252. package/.opencode/agents/aether-chronicler.md +60 -18
  253. package/.opencode/agents/aether-gatekeeper.md +27 -18
  254. package/.opencode/agents/aether-includer.md +27 -18
  255. package/.opencode/agents/aether-keeper.md +89 -18
  256. package/.opencode/agents/aether-measurer.md +27 -18
  257. package/.opencode/agents/aether-oracle.md +137 -0
  258. package/.opencode/agents/aether-probe.md +60 -18
  259. package/.opencode/agents/aether-queen.md +172 -24
  260. package/.opencode/agents/aether-route-setter.md +57 -12
  261. package/.opencode/agents/aether-sage.md +26 -18
  262. package/.opencode/agents/aether-scout.md +28 -20
  263. package/.opencode/agents/aether-surveyor-disciplines.md +59 -2
  264. package/.opencode/agents/aether-surveyor-nest.md +59 -2
  265. package/.opencode/agents/aether-surveyor-pathogens.md +57 -2
  266. package/.opencode/agents/aether-surveyor-provisions.md +59 -2
  267. package/.opencode/agents/aether-tracker.md +64 -18
  268. package/.opencode/agents/aether-watcher.md +66 -19
  269. package/.opencode/agents/aether-weaver.md +61 -18
  270. package/.opencode/commands/ant/archaeology.md +7 -14
  271. package/.opencode/commands/ant/build.md +437 -257
  272. package/.opencode/commands/ant/chaos.md +7 -24
  273. package/.opencode/commands/ant/colonize.md +8 -17
  274. package/.opencode/commands/ant/continue.md +661 -142
  275. package/.opencode/commands/ant/council.md +11 -22
  276. package/.opencode/commands/ant/data-clean.md +77 -0
  277. package/.opencode/commands/ant/dream.md +15 -17
  278. package/.opencode/commands/ant/entomb.md +133 -62
  279. package/.opencode/commands/ant/export-signals.md +54 -0
  280. package/.opencode/commands/ant/feedback.md +24 -5
  281. package/.opencode/commands/ant/flag.md +16 -4
  282. package/.opencode/commands/ant/flags.md +24 -10
  283. package/.opencode/commands/ant/focus.md +22 -5
  284. package/.opencode/commands/ant/help.md +41 -8
  285. package/.opencode/commands/ant/history.md +9 -0
  286. package/.opencode/commands/ant/import-signals.md +68 -0
  287. package/.opencode/commands/ant/init.md +374 -167
  288. package/.opencode/commands/ant/insert-phase.md +107 -0
  289. package/.opencode/commands/ant/interpret.md +16 -0
  290. package/.opencode/commands/ant/lay-eggs.md +184 -112
  291. package/.opencode/commands/ant/maturity.md +18 -2
  292. package/.opencode/commands/ant/memory-details.md +83 -0
  293. package/.opencode/commands/ant/migrate-state.md +12 -0
  294. package/.opencode/commands/ant/oracle.md +322 -67
  295. package/.opencode/commands/ant/organize.md +18 -16
  296. package/.opencode/commands/ant/patrol.md +626 -0
  297. package/.opencode/commands/ant/pause-colony.md +12 -29
  298. package/.opencode/commands/ant/phase.md +30 -40
  299. package/.opencode/commands/ant/pheromones.md +162 -0
  300. package/.opencode/commands/ant/plan.md +184 -56
  301. package/.opencode/commands/ant/preferences.md +71 -0
  302. package/.opencode/commands/ant/redirect.md +22 -5
  303. package/.opencode/commands/ant/resume-colony.md +38 -27
  304. package/.opencode/commands/ant/resume.md +385 -0
  305. package/.opencode/commands/ant/run.md +201 -0
  306. package/.opencode/commands/ant/seal.md +259 -45
  307. package/.opencode/commands/ant/skill-create.md +63 -0
  308. package/.opencode/commands/ant/status.md +135 -31
  309. package/.opencode/commands/ant/swarm.md +3 -345
  310. package/.opencode/commands/ant/tunnels.md +152 -9
  311. package/.opencode/commands/ant/update.md +70 -91
  312. package/.opencode/commands/ant/verify-castes.md +96 -42
  313. package/.opencode/commands/ant/watch.md +7 -0
  314. package/CHANGELOG.md +356 -0
  315. package/README.md +203 -573
  316. package/bin/cli.js +455 -527
  317. package/bin/generate-commands.js +186 -0
  318. package/bin/generate-commands.sh +127 -88
  319. package/bin/lib/init.js +13 -3
  320. package/bin/lib/spawn-logger.js +0 -15
  321. package/bin/lib/update-transaction.js +392 -140
  322. package/bin/npx-install.js +178 -0
  323. package/bin/sync-to-runtime.sh +5 -137
  324. package/bin/validate-package.sh +166 -0
  325. package/package.json +14 -7
  326. package/.opencode/agents/aether-guardian.md +0 -107
  327. package/.opencode/agents/workers.md +0 -1034
  328. package/bin/lib/model-profiles.js +0 -445
  329. package/bin/lib/model-verify.js +0 -288
  330. package/bin/lib/proxy-health.js +0 -253
  331. package/bin/lib/telemetry.js +0 -441
  332. package/runtime/CONTEXT.md +0 -160
  333. package/runtime/QUEEN_ANT_ARCHITECTURE.md +0 -402
  334. package/runtime/aether-utils.sh +0 -3879
  335. package/runtime/data/signatures.json +0 -41
  336. package/runtime/docs/AETHER-2.0-IMPLEMENTATION-PLAN.md +0 -1343
  337. package/runtime/docs/AETHER-PHEROMONE-SYSTEM-MASTER-SPEC.md +0 -2642
  338. package/runtime/docs/PHEROMONE-INJECTION.md +0 -240
  339. package/runtime/docs/PHEROMONE-INTEGRATION.md +0 -192
  340. package/runtime/docs/PHEROMONE-SYSTEM-DESIGN.md +0 -426
  341. package/runtime/docs/README.md +0 -94
  342. package/runtime/docs/VISUAL-OUTPUT-SPEC.md +0 -219
  343. package/runtime/docs/biological-reference.md +0 -272
  344. package/runtime/docs/codebase-review.md +0 -399
  345. package/runtime/docs/command-sync.md +0 -164
  346. package/runtime/docs/constraints.md +0 -116
  347. package/runtime/docs/implementation-learnings.md +0 -89
  348. package/runtime/docs/known-issues.md +0 -217
  349. package/runtime/docs/namespace.md +0 -148
  350. package/runtime/docs/pathogen-schema-example.json +0 -36
  351. package/runtime/docs/pathogen-schema.md +0 -111
  352. package/runtime/docs/planning-discipline.md +0 -159
  353. package/runtime/docs/progressive-disclosure.md +0 -184
  354. package/runtime/lib/queen-utils.sh +0 -729
  355. package/runtime/model-profiles.yaml +0 -100
  356. package/runtime/planning.md +0 -159
  357. package/runtime/recover.sh +0 -136
  358. package/runtime/templates/QUEEN.md.template +0 -79
  359. package/runtime/utils/chamber-utils.sh +0 -285
  360. package/runtime/utils/file-lock.sh +0 -122
  361. package/runtime/utils/spawn-tree.sh +0 -428
  362. package/runtime/utils/spawn-with-model.sh +0 -56
  363. package/runtime/utils/xml-utils.sh +0 -2196
  364. package/runtime/workers-new-castes.md +0 -516
  365. /package/{runtime → .aether/docs/disciplines}/coding-standards.md +0 -0
  366. /package/{runtime → .aether/docs/disciplines}/debugging.md +0 -0
  367. /package/{runtime → .aether/docs/disciplines}/learning.md +0 -0
  368. /package/{runtime → .aether/docs/disciplines}/tdd.md +0 -0
  369. /package/{runtime → .aether/docs/disciplines}/verification-loop.md +0 -0
  370. /package/{runtime → .aether/docs/disciplines}/verification.md +0 -0
  371. /package/{runtime → .aether}/schemas/aether-types.xsd +0 -0
  372. /package/{runtime → .aether}/schemas/colony-registry.xsd +0 -0
  373. /package/{runtime → .aether}/schemas/pheromone.xsd +0 -0
  374. /package/{runtime → .aether}/schemas/prompt.xsd +0 -0
  375. /package/{runtime → .aether}/schemas/queen-wisdom.xsd +0 -0
  376. /package/{runtime → .aether}/schemas/worker-priming.xsd +0 -0
  377. /package/{runtime → .aether}/utils/colorize-log.sh +0 -0
  378. /package/{runtime → .aether}/utils/queen-to-md.xsl +0 -0
@@ -0,0 +1,201 @@
1
+ <!-- Generated from .aether/commands/run.yaml - DO NOT EDIT DIRECTLY -->
2
+ ---
3
+ name: ant:run
4
+ description: "🤖🐜🔄🐜🤖 Autopilot — builds, verifies, learns, and advances through phases automatically with smart pausing"
5
+ ---
6
+
7
+ ### Step -1: Normalize Arguments
8
+
9
+ Run: `normalized_args=$(bash .aether/aether-utils.sh normalize-args "$@")`
10
+
11
+ This ensures arguments work correctly in both Claude Code and OpenCode. Use `$normalized_args` throughout this command.
12
+
13
+ You are the **Queen**. Execute `/ant:run` — the adaptive autopilot loop.
14
+
15
+ The arguments are: `$normalized_args`
16
+
17
+ ## Purpose
18
+
19
+ This command automates the build-continue-advance cycle across multiple phases.
20
+ It reads and executes the same playbooks used by `/ant:build` and `/ant:continue`,
21
+ chaining them in a loop with intelligent pause conditions.
22
+
23
+ ## Rules
24
+
25
+ 1. Do **not** invoke nested slash commands (`/ant:build`, `/ant:continue`, etc.).
26
+ 2. Use the Read tool to load each playbook file, then execute it inline.
27
+ 3. Preserve variables/results from prior stages and pass them forward.
28
+ 4. Stop immediately on any pause condition (defined below).
29
+ 5. Keep existing behavior and output format from the playbooks.
30
+ 6. Log `autopilot_advance` events after each successful phase transition.
31
+
32
+ ## Arguments
33
+
34
+ Parse `$normalized_args` for:
35
+ - `--max-phases N` — Max phases to process (default: all remaining)
36
+ - `--replan-interval N` — Pause for replan suggestion every N phases (default: 2)
37
+ - `--continue` — Resume after a replan pause without replanning
38
+ - `--dry-run` — Preview plan without executing
39
+ - `--verbose` / `-v`, `--no-visual`, `--no-suggest` — Pass through to playbooks
40
+
41
+ ```
42
+ /ant:run Run all remaining phases
43
+ /ant:run --max-phases 2 Run at most 2 phases then stop
44
+ /ant:run --replan-interval 3 Suggest replan every 3 phases instead of 2
45
+ /ant:run --continue Resume after replan pause without replanning
46
+ /ant:run --dry-run Preview the autopilot plan
47
+ /ant:run --max-phases 3 -v Run 3 phases with verbose output
48
+ ```
49
+
50
+ ## Dry Run Mode
51
+
52
+ If `--dry-run`: read COLONY_STATE.json, list remaining incomplete phases
53
+ (applying `--max-phases` cap), display the plan, then stop without executing.
54
+
55
+ ```
56
+ ━━━ A U T O P I L O T P R E V I E W ━━━
57
+ Goal: {goal} | Current: Phase {N} | Remaining: {count} | Max: {max or "all"}
58
+
59
+ Phase {id}: {name} ({task_count} tasks) -> build -> continue -> advance
60
+ ...
61
+
62
+ Pause triggers: test failures, critical Chaos findings, new blockers,
63
+ security gate failures, quality gate failures, runtime verification needed,
64
+ replan suggestion (every {replan_interval} phases)
65
+ ```
66
+
67
+ ## Autopilot Loop
68
+
69
+ ### Step 0: Initialize
70
+
71
+ 1. Read `.aether/data/COLONY_STATE.json`; validate goal + plan.phases exist
72
+ 2. Determine remaining incomplete phases; apply `--max-phases` cap
73
+ 3. Set `phases_completed = 0`, `autopilot_start = $(date +%s)`
74
+ 4. Record pre-build blocker count: `bash .aether/aether-utils.sh flag-check-blockers {phase}`
75
+ 5. Display: `AUTOPILOT ENGAGED | Goal: {goal} | Phase {N} | Max: {max or "all"}`
76
+
77
+ ### Step 1: Build Phase
78
+
79
+ Execute build playbooks in order, carrying cross-stage state
80
+ (`phase_id`, `visual_mode`, `verbose_mode`, `suggest_enabled`,
81
+ `prompt_section`, `wave_results`,
82
+ `verification_status`, `synthesis_status`, `next_action`):
83
+
84
+ 1. `.aether/docs/command-playbooks/build-prep.md`
85
+ 2. `.aether/docs/command-playbooks/build-context.md`
86
+ 3. `.aether/docs/command-playbooks/build-wave.md`
87
+ 4. `.aether/docs/command-playbooks/build-verify.md`
88
+ 5. `.aether/docs/command-playbooks/build-complete.md`
89
+
90
+ Capture the synthesis result for pause evaluation.
91
+
92
+ ### Step 2: Build Pause Check
93
+
94
+ **PAUSE if ANY of these are true** (display reason, log event, STOP):
95
+
96
+ | # | Condition | Source |
97
+ |---|-----------|--------|
98
+ | 1 | Watcher `verification_passed == false` | build-verify synthesis |
99
+ | 2 | Any Chaos finding severity `critical` or `high` | build-verify synthesis |
100
+ | 3 | New blocker flags created (count increased since Step 0.4) | flag-check-blockers |
101
+
102
+ On pause, display the AUTOPILOT PAUSED banner with reason, affected phase,
103
+ specific issues, and instruction: "Fix issues, then run /ant:run to resume."
104
+ Log: `"<timestamp>|autopilot_paused|run|Paused at Phase {id}: {reason}"`
105
+
106
+ **If no pause:** proceed to Step 3.
107
+
108
+ ### Step 3: Continue (Verify + Advance)
109
+
110
+ Execute continue playbooks in order, carrying cross-stage state
111
+ (`visual_mode`, `state`, `current_phase`, `verification_results`,
112
+ `gate_results`, `advancement_result`, `next_phase_id`, `completion_state`):
113
+
114
+ 1. `.aether/docs/command-playbooks/continue-verify.md`
115
+ 2. `.aether/docs/command-playbooks/continue-gates.md`
116
+ 3. `.aether/docs/command-playbooks/continue-advance.md`
117
+ 4. `.aether/docs/command-playbooks/continue-finalize.md`
118
+
119
+ **Autopilot override for runtime verification (Step 1.11 in continue-gates):**
120
+ Skip the AskUserQuestion prompt. Instead, auto-PAUSE with reason
121
+ "Runtime verification required" so the user can test manually before resuming.
122
+
123
+ ### Step 4: Continue Pause Check
124
+
125
+ **PAUSE if ANY of these are true:**
126
+
127
+ | # | Condition | Source |
128
+ |---|-----------|--------|
129
+ | 4 | Verification loop reported NOT READY | continue-verify |
130
+ | 5 | Gatekeeper found critical CVEs | continue-gates |
131
+ | 6 | Auditor critical findings or score < 60 | continue-gates |
132
+ | 7 | Unresolved blocker flags remain | continue-gates |
133
+ | 8 | Runtime verification needed | continue-gates Step 1.11 |
134
+ | 9 | All phases complete (no next phase) | continue-advance |
135
+ | 10 | Replan trigger fires (unless `--continue`) | autopilot-check-replan (Step 5.5) |
136
+
137
+ For condition 9: jump to Step 6 (celebration). For condition 10: PAUSE with
138
+ replan suggestion (see Step 5.5). For all others: PAUSE with reason, log event, STOP.
139
+
140
+ **If no pause:** proceed to Step 5.
141
+
142
+ ### Step 5: Auto-Advance and Loop
143
+
144
+ 1. Increment `phases_completed`
145
+ 2. Update autopilot state: `bash .aether/aether-utils.sh autopilot-update --action advance --phase {next} --result success`
146
+ 3. Log: `"<timestamp>|autopilot_advance|run|Phase {prev} -> {next} ({phases_completed}/{max})"`
147
+ 4. Display: `--- Autopilot: Phase {prev} done -> Phase {next} ({N}/{max}) ---`
148
+ 5. **Replan check** (see Step 5.5)
149
+ 6. If `phases_completed >= max_phases` or no incomplete phases: go to Step 6
150
+ 7. Otherwise: update `current_phase`, return to Step 1
151
+
152
+ ### Step 5.5: Replan Trigger Check
153
+
154
+ After each successful phase advance, check if a replan pause should fire:
155
+
156
+ ```bash
157
+ bash .aether/aether-utils.sh autopilot-check-replan --interval {replan_interval}
158
+ ```
159
+
160
+ If `--continue` flag was passed: skip this check entirely (user dismissed replan).
161
+
162
+ If `result.should_replan == true`: **PAUSE** with replan suggestion banner:
163
+
164
+ ```
165
+ ━━━ R E P L A N S U G G E S T E D ━━━
166
+ Phases auto-completed: {N} | Learnings accumulated: {learnings_since_last}
167
+
168
+ The colony has completed {N} phases since the last plan review.
169
+ New learnings may have changed the optimal path forward.
170
+
171
+ Options:
172
+ /ant:plan Regenerate phases with current learnings
173
+ /ant:run --continue Dismiss and continue without replanning
174
+ ```
175
+
176
+ Log: `"<timestamp>|autopilot_replan_pause|run|Replan suggested after {N} phases ({learnings} learnings)"`
177
+
178
+ If `result.should_replan == false`: proceed normally (no pause).
179
+
180
+ ### Step 6: Final Summary
181
+
182
+ ```
183
+ ━━━ A U T O P I L O T C O M P L E T E ━━━
184
+ Phases completed: {N} | Elapsed: {Xm Ys} | Now at: Phase {current}
185
+
186
+ {all complete} -> Colony goal achieved! Run /ant:seal
187
+ {max reached} -> Run /ant:run to continue
188
+ {replan} -> Run /ant:plan to replan, or /ant:run --continue to dismiss
189
+ {paused} -> Fix {reason}, then /ant:run to resume
190
+ ```
191
+
192
+ Update session:
193
+ `bash .aether/aether-utils.sh session-update "/ant:run" "/ant:run" "Autopilot: {N} phases, now Phase {current}"`
194
+
195
+ ## Execution Contract
196
+
197
+ For each playbook stage: Read file, execute inline, track `{stage_name, status, key_outputs}`.
198
+ If `status == failed`: evaluate pause conditions. Pause = graceful stop with saved state.
199
+ Hard failure (e.g., state corruption) = halt immediately, no recovery attempt.
200
+
201
+ On every pause: save COLONY_STATE.json, log event, update session, display resume instructions.
@@ -1,34 +1,23 @@
1
+ <!-- Generated from .aether/commands/seal.yaml - DO NOT EDIT DIRECTLY -->
1
2
  ---
2
3
  name: ant:seal
3
4
  description: "🏺🐜🏺 Seal the colony with Crowned Anthill milestone"
4
5
  ---
5
6
 
6
- You are the **Queen**. Seal the colony when all work is complete.
7
-
8
- ## Instructions
9
-
10
7
  ### Step -1: Normalize Arguments
11
8
 
12
9
  Run: `normalized_args=$(bash .aether/aether-utils.sh normalize-args "$@")`
13
10
 
14
11
  This ensures arguments work correctly in both Claude Code and OpenCode. Use `$normalized_args` throughout this command.
15
12
 
13
+ You are the **Queen**. Seal the colony when all work is complete.
14
+
15
+ ## Instructions
16
+
16
17
  Parse `$normalized_args`:
17
18
  - If contains `--no-visual`: set `visual_mode = false` (visual is ON by default)
18
19
  - Otherwise: set `visual_mode = true`
19
20
 
20
- ### Step 0: Initialize Visual Mode (if enabled)
21
-
22
- If `visual_mode` is true:
23
- ```bash
24
- # Generate session ID
25
- seal_id="seal-$(date +%s)"
26
-
27
- # Initialize swarm display
28
- bash .aether/aether-utils.sh swarm-display-init "$seal_id"
29
- bash .aether/aether-utils.sh swarm-display-update "Queen" "prime" "excavating" "Sealing colony" "Colony" '{"read":0,"grep":0,"edit":0,"bash":0}' 0 "fungus_garden" 0
30
- ```
31
-
32
21
  ### Step 1: Read State
33
22
 
34
23
  Read `.aether/data/COLONY_STATE.json`.
@@ -139,6 +128,31 @@ Create archive manifest file `$archive_dir/manifest.json`:
139
128
  }
140
129
  ```
141
130
 
131
+ ### Step 4.5: Increment Colony Version
132
+
133
+ Before writing the Crowned Anthill milestone, increment `colony_version` in COLONY_STATE.json.
134
+
135
+ ```bash
136
+ # Read current colony_version (default to 0 for backward compat with older colonies)
137
+ current_colony_version=$(jq -r '.colony_version // 0' .aether/data/COLONY_STATE.json 2>/dev/null || echo 0)
138
+ # Guard against non-integer values (floats, strings)
139
+ [[ "$current_colony_version" =~ ^[0-9]+$ ]] || current_colony_version=0
140
+ new_colony_version=$(( current_colony_version + 1 ))
141
+
142
+ # Write incremented value back — guard against empty output destroying the file
143
+ updated=$(jq --argjson v "$new_colony_version" '.colony_version = $v' .aether/data/COLONY_STATE.json 2>/dev/null)
144
+ if [[ -n "$updated" && ${#updated} -gt 10 ]]; then
145
+ echo "$updated" > .aether/data/COLONY_STATE.json
146
+ else
147
+ echo "Warning: jq update failed — colony_version defaults to 1, state file unchanged"
148
+ new_colony_version=1
149
+ fi
150
+ ```
151
+
152
+ Use `new_colony_version` as `{colony_version}` throughout the rest of the seal ceremony (e.g., display as "Crowned Anthill v{colony_version}").
153
+
154
+ **Error handling:** If jq fails or produces empty/short output, COLONY_STATE.json is NOT overwritten and `new_colony_version` defaults to 1. Never let version increment failures block the seal.
155
+
142
156
  ### Step 5: Update Milestone to Crowned Anthill
143
157
 
144
158
  Update COLONY_STATE.json:
@@ -146,60 +160,188 @@ Update COLONY_STATE.json:
146
160
  2. Set `milestone_updated_at` to current ISO-8601 timestamp
147
161
  3. Append event: `"<timestamp>|milestone_reached|archive|Achieved Crowned Anthill milestone - colony archived"`
148
162
 
149
- ### Step 5.5: Write Final Handoff
163
+ ### Step 5.1: Update Changelog
150
164
 
151
- After archiving, write the final handoff documenting the completed colony:
165
+ **MANDATORY: Record the seal in the project changelog. This step is never skipped.**
166
+
167
+ If no `CHANGELOG.md` exists, `changelog-append` creates one automatically.
168
+
169
+ Build a summary of what the colony accomplished across all phases:
170
+ - Collect completed phase names from COLONY_STATE.json
171
+ - Summarize the goal and key outcomes in one line
152
172
 
153
173
  ```bash
154
- cat > .aether/HANDOFF.md << 'HANDOFF_EOF'
155
- # Colony Session — SEALED (Crowned Anthill)
174
+ bash .aether/aether-utils.sh changelog-append \
175
+ "$(date +%Y-%m-%d)" \
176
+ "seal-crowned-anthill" \
177
+ "00" \
178
+ "{key_files_csv}" \
179
+ "Colony sealed at Crowned Anthill;{goal}" \
180
+ "{phases_completed} phases completed;Colony wisdom promoted to QUEEN.md" \
181
+ ""
182
+ ```
183
+
184
+ - `{key_files_csv}` — list the most significant files created or modified across the colony's lifetime (derive from phase plans or git log)
185
+ - `{goal}` — the colony goal from COLONY_STATE.json
186
+
187
+ **Error handling:** If `changelog-append` fails, log to midden and continue — changelog failure never blocks sealing.
188
+
189
+ ### Step 5.2: Update Registry (Silent)
190
+
191
+ Mark the colony as inactive in the global registry. This is silent on failure — registry is not required for the colony to work.
192
+
193
+ Run using the Bash tool (ignore errors):
194
+ ```bash
195
+ bash .aether/aether-utils.sh registry-add "$(pwd)" "$(jq -r '.version // "unknown"' ~/.aether/version.json 2>/dev/null || echo 'unknown')" --active false 2>/dev/null || true
196
+ ```
197
+
198
+ If the command fails, proceed silently. This is optional bookkeeping.
199
+
200
+ ### Step 5.25: Hive Promotion (NON-BLOCKING)
201
+
202
+ After wisdom promotion, promote abstracted instincts to the cross-colony hive.
203
+
204
+ **Extract high-confidence instincts for hive promotion:**
205
+ ```bash
206
+ # Get instincts with confidence >= 0.8
207
+ high_conf_instincts=$(jq -r '.memory.instincts[] | select(.confidence >= 0.8) | @base64' .aether/data/COLONY_STATE.json 2>/dev/null || echo "")
208
+
209
+ # Derive source repo name from current directory
210
+ source_repo="$(pwd)"
211
+
212
+ # Read domain tags from registry (NOT from instinct.domain which is a category, not a repo domain)
213
+ repo_domain_tags=$(jq -r --arg repo "$(pwd)" \
214
+ '[.repos[] | select(.path == $repo) | .domain_tags // []] | .[0] // [] | join(",")' \
215
+ "$HOME/.aether/registry.json" 2>/dev/null || echo "")
216
+
217
+ hive_promoted_count=0
218
+ hive_errors=0
219
+ for encoded in $high_conf_instincts; do
220
+ [[ -z "$encoded" ]] && continue
221
+
222
+ # Extract trigger and action fields from the instinct object
223
+ trigger=$(echo "$encoded" | base64 -d | jq -r '.trigger // empty')
224
+ action=$(echo "$encoded" | base64 -d | jq -r '.action // empty')
225
+ confidence=$(echo "$encoded" | base64 -d | jq -r '.confidence // 0.7')
226
+
227
+ [[ -z "$trigger" || -z "$action" ]] && continue
156
228
 
157
- ## 🏆 Colony Complete
158
- **Status:** Crowned Anthill All phases completed and archived
229
+ # Strip leading "When " or "when " from trigger to avoid "When When..." stutter
230
+ trigger_clean=$(echo "$trigger" | sed 's/^[Ww]hen //')
159
231
 
160
- ## Archive Location
161
- {archive_dir}
232
+ # Build the promotion text in "When {trigger}: {action}" format
233
+ promote_text="When ${trigger_clean}: ${action}"
162
234
 
163
- ## Colony Summary
164
- - Goal: "{goal}"
165
- - Total Phases: {total_phases}
166
- - Milestone: Crowned Anthill
167
- - Sealed At: {timestamp}
235
+ # Build hive-promote args with --text and --source-repo (required)
236
+ promote_args=(hive-promote --text "$promote_text" --source-repo "$source_repo" --confidence "$confidence")
237
+ [[ -n "$repo_domain_tags" ]] && promote_args+=(--domain "$repo_domain_tags")
168
238
 
169
- ## Files Archived
170
- - COLONY_STATE.json
171
- - activity.log
172
- - spawn-tree.txt
173
- - flags.json (if existed)
174
- - constraints.json (if existed)
239
+ # Call hive-promote which orchestrates abstract + store
240
+ result=$(bash .aether/aether-utils.sh "${promote_args[@]}" 2>/dev/null || echo '{}')
241
+ was_promoted=$(echo "$result" | jq -r '.result.action // "skipped"' 2>/dev/null || echo "skipped")
175
242
 
176
- ## Session Note
177
- This colony has been sealed and archived. The anthill stands crowned.
178
- To start anew, run: /ant:lay-eggs "<new goal>"
179
- HANDOFF_EOF
243
+ if [[ "$was_promoted" == "promoted" || "$was_promoted" == "merged" ]]; then
244
+ hive_promoted_count=$((hive_promoted_count + 1))
245
+ fi
246
+ done
247
+
248
+ if [[ "$hive_promoted_count" -gt 0 ]]; then
249
+ echo "Hive promotion: $hive_promoted_count instinct(s) promoted to cross-colony hive"
250
+ fi
180
251
  ```
181
252
 
253
+ **Continue to Step 5.5 (non-blocking):**
254
+ Proceed to Step 5.5 regardless of hive promotion results — hive promotion is strictly non-blocking.
255
+
256
+ ### Step 5.5: Write Final Handoff
257
+
258
+ After archiving, write the final handoff documenting the completed colony:
259
+
260
+ Resolve the handoff template path:
261
+ Check ~/.aether/system/templates/handoff.template.md first,
262
+ then .aether/templates/handoff.template.md.
263
+
264
+ If no template found: output "Template missing: handoff.template.md. Run aether update to fix." and stop.
265
+
266
+ Read the template file. Fill all {{PLACEHOLDER}} values:
267
+ - {{CHAMBER_NAME}} → archive directory name
268
+ - {{GOAL}} → goal
269
+ - {{PHASES_COMPLETED}} → total_phases (OpenCode seal archives completed colonies)
270
+ - {{TOTAL_PHASES}} → total_phases
271
+ - {{MILESTONE}} → "Crowned Anthill"
272
+ - {{ENTOMB_TIMESTAMP}} → seal timestamp
273
+
274
+ Remove the HTML comment lines at the top of the template.
275
+ Write the result to .aether/HANDOFF.md using the Write tool.
276
+
182
277
  This handoff serves as the final record of the completed colony.
183
278
 
184
- ### Step 6: Display Result
279
+ ### Step 5.75: Export XML Archive (best-effort)
280
+
281
+ Export colony data as a combined XML archive and a standalone pheromones.xml. Both are best-effort — seal proceeds even if XML export fails.
185
282
 
186
- **If visual_mode is true, render final swarm display:**
187
283
  ```bash
188
- bash .aether/aether-utils.sh swarm-display-update "Queen" "prime" "completed" "Colony sealed" "Colony" '{"read":3,"grep":0,"edit":2,"bash":3}' 100 "fungus_garden" 100
189
- bash .aether/aether-utils.sh swarm-display-render "$seal_id"
284
+ # Check if xmllint is available
285
+ if command -v xmllint >/dev/null 2>&1; then
286
+ xml_result=$(bash .aether/aether-utils.sh colony-archive-xml ".aether/exchange/colony-archive.xml" 2>&1)
287
+ xml_ok=$(echo "$xml_result" | jq -r '.ok // false' 2>/dev/null)
288
+ if [[ "$xml_ok" == "true" ]]; then
289
+ xml_pheromone_count=$(echo "$xml_result" | jq -r '.result.pheromone_count // 0' 2>/dev/null)
290
+ xml_export_line="XML Archive: colony-archive.xml (${xml_pheromone_count} active signals)"
291
+ else
292
+ xml_export_line="XML Archive: export failed (non-blocking)"
293
+ fi
294
+
295
+ # Also export standalone pheromones.xml for cross-colony sharing
296
+ pher_result=$(bash .aether/aether-utils.sh pheromone-export-xml ".aether/exchange/pheromones.xml" 2>&1)
297
+ pher_ok=$(echo "$pher_result" | jq -r '.ok // false' 2>/dev/null)
298
+ if [[ "$pher_ok" == "true" ]]; then
299
+ pher_signal_count=$(jq '[.signals[] | select(.active != false)] | length' .aether/data/pheromones.json 2>/dev/null || echo "0")
300
+ pher_export_line="Signal Export: pheromones.xml (${pher_signal_count} signals, importable by other colonies)"
301
+ else
302
+ pher_export_line="Signal Export: failed (non-blocking)"
303
+ fi
304
+
305
+ # Export standalone queen-wisdom.xml for cross-colony wisdom sharing
306
+ wisdom_result=$(bash .aether/aether-utils.sh wisdom-export-xml ".aether/exchange/queen-wisdom.xml" 2>&1)
307
+ wisdom_ok=$(echo "$wisdom_result" | jq -r '.ok // false' 2>/dev/null)
308
+ if [[ "$wisdom_ok" == "true" ]]; then
309
+ wisdom_count=$(echo "$wisdom_result" | jq -r '.result.entries // 0' 2>/dev/null)
310
+ wisdom_export_line="Wisdom Export: queen-wisdom.xml (${wisdom_count} entries)"
311
+ else
312
+ wisdom_export_line="Wisdom Export: failed (non-blocking)"
313
+ fi
314
+
315
+ # Export standalone colony-registry.xml for lineage tracking
316
+ registry_result=$(bash .aether/aether-utils.sh registry-export-xml ".aether/exchange/colony-registry.xml" 2>&1)
317
+ registry_ok=$(echo "$registry_result" | jq -r '.ok // false' 2>/dev/null)
318
+ if [[ "$registry_ok" == "true" ]]; then
319
+ registry_count=$(echo "$registry_result" | jq -r '.result.colonies // 0' 2>/dev/null)
320
+ registry_export_line="Registry Export: colony-registry.xml (${registry_count} colonies)"
321
+ else
322
+ registry_export_line="Registry Export: failed (non-blocking)"
323
+ fi
324
+ else
325
+ xml_export_line="XML Archive: skipped (xmllint not available)"
326
+ pher_export_line="Signal Export: skipped (xmllint not available)"
327
+ wisdom_export_line="Wisdom Export: skipped (xmllint not available)"
328
+ registry_export_line="Registry Export: skipped (xmllint not available)"
329
+ fi
190
330
  ```
191
331
 
332
+ ### Step 6: Display Result
333
+
192
334
  Output:
193
335
  ```
194
336
  🏺 ════════════════════════════════════════════════════
195
- C R O W N E D A N T H I L L
337
+ C R O W N E D A N T H I L L v{colony_version}
196
338
  ══════════════════════════════════════════════════ 🏺
197
339
 
198
340
  ✅ Colony archived successfully!
199
341
 
200
342
  👑 Goal: {goal (truncated to 60 chars)}
201
343
  📍 Phases: {total_phases} completed
202
- 🏆 Milestone: Crowned Anthill
344
+ 🏆 Milestone: Crowned Anthill v{colony_version}
203
345
 
204
346
  📦 Archive Location: {archive_dir}
205
347
  - COLONY_STATE.json
@@ -207,6 +349,10 @@ Output:
207
349
  - spawn-tree.txt
208
350
  - flags.json (if existed)
209
351
  - constraints.json (if existed)
352
+ {xml_export_line}
353
+ {pher_export_line}
354
+ {wisdom_export_line}
355
+ {registry_export_line}
210
356
 
211
357
  🐜 The colony has reached its final form.
212
358
  The anthill stands crowned and sealed.
@@ -226,6 +372,74 @@ If option 2 selected: run /ant:tunnels
226
372
  If option 3 selected: display "Run /ant:lay-eggs to begin anew after clearing"
227
373
  ```
228
374
 
375
+ ### Step 6.5: Commit Suggestion (Non-blocking)
376
+
377
+ After the ceremony, offer to commit all colony work.
378
+
379
+ **Gate check — skip silently if any fail:**
380
+ 1. Not a git repo: `git rev-parse --git-dir 2>/dev/null` fails -> skip
381
+ 2. Clean working tree: `git status --porcelain 2>/dev/null` is empty -> skip to Step 6.6
382
+
383
+ **If uncommitted changes exist:**
384
+
385
+ Generate a seal commit message:
386
+ ```bash
387
+ seal_commit=$(bash .aether/aether-utils.sh generate-commit-message seal "$phases_completed" "$goal" "$colony_age_days" 2>/dev/null)
388
+ seal_message=$(echo "$seal_commit" | jq -r '.result.message // "aether-seal: colony sealed"')
389
+ seal_body=$(echo "$seal_commit" | jq -r '.result.body // ""')
390
+ ```
391
+
392
+ Display the suggestion:
393
+ ```
394
+ Commit suggestion:
395
+ $seal_message
396
+ $seal_body
397
+ ```
398
+
399
+ Prompt with AskUserQuestion (3 options):
400
+ 1. **Commit with this message** — Run `git add -A && git commit -m "$seal_message" -m "$seal_body"`
401
+ 2. **Edit message** — Ask user for their preferred message, then commit with that
402
+ 3. **Skip** — Do not commit
403
+
404
+ If the user chooses option 1 or 2 and the commit succeeds, set `seal_committed = true`.
405
+ If the commit fails or user skips, set `seal_committed = false`.
406
+
407
+ **Error handling:** If `generate-commit-message` fails, fall back to message `"aether-seal: colony sealed"`. Never let commit suggestion failures stop the seal flow.
408
+
409
+ ### Step 6.6: Push Suggestion (Non-blocking)
410
+
411
+ Only show if a commit was just made in Step 6.5 (`seal_committed == true`) OR if there are unpushed commits.
412
+
413
+ **Gate check — skip silently if any fail:**
414
+ 1. Not a git repo -> skip
415
+ 2. No remote configured: `git remote -v 2>/dev/null` is empty -> skip
416
+
417
+ **Check for unpushed commits:**
418
+ ```bash
419
+ unpushed=$(git log --oneline @{u}..HEAD 2>/dev/null | wc -l | tr -d ' ')
420
+ ```
421
+ If `unpushed == 0` and `seal_committed == false` -> skip
422
+
423
+ **If there are commits to push:**
424
+
425
+ Detect current branch and upstream status:
426
+ ```bash
427
+ current_branch=$(git branch --show-current)
428
+ has_upstream=$(git rev-parse --abbrev-ref @{u} 2>/dev/null && echo "yes" || echo "no")
429
+ ```
430
+
431
+ Display: `Push {unpushed} commit(s) to remote? Branch: {current_branch}`
432
+
433
+ Prompt with AskUserQuestion (2 options):
434
+ 1. **Push now** — If upstream exists: `git push`. If no upstream: `git push -u origin $current_branch`
435
+ 2. **I'll push later** — Skip
436
+
437
+ Display result on success or skip.
438
+
439
+ **Error handling:** If push fails, display the error but do not stop the seal flow.
440
+
441
+ **Safety:** Never auto-push. Always require explicit user approval.
442
+
229
443
  ### Edge Cases
230
444
 
231
445
  **If milestone is already "Sealed Chambers" but phases are complete:**
@@ -0,0 +1,63 @@
1
+ <!-- Generated from .aether/commands/skill-create.yaml - DO NOT EDIT DIRECTLY -->
2
+ ---
3
+ name: ant:skill-create
4
+ description: "Create a custom domain skill using Oracle mini-research and a guided wizard"
5
+ ---
6
+
7
+ ### Step -1: Normalize Arguments
8
+
9
+ Run: `normalized_args=$(bash .aether/aether-utils.sh normalize-args "$@")`
10
+
11
+ This ensures arguments work correctly in both Claude Code and OpenCode. Use `$normalized_args` throughout this command.
12
+
13
+ You are the **Builder**. Create a custom domain skill by researching best practices and guiding the user through a wizard.
14
+
15
+ ## Instructions
16
+
17
+ ### Step 0: Parse Arguments
18
+
19
+ If `$normalized_args` is empty:
20
+ ```
21
+ Usage: /ant:skill-create "<topic>"
22
+
23
+ Creates a custom domain skill using Oracle mini-research.
24
+
25
+ Examples:
26
+ /ant:skill-create "tailwind"
27
+ /ant:skill-create "react native"
28
+ /ant:skill-create "kubernetes"
29
+ ```
30
+ Stop here.
31
+
32
+ ### Step 1: Oracle Mini-Research
33
+
34
+ Launch a focused research session on the topic (5 iterations max):
35
+ 1. Web search for best practices, common patterns, and gotchas
36
+ 2. Codebase scan for existing usage of the technology
37
+ 3. Compile findings into structured notes
38
+
39
+ ### Step 2: Wizard Questions
40
+
41
+ Ask the user:
42
+ 1. What aspect to focus on? (provide 2-4 options based on findings)
43
+ 2. Experience level? (beginner / intermediate / advanced)
44
+ 3. Any specific rules or constraints? (free text)
45
+
46
+ ### Step 3: Generate SKILL.md
47
+
48
+ Create the skill file with proper frontmatter and body:
49
+ - name: derived from topic
50
+ - description: "Use when working with {topic}"
51
+ - type: domain
52
+ - domains: inferred from research
53
+ - agent_roles: [builder]
54
+ - detect_files / detect_packages: inferred from research
55
+ - Body: practical best-practices guide from research + wizard answers
56
+
57
+ ### Step 4: Write and Verify
58
+
59
+ 1. Write to `~/.aether/skills/domain/{name}/SKILL.md`
60
+ 2. Run: `bash .aether/aether-utils.sh skill-parse-frontmatter ~/.aether/skills/domain/{name}/SKILL.md`
61
+ 3. Run: `bash .aether/aether-utils.sh skill-cache-rebuild`
62
+ 4. Show the generated skill to the user
63
+ 5. Ask if they want to adjust anything