aether-colony 3.1.17 → 5.0.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/{runtime → .aether}/CONTEXT.md +1 -1
- package/{runtime → .aether}/aether-utils.sh +1772 -98
- package/.aether/docs/QUEEN-SYSTEM.md +211 -0
- package/.aether/docs/QUEEN.md +84 -0
- package/.aether/docs/README.md +68 -0
- package/.aether/docs/caste-system.md +48 -0
- package/{runtime → .aether/docs/disciplines}/DISCIPLINES.md +8 -8
- package/.aether/docs/error-codes.md +268 -0
- package/{runtime → .aether}/docs/known-issues.md +42 -26
- package/.aether/docs/queen-commands.md +97 -0
- package/.aether/exchange/colony-registry.xml +11 -0
- package/{runtime → .aether}/exchange/pheromone-xml.sh +2 -1
- package/.aether/exchange/pheromones.xml +87 -0
- package/.aether/exchange/queen-wisdom.xml +14 -0
- package/{runtime → .aether}/exchange/registry-xml.sh +7 -3
- package/{runtime → .aether}/exchange/wisdom-xml.sh +11 -4
- package/.aether/rules/aether-colony.md +134 -0
- package/.aether/schemas/example-prompt-builder.xml +234 -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/{runtime → .aether}/utils/atomic-write.sh +5 -5
- package/{runtime → .aether}/utils/chamber-compare.sh +23 -10
- package/{runtime → .aether}/utils/chamber-utils.sh +32 -20
- package/{runtime → .aether}/utils/error-handler.sh +13 -1
- package/{runtime → .aether}/utils/file-lock.sh +49 -13
- package/.aether/utils/semantic-cli.sh +413 -0
- package/{runtime → .aether}/utils/xml-compose.sh +7 -1
- package/.aether/utils/xml-convert.sh +273 -0
- package/.aether/utils/xml-query.sh +201 -0
- package/.aether/utils/xml-utils.sh +110 -0
- package/{runtime → .aether}/workers.md +14 -17
- 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 +16 -7
- package/.claude/commands/ant/build.md +415 -284
- package/.claude/commands/ant/chaos.md +19 -10
- package/.claude/commands/ant/colonize.md +58 -24
- package/.claude/commands/ant/continue.md +155 -145
- package/.claude/commands/ant/council.md +15 -5
- package/.claude/commands/ant/dream.md +16 -7
- package/.claude/commands/ant/entomb.md +274 -157
- package/.claude/commands/ant/feedback.md +33 -29
- package/.claude/commands/ant/flag.md +18 -10
- package/.claude/commands/ant/flags.md +14 -6
- package/.claude/commands/ant/focus.md +29 -21
- package/.claude/commands/ant/help.md +11 -1
- package/.claude/commands/ant/history.md +10 -0
- package/.claude/commands/ant/init.md +91 -65
- package/.claude/commands/ant/interpret.md +15 -4
- package/.claude/commands/ant/lay-eggs.md +55 -7
- package/.claude/commands/ant/maturity.md +11 -1
- package/.claude/commands/ant/migrate-state.md +14 -2
- package/.claude/commands/ant/oracle.md +23 -15
- package/.claude/commands/ant/organize.md +29 -20
- package/.claude/commands/ant/pause-colony.md +17 -7
- package/.claude/commands/ant/phase.md +17 -8
- package/.claude/commands/ant/plan.md +20 -9
- package/.claude/commands/ant/redirect.md +29 -32
- package/.claude/commands/ant/resume-colony.md +19 -9
- package/.claude/commands/ant/resume.md +272 -96
- package/.claude/commands/ant/seal.md +201 -191
- package/.claude/commands/ant/status.md +71 -32
- package/.claude/commands/ant/swarm.md +26 -44
- package/.claude/commands/ant/tunnels.md +279 -105
- package/.claude/commands/ant/update.md +81 -20
- package/.claude/commands/ant/verify-castes.md +14 -4
- package/.claude/commands/ant/watch.md +13 -12
- package/.opencode/agents/aether-ambassador.md +63 -20
- package/.opencode/agents/aether-archaeologist.md +29 -12
- package/.opencode/agents/aether-auditor.md +51 -18
- package/.opencode/agents/aether-builder.md +69 -19
- package/.opencode/agents/aether-chaos.md +29 -12
- package/.opencode/agents/aether-chronicler.md +60 -18
- package/.opencode/agents/aether-gatekeeper.md +27 -18
- package/.opencode/agents/aether-includer.md +27 -18
- package/.opencode/agents/aether-keeper.md +89 -18
- package/.opencode/agents/aether-measurer.md +27 -18
- package/.opencode/agents/aether-probe.md +60 -18
- package/.opencode/agents/aether-queen.md +172 -24
- package/.opencode/agents/aether-route-setter.md +57 -12
- package/.opencode/agents/aether-sage.md +26 -18
- package/.opencode/agents/aether-scout.md +27 -19
- package/.opencode/agents/aether-surveyor-disciplines.md +53 -1
- package/.opencode/agents/aether-surveyor-nest.md +53 -1
- package/.opencode/agents/aether-surveyor-pathogens.md +51 -1
- package/.opencode/agents/aether-surveyor-provisions.md +53 -1
- package/.opencode/agents/aether-tracker.md +64 -18
- package/.opencode/agents/aether-watcher.md +66 -19
- package/.opencode/agents/aether-weaver.md +61 -18
- package/.opencode/commands/ant/build.md +406 -192
- package/.opencode/commands/ant/continue.md +66 -76
- package/.opencode/commands/ant/entomb.md +106 -45
- package/.opencode/commands/ant/init.md +46 -48
- package/.opencode/commands/ant/organize.md +5 -5
- package/.opencode/commands/ant/resume.md +334 -0
- package/.opencode/commands/ant/seal.md +33 -24
- package/.opencode/commands/ant/status.md +11 -0
- package/.opencode/commands/ant/tunnels.md +149 -0
- package/.opencode/commands/ant/update.md +59 -16
- package/CHANGELOG.md +79 -0
- package/README.md +135 -353
- package/bin/cli.js +243 -122
- package/bin/generate-commands.sh +2 -2
- package/bin/lib/init.js +13 -3
- package/bin/lib/update-transaction.js +119 -117
- package/bin/sync-to-runtime.sh +5 -137
- package/bin/validate-package.sh +84 -0
- package/package.json +9 -6
- package/.opencode/agents/aether-architect.md +0 -66
- package/.opencode/agents/aether-guardian.md +0 -107
- package/.opencode/agents/workers.md +0 -1034
- package/runtime/QUEEN_ANT_ARCHITECTURE.md +0 -402
- package/runtime/data/signatures.json +0 -41
- package/runtime/docs/AETHER-2.0-IMPLEMENTATION-PLAN.md +0 -1343
- package/runtime/docs/AETHER-PHEROMONE-SYSTEM-MASTER-SPEC.md +0 -2642
- package/runtime/docs/PHEROMONE-INJECTION.md +0 -240
- package/runtime/docs/PHEROMONE-INTEGRATION.md +0 -192
- package/runtime/docs/PHEROMONE-SYSTEM-DESIGN.md +0 -426
- package/runtime/docs/README.md +0 -94
- package/runtime/docs/VISUAL-OUTPUT-SPEC.md +0 -219
- package/runtime/docs/biological-reference.md +0 -272
- package/runtime/docs/codebase-review.md +0 -399
- package/runtime/docs/command-sync.md +0 -164
- package/runtime/docs/constraints.md +0 -116
- package/runtime/docs/implementation-learnings.md +0 -89
- package/runtime/docs/namespace.md +0 -148
- package/runtime/docs/pathogen-schema-example.json +0 -36
- package/runtime/docs/pathogen-schema.md +0 -111
- package/runtime/docs/planning-discipline.md +0 -159
- package/runtime/docs/progressive-disclosure.md +0 -184
- package/runtime/lib/queen-utils.sh +0 -729
- package/runtime/planning.md +0 -159
- package/runtime/recover.sh +0 -136
- package/runtime/utils/xml-utils.sh +0 -2196
- package/runtime/workers-new-castes.md +0 -516
- /package/{runtime → .aether/docs/disciplines}/coding-standards.md +0 -0
- /package/{runtime → .aether/docs/disciplines}/debugging.md +0 -0
- /package/{runtime → .aether/docs/disciplines}/learning.md +0 -0
- /package/{runtime → .aether/docs/disciplines}/tdd.md +0 -0
- /package/{runtime → .aether/docs/disciplines}/verification-loop.md +0 -0
- /package/{runtime → .aether/docs/disciplines}/verification.md +0 -0
- /package/{runtime → .aether}/docs/pheromones.md +0 -0
- /package/{runtime → .aether}/model-profiles.yaml +0 -0
- /package/{runtime → .aether}/schemas/aether-types.xsd +0 -0
- /package/{runtime → .aether}/schemas/colony-registry.xsd +0 -0
- /package/{runtime → .aether}/schemas/pheromone.xsd +0 -0
- /package/{runtime → .aether}/schemas/prompt.xsd +0 -0
- /package/{runtime → .aether}/schemas/queen-wisdom.xsd +0 -0
- /package/{runtime → .aether}/schemas/worker-priming.xsd +0 -0
- /package/{runtime → .aether}/templates/QUEEN.md.template +0 -0
- /package/{runtime → .aether}/utils/colorize-log.sh +0 -0
- /package/{runtime → .aether}/utils/queen-to-md.xsl +0 -0
- /package/{runtime → .aether}/utils/spawn-tree.sh +0 -0
- /package/{runtime → .aether}/utils/spawn-with-model.sh +0 -0
- /package/{runtime → .aether}/utils/state-loader.sh +0 -0
- /package/{runtime → .aether}/utils/swarm-display.sh +0 -0
- /package/{runtime → .aether}/utils/watch-spawn-tree.sh +0 -0
- /package/{runtime → .aether}/utils/xml-core.sh +0 -0
|
@@ -14,18 +14,11 @@ Parse `$ARGUMENTS`:
|
|
|
14
14
|
### Step 0: Initialize Visual Mode (if enabled)
|
|
15
15
|
|
|
16
16
|
If `visual_mode` is true:
|
|
17
|
-
|
|
18
|
-
# Generate session ID
|
|
19
|
-
continue_id="continue-$(date +%s)"
|
|
20
|
-
|
|
21
|
-
# Initialize swarm display
|
|
22
|
-
bash .aether/aether-utils.sh swarm-display-init "$continue_id"
|
|
23
|
-
bash .aether/aether-utils.sh swarm-display-update "Queen" "prime" "excavating" "Phase continuation" "Colony" '{"read":0,"grep":0,"edit":0,"bash":0}' 0 "fungus_garden" 0
|
|
24
|
-
```
|
|
17
|
+
Run using the Bash tool with description "Initializing continue display...": `continue_id="continue-$(date +%s)" && bash .aether/aether-utils.sh swarm-display-init "$continue_id" && bash .aether/aether-utils.sh swarm-display-update "Queen" "prime" "excavating" "Phase continuation" "Colony" '{"read":0,"grep":0,"edit":0,"bash":0}' 0 "fungus_garden" 0`
|
|
25
18
|
|
|
26
19
|
### Step 0.5: Version Check (Non-blocking)
|
|
27
20
|
|
|
28
|
-
Run using the Bash tool: `bash .aether/aether-utils.sh version-check 2>/dev/null || true`
|
|
21
|
+
Run using the Bash tool with description "Checking colony version...": `bash .aether/aether-utils.sh version-check-cached 2>/dev/null || true`
|
|
29
22
|
|
|
30
23
|
If the command succeeds and the JSON result contains a non-empty string, display it as a one-line notice. Proceed regardless of outcome.
|
|
31
24
|
|
|
@@ -48,7 +41,7 @@ Extract: `goal`, `state`, `current_phase`, `plan.phases`, `errors`, `memory`, `e
|
|
|
48
41
|
|
|
49
42
|
### Step 1.5: Load State and Show Resumption Context
|
|
50
43
|
|
|
51
|
-
Run using Bash tool: `bash .aether/aether-utils.sh load-state`
|
|
44
|
+
Run using the Bash tool with description "Loading colony state...": `bash .aether/aether-utils.sh load-state`
|
|
52
45
|
|
|
53
46
|
If successful and goal is not null:
|
|
54
47
|
1. Extract current_phase from state
|
|
@@ -63,7 +56,7 @@ If .aether/HANDOFF.md exists (detected in load-state output):
|
|
|
63
56
|
- Read .aether/HANDOFF.md for additional context
|
|
64
57
|
- Remove .aether/HANDOFF.md after display (cleanup)
|
|
65
58
|
|
|
66
|
-
Run: `bash .aether/aether-utils.sh unload-state` to release lock.
|
|
59
|
+
Run using the Bash tool with description "Releasing colony lock...": `bash .aether/aether-utils.sh unload-state` to release lock.
|
|
67
60
|
|
|
68
61
|
**Error handling:**
|
|
69
62
|
- If E_FILE_NOT_FOUND: "No colony initialized. Run /ant:init first." and stop
|
|
@@ -89,7 +82,7 @@ If `state != "EXECUTING"`:
|
|
|
89
82
|
|
|
90
83
|
**The Iron Law:** No phase advancement without fresh verification evidence.
|
|
91
84
|
|
|
92
|
-
Before ANY phase can advance, execute the 6-phase verification loop. See `.aether/verification-loop.md` for full reference.
|
|
85
|
+
Before ANY phase can advance, execute the 6-phase verification loop. See `.aether/docs/disciplines/verification-loop.md` for full reference.
|
|
93
86
|
|
|
94
87
|
#### 1. Command Resolution (Priority Chain)
|
|
95
88
|
|
|
@@ -119,54 +112,39 @@ If no build system detected, skip build/test/type/lint checks but still verify s
|
|
|
119
112
|
Execute all applicable phases and capture output:
|
|
120
113
|
|
|
121
114
|
```
|
|
122
|
-
|
|
123
|
-
|
|
115
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
116
|
+
👁️🐜 V E R I F I C A T I O N L O O P
|
|
117
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
118
|
+
Phase {id} — Checking colony work...
|
|
124
119
|
```
|
|
125
120
|
|
|
126
121
|
**Phase 1: Build Check** (if command exists):
|
|
127
|
-
|
|
128
|
-
{build_command} 2>&1 | tail -30
|
|
129
|
-
```
|
|
122
|
+
Run using the Bash tool with description "Running build check...": `{build_command} 2>&1 | tail -30`
|
|
130
123
|
Record: exit code, any errors. **STOP if fails.**
|
|
131
124
|
|
|
132
125
|
**Phase 2: Type Check** (if command exists):
|
|
133
|
-
|
|
134
|
-
{type_command} 2>&1 | head -30
|
|
135
|
-
```
|
|
126
|
+
Run using the Bash tool with description "Running type check...": `{type_command} 2>&1 | head -30`
|
|
136
127
|
Record: error count. Report all type errors.
|
|
137
128
|
|
|
138
129
|
**Phase 3: Lint Check** (if command exists):
|
|
139
|
-
|
|
140
|
-
{lint_command} 2>&1 | head -30
|
|
141
|
-
```
|
|
130
|
+
Run using the Bash tool with description "Running lint check...": `{lint_command} 2>&1 | head -30`
|
|
142
131
|
Record: warning count, error count.
|
|
143
132
|
|
|
144
133
|
**Phase 4: Test Check** (if command exists):
|
|
145
|
-
|
|
146
|
-
{test_command} 2>&1 | tail -50
|
|
147
|
-
```
|
|
134
|
+
Run using the Bash tool with description "Running test suite...": `{test_command} 2>&1 | tail -50`
|
|
148
135
|
Record: pass count, fail count, exit code. **STOP if fails.**
|
|
149
136
|
|
|
150
137
|
**Coverage Check** (if coverage command exists):
|
|
151
|
-
|
|
152
|
-
{coverage_command} # e.g., npm run test:coverage
|
|
153
|
-
```
|
|
138
|
+
Run using the Bash tool with description "Checking test coverage...": `{coverage_command} # e.g., npm run test:coverage`
|
|
154
139
|
Record: coverage percentage (target: 80%+ for new code)
|
|
155
140
|
|
|
156
141
|
**Phase 5: Security Scan**:
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
grep -rn "sk-\|api_key\|password\s*=" --include="*.ts" --include="*.js" --include="*.py" src/ 2>/dev/null | head -10
|
|
160
|
-
|
|
161
|
-
# Check for debug artifacts
|
|
162
|
-
grep -rn "console\.log\|debugger" --include="*.ts" --include="*.tsx" --include="*.js" src/ 2>/dev/null | head -10
|
|
163
|
-
```
|
|
142
|
+
Run using the Bash tool with description "Scanning for exposed secrets...": `grep -rn "sk-\|api_key\|password\s*=" --include="*.ts" --include="*.js" --include="*.py" src/ 2>/dev/null | head -10`
|
|
143
|
+
Run using the Bash tool with description "Scanning for debug artifacts...": `grep -rn "console\.log\|debugger" --include="*.ts" --include="*.tsx" --include="*.js" src/ 2>/dev/null | head -10`
|
|
164
144
|
Record: potential secrets (critical), debug artifacts (warning).
|
|
165
145
|
|
|
166
146
|
**Phase 6: Diff Review**:
|
|
167
|
-
|
|
168
|
-
git diff --stat
|
|
169
|
-
```
|
|
147
|
+
Run using the Bash tool with description "Reviewing file changes...": `git diff --stat`
|
|
170
148
|
Review changed files for unintended modifications.
|
|
171
149
|
|
|
172
150
|
**Success Criteria Check:**
|
|
@@ -178,23 +156,28 @@ For EACH criterion:
|
|
|
178
156
|
|
|
179
157
|
Display:
|
|
180
158
|
```
|
|
181
|
-
|
|
182
|
-
|
|
159
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
160
|
+
👁️🐜 V E R I F I C A T I O N R E P O R T
|
|
161
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
183
162
|
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
163
|
+
🔨 Build [PASS/FAIL/SKIP]
|
|
164
|
+
🔍 Types [PASS/FAIL/SKIP] (X errors)
|
|
165
|
+
🧹 Lint [PASS/FAIL/SKIP] (X warnings)
|
|
166
|
+
🧪 Tests [PASS/FAIL/SKIP] (X/Y passed)
|
|
167
|
+
Coverage {percent}% (target: 80%)
|
|
168
|
+
🔒 Security [PASS/FAIL] (X issues)
|
|
169
|
+
📋 Diff [X files changed]
|
|
191
170
|
|
|
192
|
-
|
|
171
|
+
──────────────────────────────────────────────────
|
|
172
|
+
🐜 Success Criteria
|
|
173
|
+
──────────────────────────────────────────────────
|
|
193
174
|
✅ {criterion 1}: {specific evidence}
|
|
194
175
|
✅ {criterion 2}: {specific evidence}
|
|
195
176
|
❌ {criterion 3}: {what's missing}
|
|
196
177
|
|
|
178
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
197
179
|
Overall: READY / NOT READY
|
|
180
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
198
181
|
```
|
|
199
182
|
|
|
200
183
|
#### 3. Gate Decision
|
|
@@ -202,14 +185,16 @@ Overall: READY / NOT READY
|
|
|
202
185
|
**If NOT READY (any of: build fails, tests fail, critical security issues, success criteria unmet):**
|
|
203
186
|
|
|
204
187
|
```
|
|
205
|
-
|
|
188
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
189
|
+
⛔🐜 V E R I F I C A T I O N F A I L E D
|
|
190
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
206
191
|
|
|
207
192
|
Phase {id} cannot advance until issues are resolved.
|
|
208
193
|
|
|
209
|
-
Issues Found:
|
|
194
|
+
🚨 Issues Found:
|
|
210
195
|
{list each failure with specific evidence}
|
|
211
196
|
|
|
212
|
-
Required Actions:
|
|
197
|
+
🔧 Required Actions:
|
|
213
198
|
1. Fix the issues listed above
|
|
214
199
|
2. Run /ant:continue again to re-verify
|
|
215
200
|
|
|
@@ -226,12 +211,12 @@ Use AskUserQuestion to confirm they understand what needs to be fixed:
|
|
|
226
211
|
**If READY (all checks pass with evidence):**
|
|
227
212
|
|
|
228
213
|
```
|
|
229
|
-
|
|
214
|
+
✅🐜 VERIFICATION PASSED
|
|
230
215
|
|
|
231
216
|
All checks completed with evidence:
|
|
232
217
|
{list each check and its evidence}
|
|
233
218
|
|
|
234
|
-
Proceeding to
|
|
219
|
+
Proceeding to gate checks...
|
|
235
220
|
```
|
|
236
221
|
|
|
237
222
|
Continue to Step 1.6.
|
|
@@ -242,29 +227,24 @@ Continue to Step 1.6.
|
|
|
242
227
|
|
|
243
228
|
Read `.aether/data/spawn-tree.txt` to count spawns for this phase.
|
|
244
229
|
|
|
245
|
-
|
|
246
|
-
grep -c "spawned" .aether/data/spawn-tree.txt 2>/dev/null || echo "0"
|
|
247
|
-
```
|
|
248
|
-
|
|
249
|
-
Also check for Watcher spawns specifically:
|
|
250
|
-
```bash
|
|
251
|
-
grep -c "watcher" .aether/data/spawn-tree.txt 2>/dev/null || echo "0"
|
|
252
|
-
```
|
|
230
|
+
Run using the Bash tool with description "Verifying spawn requirements...": `spawn_count=$(grep -c "spawned" .aether/data/spawn-tree.txt 2>/dev/null || echo "0") && watcher_count=$(grep -c "watcher" .aether/data/spawn-tree.txt 2>/dev/null || echo "0") && echo "{\"spawn_count\": $spawn_count, \"watcher_count\": $watcher_count}"`
|
|
253
231
|
|
|
254
232
|
**HARD REJECTION - If spawn_count == 0 and phase had 3+ tasks:**
|
|
255
233
|
|
|
256
234
|
```
|
|
257
|
-
|
|
235
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
236
|
+
⛔🐜 S P A W N G A T E F A I L E D
|
|
237
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
258
238
|
|
|
259
239
|
This phase had {task_count} tasks but spawn_count: 0
|
|
260
240
|
The Prime Worker violated the spawn protocol.
|
|
261
241
|
|
|
262
|
-
The colony
|
|
242
|
+
🐜 The colony requires actual parallelism:
|
|
263
243
|
- Prime Worker MUST spawn specialists for non-trivial work
|
|
264
244
|
- A single agent doing everything is NOT a colony
|
|
265
245
|
- "Justifications" for not spawning are not accepted
|
|
266
246
|
|
|
267
|
-
Required Actions:
|
|
247
|
+
🔧 Required Actions:
|
|
268
248
|
1. Run /ant:build {phase} again
|
|
269
249
|
2. Prime Worker MUST spawn at least 1 specialist
|
|
270
250
|
3. Re-run /ant:continue after spawns complete
|
|
@@ -282,17 +262,19 @@ bash .aether/aether-utils.sh error-flag-pattern "no-spawn-violation" "Prime Work
|
|
|
282
262
|
**HARD REJECTION - If watcher_count == 0 (no testing separation):**
|
|
283
263
|
|
|
284
264
|
```
|
|
285
|
-
|
|
265
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
266
|
+
⛔👁️🐜 W A T C H E R G A T E F A I L E D
|
|
267
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
286
268
|
|
|
287
269
|
No Watcher ant was spawned for testing/verification.
|
|
288
270
|
Testing MUST be performed by a separate agent, not the builder.
|
|
289
271
|
|
|
290
|
-
Why this matters:
|
|
272
|
+
🐜 Why this matters:
|
|
291
273
|
- Builders verify their own work = confirmation bias
|
|
292
274
|
- Independent Watchers catch bugs builders miss
|
|
293
275
|
- "Build passing" ≠ "App working"
|
|
294
276
|
|
|
295
|
-
Required Actions:
|
|
277
|
+
🔧 Required Actions:
|
|
296
278
|
1. Run /ant:build {phase} again
|
|
297
279
|
2. Prime Worker MUST spawn at least 1 Watcher
|
|
298
280
|
3. Watcher must independently verify the work
|
|
@@ -305,12 +287,7 @@ The phase will NOT advance until a Watcher validates.
|
|
|
305
287
|
**If spawn_count >= 1 AND watcher_count >= 1:**
|
|
306
288
|
|
|
307
289
|
```
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
Spawns: {spawn_count} workers
|
|
311
|
-
Watchers: {watcher_count} (independent verification)
|
|
312
|
-
|
|
313
|
-
Proceeding to runtime verification.
|
|
290
|
+
✅🐜 SPAWN GATE PASSED — {spawn_count} workers | {watcher_count} watchers
|
|
314
291
|
```
|
|
315
292
|
|
|
316
293
|
Continue to Step 1.7.
|
|
@@ -319,29 +296,25 @@ Continue to Step 1.7.
|
|
|
319
296
|
|
|
320
297
|
Scan all modified/created files for known anti-patterns. This catches recurring bugs before they reach production.
|
|
321
298
|
|
|
322
|
-
|
|
323
|
-
bash .aether/aether-utils.sh check-antipattern "{file_path}"
|
|
324
|
-
```
|
|
299
|
+
For each file, run using the Bash tool with description "Scanning for anti-patterns...": `bash .aether/aether-utils.sh check-antipattern "{file_path}"`
|
|
325
300
|
|
|
326
301
|
Run for each file in `files_created` and `files_modified` from Prime Worker output.
|
|
327
302
|
|
|
328
303
|
**Anti-Pattern Report:**
|
|
329
304
|
|
|
330
305
|
```
|
|
331
|
-
Anti-Pattern Scan
|
|
332
|
-
=================
|
|
333
|
-
Files scanned: {count}
|
|
306
|
+
🔍🐜 Anti-Pattern Scan — {count} files scanned
|
|
334
307
|
|
|
335
308
|
{if critical issues:}
|
|
336
|
-
🛑 CRITICAL
|
|
309
|
+
🛑 CRITICAL (must fix):
|
|
337
310
|
{list each with file:line and description}
|
|
338
311
|
|
|
339
312
|
{if warnings:}
|
|
340
|
-
⚠️ WARNINGS
|
|
313
|
+
⚠️ WARNINGS:
|
|
341
314
|
{list each with file:line and description}
|
|
342
315
|
|
|
343
316
|
{if clean:}
|
|
344
|
-
|
|
317
|
+
✅🐜 No anti-patterns detected
|
|
345
318
|
```
|
|
346
319
|
|
|
347
320
|
**CRITICAL issues block phase advancement:**
|
|
@@ -358,9 +331,9 @@ Files scanned: {count}
|
|
|
358
331
|
If CRITICAL issues found, display:
|
|
359
332
|
|
|
360
333
|
```
|
|
361
|
-
|
|
334
|
+
⛔🐜 ANTI-PATTERN GATE FAILED
|
|
362
335
|
|
|
363
|
-
Critical anti-patterns detected
|
|
336
|
+
Critical anti-patterns detected:
|
|
364
337
|
{list issues with file paths}
|
|
365
338
|
|
|
366
339
|
Run /ant:build {phase} again after fixing.
|
|
@@ -376,29 +349,25 @@ If no CRITICAL issues, continue to Step 1.8.
|
|
|
376
349
|
|
|
377
350
|
If Prime Worker reported TDD metrics (tests_added, tests_total, coverage_percent), verify test files exist:
|
|
378
351
|
|
|
379
|
-
|
|
380
|
-
# Check for test files based on project type
|
|
381
|
-
find . -name "*.test.*" -o -name "*_test.*" -o -name "*Tests.swift" -o -name "test_*.py" 2>/dev/null | head -10
|
|
382
|
-
```
|
|
352
|
+
Run using the Bash tool with description "Locating test files...": `find . -name "*.test.*" -o -name "*_test.*" -o -name "*Tests.swift" -o -name "test_*.py" 2>/dev/null | head -10`
|
|
383
353
|
|
|
384
354
|
**If Prime Worker claimed tests_added > 0 but no test files found:**
|
|
385
355
|
|
|
386
356
|
```
|
|
387
|
-
|
|
357
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
358
|
+
⛔🧪🐜 T D D G A T E F A I L E D
|
|
359
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
388
360
|
|
|
389
361
|
Prime Worker claimed:
|
|
390
362
|
tests_added: {claimed_count}
|
|
391
363
|
tests_total: {claimed_total}
|
|
392
|
-
|
|
364
|
+
coverage: {claimed_coverage}%
|
|
393
365
|
|
|
394
366
|
But no test files were found in the codebase.
|
|
395
367
|
|
|
396
|
-
|
|
397
|
-
- TDD metrics were fabricated
|
|
398
|
-
- No actual tests were written
|
|
399
|
-
- "All passing: true" was a lie
|
|
368
|
+
🚨 CRITICAL violation — fabricated TDD metrics.
|
|
400
369
|
|
|
401
|
-
Required Actions:
|
|
370
|
+
🔧 Required Actions:
|
|
402
371
|
1. Run /ant:build {phase} again
|
|
403
372
|
2. Actually write test files (not just claim them)
|
|
404
373
|
3. Tests must exist and be runnable
|
|
@@ -424,10 +393,11 @@ Before advancing, the user must confirm the application actually runs.
|
|
|
424
393
|
Use AskUserQuestion:
|
|
425
394
|
|
|
426
395
|
```
|
|
427
|
-
|
|
428
|
-
|
|
396
|
+
──────────────────────────────────────────────────
|
|
397
|
+
🐜 Runtime Verification Required
|
|
398
|
+
──────────────────────────────────────────────────
|
|
429
399
|
|
|
430
|
-
Build
|
|
400
|
+
Build checks passed — but does the app actually work?
|
|
431
401
|
|
|
432
402
|
Have you tested the application at runtime?
|
|
433
403
|
```
|
|
@@ -440,18 +410,13 @@ Options:
|
|
|
440
410
|
|
|
441
411
|
**If "Yes, tested and working":**
|
|
442
412
|
```
|
|
443
|
-
|
|
444
|
-
|
|
445
|
-
User confirmed application runs correctly.
|
|
446
|
-
Proceeding to phase advancement.
|
|
413
|
+
✅🐜 RUNTIME VERIFIED — User confirmed app works.
|
|
447
414
|
```
|
|
448
415
|
Continue to Step 2.
|
|
449
416
|
|
|
450
417
|
**If "Yes, tested but has issues":**
|
|
451
418
|
```
|
|
452
|
-
|
|
453
|
-
|
|
454
|
-
User reported runtime issues. The phase cannot advance with a broken app.
|
|
419
|
+
⛔🐜 RUNTIME GATE FAILED — User reported issues.
|
|
455
420
|
|
|
456
421
|
Please describe the issues so they can be addressed:
|
|
457
422
|
```
|
|
@@ -465,17 +430,12 @@ Do NOT proceed to Step 2.
|
|
|
465
430
|
|
|
466
431
|
**If "No, haven't tested yet":**
|
|
467
432
|
```
|
|
468
|
-
|
|
433
|
+
⏸️🐜 RUNTIME PENDING — Test the app, then run /ant:continue again.
|
|
469
434
|
|
|
470
|
-
Please test the application and run /ant:continue again.
|
|
471
|
-
|
|
472
|
-
Testing checklist:
|
|
473
435
|
- [ ] App launches without crashing
|
|
474
436
|
- [ ] Core features work as expected
|
|
475
437
|
- [ ] UI responds to user interaction
|
|
476
438
|
- [ ] No freezes or hangs
|
|
477
|
-
|
|
478
|
-
Come back when you've tested.
|
|
479
439
|
```
|
|
480
440
|
|
|
481
441
|
Do NOT proceed to Step 2.
|
|
@@ -498,33 +458,29 @@ Continue to Step 1.10.
|
|
|
498
458
|
**The Iron Law:** No phase advancement with unresolved blockers.
|
|
499
459
|
|
|
500
460
|
First, auto-resolve any flags eligible for resolution now that verification has passed:
|
|
501
|
-
|
|
502
|
-
bash .aether/aether-utils.sh flag-auto-resolve "build_pass"
|
|
503
|
-
```
|
|
461
|
+
Run using the Bash tool with description "Auto-resolving flags...": `bash .aether/aether-utils.sh flag-auto-resolve "build_pass"`
|
|
504
462
|
|
|
505
463
|
Then check for remaining blocking flags:
|
|
506
|
-
|
|
507
|
-
bash .aether/aether-utils.sh flag-check-blockers {current_phase}
|
|
508
|
-
```
|
|
464
|
+
Run using the Bash tool with description "Checking for blockers...": `bash .aether/aether-utils.sh flag-check-blockers {current_phase}`
|
|
509
465
|
|
|
510
466
|
Parse result for `blockers`, `issues`, and `notes` counts.
|
|
511
467
|
|
|
512
468
|
**If blockers > 0:**
|
|
513
469
|
|
|
514
470
|
```
|
|
515
|
-
|
|
471
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
472
|
+
⛔🚩🐜 F L A G S G A T E F A I L E D
|
|
473
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
516
474
|
|
|
517
|
-
{blockers}
|
|
475
|
+
{blockers} blocker(s) must be resolved first.
|
|
518
476
|
|
|
519
|
-
Active Blockers:
|
|
477
|
+
🚩 Active Blockers:
|
|
520
478
|
{list each blocker flag with ID, title, and description}
|
|
521
479
|
|
|
522
|
-
Required Actions:
|
|
480
|
+
🔧 Required Actions:
|
|
523
481
|
1. Fix the issues described in each blocker
|
|
524
482
|
2. Resolve flags: /ant:flags --resolve {flag_id} "resolution message"
|
|
525
483
|
3. Run /ant:continue again after resolving all blockers
|
|
526
|
-
|
|
527
|
-
The phase will NOT advance with active blockers.
|
|
528
484
|
```
|
|
529
485
|
|
|
530
486
|
**CRITICAL:** Do NOT proceed to Step 2. Do NOT advance the phase.
|
|
@@ -532,15 +488,11 @@ The phase will NOT advance with active blockers.
|
|
|
532
488
|
**If blockers == 0 but issues > 0:**
|
|
533
489
|
|
|
534
490
|
```
|
|
535
|
-
|
|
491
|
+
⚠️🐜 FLAGS: {issues} issue(s) noted (non-blocking)
|
|
536
492
|
|
|
537
|
-
No blockers, but {issues} issue(s) are active.
|
|
538
|
-
These don't block advancement but should be addressed.
|
|
539
|
-
|
|
540
|
-
Active Issues:
|
|
541
493
|
{list each issue flag}
|
|
542
494
|
|
|
543
|
-
Use /ant:flags to review
|
|
495
|
+
Use /ant:flags to review.
|
|
544
496
|
```
|
|
545
497
|
|
|
546
498
|
Continue to Step 2.
|
|
@@ -548,9 +500,7 @@ Continue to Step 2.
|
|
|
548
500
|
**If all clear (no blockers or issues):**
|
|
549
501
|
|
|
550
502
|
```
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
No blocking flags. Proceeding to phase advancement.
|
|
503
|
+
✅🐜 FLAGS GATE PASSED — No blockers.
|
|
554
504
|
```
|
|
555
505
|
|
|
556
506
|
Continue to Step 2.
|
|
@@ -665,6 +615,66 @@ Update COLONY_STATE.json:
|
|
|
665
615
|
|
|
666
616
|
Write COLONY_STATE.json.
|
|
667
617
|
|
|
618
|
+
Validate the state file:
|
|
619
|
+
Run using the Bash tool with description "Validating colony state...": `bash .aether/aether-utils.sh validate-state colony`
|
|
620
|
+
|
|
621
|
+
### Step 2.1: Auto-Emit Phase Pheromones (SILENT)
|
|
622
|
+
|
|
623
|
+
**This entire step produces NO user-visible output.** All pheromone operations run silently — learnings are deposited in the background. If any pheromone call fails, log the error and continue. Phase advancement must never fail due to pheromone errors.
|
|
624
|
+
|
|
625
|
+
#### 2.1a: Auto-emit FEEDBACK pheromone for phase outcome
|
|
626
|
+
|
|
627
|
+
After learning extraction completes in Step 2, auto-emit a FEEDBACK signal summarizing the phase:
|
|
628
|
+
|
|
629
|
+
```bash
|
|
630
|
+
# phase_id and phase_name come from Step 2 state update
|
|
631
|
+
# Take the top 1-3 learnings by evidence strength from memory.phase_learnings
|
|
632
|
+
# Compress into a single summary sentence
|
|
633
|
+
|
|
634
|
+
# If learnings were extracted, build a brief summary from them (first 1-3 claims)
|
|
635
|
+
# Otherwise use the minimal fallback
|
|
636
|
+
phase_feedback="Phase $phase_id ($phase_name) completed. Key patterns: {brief summary of 1-3 learnings from Step 2}"
|
|
637
|
+
# Fallback if no learnings: "Phase $phase_id ($phase_name) completed without notable patterns."
|
|
638
|
+
|
|
639
|
+
bash .aether/aether-utils.sh pheromone-write FEEDBACK "$phase_feedback" \
|
|
640
|
+
--strength 0.6 \
|
|
641
|
+
--source "worker:continue" \
|
|
642
|
+
--reason "Auto-emitted on phase advance: captures what worked and what was learned" \
|
|
643
|
+
--ttl "phase_end" 2>/dev/null || true
|
|
644
|
+
```
|
|
645
|
+
|
|
646
|
+
The strength is 0.6 (auto-emitted = lower than user-emitted 0.7). Source is "worker:continue" to distinguish from user-emitted feedback. TTL is "phase_end" so the signal survives through the NEXT phase and expires when THAT phase advances.
|
|
647
|
+
|
|
648
|
+
#### 2.1b: Auto-emit REDIRECT for recurring error patterns
|
|
649
|
+
|
|
650
|
+
Check `errors.flagged_patterns[]` in COLONY_STATE.json for patterns that have appeared in 2+ phases:
|
|
651
|
+
|
|
652
|
+
```bash
|
|
653
|
+
flagged_patterns=$(jq -r '.errors.flagged_patterns[]? | select(.count >= 2) | .pattern' .aether/data/COLONY_STATE.json 2>/dev/null || true)
|
|
654
|
+
```
|
|
655
|
+
|
|
656
|
+
For each pattern returned by the above query, emit a REDIRECT signal:
|
|
657
|
+
|
|
658
|
+
```bash
|
|
659
|
+
bash .aether/aether-utils.sh pheromone-write REDIRECT "$pattern_text" \
|
|
660
|
+
--strength 0.7 \
|
|
661
|
+
--source "system" \
|
|
662
|
+
--reason "Auto-emitted: error pattern recurred across 2+ phases" \
|
|
663
|
+
--ttl "30d" 2>/dev/null || true
|
|
664
|
+
```
|
|
665
|
+
|
|
666
|
+
REDIRECT strength is 0.7 (higher than auto FEEDBACK 0.6 — anti-patterns produce stronger signals than successes). TTL is 30d (not phase_end) because recurring errors should persist across multiple phases.
|
|
667
|
+
|
|
668
|
+
If `errors.flagged_patterns` doesn't exist or is empty, skip silently.
|
|
669
|
+
|
|
670
|
+
#### 2.1c: Expire phase_end signals and archive to midden
|
|
671
|
+
|
|
672
|
+
After auto-emission, expire all signals with `expires_at == "phase_end"`. The newly-emitted FEEDBACK from 2.1a will survive this call (it was just written and is active) — it will expire when the NEXT phase advances.
|
|
673
|
+
|
|
674
|
+
Run using the Bash tool with description "Maintaining pheromone memory...": `bash .aether/aether-utils.sh pheromone-expire --phase-end-only 2>/dev/null && bash .aether/aether-utils.sh eternal-init 2>/dev/null`
|
|
675
|
+
|
|
676
|
+
This is idempotent — runs every time continue fires but only creates the directory/file once.
|
|
677
|
+
|
|
668
678
|
### Step 2.2: Promote Validated Learnings to QUEEN.md
|
|
669
679
|
|
|
670
680
|
After extracting learnings in Step 2, promote high-confidence validated learnings to QUEEN.md wisdom.
|
|
@@ -954,9 +964,9 @@ Runs ONLY when all phases complete.
|
|
|
954
964
|
2. Display tech debt report:
|
|
955
965
|
|
|
956
966
|
```
|
|
957
|
-
|
|
967
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
958
968
|
🎉 P R O J E C T C O M P L E T E 🎉
|
|
959
|
-
|
|
969
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
960
970
|
|
|
961
971
|
👑 Goal Achieved: {goal}
|
|
962
972
|
📍 Phases Completed: {total}
|
|
@@ -981,17 +991,14 @@ Runs ONLY when all phases complete.
|
|
|
981
991
|
### Step 3: Display Result
|
|
982
992
|
|
|
983
993
|
**If visual_mode is true, render final swarm display:**
|
|
984
|
-
|
|
985
|
-
bash .aether/aether-utils.sh swarm-display-update "Queen" "prime" "completed" "Phase advanced" "Colony" '{"read":5,"grep":2,"edit":3,"bash":2}' 100 "fungus_garden" 100
|
|
986
|
-
bash .aether/aether-utils.sh swarm-display-inline "$continue_id"
|
|
987
|
-
```
|
|
994
|
+
Run using the Bash tool with description "Rendering advancement summary...": `bash .aether/aether-utils.sh swarm-display-update "Queen" "prime" "completed" "Phase advanced" "Colony" '{"read":5,"grep":2,"edit":3,"bash":2}' 100 "fungus_garden" 100 && bash .aether/aether-utils.sh swarm-display-text "$continue_id"`
|
|
988
995
|
|
|
989
996
|
Output:
|
|
990
997
|
|
|
991
998
|
```
|
|
992
|
-
|
|
999
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
993
1000
|
P H A S E A D V A N C E M E N T
|
|
994
|
-
|
|
1001
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
995
1002
|
|
|
996
1003
|
✅ Phase {prev_id}: {prev_name} -- COMPLETED
|
|
997
1004
|
|
|
@@ -1015,10 +1022,11 @@ Output:
|
|
|
1015
1022
|
📋 Tasks: {task_count}
|
|
1016
1023
|
📊 State: READY
|
|
1017
1024
|
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
/ant:
|
|
1025
|
+
──────────────────────────────────────────────────
|
|
1026
|
+
🐜 Next Up
|
|
1027
|
+
──────────────────────────────────────────────────
|
|
1028
|
+
/ant:build {next_id} 🔨 Build next phase
|
|
1029
|
+
/ant:status 📊 Check progress
|
|
1022
1030
|
|
|
1023
1031
|
💾 State persisted — context clear suggested above
|
|
1024
1032
|
|
|
@@ -1034,3 +1042,5 @@ Update the session tracking file to enable `/ant:resume` after context clear:
|
|
|
1034
1042
|
```bash
|
|
1035
1043
|
bash .aether/aether-utils.sh session-update "/ant:continue" "/ant:build {next_id}" "Phase {prev_id} completed, advanced to Phase {next_id}"
|
|
1036
1044
|
```
|
|
1045
|
+
|
|
1046
|
+
Run using the Bash tool with description "Saving session state...": `bash .aether/aether-utils.sh session-update "/ant:continue" "/ant:build {next_id}" "Phase {prev_id} completed, advanced to Phase {next_id}"`
|
|
@@ -13,7 +13,7 @@ Parse `$ARGUMENTS`:
|
|
|
13
13
|
|
|
14
14
|
### Step 0: Initialize Visual Mode (if enabled)
|
|
15
15
|
|
|
16
|
-
If `visual_mode` is true:
|
|
16
|
+
If `visual_mode` is true, run using the Bash tool with description "Initializing council display...":
|
|
17
17
|
```bash
|
|
18
18
|
# Generate session ID
|
|
19
19
|
council_id="council-$(date +%s)"
|
|
@@ -43,9 +43,9 @@ Capture the current state for context:
|
|
|
43
43
|
### Step 2: Display Council Header
|
|
44
44
|
|
|
45
45
|
```
|
|
46
|
-
📜🐜🏛️🐜📜
|
|
46
|
+
📜🐜🏛️🐜📜 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
47
47
|
A N T C O U N C I L
|
|
48
|
-
|
|
48
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 📜🐜🏛️🐜📜
|
|
49
49
|
|
|
50
50
|
👑 Queen convenes the council for guidance
|
|
51
51
|
|
|
@@ -239,10 +239,10 @@ Keep max 100 events.
|
|
|
239
239
|
|
|
240
240
|
### Step 8: Display Summary
|
|
241
241
|
|
|
242
|
-
**If visual_mode is true, render final swarm display
|
|
242
|
+
**If visual_mode is true, render final swarm display** by running using the Bash tool with description "Updating council display...":
|
|
243
243
|
```bash
|
|
244
244
|
bash .aether/aether-utils.sh swarm-display-update "Queen" "prime" "completed" "Council adjourned" "Colony" '{"read":3,"grep":0,"edit":2,"bash":1}' 100 "fungus_garden" 100
|
|
245
|
-
bash .aether/aether-utils.sh swarm-display-
|
|
245
|
+
bash .aether/aether-utils.sh swarm-display-text "$council_id"
|
|
246
246
|
```
|
|
247
247
|
|
|
248
248
|
```
|
|
@@ -297,3 +297,13 @@ If `prior_state` was PLANNING:
|
|
|
297
297
|
```
|
|
298
298
|
Planning will continue with new guidance.
|
|
299
299
|
```
|
|
300
|
+
|
|
301
|
+
### Step 9: Next Up
|
|
302
|
+
|
|
303
|
+
Generate the state-based Next Up block by running using the Bash tool with description "Generating Next Up suggestions...":
|
|
304
|
+
```bash
|
|
305
|
+
state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
|
|
306
|
+
current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
|
|
307
|
+
total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
|
|
308
|
+
bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_phases"
|
|
309
|
+
```
|