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,268 @@
1
+ # Aether Error Code Reference
2
+
3
+ This document is the complete reference for all `E_*` error constants used in Aether's bash utilities and Node.js CLI. When a command fails, the error output includes a `code` field that maps to one of the entries below.
4
+
5
+ **How to read this document:** Find the code you see in the error output, then check the meaning, when it happens, and what to do.
6
+
7
+ ---
8
+
9
+ ## File Errors
10
+
11
+ ### E_FILE_NOT_FOUND
12
+
13
+ - **Meaning:** A required file or directory doesn't exist at the expected path.
14
+ - **When it happens:**
15
+ - A command is invoked but the data file it needs (e.g., `COLONY_STATE.json`, `flags.json`, `CONTEXT.md`) hasn't been created yet.
16
+ - A directory path passed as an argument doesn't exist.
17
+ - **Suggested fix:** Check that `aether init` (or the relevant setup command) has been run. Verify the path exists and is spelled correctly.
18
+ - **Example output:**
19
+ ```json
20
+ {"ok":false,"error":{"code":"E_FILE_NOT_FOUND","message":"Couldn't find CONTEXT.md. Try: run context-update init first.","details":null,"recovery":"Check file path and permissions","timestamp":"2026-02-19T13:00:00Z"}}
21
+ ```
22
+
23
+ ---
24
+
25
+ ## Lock Errors
26
+
27
+ ### E_LOCK_FAILED
28
+
29
+ - **Meaning:** Couldn't acquire a file lock — another process is currently holding it.
30
+ - **When it happens:**
31
+ - Two commands try to write to the same file (e.g., `flags.json`) at the same time.
32
+ - A previous command crashed and didn't release its lock. Use `force-unlock` to clear stale locks.
33
+ - **Suggested fix:** Wait for any running operations to finish, then retry. If you're sure nothing else is running, use `aether force-unlock` to clear the lock manually.
34
+ - **Example output:**
35
+ ```json
36
+ {"ok":false,"error":{"code":"E_LOCK_FAILED","message":"Failed to acquire lock on flags.json","details":null,"recovery":"Wait for other operations to complete","timestamp":"2026-02-19T13:00:00Z"}}
37
+ ```
38
+
39
+ ### E_LOCK_STALE
40
+
41
+ - **Meaning:** A lock file exists but belongs to a process that is no longer running, or has exceeded the maximum lock timeout (5 minutes). This differs from `E_LOCK_FAILED` (which means another process holds a live lock) — `E_LOCK_STALE` means the lock is abandoned.
42
+ - **When it happens:**
43
+ - A previous command crashed without releasing its lock.
44
+ - The locking process was killed by the OS (e.g., OOM) or terminated by the user (Ctrl+C) before the trap handler could fire.
45
+ - The lock is older than the configured timeout (300 seconds).
46
+ - **Suggested fix:** Run `aether force-unlock` to clear stale locks, or manually remove the lock file shown in the error message.
47
+ - **Example output:**
48
+ ```json
49
+ {"ok":false,"error":{"code":"E_LOCK_STALE","message":"Stale lock found. Remove manually: .aether/locks/flags.json.lock"}}
50
+ ```
51
+
52
+ ---
53
+
54
+ ## Tool / Dependency Errors
55
+
56
+ ### E_FEATURE_UNAVAILABLE
57
+
58
+ - **Meaning:** A feature or optional tool required for this operation isn't installed or enabled.
59
+ - **When it happens:**
60
+ - XML operations are attempted but `xmllint` isn't installed.
61
+ - A feature has been disabled due to a missing dependency or configuration.
62
+ - **Suggested fix:** Install the required tool (e.g., `brew install libxml2` for xmllint on macOS) or check the feature's documentation for setup steps.
63
+ - **Example output:**
64
+ ```json
65
+ {"ok":false,"error":{"code":"E_FEATURE_UNAVAILABLE","message":"xmllint not available. Try: brew install libxml2","details":null,"recovery":null,"timestamp":"2026-02-19T13:00:00Z"}}
66
+ ```
67
+
68
+ ### E_DEPENDENCY_MISSING
69
+
70
+ - **Meaning:** A required utility script or binary is missing from the expected location.
71
+ - **When it happens:**
72
+ - A utility script in `.aether/utils/` (e.g., `error-handler.sh`, `file-lock.sh`) can't be found.
73
+ - A required binary (e.g., `jq`, `git`) isn't installed or isn't on `$PATH`.
74
+ - **Suggested fix:** Run `aether install` to restore missing system files, or install the missing binary via your system package manager.
75
+ - **Example output:**
76
+ ```json
77
+ {"ok":false,"error":{"code":"E_DEPENDENCY_MISSING","message":"Couldn't load error-handler.sh. Try: run aether install to restore system files.","details":null,"recovery":"Install the required dependency","timestamp":"2026-02-19T13:00:00Z"}}
78
+ ```
79
+
80
+ ---
81
+
82
+ ## JSON / Data Errors
83
+
84
+ ### E_JSON_INVALID
85
+
86
+ - **Meaning:** A JSON file is malformed or is missing required fields.
87
+ - **When it happens:**
88
+ - A data file (`COLONY_STATE.json`, `flags.json`, etc.) has been manually edited and contains a syntax error.
89
+ - A write operation was interrupted, leaving a partially-written file.
90
+ - **Suggested fix:** Open the file and fix the JSON syntax, or delete it and re-run the initialization command to regenerate a fresh copy.
91
+ - **Example output:**
92
+ ```json
93
+ {"ok":false,"error":{"code":"E_JSON_INVALID","message":"Failed to parse COLONY_STATE.json. Try: validate with jq '.'' .aether/data/COLONY_STATE.json","details":null,"recovery":"Validate JSON syntax","timestamp":"2026-02-19T13:00:00Z"}}
94
+ ```
95
+
96
+ ---
97
+
98
+ ## Validation Errors
99
+
100
+ ### E_VALIDATION_FAILED
101
+
102
+ - **Meaning:** The command was called with missing or invalid arguments.
103
+ - **When it happens:**
104
+ - A required argument (e.g., flag type, flag ID, spawn summary) is missing.
105
+ - An argument value is outside the allowed range or format.
106
+ - **Suggested fix:** Check the usage message in the error output. The error message typically includes the correct usage syntax.
107
+ - **Example output:**
108
+ ```json
109
+ {"ok":false,"error":{"code":"E_VALIDATION_FAILED","message":"Usage: flag-add <type> <title> <description> [source] [phase]","details":null,"recovery":null,"timestamp":"2026-02-19T13:00:00Z"}}
110
+ ```
111
+
112
+ ---
113
+
114
+ ## System Errors
115
+
116
+ ### E_BASH_ERROR
117
+
118
+ - **Meaning:** An unexpected system command failure occurred — a bash command returned a non-zero exit code where one wasn't expected.
119
+ - **When it happens:**
120
+ - A system command (e.g., `cp`, `mkdir`, `git`) fails unexpectedly.
121
+ - A script runs under `set -e` and a command exits non-zero.
122
+ - **Suggested fix:** Check the `details` field in the error output for the exact command and line number. Fix the underlying system issue (permissions, disk space, etc.) and retry.
123
+ - **Example output:**
124
+ ```json
125
+ {"ok":false,"error":{"code":"E_BASH_ERROR","message":"Bash command failed","details":{"line":42,"command":"cp src dst","exit_code":1},"recovery":null,"timestamp":"2026-02-19T13:00:00Z"}}
126
+ ```
127
+
128
+ ### E_UNKNOWN
129
+
130
+ - **Meaning:** An unclassified error occurred — something went wrong that doesn't fit a more specific category.
131
+ - **When it happens:**
132
+ - An error path that hasn't been given a specific code yet.
133
+ - A catch-all for unexpected failure conditions.
134
+ - **Suggested fix:** Check the error message for context. If you see this frequently, please report it so a specific code can be added.
135
+ - **Example output:**
136
+ ```json
137
+ {"ok":false,"error":{"code":"E_UNKNOWN","message":"An unknown error occurred","details":null,"recovery":null,"timestamp":"2026-02-19T13:00:00Z"}}
138
+ ```
139
+
140
+ ---
141
+
142
+ ## Hub / Repository Errors
143
+
144
+ ### E_HUB_NOT_FOUND
145
+
146
+ - **Meaning:** The Aether hub (`~/.aether/`) doesn't exist on this machine.
147
+ - **When it happens:**
148
+ - Aether hasn't been installed yet.
149
+ - The hub directory was accidentally deleted.
150
+ - **Suggested fix:** Run `npm install -g aether` to install Aether. This creates the hub at `~/.aether/`.
151
+ - **Example output:**
152
+ ```json
153
+ {"ok":false,"error":{"code":"E_HUB_NOT_FOUND","message":"Couldn't find the Aether hub. Try: npm install -g aether","details":null,"recovery":"Run: aether install","timestamp":"2026-02-19T13:00:00Z"}}
154
+ ```
155
+
156
+ ### E_REPO_NOT_INITIALIZED
157
+
158
+ - **Meaning:** The current repository hasn't been initialized with Aether.
159
+ - **When it happens:**
160
+ - Running an Aether command in a repo before running `/ant:init`.
161
+ - The `.aether/` directory or `COLONY_STATE.json` is missing from the current repo.
162
+ - **Suggested fix:** Run `/ant:init` in Claude Code to initialize Aether in this repository.
163
+ - **Example output:**
164
+ ```json
165
+ {"ok":false,"error":{"code":"E_REPO_NOT_INITIALIZED","message":"Couldn't find Aether initialization in this repo. Try: run /ant:init first.","details":null,"recovery":"Run /ant:init in this repo first","timestamp":"2026-02-19T13:00:00Z"}}
166
+ ```
167
+
168
+ ### E_GIT_ERROR
169
+
170
+ - **Meaning:** A git operation failed.
171
+ - **When it happens:**
172
+ - `git stash`, `git commit`, `git log`, or another git command returns an error.
173
+ - The directory isn't a git repository.
174
+ - There are merge conflicts or a detached HEAD state.
175
+ - **Suggested fix:** Run `git status` to see the current state of your repository. Resolve any conflicts or uncommitted changes, then retry the command.
176
+ - **Example output:**
177
+ ```json
178
+ {"ok":false,"error":{"code":"E_GIT_ERROR","message":"Git operation failed. Try: run git status to check repository state.","details":null,"recovery":"Check git status and resolve conflicts","timestamp":"2026-02-19T13:00:00Z"}}
179
+ ```
180
+
181
+ ---
182
+
183
+ ## Resource Errors
184
+
185
+ ### E_RESOURCE_NOT_FOUND
186
+
187
+ - **Meaning:** A runtime resource (e.g., an active session, a worker, a swarm) doesn't exist.
188
+ - **When it happens:**
189
+ - A command refers to a session ID, worker name, or swarm ID that doesn't exist or has already completed.
190
+ - Attempting to read or update a resource that hasn't been created yet.
191
+ - **Suggested fix:** Check that the resource was created first. List available resources with the relevant `list` command (e.g., `flag-list`, `swarm-findings-read`).
192
+ - **Example output:**
193
+ ```json
194
+ {"ok":false,"error":{"code":"E_RESOURCE_NOT_FOUND","message":"Couldn't find the requested resource. Try: check that it was created first.","details":null,"recovery":"Check that the resource exists and try again","timestamp":"2026-02-19T13:00:00Z"}}
195
+ ```
196
+
197
+ ---
198
+
199
+ ## For Contributors
200
+
201
+ ### Adding a New Error Code
202
+
203
+ When you need a new error code, follow this checklist:
204
+
205
+ 1. **Define the constant** in `.aether/utils/error-handler.sh` at the top of the file:
206
+ ```bash
207
+ E_MY_NEW_CODE="E_MY_NEW_CODE"
208
+ ```
209
+
210
+ 2. **Add a recovery function** in `error-handler.sh`:
211
+ ```bash
212
+ _recovery_my_new_code() { echo '"Description of how to fix this"'; }
213
+ ```
214
+
215
+ 3. **Add a case entry** in the `_get_recovery` function in `error-handler.sh`:
216
+ ```bash
217
+ "$E_MY_NEW_CODE") _recovery_my_new_code ;;
218
+ ```
219
+
220
+ 4. **Add a fallback definition** at the top of `aether-utils.sh` (in the fallback constants block):
221
+ ```bash
222
+ : "${E_MY_NEW_CODE:=E_MY_NEW_CODE}"
223
+ ```
224
+
225
+ 5. **Export the constant and function** at the bottom of `error-handler.sh`:
226
+ ```bash
227
+ export E_MY_NEW_CODE
228
+ export -f _recovery_my_new_code
229
+ ```
230
+
231
+ 6. **Document the code** in this file (`docs/error-codes.md`) following the existing format.
232
+
233
+ ### Naming Convention
234
+
235
+ - **Prefix:** Always start with `E_`
236
+ - **Case:** SCREAMING_SNAKE_CASE (e.g., `E_FILE_NOT_FOUND`, `E_LOCK_FAILED`)
237
+ - **Be specific:** Prefer `E_FILE_NOT_FOUND` over `E_ERROR` — the code should communicate the failure category
238
+
239
+ ### Category Selection Guide
240
+
241
+ | Category | Use when... |
242
+ |----------|-------------|
243
+ | File Errors | A file or directory path doesn't exist |
244
+ | Lock Errors | Lock acquisition fails |
245
+ | Tool/Dependency Errors | A required tool or script is missing |
246
+ | JSON/Data Errors | File content is malformed or invalid |
247
+ | Validation Errors | Arguments are wrong or missing |
248
+ | System Errors | Unexpected bash command failure |
249
+ | Hub/Repository Errors | Aether infrastructure is missing or not set up |
250
+ | Resource Errors | A named runtime object doesn't exist |
251
+
252
+ ### Message Style Requirements
253
+
254
+ Every `json_err` call **must** include a "Try:" suggestion in the message:
255
+
256
+ ```bash
257
+ # Correct — includes Try: suggestion
258
+ json_err "$E_FILE_NOT_FOUND" "Couldn't find flags.json. Try: run flag-add first to create it."
259
+
260
+ # Wrong — no actionable suggestion
261
+ json_err "$E_FILE_NOT_FOUND" "flags.json not found"
262
+ ```
263
+
264
+ **Tone:** Use plain, friendly language. "Couldn't find..." is better than "File not found". Users are not experts in bash internals.
265
+
266
+ ---
267
+
268
+ *Last updated: 2026-03-29*
@@ -0,0 +1,94 @@
1
+ # Known Issues and Workarounds
2
+
3
+ Documented issues from Oracle research findings. These are known limitations and bugs in the Aether system.
4
+
5
+ ---
6
+
7
+ ## Medium Priority Issues
8
+
9
+ ### BUG-004: Missing error code in flag-acknowledge
10
+ **Location:** `flag-acknowledge` subcommand in `.aether/utils/flag.sh`
11
+ **Severity:** MEDIUM
12
+ **Status:** [FIXED in v2.1 -- Phase 10 error triage + Phase 13 modularization]
13
+ `flag-acknowledge` now uses `$E_VALIDATION_FAILED`, `$E_FILE_NOT_FOUND`, `$E_LOCK_FAILED`, and `$E_JSON_INVALID` appropriately.
14
+
15
+ ### BUG-006: No lock release on JSON validation failure
16
+ **Location:** `atomic_write` in `.aether/utils/atomic-write.sh`
17
+ **Severity:** MEDIUM
18
+ **Symptom:** If JSON validation fails in `atomic_write`, temp file is cleaned but any lock held by the caller is not released
19
+ **Impact:** Lock remains held if caller had acquired it before calling `atomic_write`
20
+ **Fix:** Document lock ownership contract clearly -- callers must use trap-based cleanup
21
+ **Status:** Open -- `atomic_write` itself does not manage locks; callers are responsible for lock release via EXIT traps
22
+
23
+ ### BUG-007: 17+ instances of missing error codes
24
+ **Location:** Various subcommands across `.aether/aether-utils.sh` and domain modules
25
+ **Severity:** MEDIUM
26
+ **Status:** [Mostly FIXED in v2.1 -- Phase 10 error triage]
27
+ Phase 10 replaced ~110 lazy error suppressions with proper fallbacks and added `$E_*` constants to ~48 dangerous paths. A small number of uncommented `2>/dev/null` idioms remain (SUPPRESS:OK annotated).
28
+
29
+ ### BUG-008: Missing error code in flag-add jq failure
30
+ **Location:** `flag-add` subcommand in `.aether/utils/flag.sh`
31
+ **Severity:** HIGH
32
+ **Status:** [FIXED in v2.1 -- Phase 10 error triage + Phase 13 modularization]
33
+ `flag-add` now uses `$E_VALIDATION_FAILED`, `$E_JSON_INVALID`, and proper error handling throughout.
34
+
35
+ ### BUG-009: Missing error codes in file checks
36
+ **Location:** `flag-acknowledge` and related subcommands in `.aether/utils/flag.sh`
37
+ **Severity:** MEDIUM
38
+ **Status:** [FIXED in v2.1 -- Phase 10 error triage + Phase 13 modularization]
39
+ File-not-found errors now use `json_err "$E_FILE_NOT_FOUND" "..."` consistently.
40
+
41
+ ### BUG-010: Missing error codes in context-update
42
+ **Location:** `context-update` subcommand in `.aether/aether-utils.sh`
43
+ **Severity:** MEDIUM
44
+ **Status:** [FIXED in v2.1 -- Phase 10 error triage]
45
+ All error paths now use `$E_FILE_NOT_FOUND`, `$E_LOCK_FAILED`, and `$E_VALIDATION_FAILED` consistently.
46
+
47
+ ### BUG-012: Missing error code in unknown command
48
+ **Location:** Default case (`*`) in `.aether/aether-utils.sh` dispatch
49
+ **Severity:** LOW
50
+ **Status:** [FIXED in v2.1 -- Phase 10 error triage]
51
+ Unknown command handler now uses `json_err "$E_VALIDATION_FAILED" "Unknown command: $cmd"`.
52
+
53
+ ---
54
+
55
+ ## Architecture Issues
56
+
57
+ ### ISSUE-001: Inconsistent error code usage
58
+ **Location:** Multiple locations
59
+ **Severity:** MEDIUM
60
+ **Description:** Some `json_err` calls use hardcoded strings instead of constants
61
+ **Status:** [Mostly FIXED in v2.1 -- Phase 10 error triage]
62
+ The majority of error paths now use `$E_*` constants. Remaining intentional suppressions are annotated with SUPPRESS:OK comments.
63
+
64
+ ### ISSUE-005: Potential infinite loop in spawn-tree
65
+ **Location:** `spawn-tree-depth` in `.aether/utils/spawn.sh`
66
+ **Severity:** LOW
67
+ **Description:** Edge case with circular parent chain could cause issues
68
+ **Mitigation:** Safety limit of 5 exists
69
+ **Status:** Open -- low risk due to safety limit; code extracted to `spawn.sh` during Phase 13 modularization
70
+
71
+ ### ISSUE-006: Fallback json_err incompatible
72
+ **Location:** `.aether/aether-utils.sh` (lines ~65-72, fallback error handler)
73
+ **Severity:** LOW
74
+ **Description:** Fallback json_err doesn't accept error code parameter
75
+ **Impact:** If error-handler.sh fails to load, error codes are lost
76
+ **Status:** Open -- low risk since error-handler.sh is a stable infrastructure module
77
+
78
+ ---
79
+
80
+ ## Architecture Gaps
81
+
82
+ ### GAP-007: No error code standards documentation
83
+ **Description:** Error codes exist but aren't documented for external consumers
84
+ **Impact:** Developers don't know which codes to use
85
+ **Status:** Partially addressed -- `_aether_log_error` infrastructure added in Phase 10, but no standalone error code reference doc exists yet
86
+
87
+ ### GAP-008: Missing error path test coverage
88
+ **Description:** Error handling paths not fully tested
89
+ **Impact:** Bugs in error handling go undetected
90
+ **Status:** Partially addressed -- Phase 12 added state-api tests; 580+ tests now pass, but error-specific path coverage remains incomplete
91
+
92
+ ---
93
+
94
+ *Generated from Oracle Research findings -- Updated 2026-03-24 during v2.1 documentation accuracy phase*
@@ -10,17 +10,31 @@ Pheromones are how you communicate with the colony. Instead of micromanaging ind
10
10
  - **Optional TTL** -- use `--ttl` flag for wall-clock expiration (e.g., `--ttl 2h` for 2 hours)
