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,36 @@
1
+ <!-- Template: crowned-anthill | Version: 2.0 -->
2
+ <!-- Instructions: Fill all {{PLACEHOLDER}} values with real colony data. Remove this comment block before writing to .aether/CROWNED-ANTHILL.md -->
3
+
4
+ # Crowned Anthill — {{GOAL}}
5
+
6
+ **Sealed:** {{SEAL_DATE}}
7
+ **Milestone:** Crowned Anthill
8
+ **Version:** {{VERSION}}
9
+
10
+ ## The Achievement
11
+
12
+ This colony set out to accomplish something real — and it did. Every phase pushed the anthill higher. Now it stands crowned.
13
+
14
+ ## Colony Stats
15
+ - Total Phases: {{TOTAL_PHASES}}
16
+ - Phases Completed: {{PHASES_COMPLETED}} of {{TOTAL_PHASES}}
17
+ - Colony Age: {{COLONY_AGE_DAYS}} days of focused work
18
+ - Wisdom Promoted: {{PROMOTIONS_MADE}} entries carried forward
19
+
20
+ ## Phase Recap
21
+
22
+ Every phase below is a chapter in the story of this anthill's rise:
23
+
24
+ {{PHASE_RECAP}}
25
+
26
+ ## Pheromone Legacy
27
+
28
+ The colony's hard-won wisdom doesn't stop here. {{PROMOTIONS_MADE}} validated learnings and instincts have been promoted to QUEEN.md — a living record that will guide future colonies before they take their first steps.
29
+
30
+ What this colony learned, the next colony inherits.
31
+
32
+ ## The Work
33
+
34
+ {{GOAL}}
35
+
36
+ The anthill stands crowned. The work endures.
@@ -0,0 +1,30 @@
1
+ <!-- Template: handoff-build-error | Version: 1.0 -->
2
+ <!-- Instructions: Fill all {{PLACEHOLDER}} values with real colony data. Remove this comment block before writing to .aether/HANDOFF.md -->
3
+
4
+ # Colony Session — Build Errors
5
+
6
+ ## Build Status: ISSUES DETECTED
7
+
8
+ **Phase:** {{PHASE_NUMBER}} — {{PHASE_NAME}}
9
+ **Status:** Build completed with failures
10
+ **Updated:** {{BUILD_TIMESTAMP}}
11
+
12
+ ## Failed Workers
13
+
14
+ {{FAILED_WORKERS}}
15
+
16
+ ## Grave Markers Placed
17
+
18
+ {{GRAVE_MARKERS}}
19
+
20
+ ## Recovery Options
21
+
22
+ 1. Review failures: Check `.aether/data/activity.log`
23
+ 2. Fix and retry: `/ant:build {{PHASE_NUMBER}}`
24
+ 3. Swarm fix: `/ant:swarm` for auto-repair
25
+ 4. Manual fix: Address issues, then `/ant:continue`
26
+
27
+ ## Session Note
28
+
29
+ Build completed but workers failed. Grave markers placed.
30
+ Review failures before advancing.
@@ -0,0 +1,39 @@
1
+ <!-- Template: handoff-build-success | Version: 1.0 -->
2
+ <!-- Instructions: Fill all {{PLACEHOLDER}} values with real colony data. Remove this comment block before writing to .aether/HANDOFF.md -->
3
+
4
+ # Colony Session — Build Complete
5
+
6
+ ## Quick Resume
7
+
8
+ Run `/ant:continue` to advance phase, or `/ant:resume-colony` to restore full context.
9
+
10
+ ## State at Build Completion
11
+
12
+ - Goal: "{{GOAL}}"
13
+ - Phase: {{PHASE_NUMBER}} — {{PHASE_NAME}}
14
+ - Build Status: {{BUILD_STATUS}}
15
+ - Updated: {{BUILD_TIMESTAMP}}
16
+
17
+ ## Build Summary
18
+
19
+ {{BUILD_SUMMARY}}
20
+
21
+ ## Tasks
22
+
23
+ - Completed: {{TASKS_COMPLETED}}
24
+ - Failed: {{TASKS_FAILED}}
25
+
26
+ ## Files Changed
27
+
28
+ - Created: {{FILES_CREATED}} files
29
+ - Modified: {{FILES_MODIFIED}} files
30
+
31
+ ## Next Steps
32
+
33
+ - If verification passed: `/ant:continue` to advance to next phase
34
+ - If issues found: `/ant:flags` to review blockers
35
+ - To pause: `/ant:pause-colony`
36
+
37
+ ## Session Note
38
+
39
+ {{SESSION_NOTE}}
@@ -0,0 +1,40 @@
1
+ <!-- Template: handoff | Version: 2.0 -->
2
+ <!-- Instructions: Fill all {{PLACEHOLDER}} values with real colony data. Remove this comment block before writing to .aether/HANDOFF.md -->
3
+
4
+ # Colony Session — {{CHAMBER_NAME}}
5
+
6
+ ## A Colony's Rest
7
+
8
+ This colony has been entombed. Its work is complete, its story told.
9
+ What began with a goal has ended with a chamber — a place of quiet preservation.
10
+
11
+ **Chamber:** .aether/chambers/{{CHAMBER_NAME}}/
12
+
13
+ ## Colony Summary
14
+
15
+ - Goal: "{{GOAL}}"
16
+ - Phases: {{PHASES_COMPLETED}} completed of {{TOTAL_PHASES}}
17
+ - Milestone reached: {{MILESTONE}}
18
+ - Entombed at: {{ENTOMB_TIMESTAMP}}
19
+
20
+ ## Chamber Contents
21
+
22
+ Everything the colony built and learned rests here now:
23
+
24
+ - colony-state.json — Full colony state
25
+ - manifest.json — Archive metadata
26
+ - CROWNED-ANTHILL.md — Seal ceremony record
27
+ - pheromones.json — Pheromone signals
28
+ - activity.log — Colony activity history
29
+ - spawn-tree.txt — Worker spawn records
30
+ - dreams/ — Dream journal (if existed)
31
+
32
+ ## Session Note
33
+
34
+ The active colony has been reset. The chambers hold what was.
35
+ The learnings have been carried forward to QUEEN.md — the next colony won't start from nothing.
36
+
37
+ When you are ready to begin again:
38
+
39
+ To start anew: /ant:lay-eggs "<new goal>"
40
+ To revisit what came before: /ant:tunnels
@@ -0,0 +1,6 @@
1
+ {
2
+ "_template": "learning-observations",
3
+ "_version": "1.0",
4
+ "_instructions": "Write to .aether/data/learning-observations.json. No substitution needed. Remove underscore-prefixed keys.",
5
+ "observations": []
6
+ }
@@ -0,0 +1,13 @@
1
+ {
2
+ "_template": "midden",
3
+ "_version": "1.0",
4
+ "_instructions": "Write to .aether/data/midden/midden.json. No substitution needed. Remove underscore-prefixed keys.",
5
+ "version": "1.0.0",
6
+ "signals": [],
7
+ "spawn_metrics": {
8
+ "total_spawned": 0,
9
+ "completed": 0,
10
+ "failed": 0,
11
+ "efficiency_pct": 0
12
+ }
13
+ }
@@ -0,0 +1,6 @@
1
+ {
2
+ "_template": "pheromones",
3
+ "_version": "1.0",
4
+ "_instructions": "Write to .aether/data/pheromones.json. No substitution needed. Remove underscore-prefixed keys.",
5
+ "signals": []
6
+ }
@@ -0,0 +1,9 @@
1
+ {
2
+ "_template": "session",
3
+ "_version": "1.0",
4
+ "_instructions": "Write to .aether/data/session.json. Replace __SESSION_ID__, __GOAL__, __TIMESTAMP__. Remove underscore-prefixed keys.",
5
+ "session_id": "__SESSION_ID__",
6
+ "colony_goal": "__GOAL__",
7
+ "started_at": "__TIMESTAMP__",
8
+ "last_activity": "__TIMESTAMP__"
9
+ }
@@ -25,11 +25,13 @@ if [ ! -f "$_AETHER_UTILS_DIR/file-lock.sh" ]; then
25
25
  fi
