aether-colony 1.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 (207) hide show
  1. package/.aether/CONTEXT.md +160 -0
  2. package/.aether/QUEEN.md +84 -0
  3. package/.aether/aether-utils.sh +7749 -0
  4. package/.aether/docs/QUEEN-SYSTEM.md +211 -0
  5. package/.aether/docs/README.md +68 -0
  6. package/.aether/docs/caste-system.md +48 -0
  7. package/.aether/docs/disciplines/DISCIPLINES.md +93 -0
  8. package/.aether/docs/disciplines/coding-standards.md +197 -0
  9. package/.aether/docs/disciplines/debugging.md +207 -0
  10. package/.aether/docs/disciplines/learning.md +254 -0
  11. package/.aether/docs/disciplines/tdd.md +257 -0
  12. package/.aether/docs/disciplines/verification-loop.md +167 -0
  13. package/.aether/docs/disciplines/verification.md +116 -0
  14. package/.aether/docs/error-codes.md +268 -0
  15. package/.aether/docs/known-issues.md +233 -0
  16. package/.aether/docs/pheromones.md +205 -0
  17. package/.aether/docs/queen-commands.md +97 -0
  18. package/.aether/exchange/colony-registry.xml +11 -0
  19. package/.aether/exchange/pheromone-xml.sh +575 -0
  20. package/.aether/exchange/pheromones.xml +87 -0
  21. package/.aether/exchange/queen-wisdom.xml +14 -0
  22. package/.aether/exchange/registry-xml.sh +273 -0
  23. package/.aether/exchange/wisdom-xml.sh +319 -0
  24. package/.aether/midden/approach-changes.md +5 -0
  25. package/.aether/midden/build-failures.md +5 -0
  26. package/.aether/midden/test-failures.md +5 -0
  27. package/.aether/model-profiles.yaml +100 -0
  28. package/.aether/rules/aether-colony.md +134 -0
  29. package/.aether/schemas/aether-types.xsd +255 -0
  30. package/.aether/schemas/colony-registry.xsd +309 -0
  31. package/.aether/schemas/example-prompt-builder.xml +234 -0
  32. package/.aether/schemas/pheromone.xsd +163 -0
  33. package/.aether/schemas/prompt.xsd +416 -0
  34. package/.aether/schemas/queen-wisdom.xsd +325 -0
  35. package/.aether/schemas/worker-priming.xsd +276 -0
  36. package/.aether/templates/QUEEN.md.template +79 -0
  37. package/.aether/templates/colony-state-reset.jq.template +22 -0
  38. package/.aether/templates/colony-state.template.json +35 -0
  39. package/.aether/templates/constraints.template.json +9 -0
  40. package/.aether/templates/crowned-anthill.template.md +36 -0
  41. package/.aether/templates/handoff-build-error.template.md +30 -0
  42. package/.aether/templates/handoff-build-success.template.md +39 -0
  43. package/.aether/templates/handoff.template.md +40 -0
  44. package/.aether/templates/learning-observations.template.json +6 -0
  45. package/.aether/templates/midden.template.json +7 -0
  46. package/.aether/templates/pheromones.template.json +6 -0
  47. package/.aether/templates/session.template.json +9 -0
  48. package/.aether/utils/atomic-write.sh +219 -0
  49. package/.aether/utils/chamber-compare.sh +193 -0
  50. package/.aether/utils/chamber-utils.sh +297 -0
  51. package/.aether/utils/colorize-log.sh +132 -0
  52. package/.aether/utils/error-handler.sh +212 -0
  53. package/.aether/utils/file-lock.sh +158 -0
  54. package/.aether/utils/queen-to-md.xsl +395 -0
  55. package/.aether/utils/semantic-cli.sh +413 -0
  56. package/.aether/utils/spawn-tree.sh +428 -0
  57. package/.aether/utils/spawn-with-model.sh +56 -0
  58. package/.aether/utils/state-loader.sh +215 -0
  59. package/.aether/utils/swarm-display.sh +268 -0
  60. package/.aether/utils/watch-spawn-tree.sh +253 -0
  61. package/.aether/utils/xml-compose.sh +253 -0
  62. package/.aether/utils/xml-convert.sh +273 -0
  63. package/.aether/utils/xml-core.sh +186 -0
  64. package/.aether/utils/xml-query.sh +201 -0
  65. package/.aether/utils/xml-utils.sh +110 -0
  66. package/.aether/workers.md +765 -0
  67. package/.claude/agents/ant/aether-ambassador.md +264 -0
  68. package/.claude/agents/ant/aether-archaeologist.md +322 -0
  69. package/.claude/agents/ant/aether-auditor.md +266 -0
  70. package/.claude/agents/ant/aether-builder.md +187 -0
  71. package/.claude/agents/ant/aether-chaos.md +268 -0
  72. package/.claude/agents/ant/aether-chronicler.md +304 -0
  73. package/.claude/agents/ant/aether-gatekeeper.md +325 -0
  74. package/.claude/agents/ant/aether-includer.md +373 -0
  75. package/.claude/agents/ant/aether-keeper.md +271 -0
  76. package/.claude/agents/ant/aether-measurer.md +317 -0
  77. package/.claude/agents/ant/aether-probe.md +210 -0
  78. package/.claude/agents/ant/aether-queen.md +325 -0
  79. package/.claude/agents/ant/aether-route-setter.md +173 -0
  80. package/.claude/agents/ant/aether-sage.md +353 -0
  81. package/.claude/agents/ant/aether-scout.md +142 -0
  82. package/.claude/agents/ant/aether-surveyor-disciplines.md +416 -0
  83. package/.claude/agents/ant/aether-surveyor-nest.md +354 -0
  84. package/.claude/agents/ant/aether-surveyor-pathogens.md +288 -0
  85. package/.claude/agents/ant/aether-surveyor-provisions.md +359 -0
  86. package/.claude/agents/ant/aether-tracker.md +265 -0
  87. package/.claude/agents/ant/aether-watcher.md +244 -0
  88. package/.claude/agents/ant/aether-weaver.md +247 -0
  89. package/.claude/commands/ant/archaeology.md +341 -0
  90. package/.claude/commands/ant/build.md +1160 -0
  91. package/.claude/commands/ant/chaos.md +349 -0
  92. package/.claude/commands/ant/colonize.md +270 -0
  93. package/.claude/commands/ant/continue.md +1070 -0
  94. package/.claude/commands/ant/council.md +309 -0
  95. package/.claude/commands/ant/dream.md +265 -0
  96. package/.claude/commands/ant/entomb.md +487 -0
  97. package/.claude/commands/ant/feedback.md +78 -0
  98. package/.claude/commands/ant/flag.md +139 -0
  99. package/.claude/commands/ant/flags.md +155 -0
  100. package/.claude/commands/ant/focus.md +58 -0
  101. package/.claude/commands/ant/help.md +122 -0
  102. package/.claude/commands/ant/history.md +137 -0
  103. package/.claude/commands/ant/init.md +409 -0
  104. package/.claude/commands/ant/interpret.md +267 -0
  105. package/.claude/commands/ant/lay-eggs.md +201 -0
  106. package/.claude/commands/ant/maturity.md +102 -0
  107. package/.claude/commands/ant/memory-details.md +77 -0
  108. package/.claude/commands/ant/migrate-state.md +165 -0
  109. package/.claude/commands/ant/oracle.md +387 -0
  110. package/.claude/commands/ant/organize.md +227 -0
  111. package/.claude/commands/ant/pause-colony.md +247 -0
  112. package/.claude/commands/ant/phase.md +126 -0
  113. package/.claude/commands/ant/plan.md +544 -0
  114. package/.claude/commands/ant/redirect.md +58 -0
  115. package/.claude/commands/ant/resume-colony.md +182 -0
  116. package/.claude/commands/ant/resume.md +363 -0
  117. package/.claude/commands/ant/seal.md +306 -0
  118. package/.claude/commands/ant/status.md +272 -0
  119. package/.claude/commands/ant/swarm.md +361 -0
  120. package/.claude/commands/ant/tunnels.md +425 -0
  121. package/.claude/commands/ant/update.md +209 -0
  122. package/.claude/commands/ant/verify-castes.md +95 -0
  123. package/.claude/commands/ant/watch.md +238 -0
  124. package/.opencode/agents/aether-ambassador.md +140 -0
  125. package/.opencode/agents/aether-archaeologist.md +108 -0
  126. package/.opencode/agents/aether-auditor.md +144 -0
  127. package/.opencode/agents/aether-builder.md +184 -0
  128. package/.opencode/agents/aether-chaos.md +115 -0
  129. package/.opencode/agents/aether-chronicler.md +122 -0
  130. package/.opencode/agents/aether-gatekeeper.md +116 -0
  131. package/.opencode/agents/aether-includer.md +117 -0
  132. package/.opencode/agents/aether-keeper.md +177 -0
  133. package/.opencode/agents/aether-measurer.md +128 -0
  134. package/.opencode/agents/aether-probe.md +133 -0
  135. package/.opencode/agents/aether-queen.md +286 -0
  136. package/.opencode/agents/aether-route-setter.md +130 -0
  137. package/.opencode/agents/aether-sage.md +106 -0
  138. package/.opencode/agents/aether-scout.md +101 -0
  139. package/.opencode/agents/aether-surveyor-disciplines.md +386 -0
  140. package/.opencode/agents/aether-surveyor-nest.md +324 -0
  141. package/.opencode/agents/aether-surveyor-pathogens.md +259 -0
  142. package/.opencode/agents/aether-surveyor-provisions.md +329 -0
  143. package/.opencode/agents/aether-tracker.md +137 -0
  144. package/.opencode/agents/aether-watcher.md +174 -0
  145. package/.opencode/agents/aether-weaver.md +130 -0
  146. package/.opencode/commands/ant/archaeology.md +338 -0
  147. package/.opencode/commands/ant/build.md +1200 -0
  148. package/.opencode/commands/ant/chaos.md +346 -0
  149. package/.opencode/commands/ant/colonize.md +202 -0
  150. package/.opencode/commands/ant/continue.md +938 -0
  151. package/.opencode/commands/ant/council.md +305 -0
  152. package/.opencode/commands/ant/dream.md +262 -0
  153. package/.opencode/commands/ant/entomb.md +367 -0
  154. package/.opencode/commands/ant/feedback.md +80 -0
  155. package/.opencode/commands/ant/flag.md +137 -0
  156. package/.opencode/commands/ant/flags.md +153 -0
  157. package/.opencode/commands/ant/focus.md +56 -0
  158. package/.opencode/commands/ant/help.md +124 -0
  159. package/.opencode/commands/ant/history.md +127 -0
  160. package/.opencode/commands/ant/init.md +337 -0
  161. package/.opencode/commands/ant/interpret.md +256 -0
  162. package/.opencode/commands/ant/lay-eggs.md +141 -0
  163. package/.opencode/commands/ant/maturity.md +92 -0
  164. package/.opencode/commands/ant/memory-details.md +77 -0
  165. package/.opencode/commands/ant/migrate-state.md +153 -0
  166. package/.opencode/commands/ant/oracle.md +338 -0
  167. package/.opencode/commands/ant/organize.md +224 -0
  168. package/.opencode/commands/ant/pause-colony.md +220 -0
  169. package/.opencode/commands/ant/phase.md +123 -0
  170. package/.opencode/commands/ant/plan.md +531 -0
  171. package/.opencode/commands/ant/redirect.md +67 -0
  172. package/.opencode/commands/ant/resume-colony.md +178 -0
  173. package/.opencode/commands/ant/resume.md +363 -0
  174. package/.opencode/commands/ant/seal.md +247 -0
  175. package/.opencode/commands/ant/status.md +272 -0
  176. package/.opencode/commands/ant/swarm.md +357 -0
  177. package/.opencode/commands/ant/tunnels.md +406 -0
  178. package/.opencode/commands/ant/update.md +191 -0
  179. package/.opencode/commands/ant/verify-castes.md +85 -0
  180. package/.opencode/commands/ant/watch.md +220 -0
  181. package/.opencode/opencode.json +3 -0
  182. package/CHANGELOG.md +325 -0
  183. package/DISCLAIMER.md +74 -0
  184. package/LICENSE +21 -0
  185. package/README.md +258 -0
  186. package/bin/cli.js +2436 -0
  187. package/bin/generate-commands.sh +291 -0
  188. package/bin/lib/caste-colors.js +57 -0
  189. package/bin/lib/colors.js +76 -0
  190. package/bin/lib/errors.js +255 -0
  191. package/bin/lib/event-types.js +190 -0
  192. package/bin/lib/file-lock.js +695 -0
  193. package/bin/lib/init.js +454 -0
  194. package/bin/lib/logger.js +242 -0
  195. package/bin/lib/model-profiles.js +445 -0
  196. package/bin/lib/model-verify.js +288 -0
  197. package/bin/lib/nestmate-loader.js +130 -0
  198. package/bin/lib/proxy-health.js +253 -0
  199. package/bin/lib/spawn-logger.js +266 -0
  200. package/bin/lib/state-guard.js +602 -0
  201. package/bin/lib/state-sync.js +516 -0
  202. package/bin/lib/telemetry.js +441 -0
  203. package/bin/lib/update-transaction.js +1454 -0
  204. package/bin/npx-install.js +178 -0
  205. package/bin/sync-to-runtime.sh +6 -0
  206. package/bin/validate-package.sh +88 -0
  207. package/package.json +70 -0