11
11
  - **Priority levels** determine worker attention: high (REDIRECT), normal (FOCUS), low (FEEDBACK)
12
12
  - **Expired signals** are filtered on read -- no cleanup process needed
13
+ - **Compact priming path** (`pheromone-prime --compact`) injects only top signals by priority/strength for low token usage
13
14
 
14
15
  Run `/ant:status` at any time to see all active pheromones.
15
16
 
16
17
  ---
17
18
 
19
+ ## How Signals Reach Workers
20
+
21
+ Workers do not independently read or query pheromone files. Instead, colony-prime handles signal delivery:
22
+
23
+ 1. **colony-prime assembles signals** via `pheromone-prime --compact`, collecting all active signals sorted by priority and strength
24
+ 2. **Signals are injected into the `prompt_section`** of the worker spawn context -- they become part of the worker's prompt, not something the worker looks up
25
+ 3. **Workers see signals as part of their instructions**, not by reading `.aether/data/pheromones.json` directly
26
+ 4. **Builder, Watcher, and Scout** have `pheromone_protocol` sections in their agent definitions (`.claude/agents/ant/`) that instruct them how to act on the injected signals
27
+
28
+ This injection model means pheromones influence worker behavior through prompt context, the same way any other instruction reaches a worker.
29
+
30
+ ---
31
+
18
32
  ## FOCUS -- Guide Attention