26
26
  source "$_AETHER_UTILS_DIR/file-lock.sh"
27
27
 
28
- # Aether root detection - use git root if available, otherwise use current directory
29
- if git rev-parse --show-toplevel >/dev/null 2>&1; then
30
- AETHER_ROOT="$(git rev-parse --show-toplevel)"
31
- else
32
- AETHER_ROOT="$(pwd)"
28
+ # Aether root detection - respect existing AETHER_ROOT, or use git root, or use current directory
29
+ if [[ -z "${AETHER_ROOT:-}" ]]; then
30
+ if git rev-parse --show-toplevel >/dev/null 2>&1; then
31
+ AETHER_ROOT="$(git rev-parse --show-toplevel)"
32
+ else
33
+ AETHER_ROOT="$(pwd)"
34
+ fi
33
35
  fi
34
36
 
35
37
  TEMP_DIR="$AETHER_ROOT/.aether/temp"
@@ -41,9 +43,44 @@ mkdir -p "$TEMP_DIR" "$BACKUP_DIR"
41
43
  # Number of backups to keep
42
44
  MAX_BACKUPS=3
43
45
 
46
+ # Safety stats file for tracking data safety events (best-effort, never fails operations)
47
+ SAFETY_STATS_FILE="${AETHER_ROOT}/.aether/data/safety-stats.json"
48
+
49
+ # Increment a safety stats counter (best-effort, never fails the calling operation)
50
+ # Arguments: counter_name (e.g., "stale_locks_cleaned", "json_validation_rejects")
51
+ _safety_stats_increment() {
52
+ local counter_name="$1"
53
+ local stats_file="$SAFETY_STATS_FILE"
54
+ local now_iso
55
+ now_iso=$(date -u +"%Y-%m-%dT%H:%M:%SZ" 2>/dev/null || echo "unknown")
56
+
57
+ # Ensure data directory exists
58
+ mkdir -p "$(dirname "$stats_file")" 2>/dev/null || return 0
59
+
60
+ # Initialize if missing
61
+ if [[ ! -f "$stats_file" ]]; then
62
+ printf '{"stale_locks_cleaned":0,"json_validation_rejects":0,"last_updated":"%s"}\n' "$now_iso" > "$stats_file" 2>/dev/null || return 0
63
+ fi
64
+
65
+ # Increment counter (best-effort, don't fail on jq errors)
66
+ local updated
67
+ updated=$(jq --arg key "$counter_name" --arg ts "$now_iso" '
68
+ .[$key] = ((.[$key] // 0) + 1) |
69
+ .last_updated = $ts
70
+ ' "$stats_file" 2>/dev/null) || return 0
71
+
72
+ if [[ -n "$updated" ]]; then
73
+ printf '%s\n' "$updated" > "$stats_file" 2>/dev/null || return 0
74
+ fi
75
+ }
76
+
44
77
  # Atomic write: write content to file via temporary file
45
78
  # Arguments: target_file, content
46
79
  # Returns: 0 on success, 1 on failure
80
+ # NOTE: atomic_write does NOT interact with file locks. Lock management
81
+ # (acquire_lock/release_lock) is the CALLER's responsibility. If you need
82
+ # exclusive access, acquire the lock before calling atomic_write, and release
83
+ # it after (including on error paths).
47
84
  atomic_write() {
48
85
  local target_file="$1"
49
86
  local content="$2"
@@ -53,10 +90,10 @@ atomic_write() {
53
90
  mkdir -p "$target_dir"
54
91
 
55
92
  # Create unique temp file
56
- local temp_file="${TEMP_DIR}/$(basename "$target_file").$$.$(date +%s%N).tmp"
93
+ local temp_file="${TEMP_DIR}/$(basename "$target_file").$$.$( date +%s )_${RANDOM}.tmp"
57
94
 
58
95
  # Write content to temp file
59
- if ! echo "$content" > "$temp_file"; then
96
+ if ! printf '%s\n' "$content" > "$temp_file"; then
60
97
  echo "Failed to write to temp file: $temp_file"
61
98
  rm -f "$temp_file"
62
99
  return 1
@@ -67,11 +104,12 @@ atomic_write() {
67
104
  create_backup "$target_file"
68
105
  fi
69
106
 
70
- # Validate JSON if it's a JSON file
107
+ # Validate JSON if it's a JSON file (lock management is caller's responsibility)
71
108
  if [[ "$target_file" == *.json ]]; then
72
- if ! python3 -c "import json; json.load(open('$temp_file'))" 2>/dev/null; then
109
+ if ! jq empty "$temp_file" 2>/dev/null; then
73
110
  echo "Invalid JSON in temp file: $temp_file"
74
111
  rm -f "$temp_file"
112
+ _safety_stats_increment "json_validation_rejects" 2>/dev/null || true
75
113
  return 1
76
114
  fi
77
115
  fi
@@ -108,7 +146,7 @@ atomic_write_from_file() {
108
146
  mkdir -p "$target_dir"
109
147
 
110
148
  # Create unique temp file
111
- local temp_file="${TEMP_DIR}/$(basename "$target_file").$$.$(date +%s%N).tmp"
149
+ local temp_file="${TEMP_DIR}/$(basename "$target_file").$$.$( date +%s )_${RANDOM}.tmp"
112
150
 
113
151
  # Copy source to temp
114
152
  if ! cp "$source_file" "$temp_file"; then
@@ -117,20 +155,21 @@ atomic_write_from_file() {
117
155
  return 1
118
156
  fi
119
157
 
120
- # Validate JSON if it's a JSON file
158
+ # Create backup BEFORE validation (mirrors atomic_write ordering — LOCK-03)
159
+ if [ -f "$target_file" ]; then
160
+ create_backup "$target_file"
161
+ fi
162
+
163
+ # Validate JSON if it's a JSON file (lock management is caller's responsibility)
121
164
  if [[ "$target_file" == *.json ]]; then
122
- if ! python3 -c "import json; json.load(open('$temp_file'))" 2>/dev/null; then
165
+ if ! jq empty "$temp_file" 2>/dev/null; then
123
166
  echo "Invalid JSON in temp file: $temp_file"
124
167
  rm -f "$temp_file"
168
+ _safety_stats_increment "json_validation_rejects" 2>/dev/null || true
125
169
  return 1
126
170
  fi
127
171
  fi
128
172
 
129
- # Create backup if target exists
130
- if [ -f "$target_file" ]; then
131
- create_backup "$target_file"
132
- fi
133
-
134
173
  # Atomic rename
135
174
  if ! mv "$temp_file" "$target_file"; then
136
175
  echo "Failed to rename temp file to target: $target_file"
@@ -166,10 +205,17 @@ create_backup() {
166
205
  # Arguments: base_name
167
206
  rotate_backups() {
168
207
  local base_name="$1"
169
- local backups=$(ls -t "${BACKUP_DIR}/${base_name}".*.backup 2>/dev/null | wc -l)
170
208
 
171
- if [ "$backups" -gt "$MAX_BACKUPS" ]; then
172
- ls -t "${BACKUP_DIR}/${base_name}".*.backup | tail -n +$((MAX_BACKUPS + 1)) | xargs rm -f
209
+ # Use find with -print0 for safe handling of paths with spaces
210
+ local backup_count
211
+ backup_count=$(find "$BACKUP_DIR" -maxdepth 1 -name "${base_name}.*.backup" -type f 2>/dev/null | wc -l | tr -d ' ')
212
+
213
+ if [ "$backup_count" -gt "$MAX_BACKUPS" ]; then
214
+ # Delete oldest backups beyond MAX_BACKUPS using find for space-safe handling
215
+ find "$BACKUP_DIR" -maxdepth 1 -name "${base_name}.*.backup" -type f -print0 2>/dev/null \
216
+ | xargs -0 ls -t 2>/dev/null \
217
+ | tail -n +$((MAX_BACKUPS + 1)) \
218
+ | while IFS= read -r file; do rm -f "$file" 2>/dev/null || true; done
173
219
  fi
174
220
  }
175
221
 
@@ -209,9 +255,9 @@ list_backups() {
209
255
 
210
256
  # Cleanup temp files older than 1 hour
211
257
  cleanup_temp_files() {
212
- find "$TEMP_DIR" -name "*.tmp" -mtime +1/24 -delete 2>/dev/null || true
258
+ find "$TEMP_DIR" -name "*.tmp" -mmin +60 -delete 2>/dev/null || true
213
259
  }
214
260
 
215
261
  # Export functions
216
262
  export -f atomic_write atomic_write_from_file create_backup rotate_backups
217
- export -f restore_backup list_backups cleanup_temp_files
263
+ export -f restore_backup list_backups cleanup_temp_files _safety_stats_increment
@@ -7,13 +7,26 @@ set -euo pipefail
7
7
  SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
8
8
  CHAMBERS_DIR="${CHAMBERS_DIR:-.aether/chambers}"
9
9
 
10
+ # Source error-handler.sh for E_* constants and enhanced json_err
11
+ [[ -f "$SCRIPT_DIR/error-handler.sh" ]] && source "$SCRIPT_DIR/error-handler.sh"
12
+
13
+ # Fallback E_* constants (no-ops when error-handler.sh is already loaded)
14
+ : "${E_UNKNOWN:=E_UNKNOWN}"
15
+ : "${E_FILE_NOT_FOUND:=E_FILE_NOT_FOUND}"
16
+ : "${E_VALIDATION_FAILED:=E_VALIDATION_FAILED}"
17
+
10
18
  # JSON output helpers
11
19
  json_ok() { printf '{"ok":true,"result":%s}\n' "$1"; }
12
- json_err() {
13
- local message="${2:-$1}"
14
- printf '{"ok":false,"error":"%s"}\n' "$message" >&2
15
- exit 1
16
- }
20
+
21
+ # Guard: yield to error-handler.sh's enhanced json_err when already loaded
22
+ if ! type json_err &>/dev/null; then
23
+ json_err() {
24
+ local code="${1:-E_UNKNOWN}"
25
+ local message="${2:-An unknown error occurred}"
26
+ printf '{"ok":false,"error":{"code":"%s","message":"%s"}}\n' "$code" "$message" >&2
27
+ exit 1
28
+ }
29
+ fi
17
30
 
18
31
  # Load chamber manifest
19
32
  load_chamber() {
@@ -21,7 +34,7 @@ load_chamber() {
21
34
  local manifest_file="$CHAMBERS_DIR/$chamber_name/manifest.json"
22
35
 
23
36
  if [[ ! -f "$manifest_file" ]]; then
24
- json_err "Chamber not found: $chamber_name"
37
+ json_err "$E_FILE_NOT_FOUND" "Chamber not found: $chamber_name. Try: check the chamber name with /ant:tunnels."
25
38
  fi
26
39
 
27
40
  cat "$manifest_file"
@@ -41,7 +54,7 @@ EOF
41
54
  compare)
42
55
  chamber_a="${1:-}"
43
56
  chamber_b="${2:-}"
44
- [[ -z "$chamber_a" || -z "$chamber_b" ]] && json_err "Usage: compare <chamber_a> <chamber_b>"
57
+ [[ -z "$chamber_a" || -z "$chamber_b" ]] && json_err "$E_VALIDATION_FAILED" "Missing arguments. Try: compare <chamber_a> <chamber_b>."
45
58
 
46
59
  # Load both manifests
47
60
  manifest_a=$(load_chamber "$chamber_a")
@@ -93,7 +106,7 @@ EOF
93
106
  diff)
94
107
  chamber_a="${1:-}"
95
108
  chamber_b="${2:-}"
96
- [[ -z "$chamber_a" || -z "$chamber_b" ]] && json_err "Usage: diff <chamber_a> <chamber_b>"
109
+ [[ -z "$chamber_a" || -z "$chamber_b" ]] && json_err "$E_VALIDATION_FAILED" "Missing arguments. Try: diff <chamber_a> <chamber_b>."
97
110
 
98
111
  manifest_a=$(load_chamber "$chamber_a")
99
112
  manifest_b=$(load_chamber "$chamber_b")
@@ -138,7 +151,7 @@ EOF
138
151
  stats)
139
152
  chamber_a="${1:-}"
140
153
  chamber_b="${2:-}"
141
- [[ -z "$chamber_a" || -z "$chamber_b" ]] && json_err "Usage: stats <chamber_a> <chamber_b>"
154
+ [[ -z "$chamber_a" || -z "$chamber_b" ]] && json_err "$E_VALIDATION_FAILED" "Missing arguments. Try: stats <chamber_a> <chamber_b>."
142
155
 
143
156
  manifest_a=$(load_chamber "$chamber_a")
144
157
  manifest_b=$(load_chamber "$chamber_b")
@@ -175,6 +188,6 @@ EOF
175
188
  ;;
176
189
 
177
190
  *)
178
- json_err "Unknown command: $cmd. Use: compare, diff, stats"
191
+ json_err "$E_VALIDATION_FAILED" "Unknown command: $cmd. Try: compare, diff, or stats."
179
192
  ;;
180
193
  esac