@@ -0,0 +1,153 @@
1
+ ---
2
+ name: ant:flags
3
+ description: "📋🐜🚩🐜📋 List project flags (blockers, issues, notes)"
4
+ ---
5
+
6
+ You are the **Queen**. Display project flags.
7
+
8
+ ## Instructions
9
+
10
+ ### Step -1: Normalize Arguments
11
+
12
+ Run: `normalized_args=$(bash .aether/aether-utils.sh normalize-args "$@")`
13
+
14
+ This ensures arguments work correctly in both Claude Code and OpenCode. Use `$normalized_args` throughout this command.
15
+
16
+ Arguments: `$normalized_args`
17
+
18
+ ### Step 1: Parse Arguments
19
+
20
+ Parse `$normalized_args` for:
21
+ - `--all` or `-a`: Show resolved flags too
22
+ - `--type` or `-t`: Filter by type (blocker|issue|note)
23
+ - `--phase` or `-p`: Filter by phase number
24
+ - `--resolve` or `-r`: Resolve a specific flag ID
25
+ - `--ack` or `-k`: Acknowledge a specific flag ID
26
+
27
+ Examples:
28
+ - `/ant:flags` → Show active flags
29
+ - `/ant:flags --all` → Include resolved flags
30
+ - `/ant:flags -t blocker` → Show only blockers
31
+ - `/ant:flags --resolve flag_123 "Fixed by commit abc"` → Resolve a flag
32
+ - `/ant:flags --ack flag_456` → Acknowledge an issue
33
+
34
+ ### Step 2: Handle Resolution/Acknowledgment
35
+
36
+ If `--resolve` was provided:
37
+ ```bash
38
+ bash .aether/aether-utils.sh flag-resolve "{flag_id}" "{resolution_message}"
39
+ ```
40
+ Output:
41
+ ```
42
+ ✅ Flag resolved: {flag_id}
43
+
44
+ Resolution: {message}
45
+ ```
46
+ Stop here.
47
+
48
+ If `--ack` was provided:
49
+ ```bash
50
+ bash .aether/aether-utils.sh flag-acknowledge "{flag_id}"
51
+ ```
52
+ Output:
53
+ ```
54
+ 👁️ Flag acknowledged: {flag_id}
55
+
56
+ Flag noted. Continuing with work.
57
+ ```
58
+ Stop here.
59
+
60
+ ### Step 3: List Flags
61
+
62
+ Run:
63
+ ```bash
64
+ bash .aether/aether-utils.sh flag-list {options}
65
+ ```
66
+
67
+ Parse result for flags array.
68
+
69
+ ### Step 4: Display
70
+
71
+ Output header:
72
+
73
+ ```
74
+ 📋🐜🚩🐜📋 ═══════════════════════════════════════════════════
75
+ P R O J E C T F L A G S
76
+ ═══════════════════════════════════════════════════ 📋🐜🚩🐜📋
77
+ ```
78
+
79
+ If no flags:
80
+ ```
81
+ .-.
82
+ (o o) AETHER COLONY
83
+ | O | Flags
84
+ `-`
85
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
86
+
87
+ ✨ No active flags! Colony is clear.
88
+
89
+ {if --all was used: "No resolved flags either."}
90
+ ```
91
+
92
+ If flags exist:
93
+ ```
94
+ .-.
95
+ (o o) AETHER COLONY
96
+ | O | Flags
97
+ `-`
98
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
99
+
100
+ {for each flag, grouped by type:}
101
+
102
+ 🚫 BLOCKERS ({count})
103
+ {flag_id}: {title}
104
+ Phase: {phase or "all"} | Created: {date}
105
+ └─ {description preview}
106
+
107
+ ⚠️ ISSUES ({count})
108
+ {flag_id}: {title} {if acknowledged: "[ACK]"}
109
+ Phase: {phase or "all"} | Created: {date}
110
+ └─ {description preview}
111
+
112
+ 📝 NOTES ({count})
113
+ {flag_id}: {title}
114
+ Phase: {phase or "all"} | Created: {date}
115
+ └─ {description preview}
116
+
117
+ {if --all and resolved flags exist:}
118
+
119
+ ✅ RESOLVED ({count})
120
+ {flag_id}: {title}
121
+ Resolved: {date} | {resolution}
122
+
123
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
124
+
125
+ Summary: {blockers} blockers | {issues} issues | {notes} notes
126
+
127
+ {if blockers > 0:}
128
+ ⚠️ Blockers must be resolved before /ant:continue
129
+
130
+ Commands:
131
+ /ant:flags --resolve {id} "message" Resolve a flag
132
+ /ant:flags --ack {id} Acknowledge an issue
133
+ /ant:flag "description" Create new flag
134
+ ```
135
+
136
+ ---
137
+
138
+ ## Quick Actions
139
+
140
+ **Resolve a flag:**
141
+ ```
142
+ /ant:flags --resolve flag_123456 "Fixed in commit abc123"
143
+ ```
144
+
145
+ **Acknowledge an issue:**
146
+ ```
147
+ /ant:flags --ack flag_789012
148
+ ```
149
+
150
+ **Create a new flag:**
151
+ ```
152
+ /ant:flag --type blocker "Critical issue here"
153
+ ```
@@ -0,0 +1,56 @@
1
+ ---
2
+ name: ant:focus
3
+ description: "🔦🐜🔍🐜🔦 Emit FOCUS signal to guide colony attention"
4
+ ---
5
+
6
+ You are the **Queen**. Add a FOCUS constraint.
7
+
8
+ ## Instructions
9
+
10
+ ### Step -1: Normalize Arguments
11
+
12
+ Run: `normalized_args=$(bash .aether/aether-utils.sh normalize-args "$@")`
13
+
14
+ This ensures arguments work correctly in both Claude Code and OpenCode. Use `$normalized_args` throughout this command.
15
+
16
+ The focus area is: `$normalized_args`
17
+
18
+ ### Step 1: Validate
19
+
20
+ If `$normalized_args` empty -> show usage: `/ant:focus <area>`, stop.
21
+ If content > 500 chars -> "Focus content too long (max 500 chars)", stop.
22
+
23
+ ### Step 2: Read + Update Constraints
24
+
25
+ Read `.aether/data/COLONY_STATE.json`.
26
+ If `goal: null` -> "No colony initialized.", stop.
27
+
28
+ Read `.aether/data/constraints.json`. If file doesn't exist, create it with:
29
+ ```json
30
+ {"version": "1.0", "focus": [], "constraints": []}
31
+ ```
32
+
33
+ Append the focus area to the `focus` array.
34
+
35
+ If `focus` array exceeds 5 entries, remove the oldest entries to keep only 5.
36
+
37
+ Write constraints.json.
38
+
39
+ ### Step 3: Confirm
40
+
41
+ Output header:
42
+
43
+ ```
44
+ 🔦🐜🔍🐜🔦 ═══════════════════════════════════════════════════
45
+ F O C U S S I G N A L
46
+ ═══════════════════════════════════════════════════ 🔦🐜🔍🐜🔦
47
+ ```
48
+
49
+ Then output:
50
+ ```
51
+ 🎯 FOCUS signal emitted
52
+
53
+ "{content preview}"
54
+
55
+ 🐜 Colony attention directed.
56
+ ```
@@ -0,0 +1,124 @@
1
+ ---
2
+ name: help
3
+ description: "🐜📖 Aether Colony - command reference and system overview"
4
+ ---
5
+
6
+ You are the **Queen Ant Colony**. Display the system overview and available commands.
7
+
8
+ ## Instructions
9
+
10
+ Output the following:
11
+
12
+ ```
13
+ 👑 AETHER QUEEN ANT COLONY
14
+ ══════════════════════════════════════════
15
+
16
+ A multi-agent system built on ant colony intelligence.
17
+ Workers self-organize via pheromone signals. You guide with intention.
18
+
19
+ GETTING STARTED
20
+
21
+ /ant:init "<goal>" Set colony intention and initialize
22
+ /ant:colonize Analyze existing codebase (optional)
23
+ /ant:plan Generate project plan
24
+ /ant:build <phase> Execute a phase (spawns parallel workers)
25
+ /ant:continue Verify work, extract learnings, advance
26
+
27
+ PHEROMONE COMMANDS
28
+
29
+ /ant:focus "<area>" Guide colony attention (priority: normal, expires: phase end)
30
+ /ant:redirect "<pat>" Warn away from pattern (priority: high, expires: phase end)
31
+ /ant:feedback "<msg>" Adjust behavior (priority: low, expires: phase end)
32
+
33
+ STATUS & UPDATES
34
+
35
+ /ant:status Colony dashboard — goal, phase, instincts, flags
36
+ /ant:update Update system files from global hub (~/.aether/)
37
+ /ant:phase [N|list] View phase details or list all phases
38
+ /ant:flags List active flags (blockers, issues, notes)
39
+ /ant:flag "<title>" Create a flag (blocker, issue, or note)
40
+
41
+ SESSION COMMANDS
42
+
43
+ /ant:pause-colony Save state and create handoff document
44
+ /ant:resume-colony Restore from pause (full state + context)
45
+ /ant:watch Set up tmux session for live colony visibility
46
+
47
+ COLONY LIFECYCLE
48
+
49
+ /ant:seal Seal colony with Crowned Anthill milestone
50
+ /ant:history Browse colony event history
51
+
52
+ ADVANCED
53
+
54
+ /ant:swarm "<bug>" Parallel scouts investigate stubborn bugs
55
+ /ant:organize Codebase hygiene report (stale files, dead code)
56
+ /ant:council Convene council for intent clarification
57
+ /ant:dream Philosophical wanderer — observes and writes wisdom
58
+ /ant:interpret Review dreams — validate against codebase, discuss action
59
+ /ant:chaos 🎲 Resilience testing — adversarial probing of the codebase
60
+ /ant:archaeology 🏺 Git history analysis — excavate patterns from commit history
61
+
62
+ TYPICAL WORKFLOW
63
+
64
+ 1. /ant:init "Build a REST API with auth"
65
+ 2. /ant:colonize (if existing code)
66
+ 3. /ant:plan (generates phases)
67
+ 4. /ant:focus "security" (optional guidance)
68
+ 5. /ant:build 1 (workers execute phase 1)
69
+ 6. /ant:continue (verify, learn, advance)
70
+ 7. /ant:build 2 (repeat until complete)
71
+
72
+ After /clear or session break:
73
+ 8. /ant:resume-colony (restore full context)
74
+ 9. /ant:status (see where you left off)
75
+
76
+ WORKER CASTES
77
+
78
+ 👑 Queen — orchestrates, spawns workers, synthesizes results
79
+ 🗺️ colonizer — explores codebase, maps structure
80
+ 📋 route-setter — plans phases, breaks down goals
81
+ 🔨 builder — implements code, runs commands
82
+ 👁️ watcher — validates, tests, independent quality checks
83
+ 🔍 scout — researches, gathers information
84
+ 🏛️ architect — synthesizes knowledge, extracts patterns
85
+ 🎲 chaos — resilience tester, adversarial probing
86
+ 🏺 archaeologist — git history analyst, excavates commit patterns
87
+
88
+ HOW IT WORKS
89
+
90
+ Colony Lifecycle:
91
+ INIT → PLAN → BUILD → CONTINUE → BUILD → ... → COMPLETE
92
+
93
+ Workers spawn sub-workers autonomously (max depth 3).
94
+ Builders receive colony knowledge (instincts, learnings, error patterns).
95
+ Watchers independently verify work — builders never self-approve.
96
+ Phase boundaries are control points: emergence within, gates between.
97
+
98
+ Pheromone System:
99
+ Signals expire after their TTL. Workers sense active signals
100
+ and adjust behavior. FOCUS attracts, REDIRECT repels, FEEDBACK calibrates.
101
+
102
+ Colony Memory:
103
+ Instincts — learned patterns with confidence scores (validated through use)
104
+ Learnings — per-phase observations (hypothesis → validated → disproven)
105
+ Graveyards — markers on files where workers previously failed
106
+
107
+ State Files (.aether/data/):
108
+ COLONY_STATE.json Goal, phases, tasks, memory, signals, events
109
+ activity.log Timestamped worker activity
110
+ spawn-tree.txt Worker spawn hierarchy
111
+ constraints.json Focus/redirect pheromone data
112
+
113
+ OPENCODE USERS
114
+
115
+ Argument syntax: OpenCode handles multi-word arguments differently than Claude.
116
+ Wrap text arguments in quotes for reliable parsing:
117
+
118
+ ✅ /ant:init "Build a REST API"
119
+ ✅ /ant:plan "authentication system"
120
+ ✅ /ant:focus "database layer"
121
+
122
+ Without quotes, only the first word may be captured. This is now handled
123
+ automatically by the normalize-args utility, but quoting is recommended.
124
+ ```
@@ -0,0 +1,127 @@
1
+ ---
2
+ name: ant:history
3
+ description: "📜🐜📜 Show colony event history"
4
+ ---
5
+
6
+ You are the **Queen**. Show colony history.
7
+
8
+ ## Instructions
9
+
10
+ ### Step 1: Read State
11
+
12
+ Read `.aether/data/COLONY_STATE.json`.
13
+
14
+ If file missing or `goal: null`:
15
+ ```
16
+ No colony initialized. Run /ant:init first.
17
+ ```
18
+ Stop here.
19
+
20
+ ### Step 2: Parse Events
21
+
22
+ Extract the `events` array from the state.
23
+
24
+ Each event is in format: `timestamp|type|source|description`
25
+
26
+ Parse each event into components:
27
+ - timestamp: before first `|`
28
+ - type: between first and second `|`
29
+ - source: between second and third `|`
30
+ - description: after third `|`
31
+
32
+ ### Step 3: Parse Filter Arguments
33
+
34
+ Parse optional filter arguments:
35
+
36
+ **Event Type Filter:**
37
+ - `--type TYPE` or `-t TYPE`: Filter by event type
38
+ - Multiple types can be specified (comma-separated)
39
+ - Valid types: `colony_initialized`, `phase_started`, `phase_advanced`, `plan_generated`, `milestone_reached`, `state_upgraded`
40
+
41
+ **Date Range Filter:**
42
+ - `--since DATE`: Show events since DATE
43
+ - ISO format: `2026-02-13`, `2026-02-13T14:30:00`
44
+ - Relative: `1d` (1 day ago), `2h` (2 hours ago), `30m` (30 minutes ago)
45
+ - `--until DATE`: Show events until DATE
46
+ - Same format options as `--since`
47
+
48
+ ### Step 4: Apply Limit
49
+
50
+ Parse optional `--limit N` argument (default: 10).
51
+
52
+ If `--limit` is provided, only show N events.
53
+
54
+ ### Step 5: Filter Events
55
+
56
+ Apply filters to the events array:
57
+
58
+ **Type Filtering:**
59
+ - If `--type` is provided, split by comma to get list of types
60
+ - Filter events to only include those where type matches any of the specified types (case-insensitive)
61
+
62
+ **Date Range Filtering:**
63
+ - For `--since`: Parse the date value
64
+ - If relative (e.g., "1d", "2h", "30m"), calculate timestamp by subtracting from current time
65
+ - If ISO format, parse directly
66
+ - Filter events with timestamp >= since date
67
+ - For `--until`: Same parsing logic
68
+ - Filter events with timestamp <= until date
69
+
70
+ **Track Active Filters:**
71
+ - Record which filters are active for display indicator
72
+
73
+ ### Step 6: Sort and Display
74
+
75
+ Sort events in reverse chronological order (most recent first).
76
+
77
+ If events array is empty:
78
+ ```
79
+ No colony events recorded yet.
80
+ ```
81
+
82
+ **Filter Indicators:**
83
+ - If any filters are active, show at the top:
84
+ - Type filter: `Filters: type=<TYPE>[,<TYPE>...]`
85
+ - Since filter: `Filters: since=<DATE>`
86
+ - Until filter: `Filters: until=<DATE>`
87
+ - Multiple filters: Combine on same line (e.g., `Filters: type=phase_started,phase_advanced since=1d`)
88
+ - Show filtered count: "Showing X of Y events (filtered from Z total)"
89
+
90
+ Otherwise, display in format:
91
+ ```
92
+ ━━━ Colony History (most recent first) ━━━
93
+
94
+ [TIMESTAMP] [TYPE] from [SOURCE]
95
+ Description: [description]
96
+
97
+ [TIMESTAMP] [TYPE] from [SOURCE]
98
+ Description: [description]
99
+
100
+ ... (up to limit)
101
+ ```
102
+
103
+ **Format:**
104
+ - Timestamp: Show in readable format (e.g., "2026-02-13 14:30:00")
105
+ - Type: Uppercase event type
106
+ - Source: Italics for source
107
+ - Description: Plain text
108
+
109
+ **Event type icons:**
110
+ - `colony_initialized`: 🏠
111
+ - `phase_started`: 🚀
112
+ - `phase_advanced`: ➡️
113
+ - `plan_generated`: 📋
114
+ - `milestone_reached`: 🏆
115
+ - `state_upgraded`: 🔄
116
+ - `default`: 📌
117
+
118
+ **Limit display:**
119
+ - If filtering is active, show: "Showing X of Y events (filtered from Z total)"
120
+ - If only limit is applied (no filters), show: "Showing X of Y events"
121
+
122
+ ### Step 7: Display Summary
123
+
124
+ Show total event count at the end:
125
+ ```
126
+ Total events recorded: <count>
127
+ ```