19
33
 
20
34
  **Command:** `/ant:focus "<area>"`
21
35
  **Priority:** normal | **Default expiration:** end of phase
22
36
 
23
- **What it does:** Tells the colony "pay extra attention here." Workers read FOCUS signals and weight this area higher in their task execution.
37
+ **What it does:** Tells the colony "pay extra attention here." FOCUS signals are injected into worker prompts via colony-prime, weighting the indicated area higher in task execution.
24
38
 
25
39
  ### When to use FOCUS
26
40
 
@@ -146,16 +160,16 @@ Auto-emitted signals have their `source` field set to indicate origin: `"worker:
146
160
 
147
161
  ## Signal Combinations
148
162
 
149
- Pheromones combine. Workers check all active signals and respond accordingly:
163
+ Pheromones combine. colony-prime injects all active signals into worker prompts, ordered by priority:
150
164
 
151
165
  | Combination | Effect |
152
166
  |-------------|--------|
153
- | FOCUS + FEEDBACK | Workers concentrate on the focused area and adjust approach based on feedback |
154
- | FOCUS + REDIRECT | Workers prioritize the focused area while avoiding the redirected pattern |
155
- | FEEDBACK + REDIRECT | Workers adjust approach (feedback) and avoid specific patterns (redirect) |
167
+ | FOCUS + FEEDBACK | The focused area is weighted higher and approach is adjusted based on feedback |
168
+ | FOCUS + REDIRECT | The focused area is prioritized while the redirected pattern is flagged for avoidance |
169
+ | FEEDBACK + REDIRECT | Approach adjustments (feedback) and avoidance patterns (redirect) are both injected |
156
170
  | All three | Full steering: attention (FOCUS), avoidance (REDIRECT), and adjustment (FEEDBACK) |
157
171
 
158
- **Priority processing:** Workers check high priority signals first, then normal, then low.
172
+ **Priority processing:** High priority signals appear first in the injected context, then normal, then low.
159
173
 
160
174
  ---
161
175
 
@@ -188,6 +202,70 @@ This ensures signals don't expire while you're away from the project.
188
202
 
189
203
  ---
190
204
 
205
+ ## Viewing Active Pheromones
206
+
207
+ **Command:** `/ant:pheromones [filter]`
208
+
209
+ Displays all active signals in a formatted table with:
210
+ - Signal type (FOCUS/REDIRECT/FEEDBACK)
211
+ - Current strength percentage (accounting for decay)
212
+ - Elapsed time since creation
213
+ - Remaining time before expiration
214
+
215
+ **Filters:**
216
+ - `/ant:pheromones` — Show all active signals
217
+ - `/ant:pheromones focus` — Show only FOCUS signals
218
+ - `/ant:pheromones redirect` — Show only REDIRECT signals
219
+ - `/ant:pheromones feedback` — Show only FEEDBACK signals
220
+ - `/ant:pheromones clear` — Clear expired/inactive signals
221
+
222
+ ---
223
+
224
+ ## Automatic Suggestions
225
+
226
+ The colony can analyze your codebase and suggest pheromones worth capturing.
227
+
228
+ **During builds:** At Step 4.2, the colony automatically analyzes the codebase and proposes relevant signals:
229
+ - Detects hardcoded values that should be configurable
230
+ - Finds error-prone patterns from the midden
231
+ - Identifies architectural constraints from directory structure
232
+ - Suggests FOCUS areas based on file modification patterns
233
+ - Proposes REDIRECT signals for anti-patterns
234
+
235
+ **Tick-to-approve UI:** When suggestions are found, the build pauses to show:
236
+
237
+ ```
238
+ 🎯 Proposed Pheromone 1 of 3
239
+
240
+ Type: FOCUS
241
+ Content: "Audio processing — maintain thread safety"
242
+ Confidence: High (3 similar patterns found)
243
+
244
+ [A]pprove [R]eject [S]kip [D]ismiss All
245
+ ```
246
+
247
+ **Actions:**
248
+ - **A**pprove — Creates the pheromone signal
249
+ - **R**eject — Discards this suggestion (logs reason)
250
+ - **S**kip — Defer decision (shown again next build)
251
+ - **D**ismiss All — Skip all remaining suggestions
252
+
253
+ ---
254
+
255
+ ## Signal Decay
256
+
257
+ Pheromones lose strength over time (natural decay):
258
+
259
+ | Signal Type | Half-life | Full decay |
260
+ |-------------|-----------|------------|
261
+ | FOCUS | 15 days | 30 days |
262
+ | REDIRECT | 30 days | 60 days |
263
+ | FEEDBACK | 45 days | 90 days |
264
+
265
+ Signals below 10% strength are considered inactive but remain in history.
266
+
267
+ ---
268
+
191
269
  ## Quick Reference
192
270
 
193
271
  | Signal | Command | Priority | Default Expiration | Use for |
@@ -203,3 +281,5 @@ This ensures signals don't expire while you're away from the project.
203
281
  - For gentle nudges: FEEDBACK (low priority)
204
282
  - For attention: FOCUS (normal priority)
205
283
  - For short-lived signals: use `--ttl` flag
284
+ - To see current signals: `/ant:pheromones`
285
+ - To clear expired: `/ant:pheromones clear`