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.
Files changed (183) hide show
  1. package/{runtime → .aether}/CONTEXT.md +1 -1
  2. package/{runtime → .aether}/aether-utils.sh +1772 -98
  3. package/.aether/docs/QUEEN-SYSTEM.md +211 -0
  4. package/.aether/docs/QUEEN.md +84 -0
  5. package/.aether/docs/README.md +68 -0
  6. package/.aether/docs/caste-system.md +48 -0
  7. package/{runtime → .aether/docs/disciplines}/DISCIPLINES.md +8 -8
  8. package/.aether/docs/error-codes.md +268 -0
  9. package/{runtime → .aether}/docs/known-issues.md +42 -26
  10. package/.aether/docs/queen-commands.md +97 -0
  11. package/.aether/exchange/colony-registry.xml +11 -0
  12. package/{runtime → .aether}/exchange/pheromone-xml.sh +2 -1
  13. package/.aether/exchange/pheromones.xml +87 -0
  14. package/.aether/exchange/queen-wisdom.xml +14 -0
  15. package/{runtime → .aether}/exchange/registry-xml.sh +7 -3
  16. package/{runtime → .aether}/exchange/wisdom-xml.sh +11 -4
  17. package/.aether/rules/aether-colony.md +134 -0
  18. package/.aether/schemas/example-prompt-builder.xml +234 -0
  19. package/.aether/templates/colony-state-reset.jq.template +22 -0
  20. package/.aether/templates/colony-state.template.json +35 -0
  21. package/.aether/templates/constraints.template.json +9 -0
  22. package/.aether/templates/crowned-anthill.template.md +36 -0
  23. package/.aether/templates/handoff-build-error.template.md +30 -0
  24. package/.aether/templates/handoff-build-success.template.md +39 -0
  25. package/.aether/templates/handoff.template.md +40 -0
  26. package/{runtime → .aether}/utils/atomic-write.sh +5 -5
  27. package/{runtime → .aether}/utils/chamber-compare.sh +23 -10
  28. package/{runtime → .aether}/utils/chamber-utils.sh +32 -20
  29. package/{runtime → .aether}/utils/error-handler.sh +13 -1
  30. package/{runtime → .aether}/utils/file-lock.sh +49 -13
  31. package/.aether/utils/semantic-cli.sh +413 -0
  32. package/{runtime → .aether}/utils/xml-compose.sh +7 -1
  33. package/.aether/utils/xml-convert.sh +273 -0
  34. package/.aether/utils/xml-query.sh +201 -0
  35. package/.aether/utils/xml-utils.sh +110 -0
  36. package/{runtime → .aether}/workers.md +14 -17
  37. package/.claude/agents/ant/aether-ambassador.md +264 -0
  38. package/.claude/agents/ant/aether-archaeologist.md +322 -0
  39. package/.claude/agents/ant/aether-auditor.md +266 -0
  40. package/.claude/agents/ant/aether-builder.md +187 -0
  41. package/.claude/agents/ant/aether-chaos.md +268 -0
  42. package/.claude/agents/ant/aether-chronicler.md +304 -0
  43. package/.claude/agents/ant/aether-gatekeeper.md +325 -0
  44. package/.claude/agents/ant/aether-includer.md +373 -0
  45. package/.claude/agents/ant/aether-keeper.md +271 -0
  46. package/.claude/agents/ant/aether-measurer.md +317 -0
  47. package/.claude/agents/ant/aether-probe.md +210 -0
  48. package/.claude/agents/ant/aether-queen.md +325 -0
  49. package/.claude/agents/ant/aether-route-setter.md +173 -0
  50. package/.claude/agents/ant/aether-sage.md +353 -0
  51. package/.claude/agents/ant/aether-scout.md +142 -0
  52. package/.claude/agents/ant/aether-surveyor-disciplines.md +416 -0
  53. package/.claude/agents/ant/aether-surveyor-nest.md +354 -0
  54. package/.claude/agents/ant/aether-surveyor-pathogens.md +288 -0
  55. package/.claude/agents/ant/aether-surveyor-provisions.md +359 -0
  56. package/.claude/agents/ant/aether-tracker.md +265 -0
  57. package/.claude/agents/ant/aether-watcher.md +244 -0
  58. package/.claude/agents/ant/aether-weaver.md +247 -0
  59. package/.claude/commands/ant/archaeology.md +16 -7
  60. package/.claude/commands/ant/build.md +415 -284
  61. package/.claude/commands/ant/chaos.md +19 -10
  62. package/.claude/commands/ant/colonize.md +58 -24
  63. package/.claude/commands/ant/continue.md +155 -145
  64. package/.claude/commands/ant/council.md +15 -5
  65. package/.claude/commands/ant/dream.md +16 -7
  66. package/.claude/commands/ant/entomb.md +274 -157
  67. package/.claude/commands/ant/feedback.md +33 -29
  68. package/.claude/commands/ant/flag.md +18 -10
  69. package/.claude/commands/ant/flags.md +14 -6
  70. package/.claude/commands/ant/focus.md +29 -21
  71. package/.claude/commands/ant/help.md +11 -1
  72. package/.claude/commands/ant/history.md +10 -0
  73. package/.claude/commands/ant/init.md +91 -65
  74. package/.claude/commands/ant/interpret.md +15 -4
  75. package/.claude/commands/ant/lay-eggs.md +55 -7
  76. package/.claude/commands/ant/maturity.md +11 -1
  77. package/.claude/commands/ant/migrate-state.md +14 -2
  78. package/.claude/commands/ant/oracle.md +23 -15
  79. package/.claude/commands/ant/organize.md +29 -20
  80. package/.claude/commands/ant/pause-colony.md +17 -7
  81. package/.claude/commands/ant/phase.md +17 -8
  82. package/.claude/commands/ant/plan.md +20 -9
  83. package/.claude/commands/ant/redirect.md +29 -32
  84. package/.claude/commands/ant/resume-colony.md +19 -9
  85. package/.claude/commands/ant/resume.md +272 -96
  86. package/.claude/commands/ant/seal.md +201 -191
  87. package/.claude/commands/ant/status.md +71 -32
  88. package/.claude/commands/ant/swarm.md +26 -44
  89. package/.claude/commands/ant/tunnels.md +279 -105
  90. package/.claude/commands/ant/update.md +81 -20
  91. package/.claude/commands/ant/verify-castes.md +14 -4
  92. package/.claude/commands/ant/watch.md +13 -12
  93. package/.opencode/agents/aether-ambassador.md +63 -20
  94. package/.opencode/agents/aether-archaeologist.md +29 -12
  95. package/.opencode/agents/aether-auditor.md +51 -18
  96. package/.opencode/agents/aether-builder.md +69 -19
  97. package/.opencode/agents/aether-chaos.md +29 -12
  98. package/.opencode/agents/aether-chronicler.md +60 -18
  99. package/.opencode/agents/aether-gatekeeper.md +27 -18
  100. package/.opencode/agents/aether-includer.md +27 -18
  101. package/.opencode/agents/aether-keeper.md +89 -18
  102. package/.opencode/agents/aether-measurer.md +27 -18
  103. package/.opencode/agents/aether-probe.md +60 -18
  104. package/.opencode/agents/aether-queen.md +172 -24
  105. package/.opencode/agents/aether-route-setter.md +57 -12
  106. package/.opencode/agents/aether-sage.md +26 -18
  107. package/.opencode/agents/aether-scout.md +27 -19
  108. package/.opencode/agents/aether-surveyor-disciplines.md +53 -1
  109. package/.opencode/agents/aether-surveyor-nest.md +53 -1
  110. package/.opencode/agents/aether-surveyor-pathogens.md +51 -1
  111. package/.opencode/agents/aether-surveyor-provisions.md +53 -1
  112. package/.opencode/agents/aether-tracker.md +64 -18
  113. package/.opencode/agents/aether-watcher.md +66 -19
  114. package/.opencode/agents/aether-weaver.md +61 -18
  115. package/.opencode/commands/ant/build.md +406 -192
  116. package/.opencode/commands/ant/continue.md +66 -76
  117. package/.opencode/commands/ant/entomb.md +106 -45
  118. package/.opencode/commands/ant/init.md +46 -48
  119. package/.opencode/commands/ant/organize.md +5 -5
  120. package/.opencode/commands/ant/resume.md +334 -0
  121. package/.opencode/commands/ant/seal.md +33 -24
  122. package/.opencode/commands/ant/status.md +11 -0
  123. package/.opencode/commands/ant/tunnels.md +149 -0
  124. package/.opencode/commands/ant/update.md +59 -16
  125. package/CHANGELOG.md +79 -0
  126. package/README.md +135 -353
  127. package/bin/cli.js +243 -122
  128. package/bin/generate-commands.sh +2 -2
  129. package/bin/lib/init.js +13 -3
  130. package/bin/lib/update-transaction.js +119 -117
  131. package/bin/sync-to-runtime.sh +5 -137
  132. package/bin/validate-package.sh +84 -0
  133. package/package.json +9 -6
  134. package/.opencode/agents/aether-architect.md +0 -66
  135. package/.opencode/agents/aether-guardian.md +0 -107
  136. package/.opencode/agents/workers.md +0 -1034
  137. package/runtime/QUEEN_ANT_ARCHITECTURE.md +0 -402
  138. package/runtime/data/signatures.json +0 -41
  139. package/runtime/docs/AETHER-2.0-IMPLEMENTATION-PLAN.md +0 -1343
  140. package/runtime/docs/AETHER-PHEROMONE-SYSTEM-MASTER-SPEC.md +0 -2642
  141. package/runtime/docs/PHEROMONE-INJECTION.md +0 -240
  142. package/runtime/docs/PHEROMONE-INTEGRATION.md +0 -192
  143. package/runtime/docs/PHEROMONE-SYSTEM-DESIGN.md +0 -426
  144. package/runtime/docs/README.md +0 -94
  145. package/runtime/docs/VISUAL-OUTPUT-SPEC.md +0 -219
  146. package/runtime/docs/biological-reference.md +0 -272
  147. package/runtime/docs/codebase-review.md +0 -399
  148. package/runtime/docs/command-sync.md +0 -164
  149. package/runtime/docs/constraints.md +0 -116
  150. package/runtime/docs/implementation-learnings.md +0 -89
  151. package/runtime/docs/namespace.md +0 -148
  152. package/runtime/docs/pathogen-schema-example.json +0 -36
  153. package/runtime/docs/pathogen-schema.md +0 -111
  154. package/runtime/docs/planning-discipline.md +0 -159
  155. package/runtime/docs/progressive-disclosure.md +0 -184
  156. package/runtime/lib/queen-utils.sh +0 -729
  157. package/runtime/planning.md +0 -159
  158. package/runtime/recover.sh +0 -136
  159. package/runtime/utils/xml-utils.sh +0 -2196
  160. package/runtime/workers-new-castes.md +0 -516
  161. /package/{runtime → .aether/docs/disciplines}/coding-standards.md +0 -0
  162. /package/{runtime → .aether/docs/disciplines}/debugging.md +0 -0
  163. /package/{runtime → .aether/docs/disciplines}/learning.md +0 -0
  164. /package/{runtime → .aether/docs/disciplines}/tdd.md +0 -0
  165. /package/{runtime → .aether/docs/disciplines}/verification-loop.md +0 -0
  166. /package/{runtime → .aether/docs/disciplines}/verification.md +0 -0
  167. /package/{runtime → .aether}/docs/pheromones.md +0 -0
  168. /package/{runtime → .aether}/model-profiles.yaml +0 -0
  169. /package/{runtime → .aether}/schemas/aether-types.xsd +0 -0
  170. /package/{runtime → .aether}/schemas/colony-registry.xsd +0 -0
  171. /package/{runtime → .aether}/schemas/pheromone.xsd +0 -0
  172. /package/{runtime → .aether}/schemas/prompt.xsd +0 -0
  173. /package/{runtime → .aether}/schemas/queen-wisdom.xsd +0 -0
  174. /package/{runtime → .aether}/schemas/worker-priming.xsd +0 -0
  175. /package/{runtime → .aether}/templates/QUEEN.md.template +0 -0
  176. /package/{runtime → .aether}/utils/colorize-log.sh +0 -0
  177. /package/{runtime → .aether}/utils/queen-to-md.xsl +0 -0
  178. /package/{runtime → .aether}/utils/spawn-tree.sh +0 -0
  179. /package/{runtime → .aether}/utils/spawn-with-model.sh +0 -0
  180. /package/{runtime → .aether}/utils/state-loader.sh +0 -0
  181. /package/{runtime → .aether}/utils/swarm-display.sh +0 -0
  182. /package/{runtime → .aether}/utils/watch-spawn-tree.sh +0 -0
  183. /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
