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,357 @@
1
+ ---
2
+ name: ant:swarm
3
+ description: "🔥🐜🗡️🐜🔥 Real-time colony swarm display + stubborn bug destroyer"
4
+ ---
5
+
6
+ You are the **Queen Ant Colony**. Deploy the swarm to destroy a stubborn bug or view real-time colony activity.
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
+ ### Quick View Mode (No Arguments)
17
+
18
+ If `$normalized_args` is empty or equals "--watch":
19
+
20
+ Run the real-time swarm display:
21
+ ```bash
22
+ bash .aether/utils/swarm-display.sh
23
+ ```
24
+
25
+ This shows:
26
+ - Active ants with caste colors and emojis (🔨 Builder in blue, etc.)
27
+ - Tool usage stats per ant (📖5 🔍3 ✏️2 ⚡1)
28
+ - Trophallaxis metrics (🍯 token consumption)
29
+ - Timing information (elapsed time per ant)
30
+ - Chamber activity map (which nest zones have active ants)
31
+ - Animated status phrases ("excavating...", "foraging...")
32
+
33
+ Display updates automatically as ants start/complete work.
34
+ Press Ctrl+C to exit.
35
+
36
+ ### Bug Destruction Mode (With Arguments)
37
+
38
+ The problem to investigate is: `$normalized_args`
39
+
40
+ #### Step 1: Validate Input
41
+
42
+ If `$normalized_args` is empty:
43
+ ```
44
+ 🔥🐜🗡️🐜🔥 SWARM
45
+
46
+ Deploy parallel scouts to investigate and fix stubborn bugs.
47
+
48
+ Usage: /ant:swarm "<describe the problem>"
49
+
50
+ Examples:
51
+ /ant:swarm "Tests keep failing in auth module"
52
+ /ant:swarm "TypeError: Cannot read property 'id' of undefined"
53
+ /ant:swarm "API returns 500 but I can't find the cause"
54
+
55
+ This is the nuclear option - use when repeated fix attempts fail.
56
+ ```
57
+ Stop here.
58
+
59
+ #### Step 2: Read State & Initialize
60
+
61
+ Read `.aether/data/COLONY_STATE.json`.
62
+ If `goal` is null → "No colony initialized. Run /ant:init first.", stop.
63
+
64
+ Generate swarm ID: `swarm-<unix_timestamp>`
65
+
66
+ Initialize swarm findings:
67
+ ```bash
68
+ bash .aether/aether-utils.sh swarm-findings-init "<swarm_id>"
69
+ ```
70
+
71
+ Initialize swarm display for real-time tracking:
72
+ ```bash
73
+ bash .aether/aether-utils.sh swarm-display-init "<swarm_id>"
74
+ ```
75
+
76
+ Display header:
77
+ ```
78
+ 🔥🐜🗡️🐜🔥 ═══════════════════════════════════════════════
79
+ S W A R M D E P L O Y E D
80
+ ═══════════════════════════════════════════════ 🔥🐜🗡️🐜🔥
81
+
82
+ 🎯 Target: "{problem description}"
83
+ 📍 Swarm ID: {swarm_id}
84
+
85
+ ⚡ Deploying 4 parallel scouts...
86
+ ```
87
+
88
+ #### Step 3: Create Git Checkpoint
89
+
90
+ Before any investigation that might lead to fixes:
91
+ ```bash
92
+ bash .aether/aether-utils.sh autofix-checkpoint "pre-swarm-$SWARM_ID"
93
+ ```
94
+
95
+ Store the result for potential rollback:
96
+ - `checkpoint_type` = result.type ("stash", "commit", or "none")
97
+ - `checkpoint_ref` = result.ref
98
+
99
+ ```
100
+ 💾 Checkpoint: {checkpoint_type} → {checkpoint_ref}
101
+ ```
102
+
103
+ #### Step 4: Read Context
104
+
105
+ Read existing blockers for context:
106
+ ```bash
107
+ bash .aether/aether-utils.sh flag-list --type blocker
108
+ ```
109
+
110
+ Read recent activity:
111
+ ```bash
112
+ tail -50 .aether/data/activity.log 2>/dev/null || echo "(no activity log)"
113
+ ```
114
+
115
+ Scan recent git commits for context:
116
+ ```bash
117
+ git log --oneline -20 2>/dev/null || echo "(no git history)"
118
+ ```
119
+
120
+ #### Step 5: Deploy 4 Parallel Scouts
121
+
122
+ Use the **Task** tool to spawn 4 scouts **in a single message** (parallel execution):
123
+
124
+ Log each scout to swarm display before spawning:
125
+ ```bash
126
+ bash .aether/aether-utils.sh swarm-display-update "{swarm_id}-Archaeologist" "scout" "excavating" "Git history investigation" "Queen" '{"read":0,"grep":0,"edit":0,"bash":3}' 0
127
+ bash .aether/aether-utils.sh swarm-display-update "{swarm_id}-PatternHunter" "scout" "excavating" "Pattern search for similar code" "Queen" '{"read":5,"grep":10,"edit":0,"bash":0}' 0
128
+ bash .aether/aether-utils.sh swarm-display-update "{swarm_id}-ErrorAnalyst" "scout" "excavating" "Error chain analysis" "Queen" '{"read":3,"grep":5,"edit":0,"bash":2}' 0
129
+ bash .aether/aether-utils.sh swarm-display-update "{swarm_id}-WebResearcher" "scout" "excavating" "External source research" "Queen" '{"read":0,"grep":0,"edit":0,"bash":0}' 0
130
+ ```
131
+
132
+ **Scout 1: 🏛️ Git Archaeologist**
133
+ ```
134
+ You are {swarm_id}-Archaeologist, a 🏛️ Scout Ant.
135
+
136
+ Investigate git history for: {problem description}
137
+
138
+ Steps:
139
+ 1. Run `git log --oneline -30`
140
+ 2. Run `git log -p --since="1 week ago" -- {relevant files}`
141
+ 3. Run `git blame {suspected file}` if mentioned
142
+ 4. Find commits that introduced the bug
143
+
144
+ Return ONLY this JSON:
145
+ {"scout": "git-archaeologist", "confidence": 0.0-1.0, "finding": {"likely_cause": "...", "relevant_commits": [], "when_it_broke": "...", "evidence": []}, "suggested_fix": "..."}
146
+ ```
147
+
148
+ **Scout 2: 🔍 Pattern Hunter**
149
+ ```
150
+ You are {swarm_id}-PatternHunter, a 🔍 Scout Ant.
151
+
152
+ Find working patterns for: {problem description}
153
+
154
+ Steps:
155
+ 1. Grep/glob for related working code
156
+ 2. Find how other parts handle this
157
+ 3. Look for test files showing correct usage
158
+ 4. Identify applicable patterns
159
+
160
+ Return ONLY this JSON:
161
+ {"scout": "pattern-hunter", "confidence": 0.0-1.0, "finding": {"working_examples": [], "applicable_patterns": [], "differences": "..."}, "suggested_fix": "..."}
162
+ ```
163
+
164
+ **Scout 3: 💥 Error Analyst**
165
+ ```
166
+ You are {swarm_id}-ErrorAnalyst, a 🔍 Scout Ant.
167
+
168
+ Analyze error: {problem description}
169
+
170
+ Steps:
171
+ 1. Trace through stack trace frames
172
+ 2. Identify actual failing line vs surface error
173
+ 3. Check for null refs, async issues, type mismatches
174
+ 4. Look for error handling masking the issue
175
+
176
+ Return ONLY this JSON:
177
+ {"scout": "error-analyst", "confidence": 0.0-1.0, "finding": {"root_cause": "...", "error_chain": [], "masked_by": "...", "category": "null-ref|async|type|logic|config|dependency"}, "suggested_fix": "..."}
178
+ ```
179
+
180
+ **Scout 4: 🌐 Web Researcher**
181
+ ```
182
+ You are {swarm_id}-WebResearcher, a 🔍 Scout Ant.
183
+
184
+ Research external solutions for: {problem description}
185
+
186
+ Steps:
187
+ 1. Search for exact error message
188
+ 2. Find library/framework docs
189
+ 3. Check GitHub issues
190
+ 4. Find Stack Overflow answers
191
+
192
+ Return ONLY this JSON:
193
+ {"scout": "web-researcher", "confidence": 0.0-1.0, "finding": {"known_issue": true/false, "documentation_link": "...", "similar_issues": [], "community_solutions": []}, "suggested_fix": "..."}
194
+ ```
195
+
196
+ Wait for all 4 scouts to complete.
197
+
198
+ #### Step 6: Collect and Cross-Compare Findings
199
+
200
+ As each scout returns, add their findings:
201
+ ```bash
202
+ bash .aether/aether-utils.sh swarm-findings-add "{swarm_id}" "{scout_type}" "{confidence}" '{finding_json}'
203
+ ```
204
+
205
+ Update scout status in swarm display to "completed":
206
+ ```bash
207
+ bash .aether/aether-utils.sh swarm-display-update "{swarm_id}-Archaeologist" "scout" "completed" "Git history investigation" "Queen" '{"read":3,"grep":0,"edit":0,"bash":5}' 150
208
+ ```
209
+
210
+ Display each scout's report as they complete:
211
+ ```
212
+ 🏛️ Archaeologist [{confidence}]
213
+ {summary of finding}
214
+
215
+ 🔍 PatternHunter [{confidence}]
216
+ {summary of finding}
217
+
218
+ 💥 ErrorAnalyst [{confidence}]
219
+ {summary of finding}
220
+
221
+ 🌐 WebResearcher [{confidence}]
222
+ {summary of finding}
223
+ ```
224
+
225
+ #### Step 7: Synthesize Solution
226
+
227
+ Cross-compare all findings:
228
+ 1. Identify where scouts agree (high confidence)
229
+ 2. Note where scouts disagree (investigate further)
230
+ 3. Weight by confidence scores
231
+ 4. Prefer findings with concrete evidence
232
+
233
+ Rank fix options:
234
+ ```
235
+ ═══════════════════════════════════════════════
236
+ S O L U T I O N R A N K I N G
237
+ ═══════════════════════════════════════════════
238
+
239
+ #1 [0.85 confidence] {best solution}
240
+ Evidence: {supporting scouts}
241
+
242
+ #2 [0.72 confidence] {alternative}
243
+ Evidence: {supporting scouts}
244
+
245
+ #3 [0.45 confidence] {fallback}
246
+ Evidence: {limited support}
247
+ ```
248
+
249
+ #### Step 8: Apply Best Fix
250
+
251
+ Select the highest-confidence solution and apply it:
252
+
253
+ **Command Resolution:** Before running verification, resolve `{build_command}` and `{test_command}` using this priority chain (stop at first match per command):
254
+ 1. **CLAUDE.md** — Check project CLAUDE.md (in your system context) for explicit build/test commands
255
+ 2. **CODEBASE.md** — Read `.aether/data/codebase.md` `## Commands` section
256
+ 3. **Fallback** — Use project manifest heuristics (e.g., `npm run build`/`npm test` for package.json)
257
+
258
+ ```
259
+ 🔧 Applying Fix #1...
260
+ ```
261
+
262
+ Make the actual code changes using Edit/Write tools.
263
+
264
+ After applying:
265
+ ```bash
266
+ # Run verification
267
+ {build_command} 2>&1 | tail -30
268
+ {test_command} 2>&1 | tail -50
269
+ ```
270
+
271
+ #### Step 9: Verify and Report
272
+
273
+ **If verification passes:**
274
+ ```
275
+ ✅ FIX VERIFIED
276
+
277
+ Build: PASS
278
+ Tests: PASS
279
+
280
+ 🔥🐜🗡️🐜🔥 Swarm successful!
281
+
282
+ The fix will be confirmed when you run:
283
+ /ant:continue
284
+ ```
285
+
286
+ Inject learnings:
287
+ - Add FOCUS for the pattern that worked (to constraints.json)
288
+ - Add REDIRECT for the anti-pattern that caused the bug (to constraints.json)
289
+
290
+ Set solution in swarm findings:
291
+ ```bash
292
+ bash .aether/aether-utils.sh swarm-solution-set "{swarm_id}" '{solution_json}'
293
+ ```
294
+
295
+ Log success:
296
+ ```bash
297
+ bash .aether/aether-utils.sh activity-log "SWARM_SUCCESS" "Queen" "Swarm {swarm_id} fixed: {brief description}"
298
+ ```
299
+
300
+ **If verification fails:**
301
+ ```
302
+ ❌ FIX VERIFICATION FAILED
303
+
304
+ Build: {status}
305
+ Tests: {status}
306
+
307
+ Attempting rollback...
308
+ ```
309
+
310
+ Rollback:
311
+ ```bash
312
+ bash .aether/aether-utils.sh autofix-rollback "{checkpoint_type}" "{checkpoint_ref}"
313
+ ```
314
+
315
+ Log failure:
316
+ ```bash
317
+ bash .aether/aether-utils.sh activity-log "SWARM_FAILED" "Queen" "Swarm {swarm_id} fix failed verification"
318
+ ```
319
+
320
+ Track attempt count. If this is the 3rd failure on the same issue:
321
+ ```
322
+ ⚠️ ARCHITECTURAL CONCERN
323
+
324
+ This problem has resisted 3 swarm attempts.
325
+
326
+ This suggests:
327
+ - Root cause may be architectural, not implementational
328
+ - Pattern may be fundamentally unsound
329
+ - Different approach needed
330
+
331
+ Recommended:
332
+ - Review the codebase architecture
333
+ - Consider refactoring vs. patching
334
+ - Create a new phase for structural fix
335
+
336
+ Swarm will not attempt further fixes on this issue.
337
+ ```
338
+
339
+ #### Step 10: Cleanup
340
+
341
+ Clear swarm display:
342
+ ```bash
343
+ bash .aether/aether-utils.sh swarm-display-init "complete-{swarm_id}"
344
+ ```
345
+
346
+ Archive swarm findings:
347
+ ```bash
348
+ bash .aether/aether-utils.sh swarm-cleanup "{swarm_id}" --archive
349
+ ```
350
+
351
+ Display next steps:
352
+ ```
353
+ 🐜 Next steps:
354
+ /ant:continue ⏭️ Verify and advance phase
355
+ /ant:status 📊 View colony status
356
+ /ant:flags 🚩 Check remaining blockers
357
+ ```