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.
- package/.aether/CONTEXT.md +160 -0
- package/.aether/QUEEN.md +84 -0
- package/.aether/aether-utils.sh +7749 -0
- package/.aether/docs/QUEEN-SYSTEM.md +211 -0
- package/.aether/docs/README.md +68 -0
- package/.aether/docs/caste-system.md +48 -0
- package/.aether/docs/disciplines/DISCIPLINES.md +93 -0
- package/.aether/docs/disciplines/coding-standards.md +197 -0
- package/.aether/docs/disciplines/debugging.md +207 -0
- package/.aether/docs/disciplines/learning.md +254 -0
- package/.aether/docs/disciplines/tdd.md +257 -0
- package/.aether/docs/disciplines/verification-loop.md +167 -0
- package/.aether/docs/disciplines/verification.md +116 -0
- package/.aether/docs/error-codes.md +268 -0
- package/.aether/docs/known-issues.md +233 -0
- package/.aether/docs/pheromones.md +205 -0
- package/.aether/docs/queen-commands.md +97 -0
- package/.aether/exchange/colony-registry.xml +11 -0
- package/.aether/exchange/pheromone-xml.sh +575 -0
- package/.aether/exchange/pheromones.xml +87 -0
- package/.aether/exchange/queen-wisdom.xml +14 -0
- package/.aether/exchange/registry-xml.sh +273 -0
- package/.aether/exchange/wisdom-xml.sh +319 -0
- package/.aether/midden/approach-changes.md +5 -0
- package/.aether/midden/build-failures.md +5 -0
- package/.aether/midden/test-failures.md +5 -0
- package/.aether/model-profiles.yaml +100 -0
- package/.aether/rules/aether-colony.md +134 -0
- package/.aether/schemas/aether-types.xsd +255 -0
- package/.aether/schemas/colony-registry.xsd +309 -0
- package/.aether/schemas/example-prompt-builder.xml +234 -0
- package/.aether/schemas/pheromone.xsd +163 -0
- package/.aether/schemas/prompt.xsd +416 -0
- package/.aether/schemas/queen-wisdom.xsd +325 -0
- package/.aether/schemas/worker-priming.xsd +276 -0
- package/.aether/templates/QUEEN.md.template +79 -0
- package/.aether/templates/colony-state-reset.jq.template +22 -0
- package/.aether/templates/colony-state.template.json +35 -0
- package/.aether/templates/constraints.template.json +9 -0
- package/.aether/templates/crowned-anthill.template.md +36 -0
- package/.aether/templates/handoff-build-error.template.md +30 -0
- package/.aether/templates/handoff-build-success.template.md +39 -0
- package/.aether/templates/handoff.template.md +40 -0
- package/.aether/templates/learning-observations.template.json +6 -0
- package/.aether/templates/midden.template.json +7 -0
- package/.aether/templates/pheromones.template.json +6 -0
- package/.aether/templates/session.template.json +9 -0
- package/.aether/utils/atomic-write.sh +219 -0
- package/.aether/utils/chamber-compare.sh +193 -0
- package/.aether/utils/chamber-utils.sh +297 -0
- package/.aether/utils/colorize-log.sh +132 -0
- package/.aether/utils/error-handler.sh +212 -0
- package/.aether/utils/file-lock.sh +158 -0
- package/.aether/utils/queen-to-md.xsl +395 -0
- package/.aether/utils/semantic-cli.sh +413 -0
- package/.aether/utils/spawn-tree.sh +428 -0
- package/.aether/utils/spawn-with-model.sh +56 -0
- package/.aether/utils/state-loader.sh +215 -0
- package/.aether/utils/swarm-display.sh +268 -0
- package/.aether/utils/watch-spawn-tree.sh +253 -0
- package/.aether/utils/xml-compose.sh +253 -0
- package/.aether/utils/xml-convert.sh +273 -0
- package/.aether/utils/xml-core.sh +186 -0
- package/.aether/utils/xml-query.sh +201 -0
- package/.aether/utils/xml-utils.sh +110 -0
- package/.aether/workers.md +765 -0
- package/.claude/agents/ant/aether-ambassador.md +264 -0
- package/.claude/agents/ant/aether-archaeologist.md +322 -0
- package/.claude/agents/ant/aether-auditor.md +266 -0
- package/.claude/agents/ant/aether-builder.md +187 -0
- package/.claude/agents/ant/aether-chaos.md +268 -0
- package/.claude/agents/ant/aether-chronicler.md +304 -0
- package/.claude/agents/ant/aether-gatekeeper.md +325 -0
- package/.claude/agents/ant/aether-includer.md +373 -0
- package/.claude/agents/ant/aether-keeper.md +271 -0
- package/.claude/agents/ant/aether-measurer.md +317 -0
- package/.claude/agents/ant/aether-probe.md +210 -0
- package/.claude/agents/ant/aether-queen.md +325 -0
- package/.claude/agents/ant/aether-route-setter.md +173 -0
- package/.claude/agents/ant/aether-sage.md +353 -0
- package/.claude/agents/ant/aether-scout.md +142 -0
- package/.claude/agents/ant/aether-surveyor-disciplines.md +416 -0
- package/.claude/agents/ant/aether-surveyor-nest.md +354 -0
- package/.claude/agents/ant/aether-surveyor-pathogens.md +288 -0
- package/.claude/agents/ant/aether-surveyor-provisions.md +359 -0
- package/.claude/agents/ant/aether-tracker.md +265 -0
- package/.claude/agents/ant/aether-watcher.md +244 -0
- package/.claude/agents/ant/aether-weaver.md +247 -0
- package/.claude/commands/ant/archaeology.md +341 -0
- package/.claude/commands/ant/build.md +1160 -0
- package/.claude/commands/ant/chaos.md +349 -0
- package/.claude/commands/ant/colonize.md +270 -0
- package/.claude/commands/ant/continue.md +1070 -0
- package/.claude/commands/ant/council.md +309 -0
- package/.claude/commands/ant/dream.md +265 -0
- package/.claude/commands/ant/entomb.md +487 -0
- package/.claude/commands/ant/feedback.md +78 -0
- package/.claude/commands/ant/flag.md +139 -0
- package/.claude/commands/ant/flags.md +155 -0
- package/.claude/commands/ant/focus.md +58 -0
- package/.claude/commands/ant/help.md +122 -0
- package/.claude/commands/ant/history.md +137 -0
- package/.claude/commands/ant/init.md +409 -0
- package/.claude/commands/ant/interpret.md +267 -0
- package/.claude/commands/ant/lay-eggs.md +201 -0
- package/.claude/commands/ant/maturity.md +102 -0
- package/.claude/commands/ant/memory-details.md +77 -0
- package/.claude/commands/ant/migrate-state.md +165 -0
- package/.claude/commands/ant/oracle.md +387 -0
- package/.claude/commands/ant/organize.md +227 -0
- package/.claude/commands/ant/pause-colony.md +247 -0
- package/.claude/commands/ant/phase.md +126 -0
- package/.claude/commands/ant/plan.md +544 -0
- package/.claude/commands/ant/redirect.md +58 -0
- package/.claude/commands/ant/resume-colony.md +182 -0
- package/.claude/commands/ant/resume.md +363 -0
- package/.claude/commands/ant/seal.md +306 -0
- package/.claude/commands/ant/status.md +272 -0
- package/.claude/commands/ant/swarm.md +361 -0
- package/.claude/commands/ant/tunnels.md +425 -0
- package/.claude/commands/ant/update.md +209 -0
- package/.claude/commands/ant/verify-castes.md +95 -0
- package/.claude/commands/ant/watch.md +238 -0
- package/.opencode/agents/aether-ambassador.md +140 -0
- package/.opencode/agents/aether-archaeologist.md +108 -0
- package/.opencode/agents/aether-auditor.md +144 -0
- package/.opencode/agents/aether-builder.md +184 -0
- package/.opencode/agents/aether-chaos.md +115 -0
- package/.opencode/agents/aether-chronicler.md +122 -0
- package/.opencode/agents/aether-gatekeeper.md +116 -0
- package/.opencode/agents/aether-includer.md +117 -0
- package/.opencode/agents/aether-keeper.md +177 -0
- package/.opencode/agents/aether-measurer.md +128 -0
- package/.opencode/agents/aether-probe.md +133 -0
- package/.opencode/agents/aether-queen.md +286 -0
- package/.opencode/agents/aether-route-setter.md +130 -0
- package/.opencode/agents/aether-sage.md +106 -0
- package/.opencode/agents/aether-scout.md +101 -0
- package/.opencode/agents/aether-surveyor-disciplines.md +386 -0
- package/.opencode/agents/aether-surveyor-nest.md +324 -0
- package/.opencode/agents/aether-surveyor-pathogens.md +259 -0
- package/.opencode/agents/aether-surveyor-provisions.md +329 -0
- package/.opencode/agents/aether-tracker.md +137 -0
- package/.opencode/agents/aether-watcher.md +174 -0
- package/.opencode/agents/aether-weaver.md +130 -0
- package/.opencode/commands/ant/archaeology.md +338 -0
- package/.opencode/commands/ant/build.md +1200 -0
- package/.opencode/commands/ant/chaos.md +346 -0
- package/.opencode/commands/ant/colonize.md +202 -0
- package/.opencode/commands/ant/continue.md +938 -0
- package/.opencode/commands/ant/council.md +305 -0
- package/.opencode/commands/ant/dream.md +262 -0
- package/.opencode/commands/ant/entomb.md +367 -0
- package/.opencode/commands/ant/feedback.md +80 -0
- package/.opencode/commands/ant/flag.md +137 -0
- package/.opencode/commands/ant/flags.md +153 -0
- package/.opencode/commands/ant/focus.md +56 -0
- package/.opencode/commands/ant/help.md +124 -0
- package/.opencode/commands/ant/history.md +127 -0
- package/.opencode/commands/ant/init.md +337 -0
- package/.opencode/commands/ant/interpret.md +256 -0
- package/.opencode/commands/ant/lay-eggs.md +141 -0
- package/.opencode/commands/ant/maturity.md +92 -0
- package/.opencode/commands/ant/memory-details.md +77 -0
- package/.opencode/commands/ant/migrate-state.md +153 -0
- package/.opencode/commands/ant/oracle.md +338 -0
- package/.opencode/commands/ant/organize.md +224 -0
- package/.opencode/commands/ant/pause-colony.md +220 -0
- package/.opencode/commands/ant/phase.md +123 -0
- package/.opencode/commands/ant/plan.md +531 -0
- package/.opencode/commands/ant/redirect.md +67 -0
- package/.opencode/commands/ant/resume-colony.md +178 -0
- package/.opencode/commands/ant/resume.md +363 -0
- package/.opencode/commands/ant/seal.md +247 -0
- package/.opencode/commands/ant/status.md +272 -0
- package/.opencode/commands/ant/swarm.md +357 -0
- package/.opencode/commands/ant/tunnels.md +406 -0
- package/.opencode/commands/ant/update.md +191 -0
- package/.opencode/commands/ant/verify-castes.md +85 -0
- package/.opencode/commands/ant/watch.md +220 -0
- package/.opencode/opencode.json +3 -0
- package/CHANGELOG.md +325 -0
- package/DISCLAIMER.md +74 -0
- package/LICENSE +21 -0
- package/README.md +258 -0
- package/bin/cli.js +2436 -0
- package/bin/generate-commands.sh +291 -0
- package/bin/lib/caste-colors.js +57 -0
- package/bin/lib/colors.js +76 -0
- package/bin/lib/errors.js +255 -0
- package/bin/lib/event-types.js +190 -0
- package/bin/lib/file-lock.js +695 -0
- package/bin/lib/init.js +454 -0
- package/bin/lib/logger.js +242 -0
- package/bin/lib/model-profiles.js +445 -0
- package/bin/lib/model-verify.js +288 -0
- package/bin/lib/nestmate-loader.js +130 -0
- package/bin/lib/proxy-health.js +253 -0
- package/bin/lib/spawn-logger.js +266 -0
- package/bin/lib/state-guard.js +602 -0
- package/bin/lib/state-sync.js +516 -0
- package/bin/lib/telemetry.js +441 -0
- package/bin/lib/update-transaction.js +1454 -0
- package/bin/npx-install.js +178 -0
- package/bin/sync-to-runtime.sh +6 -0
- package/bin/validate-package.sh +88 -0
- package/package.json +70 -0
|
@@ -0,0 +1,361 @@
|
|
|
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
|
+
### Quick View Mode (No Arguments)
|
|
11
|
+
|
|
12
|
+
If `$ARGUMENTS` is empty or equals "--watch":
|
|
13
|
+
|
|
14
|
+
Run the real-time swarm display:
|
|
15
|
+
```bash
|
|
16
|
+
bash .aether/utils/swarm-display.sh
|
|
17
|
+
```
|
|
18
|
+
|
|
19
|
+
This shows:
|
|
20
|
+
- Active ants with caste colors and emojis (🔨🐜 Builder in blue, etc.)
|
|
21
|
+
- Tool usage stats per ant (📖5 🔍3 ✏️2 ⚡1)
|
|
22
|
+
- Trophallaxis metrics (🍯 token consumption)
|
|
23
|
+
- Timing information (elapsed time per ant)
|
|
24
|
+
- Chamber activity map (which nest zones have active ants)
|
|
25
|
+
- Animated status phrases ("excavating...", "foraging...")
|
|
26
|
+
|
|
27
|
+
Display updates automatically as ants start/complete work.
|
|
28
|
+
Press Ctrl+C to exit.
|
|
29
|
+
|
|
30
|
+
### Bug Destruction Mode (With Arguments)
|
|
31
|
+
|
|
32
|
+
The problem to investigate is: `$ARGUMENTS`
|
|
33
|
+
|
|
34
|
+
#### Step 1: Validate Input
|
|
35
|
+
|
|
36
|
+
If `$ARGUMENTS` is empty:
|
|
37
|
+
```
|
|
38
|
+
🔥🐜🗡️🐜🔥 SWARM
|
|
39
|
+
|
|
40
|
+
Deploy parallel scouts to investigate and fix stubborn bugs.
|
|
41
|
+
|
|
42
|
+
Usage: /ant:swarm "<describe the problem>"
|
|
43
|
+
|
|
44
|
+
Examples:
|
|
45
|
+
/ant:swarm "Tests keep failing in auth module"
|
|
46
|
+
/ant:swarm "TypeError: Cannot read property 'id' of undefined"
|
|
47
|
+
/ant:swarm "API returns 500 but I can't find the cause"
|
|
48
|
+
|
|
49
|
+
This is the nuclear option - use when repeated fix attempts fail.
|
|
50
|
+
```
|
|
51
|
+
Stop here.
|
|
52
|
+
|
|
53
|
+
#### Step 2: Read State & Initialize
|
|
54
|
+
|
|
55
|
+
Read `.aether/data/COLONY_STATE.json`.
|
|
56
|
+
If `goal` is null → "No colony initialized. Run /ant:init first.", stop.
|
|
57
|
+
|
|
58
|
+
Generate swarm ID: `swarm-<unix_timestamp>`
|
|
59
|
+
|
|
60
|
+
Initialize swarm findings:
|
|
61
|
+
```bash
|
|
62
|
+
bash .aether/aether-utils.sh swarm-findings-init "<swarm_id>"
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
Initialize swarm display for real-time tracking:
|
|
66
|
+
```bash
|
|
67
|
+
bash .aether/aether-utils.sh swarm-display-init "<swarm_id>"
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
#### Step 2.5: Check for Stale Swarm Session
|
|
71
|
+
|
|
72
|
+
Capture session start time:
|
|
73
|
+
```bash
|
|
74
|
+
SWARM_START=$(date +%s)
|
|
75
|
+
```
|
|
76
|
+
|
|
77
|
+
Check for stale swarm files:
|
|
78
|
+
```bash
|
|
79
|
+
stale_check=$(bash .aether/aether-utils.sh session-verify-fresh --command swarm "" "$SWARM_START")
|
|
80
|
+
has_stale=$(echo "$stale_check" | jq -r '.stale | length')
|
|
81
|
+
|
|
82
|
+
if [[ "$has_stale" -gt 0 ]]; then
|
|
83
|
+
# Auto-clear stale swarm findings (safe - findings are temporary)
|
|
84
|
+
bash .aether/aether-utils.sh session-clear --command swarm
|
|
85
|
+
echo "Cleared stale swarm findings for fresh investigation"
|
|
86
|
+
fi
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
After initializing findings, verify swarm files are fresh:
|
|
90
|
+
```bash
|
|
91
|
+
verify_result=$(bash .aether/aether-utils.sh session-verify-fresh --command swarm "" "$SWARM_START")
|
|
92
|
+
if [[ $(echo "$verify_result" | jq -r '.missing | length') -gt 0 ]]; then
|
|
93
|
+
echo "Warning: Swarm files not properly initialized"
|
|
94
|
+
fi
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Display header:
|
|
98
|
+
```
|
|
99
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
100
|
+
🔥🐜🗡️🐜🔥 S W A R M D E P L O Y E D
|
|
101
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
102
|
+
|
|
103
|
+
🎯 Target: "{problem description}"
|
|
104
|
+
📍 Swarm ID: {swarm_id}
|
|
105
|
+
|
|
106
|
+
⚡ Deploying 4 parallel scouts...
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
#### Step 3: Create Git Checkpoint
|
|
110
|
+
|
|
111
|
+
Before any investigation that might lead to fixes, run using the Bash tool:
|
|
112
|
+
```bash
|
|
113
|
+
bash .aether/aether-utils.sh autofix-checkpoint "pre-swarm-$SWARM_ID"
|
|
114
|
+
```
|
|
115
|
+
|
|
116
|
+
Store the result for potential rollback:
|
|
117
|
+
- `checkpoint_type` = result.type ("stash", "commit", or "none")
|
|
118
|
+
- `checkpoint_ref` = result.ref
|
|
119
|
+
|
|
120
|
+
```
|
|
121
|
+
💾 Checkpoint: {checkpoint_type} → {checkpoint_ref}
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
#### Step 4: Read Context
|
|
125
|
+
|
|
126
|
+
Read existing blockers for context:
|
|
127
|
+
```bash
|
|
128
|
+
bash .aether/aether-utils.sh flag-list --type blocker
|
|
129
|
+
```
|
|
130
|
+
|
|
131
|
+
Read recent activity:
|
|
132
|
+
```bash
|
|
133
|
+
tail -50 .aether/data/activity.log 2>/dev/null || echo "(no activity log)"
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
Scan recent git commits for context:
|
|
137
|
+
```bash
|
|
138
|
+
git log --oneline -20 2>/dev/null || echo "(no git history)"
|
|
139
|
+
```
|
|
140
|
+
|
|
141
|
+
#### Step 5: Deploy 4 Parallel Scouts
|
|
142
|
+
|
|
143
|
+
Use the **Task** tool to spawn 4 scouts **in a single message** (parallel execution):
|
|
144
|
+
|
|
145
|
+
Log each scout to swarm display before spawning (consolidated):
|
|
146
|
+
```bash
|
|
147
|
+
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 && 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 && 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 && 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
|
|
148
|
+
```
|
|
149
|
+
|
|
150
|
+
**Scout 1: 🏛️ Git Archaeologist** (use Task tool with `subagent_type="aether-archaeologist"`)
|
|
151
|
+
# FALLBACK: If "Agent type not found", use general-purpose and inject role: "You are an Archaeologist Ant - git historian that excavates why code exists."
|
|
152
|
+
```
|
|
153
|
+
You are {swarm_id}-Archaeologist, a 🏛️🐜 Archaeologist Ant.
|
|
154
|
+
|
|
155
|
+
Investigate git history for: {problem description}
|
|
156
|
+
|
|
157
|
+
Steps:
|
|
158
|
+
1. Run `git log --oneline -30`
|
|
159
|
+
2. Run `git log -p --since="1 week ago" -- {relevant files}`
|
|
160
|
+
3. Run `git blame {suspected file}` if mentioned
|
|
161
|
+
4. Find commits that introduced the bug
|
|
162
|
+
|
|
163
|
+
Return ONLY this JSON:
|
|
164
|
+
{"scout": "git-archaeologist", "confidence": 0.0-1.0, "finding": {"likely_cause": "...", "relevant_commits": [], "when_it_broke": "...", "evidence": []}, "suggested_fix": "..."}
|
|
165
|
+
```
|
|
166
|
+
|
|
167
|
+
**Scout 2: 🔍 Pattern Hunter** (use Task tool with `subagent_type="aether-scout"`)
|
|
168
|
+
```
|
|
169
|
+
You are {swarm_id}-PatternHunter, a 🔍🐜 Scout Ant.
|
|
170
|
+
|
|
171
|
+
Find working patterns for: {problem description}
|
|
172
|
+
|
|
173
|
+
Steps:
|
|
174
|
+
1. Grep/glob for related working code
|
|
175
|
+
2. Find how other parts handle this
|
|
176
|
+
3. Look for test files showing correct usage
|
|
177
|
+
4. Identify applicable patterns
|
|
178
|
+
|
|
179
|
+
Return ONLY this JSON:
|
|
180
|
+
{"scout": "pattern-hunter", "confidence": 0.0-1.0, "finding": {"working_examples": [], "applicable_patterns": [], "differences": "..."}, "suggested_fix": "..."}
|
|
181
|
+
```
|
|
182
|
+
|
|
183
|
+
**Scout 3: 💥 Error Analyst** (use Task tool with `subagent_type="aether-tracker"`)
|
|
184
|
+
```
|
|
185
|
+
You are {swarm_id}-ErrorAnalyst, a 🔍🐜 Tracker Ant.
|
|
186
|
+
|
|
187
|
+
Analyze error: {problem description}
|
|
188
|
+
|
|
189
|
+
Steps:
|
|
190
|
+
1. Trace through stack trace frames
|
|
191
|
+
2. Identify actual failing line vs surface error
|
|
192
|
+
3. Check for null refs, async issues, type mismatches
|
|
193
|
+
4. Look for error handling masking the issue
|
|
194
|
+
|
|
195
|
+
Return ONLY this JSON:
|
|
196
|
+
{"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": "..."}
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
**Scout 4: 🌐 Web Researcher** (use Task tool with `subagent_type="aether-scout"`)
|
|
200
|
+
```
|
|
201
|
+
You are {swarm_id}-WebResearcher, a 🔍🐜 Scout Ant.
|
|
202
|
+
|
|
203
|
+
Research external solutions for: {problem description}
|
|
204
|
+
|
|
205
|
+
Steps:
|
|
206
|
+
1. Search for exact error message
|
|
207
|
+
2. Find library/framework docs
|
|
208
|
+
3. Check GitHub issues
|
|
209
|
+
4. Find Stack Overflow answers
|
|
210
|
+
|
|
211
|
+
Return ONLY this JSON:
|
|
212
|
+
{"scout": "web-researcher", "confidence": 0.0-1.0, "finding": {"known_issue": true/false, "documentation_link": "...", "similar_issues": [], "community_solutions": []}, "suggested_fix": "..."}
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
Wait for all 4 scouts to complete.
|
|
216
|
+
|
|
217
|
+
#### Step 6: Collect and Cross-Compare Findings
|
|
218
|
+
|
|
219
|
+
As each scout returns, add their findings and update display (consolidated):
|
|
220
|
+
```bash
|
|
221
|
+
bash .aether/aether-utils.sh swarm-findings-add "{swarm_id}" "{scout_type}" "{confidence}" '{finding_json}' && 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
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
Display each scout's report as they complete:
|
|
225
|
+
```
|
|
226
|
+
🏛️ Archaeologist [{confidence}]
|
|
227
|
+
{summary of finding}
|
|
228
|
+
|
|
229
|
+
🔍 PatternHunter [{confidence}]
|
|
230
|
+
{summary of finding}
|
|
231
|
+
|
|
232
|
+
💥 ErrorAnalyst [{confidence}]
|
|
233
|
+
{summary of finding}
|
|
234
|
+
|
|
235
|
+
🌐 WebResearcher [{confidence}]
|
|
236
|
+
{summary of finding}
|
|
237
|
+
```
|
|
238
|
+
|
|
239
|
+
Display colony activity summary:
|
|
240
|
+
```bash
|
|
241
|
+
bash .aether/aether-utils.sh swarm-display-text "$SWARM_ID"
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
#### Step 7: Synthesize Solution
|
|
245
|
+
|
|
246
|
+
Cross-compare all findings:
|
|
247
|
+
1. Identify where scouts agree (high confidence)
|
|
248
|
+
2. Note where scouts disagree (investigate further)
|
|
249
|
+
3. Weight by confidence scores
|
|
250
|
+
4. Prefer findings with concrete evidence
|
|
251
|
+
|
|
252
|
+
Rank fix options:
|
|
253
|
+
```
|
|
254
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
255
|
+
S O L U T I O N R A N K I N G
|
|
256
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
257
|
+
|
|
258
|
+
#1 [0.85 confidence] {best solution}
|
|
259
|
+
Evidence: {supporting scouts}
|
|
260
|
+
|
|
261
|
+
#2 [0.72 confidence] {alternative}
|
|
262
|
+
Evidence: {supporting scouts}
|
|
263
|
+
|
|
264
|
+
#3 [0.45 confidence] {fallback}
|
|
265
|
+
Evidence: {limited support}
|
|
266
|
+
```
|
|
267
|
+
|
|
268
|
+
#### Step 8: Apply Best Fix
|
|
269
|
+
|
|
270
|
+
Select the highest-confidence solution and apply it:
|
|
271
|
+
|
|
272
|
+
**Command Resolution:** Before running verification, resolve `{build_command}` and `{test_command}` using this priority chain (stop at first match per command):
|
|
273
|
+
1. **CLAUDE.md** — Check project CLAUDE.md (in your system context) for explicit build/test commands
|
|
274
|
+
2. **CODEBASE.md** — Read `.aether/data/codebase.md` `## Commands` section
|
|
275
|
+
3. **Fallback** — Use project manifest heuristics (e.g., `npm run build`/`npm test` for package.json)
|
|
276
|
+
|
|
277
|
+
```
|
|
278
|
+
🔧 Applying Fix #1...
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
Make the actual code changes using Edit/Write tools.
|
|
282
|
+
|
|
283
|
+
After applying:
|
|
284
|
+
```bash
|
|
285
|
+
# Run verification
|
|
286
|
+
{build_command} 2>&1 | tail -30
|
|
287
|
+
{test_command} 2>&1 | tail -50
|
|
288
|
+
```
|
|
289
|
+
|
|
290
|
+
#### Step 9: Verify and Report
|
|
291
|
+
|
|
292
|
+
**If verification passes:**
|
|
293
|
+
```
|
|
294
|
+
✅ FIX VERIFIED
|
|
295
|
+
|
|
296
|
+
Build: PASS
|
|
297
|
+
Tests: PASS
|
|
298
|
+
|
|
299
|
+
🔥🐜🗡️🐜🔥 Swarm successful!
|
|
300
|
+
|
|
301
|
+
The fix will be confirmed when you run:
|
|
302
|
+
/ant:continue
|
|
303
|
+
```
|
|
304
|
+
|
|
305
|
+
Inject learnings:
|
|
306
|
+
- Add FOCUS for the pattern that worked (to constraints.json)
|
|
307
|
+
- Add REDIRECT for the anti-pattern that caused the bug (to constraints.json)
|
|
308
|
+
|
|
309
|
+
Set solution in swarm findings and log success (consolidated):
|
|
310
|
+
```bash
|
|
311
|
+
bash .aether/aether-utils.sh swarm-solution-set "{swarm_id}" '{solution_json}' && bash .aether/aether-utils.sh activity-log "SWARM_SUCCESS" "Queen" "Swarm {swarm_id} fixed: {brief description}"
|
|
312
|
+
```
|
|
313
|
+
|
|
314
|
+
**If verification fails:**
|
|
315
|
+
```
|
|
316
|
+
❌ FIX VERIFICATION FAILED
|
|
317
|
+
|
|
318
|
+
Build: {status}
|
|
319
|
+
Tests: {status}
|
|
320
|
+
|
|
321
|
+
Attempting rollback...
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
Rollback and log failure (consolidated):
|
|
325
|
+
```bash
|
|
326
|
+
bash .aether/aether-utils.sh autofix-rollback "{checkpoint_type}" "{checkpoint_ref}" ; bash .aether/aether-utils.sh activity-log "SWARM_FAILED" "Queen" "Swarm {swarm_id} fix failed verification"
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
Track attempt count. If this is the 3rd failure on the same issue:
|
|
330
|
+
```
|
|
331
|
+
⚠️ ARCHITECTURAL CONCERN
|
|
332
|
+
|
|
333
|
+
This problem has resisted 3 swarm attempts.
|
|
334
|
+
|
|
335
|
+
This suggests:
|
|
336
|
+
- Root cause may be architectural, not implementational
|
|
337
|
+
- Pattern may be fundamentally unsound
|
|
338
|
+
- Different approach needed
|
|
339
|
+
|
|
340
|
+
Recommended:
|
|
341
|
+
- Review the codebase architecture
|
|
342
|
+
- Consider refactoring vs. patching
|
|
343
|
+
- Create a new phase for structural fix
|
|
344
|
+
|
|
345
|
+
Swarm will not attempt further fixes on this issue.
|
|
346
|
+
```
|
|
347
|
+
|
|
348
|
+
#### Step 10: Cleanup
|
|
349
|
+
|
|
350
|
+
Clear swarm display and archive findings (consolidated):
|
|
351
|
+
```bash
|
|
352
|
+
bash .aether/aether-utils.sh swarm-display-init "complete-{swarm_id}" && bash .aether/aether-utils.sh swarm-cleanup "{swarm_id}" --archive
|
|
353
|
+
```
|
|
354
|
+
|
|
355
|
+
Generate the state-based Next Up block:
|
|
356
|
+
```bash
|
|
357
|
+
state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
|
|
358
|
+
current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
|
|
359
|
+
total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
|
|
360
|
+
bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_phases"
|
|
361
|
+
```
|