- ```bash
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
- Phase {id} Verification Loop
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
- ```bash
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
- ```bash
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
- ```bash
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
- ```bash
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
- ```bash
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
- ```bash
158
- # Check for exposed secrets
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
- ```bash
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
- VERIFICATION LOOP REPORT
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
- Phase 1: Build [PASS/FAIL]
185
- Phase 2: Types [PASS/FAIL] (X errors)
186
- Phase 3: Lint [PASS/FAIL] (X warnings)
187
- Phase 4: Tests [PASS/FAIL] (X/Y passed)
188
- Coverage {percent}% (target: 80%)
189
- Phase 5: Security [PASS/FAIL] (X issues)
190
- Phase 6: Diff [X files changed]
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
- Success Criteria:
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
- ⛔ VERIFICATION FAILED - PHASE BLOCKED
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
- VERIFICATION PASSED
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 phase advancement.
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
- ```bash
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
- ⛔ SPAWN GATE FAILED - PHASE BLOCKED
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 metaphor requires actual parallelism:
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
- ⛔ WATCHER GATE FAILED - PHASE BLOCKED
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
- SPAWN GATE PASSED
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
- ```bash
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 ISSUES (must fix):
309
+ 🛑 CRITICAL (must fix):
337
310
  {list each with file:line and description}
338
311
 
339
312
  {if warnings:}
340
- ⚠️ WARNINGS (review recommended):
313
+ ⚠️ WARNINGS:
341
314
  {list each with file:line and description}
342
315
 
343
316
  {if clean:}
344
- No anti-patterns detected
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
- ANTI-PATTERN GATE FAILED
334
+ ⛔🐜 ANTI-PATTERN GATE FAILED
362
335
 
363
- Critical anti-patterns detected that must be fixed:
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
- ```bash
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
- ⛔ TDD GATE FAILED - FABRICATED METRICS
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
- coverage_percent: {claimed_coverage}%
364
+ coverage: {claimed_coverage}%
393
365
 
394
366
  But no test files were found in the codebase.
395
367
 
396
- This is a CRITICAL violation:
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
- Runtime Verification Required
428
- =============================
396
+ ──────────────────────────────────────────────────
397
+ 🐜 Runtime Verification Required
398
+ ──────────────────────────────────────────────────
429
399
 
430
- Build and compile checks passed, but we need to verify the app actually works.
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
- RUNTIME VERIFICATION PASSED
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
- RUNTIME GATE FAILED
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
- ⏸️ RUNTIME VERIFICATION PENDING
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
- ```bash
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
- ```bash
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
- ⛔ FLAGS GATE FAILED - BLOCKERS ACTIVE
471
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
472
+ ⛔🚩🐜 F L A G S G A T E F A I L E D
473
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
516
474
 
517
- {blockers} blocking flag(s) must be resolved before phase advancement.
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
- ⚠️ FLAGS GATE: ISSUES NOTED
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 and acknowledge or resolve.
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
- FLAGS GATE PASSED
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
- ```bash
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
- 🐜 Next Steps:
1019
- /ant:build {next_id} 🔨 Start building Phase {next_id}: {next_name}
1020
- /ant:phase {next_id} 📋 Review phase details first
1021
- /ant:focus "<area>" 🎯 Guide colony attention
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-inline "$council_id"
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
+ ```