aether-colony 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (207) hide show
  1. package/.aether/CONTEXT.md +160 -0
  2. package/.aether/QUEEN.md +84 -0
  3. package/.aether/aether-utils.sh +7749 -0
  4. package/.aether/docs/QUEEN-SYSTEM.md +211 -0
  5. package/.aether/docs/README.md +68 -0
  6. package/.aether/docs/caste-system.md +48 -0
  7. package/.aether/docs/disciplines/DISCIPLINES.md +93 -0
  8. package/.aether/docs/disciplines/coding-standards.md +197 -0
  9. package/.aether/docs/disciplines/debugging.md +207 -0
  10. package/.aether/docs/disciplines/learning.md +254 -0
  11. package/.aether/docs/disciplines/tdd.md +257 -0
  12. package/.aether/docs/disciplines/verification-loop.md +167 -0
  13. package/.aether/docs/disciplines/verification.md +116 -0
  14. package/.aether/docs/error-codes.md +268 -0
  15. package/.aether/docs/known-issues.md +233 -0
  16. package/.aether/docs/pheromones.md +205 -0
  17. package/.aether/docs/queen-commands.md +97 -0
  18. package/.aether/exchange/colony-registry.xml +11 -0
  19. package/.aether/exchange/pheromone-xml.sh +575 -0
  20. package/.aether/exchange/pheromones.xml +87 -0
  21. package/.aether/exchange/queen-wisdom.xml +14 -0
  22. package/.aether/exchange/registry-xml.sh +273 -0
  23. package/.aether/exchange/wisdom-xml.sh +319 -0
  24. package/.aether/midden/approach-changes.md +5 -0
  25. package/.aether/midden/build-failures.md +5 -0
  26. package/.aether/midden/test-failures.md +5 -0
  27. package/.aether/model-profiles.yaml +100 -0
  28. package/.aether/rules/aether-colony.md +134 -0
  29. package/.aether/schemas/aether-types.xsd +255 -0
  30. package/.aether/schemas/colony-registry.xsd +309 -0
  31. package/.aether/schemas/example-prompt-builder.xml +234 -0
  32. package/.aether/schemas/pheromone.xsd +163 -0
  33. package/.aether/schemas/prompt.xsd +416 -0
  34. package/.aether/schemas/queen-wisdom.xsd +325 -0
  35. package/.aether/schemas/worker-priming.xsd +276 -0
  36. package/.aether/templates/QUEEN.md.template +79 -0
  37. package/.aether/templates/colony-state-reset.jq.template +22 -0
  38. package/.aether/templates/colony-state.template.json +35 -0
  39. package/.aether/templates/constraints.template.json +9 -0
  40. package/.aether/templates/crowned-anthill.template.md +36 -0
  41. package/.aether/templates/handoff-build-error.template.md +30 -0
  42. package/.aether/templates/handoff-build-success.template.md +39 -0
  43. package/.aether/templates/handoff.template.md +40 -0
  44. package/.aether/templates/learning-observations.template.json +6 -0
  45. package/.aether/templates/midden.template.json +7 -0
  46. package/.aether/templates/pheromones.template.json +6 -0
  47. package/.aether/templates/session.template.json +9 -0
  48. package/.aether/utils/atomic-write.sh +219 -0
  49. package/.aether/utils/chamber-compare.sh +193 -0
  50. package/.aether/utils/chamber-utils.sh +297 -0
  51. package/.aether/utils/colorize-log.sh +132 -0
  52. package/.aether/utils/error-handler.sh +212 -0
  53. package/.aether/utils/file-lock.sh +158 -0
  54. package/.aether/utils/queen-to-md.xsl +395 -0
  55. package/.aether/utils/semantic-cli.sh +413 -0
  56. package/.aether/utils/spawn-tree.sh +428 -0
  57. package/.aether/utils/spawn-with-model.sh +56 -0
  58. package/.aether/utils/state-loader.sh +215 -0
  59. package/.aether/utils/swarm-display.sh +268 -0
  60. package/.aether/utils/watch-spawn-tree.sh +253 -0
  61. package/.aether/utils/xml-compose.sh +253 -0
  62. package/.aether/utils/xml-convert.sh +273 -0
  63. package/.aether/utils/xml-core.sh +186 -0
  64. package/.aether/utils/xml-query.sh +201 -0
  65. package/.aether/utils/xml-utils.sh +110 -0
  66. package/.aether/workers.md +765 -0
  67. package/.claude/agents/ant/aether-ambassador.md +264 -0
  68. package/.claude/agents/ant/aether-archaeologist.md +322 -0
  69. package/.claude/agents/ant/aether-auditor.md +266 -0
  70. package/.claude/agents/ant/aether-builder.md +187 -0
  71. package/.claude/agents/ant/aether-chaos.md +268 -0
  72. package/.claude/agents/ant/aether-chronicler.md +304 -0
  73. package/.claude/agents/ant/aether-gatekeeper.md +325 -0
  74. package/.claude/agents/ant/aether-includer.md +373 -0
  75. package/.claude/agents/ant/aether-keeper.md +271 -0
  76. package/.claude/agents/ant/aether-measurer.md +317 -0
  77. package/.claude/agents/ant/aether-probe.md +210 -0
  78. package/.claude/agents/ant/aether-queen.md +325 -0
  79. package/.claude/agents/ant/aether-route-setter.md +173 -0
  80. package/.claude/agents/ant/aether-sage.md +353 -0
  81. package/.claude/agents/ant/aether-scout.md +142 -0
  82. package/.claude/agents/ant/aether-surveyor-disciplines.md +416 -0
  83. package/.claude/agents/ant/aether-surveyor-nest.md +354 -0
  84. package/.claude/agents/ant/aether-surveyor-pathogens.md +288 -0
  85. package/.claude/agents/ant/aether-surveyor-provisions.md +359 -0
  86. package/.claude/agents/ant/aether-tracker.md +265 -0
  87. package/.claude/agents/ant/aether-watcher.md +244 -0
  88. package/.claude/agents/ant/aether-weaver.md +247 -0
  89. package/.claude/commands/ant/archaeology.md +341 -0
  90. package/.claude/commands/ant/build.md +1160 -0
  91. package/.claude/commands/ant/chaos.md +349 -0
  92. package/.claude/commands/ant/colonize.md +270 -0
  93. package/.claude/commands/ant/continue.md +1070 -0
  94. package/.claude/commands/ant/council.md +309 -0
  95. package/.claude/commands/ant/dream.md +265 -0
  96. package/.claude/commands/ant/entomb.md +487 -0
  97. package/.claude/commands/ant/feedback.md +78 -0
  98. package/.claude/commands/ant/flag.md +139 -0
  99. package/.claude/commands/ant/flags.md +155 -0
  100. package/.claude/commands/ant/focus.md +58 -0
  101. package/.claude/commands/ant/help.md +122 -0
  102. package/.claude/commands/ant/history.md +137 -0
  103. package/.claude/commands/ant/init.md +409 -0
  104. package/.claude/commands/ant/interpret.md +267 -0
  105. package/.claude/commands/ant/lay-eggs.md +201 -0
  106. package/.claude/commands/ant/maturity.md +102 -0
  107. package/.claude/commands/ant/memory-details.md +77 -0
  108. package/.claude/commands/ant/migrate-state.md +165 -0
  109. package/.claude/commands/ant/oracle.md +387 -0
  110. package/.claude/commands/ant/organize.md +227 -0
  111. package/.claude/commands/ant/pause-colony.md +247 -0
  112. package/.claude/commands/ant/phase.md +126 -0
  113. package/.claude/commands/ant/plan.md +544 -0
  114. package/.claude/commands/ant/redirect.md +58 -0
  115. package/.claude/commands/ant/resume-colony.md +182 -0
  116. package/.claude/commands/ant/resume.md +363 -0
  117. package/.claude/commands/ant/seal.md +306 -0
  118. package/.claude/commands/ant/status.md +272 -0
  119. package/.claude/commands/ant/swarm.md +361 -0
  120. package/.claude/commands/ant/tunnels.md +425 -0
  121. package/.claude/commands/ant/update.md +209 -0
  122. package/.claude/commands/ant/verify-castes.md +95 -0
  123. package/.claude/commands/ant/watch.md +238 -0
  124. package/.opencode/agents/aether-ambassador.md +140 -0
  125. package/.opencode/agents/aether-archaeologist.md +108 -0
  126. package/.opencode/agents/aether-auditor.md +144 -0
  127. package/.opencode/agents/aether-builder.md +184 -0
  128. package/.opencode/agents/aether-chaos.md +115 -0
  129. package/.opencode/agents/aether-chronicler.md +122 -0
  130. package/.opencode/agents/aether-gatekeeper.md +116 -0
  131. package/.opencode/agents/aether-includer.md +117 -0
  132. package/.opencode/agents/aether-keeper.md +177 -0
  133. package/.opencode/agents/aether-measurer.md +128 -0
  134. package/.opencode/agents/aether-probe.md +133 -0
  135. package/.opencode/agents/aether-queen.md +286 -0
  136. package/.opencode/agents/aether-route-setter.md +130 -0
  137. package/.opencode/agents/aether-sage.md +106 -0
  138. package/.opencode/agents/aether-scout.md +101 -0
  139. package/.opencode/agents/aether-surveyor-disciplines.md +386 -0
  140. package/.opencode/agents/aether-surveyor-nest.md +324 -0
  141. package/.opencode/agents/aether-surveyor-pathogens.md +259 -0
  142. package/.opencode/agents/aether-surveyor-provisions.md +329 -0
  143. package/.opencode/agents/aether-tracker.md +137 -0
  144. package/.opencode/agents/aether-watcher.md +174 -0
  145. package/.opencode/agents/aether-weaver.md +130 -0
  146. package/.opencode/commands/ant/archaeology.md +338 -0
  147. package/.opencode/commands/ant/build.md +1200 -0
  148. package/.opencode/commands/ant/chaos.md +346 -0
  149. package/.opencode/commands/ant/colonize.md +202 -0
  150. package/.opencode/commands/ant/continue.md +938 -0
  151. package/.opencode/commands/ant/council.md +305 -0
  152. package/.opencode/commands/ant/dream.md +262 -0
  153. package/.opencode/commands/ant/entomb.md +367 -0
  154. package/.opencode/commands/ant/feedback.md +80 -0
  155. package/.opencode/commands/ant/flag.md +137 -0
  156. package/.opencode/commands/ant/flags.md +153 -0
  157. package/.opencode/commands/ant/focus.md +56 -0
  158. package/.opencode/commands/ant/help.md +124 -0
  159. package/.opencode/commands/ant/history.md +127 -0
  160. package/.opencode/commands/ant/init.md +337 -0
  161. package/.opencode/commands/ant/interpret.md +256 -0
  162. package/.opencode/commands/ant/lay-eggs.md +141 -0
  163. package/.opencode/commands/ant/maturity.md +92 -0
  164. package/.opencode/commands/ant/memory-details.md +77 -0
  165. package/.opencode/commands/ant/migrate-state.md +153 -0
  166. package/.opencode/commands/ant/oracle.md +338 -0
  167. package/.opencode/commands/ant/organize.md +224 -0
  168. package/.opencode/commands/ant/pause-colony.md +220 -0
  169. package/.opencode/commands/ant/phase.md +123 -0
  170. package/.opencode/commands/ant/plan.md +531 -0
  171. package/.opencode/commands/ant/redirect.md +67 -0
  172. package/.opencode/commands/ant/resume-colony.md +178 -0
  173. package/.opencode/commands/ant/resume.md +363 -0
  174. package/.opencode/commands/ant/seal.md +247 -0
  175. package/.opencode/commands/ant/status.md +272 -0
  176. package/.opencode/commands/ant/swarm.md +357 -0
  177. package/.opencode/commands/ant/tunnels.md +406 -0
  178. package/.opencode/commands/ant/update.md +191 -0
  179. package/.opencode/commands/ant/verify-castes.md +85 -0
  180. package/.opencode/commands/ant/watch.md +220 -0
  181. package/.opencode/opencode.json +3 -0
  182. package/CHANGELOG.md +325 -0
  183. package/DISCLAIMER.md +74 -0
  184. package/LICENSE +21 -0
  185. package/README.md +258 -0
  186. package/bin/cli.js +2436 -0
  187. package/bin/generate-commands.sh +291 -0
  188. package/bin/lib/caste-colors.js +57 -0
  189. package/bin/lib/colors.js +76 -0
  190. package/bin/lib/errors.js +255 -0
  191. package/bin/lib/event-types.js +190 -0
  192. package/bin/lib/file-lock.js +695 -0
  193. package/bin/lib/init.js +454 -0
  194. package/bin/lib/logger.js +242 -0
  195. package/bin/lib/model-profiles.js +445 -0
  196. package/bin/lib/model-verify.js +288 -0
  197. package/bin/lib/nestmate-loader.js +130 -0
  198. package/bin/lib/proxy-health.js +253 -0
  199. package/bin/lib/spawn-logger.js +266 -0
  200. package/bin/lib/state-guard.js +602 -0
  201. package/bin/lib/state-sync.js +516 -0
  202. package/bin/lib/telemetry.js +441 -0
  203. package/bin/lib/update-transaction.js +1454 -0
  204. package/bin/npx-install.js +178 -0
  205. package/bin/sync-to-runtime.sh +6 -0
  206. package/bin/validate-package.sh +88 -0
  207. package/package.json +70 -0
@@ -0,0 +1,201 @@
1
+ ---
2
+ name: ant:lay-eggs
3
+ description: "🥚🐜🥚 Lay first eggs of new colony (First Eggs milestone)"
4
+ ---
5
+
6
+ You are the **Queen**. Begin a new colony, preserving pheromones.
7
+
8
+ ## Instructions
9
+
10
+ Parse `$ARGUMENTS`:
11
+ - If contains `--no-visual`: set `visual_mode = false` (visual is ON by default)
12
+ - Otherwise: set `visual_mode = true`
13
+
14
+ <failure_modes>
15
+ ### Plan File Write Failure
16
+ If writing phase plans to COLONY_STATE.json fails:
17
+ - Do not leave partial plan data in state
18
+ - Report what was successfully written vs. what failed
19
+ - Recovery: user can re-run /ant:lay-eggs to regenerate plans
20
+
21
+ ### Goal Parsing Failure
22
+ If the user's goal cannot be parsed into actionable phases:
23
+ - Do not generate placeholder phases
24
+ - Ask user to clarify or simplify the goal
25
+ - Offer examples of well-formed goals
26
+ </failure_modes>
27
+
28
+ <success_criteria>
29
+ Command is complete when:
30
+ - Phase plan is written to COLONY_STATE.json with tasks and success criteria
31
+ - Plan structure is valid (phases have tasks, tasks have descriptions)
32
+ - User sees the plan and can approve or request changes
33
+ </success_criteria>
34
+
35
+ <read_only>
36
+ Do not touch during lay-eggs:
37
+ - .aether/dreams/ (user notes)
38
+ - .aether/chambers/ (archived colonies)
39
+ - Source code files (planning only, no implementation)
40
+ - .env* files
41
+ - .claude/settings.json
42
+ </read_only>
43
+
44
+ ### Step 0: Initialize Visual Mode (if enabled)
45
+
46
+ If `visual_mode` is true, run using the Bash tool with description "Initializing colony display...":
47
+ ```bash
48
+ # Generate session ID and persist it for later steps
49
+ layeggs_id="layeggs-$(date +%s)"
50
+ echo "$layeggs_id" > .aether/data/.layeggs_session
51
+
52
+ # Initialize swarm display
53
+ bash .aether/aether-utils.sh swarm-display-init "$layeggs_id"
54
+ bash .aether/aether-utils.sh swarm-display-update "Queen" "prime" "excavating" "Laying first eggs" "Colony" '{"read":0,"grep":0,"edit":0,"bash":0}' 0 "nursery" 0
55
+ ```
56
+
57
+ ### Step 1: Validate Input
58
+
59
+ - If `$ARGUMENTS` is empty:
60
+ ```
61
+ Usage: /ant:lay-eggs "<new colony goal>"
62
+
63
+ Start a fresh colony, preserving pheromones from prior colonies.
64
+ Requires current colony to be entombed or reset.
65
+
66
+ Example:
67
+ /ant:lay-eggs "Build a REST API with authentication"
68
+ ```
69
+ Stop here.
70
+
71
+ ### Step 2: Check Current Colony
72
+
73
+ - Read `.aether/data/COLONY_STATE.json`
74
+ - If goal is not null AND phases exist with status != "completed":
75
+ ```
76
+ 🚫 Cannot lay eggs — active colony has unsaved pheromones
77
+
78
+ Active colony: {goal}
79
+ Current: Phase {current_phase}, {phases_count} phases in plan
80
+
81
+ ┌─────────────────────────────────────────────────────────┐
82
+ │ COLONY LIFECYCLE │
83
+ ├─────────────────────────────────────────────────────────┤
84
+ │ │
85
+ │ 🟢 ACTIVE COLONY → 🏺 SEAL/ENTOMB → 🥚 LAY EGGS │
86
+ │ (working) (preserve memory) (new goal) │
87
+ │ │
88
+ └─────────────────────────────────────────────────────────┘
89
+
90
+ Why this matters:
91
+ Your active colony contains preserved learnings, decisions, and
92
+ instincts (pheromones) from prior work. These must be sealed
93
+ before starting a new project, or they will be lost forever.
94
+
95
+ To start a new colony:
96
+ 1. Complete work → run `/ant:seal` or `/ant:entomb` to archive
97
+ 2. Then run `/ant:lay-eggs "new goal"` to begin fresh
98
+
99
+ Emergency reset (loses all pheromones):
100
+ rm .aether/data/COLONY_STATE.json
101
+ ```
102
+ Stop here.
103
+
104
+ ### Step 3: Extract Preserved Knowledge
105
+
106
+ - Read current state to extract preserved fields:
107
+ - `memory.phase_learnings` (all items)
108
+ - `memory.decisions` (all items)
109
+ - `memory.instincts` (all items with confidence >= 0.5)
110
+ - Store for use in Step 4
111
+
112
+ ### Step 4: Create New Colony State
113
+
114
+ Generate new state following RESEARCH.md Pattern 2 (State Reset with Pheromone Preservation):
115
+
116
+ **Fields to preserve from old state:**
117
+ - memory.phase_learnings
118
+ - memory.decisions
119
+ - memory.instincts (high confidence only)
120
+
121
+ **Fields to reset:**
122
+ - goal: new goal from $ARGUMENTS
123
+ - state: "READY"
124
+ - current_phase: 0
125
+ - session_id: new session_{unix_timestamp}_{random}
126
+ - initialized_at: current ISO-8601 timestamp
127
+ - build_started_at: null
128
+ - plan: { generated_at: null, confidence: null, phases: [] }
129
+ - errors: { records: [], flagged_patterns: [] }
130
+ - signals: []
131
+ - graveyards: []
132
+ - events: [colony_initialized event with new goal]
133
+
134
+ **New milestone fields:**
135
+ - milestone: "First Mound"
136
+ - milestone_updated_at: current timestamp
137
+ - milestone_version: "v0.1.0"
138
+
139
+ Write to `.aether/data/COLONY_STATE.json`
140
+
141
+ ### Step 5: Reset Constraints
142
+
143
+ Write `.aether/data/constraints.json`:
144
+ ```json
145
+ {
146
+ "version": "1.0",
147
+ "focus": [],
148
+ "constraints": []
149
+ }
150
+ ```
151
+
152
+ ### Step 6: Display Result
153
+
154
+ **If visual_mode is true, render final swarm display** by running using the Bash tool with description "Updating colony display...":
155
+ ```bash
156
+ # Read persisted session ID from Step 0
157
+ layeggs_id=$(cat .aether/data/.layeggs_session 2>/dev/null || echo "layeggs-$(date +%s)")
158
+
159
+ bash .aether/aether-utils.sh swarm-display-update "Queen" "prime" "completed" "First eggs laid" "Colony" '{"read":3,"grep":0,"edit":2,"bash":1}' 100 "nursery" 100
160
+ bash .aether/aether-utils.sh swarm-display-text "$layeggs_id"
161
+ ```
162
+
163
+ ```
164
+ 🥚 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
165
+ F I R S T E G G S L A I D
166
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 🥚
167
+
168
+ 👑 New colony goal:
169
+ "{goal}"
170
+
171
+ 🏆 Milestone: First Mound (v0.1.0)
172
+
173
+ {If inherited knowledge:}
174
+ 🧠 Inherited from prior colonies:
175
+ {N} instinct(s) | {N} decision(s) | {N} learning(s)
176
+ {End if}
177
+
178
+ 🐜 The colony begins anew.
179
+
180
+ /ant:plan 📋 Chart the course
181
+ /ant:colonize 🗺️ Analyze existing code
182
+ ```
183
+
184
+ Include edge case handling:
185
+ - If no prior knowledge: omit the inheritance section
186
+ - If prior colony had no phases: allow laying eggs without entombment
187
+
188
+ ### Step 7: Next Up
189
+
190
+ Generate the state-based Next Up block by running using the Bash tool with description "Generating Next Up suggestions...":
191
+ ```bash
192
+ if [ -f .aether/data/COLONY_STATE.json ]; then
193
+ state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json 2>/dev/null || echo "IDLE")
194
+ current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json 2>/dev/null || echo "0")
195
+ total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json 2>/dev/null || echo "0")
196
+ else
197
+ state="IDLE"
198
+ current_phase="0"
199
+ total_phases="0"
200
+ fi
201
+ bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_phases"
@@ -0,0 +1,102 @@
1
+ ---
2
+ name: ant:maturity
3
+ description: "👑🐜🏛️🐜👑 View colony maturity journey with ASCII art anthill"
4
+ ---
5
+
6
+ You are the **Queen**. Display the colony's maturity journey.
7
+
8
+ ## Instructions
9
+
10
+ ### Step 1: Detect Current Milestone
11
+
12
+ Run using the Bash tool with description "Detecting colony milestone...": `bash .aether/aether-utils.sh milestone-detect`
13
+
14
+ Parse JSON result to get:
15
+ - `milestone`: Current milestone name (First Mound, Open Chambers, Brood Stable, Ventilated Nest, Sealed Chambers, Crowned Anthill)
16
+ - `version`: Computed version string
17
+ - `phases_completed`: Number of completed phases
18
+ - `total_phases`: Total phases in plan
19
+
20
+ ### Step 2: Read Colony State
21
+
22
+ Read `.aether/data/COLONY_STATE.json` to get:
23
+ - `goal`: Colony goal
24
+ - `initialized_at`: When colony was started
25
+
26
+ Calculate colony age from initialized_at to now (in days).
27
+
28
+ ### Step 3: Display Maturity Journey
29
+
30
+ Display header:
31
+ ```
32
+ .-.
33
+ (o o) AETHER COLONY
34
+ | O | Maturity Journey
35
+ `-`
36
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
37
+
38
+ 👑 Goal: {goal (truncated to 50 chars)}
39
+ 🏆 Current: {milestone} ({version})
40
+ 📍 Progress: {phases_completed} of {total_phases} phases
41
+ 📅 Colony Age: {N} days
42
+ ```
43
+
44
+ ### Step 4: Show ASCII Art Anthill
45
+
46
+ Read the ASCII art file for the current milestone:
47
+ - First Mound → `.aether/visualizations/anthill-stages/first-mound.txt`
48
+ - Open Chambers → `.aether/visualizations/anthill-stages/open-chambers.txt`
49
+ - Brood Stable → `.aether/visualizations/anthill-stages/brood-stable.txt`
50
+ - Ventilated Nest → `.aether/visualizations/anthill-stages/ventilated-nest.txt`
51
+ - Sealed Chambers → `.aether/visualizations/anthill-stages/sealed-chambers.txt`
52
+ - Crowned Anthill → `.aether/visualizations/anthill-stages/crowned-anthill.txt`
53
+
54
+ Display the ASCII art with current milestone highlighted (bold/bright).
55
+
56
+ ### Step 5: Show Journey Progress Bar
57
+
58
+ Display progress through all milestones:
59
+
60
+ ```
61
+ Journey Progress:
62
+
63
+ [█░░░░░] First Mound (0 phases) - Complete
64
+ [██░░░░] Open Chambers (1-3 phases) - Complete
65
+ [███░░░] Brood Stable (4-6 phases) - Complete
66
+ [████░░] Ventilated Nest (7-10 phases) - Current
67
+ [█████░] Sealed Chambers (11-14 phases)
68
+ [██████] Crowned Anthill (15+ phases)
69
+
70
+ Next: Ventilated Nest → Sealed Chambers
71
+ Complete {N} more phases to advance
72
+ ```
73
+
74
+ Calculate which milestones are complete vs current vs upcoming based on phases_completed.
75
+
76
+ ### Step 6: Show Colony Statistics
77
+
78
+ Display summary stats:
79
+ ```
80
+ Colony Statistics:
81
+ 🐜 Phases Completed: {phases_completed}
82
+ 📋 Total Phases: {total_phases}
83
+ 📅 Days Active: {colony_age_days}
84
+ 🏆 Current Milestone: {milestone}
85
+ 🎯 Completion: {percent}%
86
+ ```
87
+
88
+ ### Edge Cases
89
+
90
+ - If milestone file doesn't exist: Show error "Milestone visualization not found"
91
+ - If COLONY_STATE.json missing: "No colony initialized. Run /ant:init first."
92
+ - If phases_completed is 0: All milestones show as upcoming except First Mound
93
+
94
+ ### Step 7: Next Up
95
+
96
+ Generate the state-based Next Up block by running using the Bash tool with description "Generating Next Up suggestions...":
97
+ ```bash
98
+ state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
99
+ current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
100
+ total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
101
+ bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_phases"
102
+ ```
@@ -0,0 +1,77 @@
1
+ ---
2
+ name: memory-details
3
+ description: "Show detailed colony memory — wisdom, pending promotions, and recent failures"
4
+ symbol: brain
5
+ ---
6
+
7
+ # /ant:memory-details — Colony Memory Details
8
+
9
+ Drill-down view of accumulated colony wisdom, pending promotions, and recent failures.
10
+
11
+ ## Usage
12
+
13
+ ```bash
14
+ /ant:memory-details
15
+ ```
16
+
17
+ ## Implementation
18
+
19
+ ### Step 1: Load Memory Data
20
+
21
+ Run using the Bash tool with description "Loading colony memory...":
22
+ ```bash
23
+ bash .aether/aether-utils.sh memory-metrics
24
+ ```
25
+
26
+ ### Step 2: Display Wisdom (from QUEEN.md)
27
+
28
+ Read .aether/QUEEN.md and display entries by category:
29
+ - Philosophies
30
+ - Patterns
31
+ - Redirects
32
+ - Stack
33
+ - Decrees
34
+
35
+ Format:
36
+ ```
37
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
38
+ COLONY WISDOM (X entries)
39
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
40
+
41
+ 📜 Philosophies (N)
42
+ - Entry 1...
43
+ - Entry 2...
44
+
45
+ 🔧 Patterns (N)
46
+ - Entry 1...
47
+ ```
48
+
49
+ ### Step 3: Display Pending Promotions
50
+
51
+ Show observations meeting threshold but not yet promoted:
52
+ ```
53
+ ⏳ Pending Promotions (N)
54
+ - [type] Content... (X observations)
55
+ ```
56
+
57
+ Show deferred proposals:
58
+ ```
59
+ 💤 Deferred Proposals (N)
60
+ - [type] Content... (deferred YYYY-MM-DD)
61
+ ```
62
+
63
+ ### Step 4: Display Recent Failures
64
+
65
+ Show last 5 failures from midden:
66
+ ```
67
+ ⚠️ Recent Failures (N)
68
+ [YYYY-MM-DD HH:MM] Source: context
69
+ Content...
70
+ ```
71
+
72
+ ### Step 5: Summary
73
+
74
+ Show counts summary and reminder command:
75
+ ```
76
+ Run /ant:status for quick overview
77
+ ```
@@ -0,0 +1,165 @@
1
+ ---
2
+ name: ant:migrate-state
3
+ description: "🚚🐜📦🐜🚚 One-time state migration from v1 to v2.0 format"
4
+ ---
5
+
6
+ # 🚚🐜📦🐜🚚 /ant:migrate-state - One-Time State Migration
7
+
8
+ Migrate colony state from v1 (6-file) format to v2.0 (consolidated single-file) format.
9
+
10
+ **Usage:** Run once to migrate existing state. Safe to run multiple times - skips if already migrated.
11
+
12
+ ---
13
+
14
+ ## Step 1: Check Migration Status
15
+
16
+ Read `.aether/data/COLONY_STATE.json` to check if already migrated.
17
+
18
+ **If file contains `"version": "2.0"`:**
19
+ - Output: "State already migrated to v2.0. No action needed."
20
+ - Stop execution.
21
+
22
+ **If no version field or version < 2.0:**
23
+ - Continue to Step 2.
24
+
25
+ ---
26
+
27
+ ## Step 2: Read All State Files
28
+
29
+ Use the Read tool to read all 6 state files from `.aether/data/`:
30
+
31
+ 1. `COLONY_STATE.json` - Colony goal, state machine, workers, spawn outcomes
32
+ 2. `PROJECT_PLAN.json` - Phases, tasks, success criteria
33
+ 3. `pheromones.json` - Active signals
34
+ 4. `memory.json` - Phase learnings, decisions, patterns
35
+ 5. `errors.json` - Error records, flagged patterns
36
+ 6. `events.json` - Event log
37
+
38
+ Handle missing files gracefully (use empty defaults).
39
+
40
+ ---
41
+
42
+ ## Step 3: Construct Consolidated State
43
+
44
+ Build the v2.0 consolidated structure:
45
+
46
+ ```json
47
+ {
48
+ "version": "2.0",
49
+ "goal": "<from COLONY_STATE.goal or null>",
50
+ "state": "<from COLONY_STATE.state or 'IDLE'>",
51
+ "current_phase": "<from COLONY_STATE.current_phase or 0>",
52
+ "session_id": "<from COLONY_STATE.session_id or null>",
53
+ "initialized_at": "<from COLONY_STATE.initialized_at or null>",
54
+ "mode": "<from COLONY_STATE.mode or null>",
55
+ "mode_set_at": "<from COLONY_STATE.mode_set_at or null>",
56
+ "mode_indicators": "<from COLONY_STATE.mode_indicators or null>",
57
+ "workers": "<from COLONY_STATE.workers or default idle workers>",
58
+ "spawn_outcomes": "<from COLONY_STATE.spawn_outcomes or default outcomes>",
59
+ "plan": {
60
+ "generated_at": "<from PROJECT_PLAN.generated_at or null>",
61
+ "phases": "<from PROJECT_PLAN.phases or []>"
62
+ },
63
+ "signals": "<from pheromones.signals or []>",
64
+ "memory": {
65
+ "phase_learnings": "<from memory.phase_learnings or []>",
66
+ "decisions": "<from memory.decisions or []>",
67
+ "patterns": "<from memory.patterns or []>"
68
+ },
69
+ "errors": {
70
+ "records": "<from errors.errors or []>",
71
+ "flagged_patterns": "<from errors.flagged_patterns or []>"
72
+ },
73
+ "events": "<converted event strings or []>"
74
+ }
75
+ ```
76
+
77
+ **Event Conversion:**
78
+ Convert each event object to a pipe-delimited string:
79
+ - Old format: `{"id":"evt_123","type":"colony_initialized","source":"init","content":"msg","timestamp":"2026-..."}`
80
+ - New format: `"2026-... | colony_initialized | init | msg"`
81
+
82
+ If events array is already strings (or empty), keep as-is.
83
+
84
+ ---
85
+
86
+ ## Step 4: Create Backup
87
+
88
+ Create backup directory and move old files:
89
+
90
+ ```bash
91
+ mkdir -p .aether/data/backup-v1
92
+ ```
93
+
94
+ Move these files to backup (if they exist):
95
+ - `.aether/data/PROJECT_PLAN.json` -> `.aether/data/backup-v1/PROJECT_PLAN.json`
96
+ - `.aether/data/pheromones.json` -> `.aether/data/backup-v1/pheromones.json`
97
+ - `.aether/data/memory.json` -> `.aether/data/backup-v1/memory.json`
98
+ - `.aether/data/errors.json` -> `.aether/data/backup-v1/errors.json`
99
+ - `.aether/data/events.json` -> `.aether/data/backup-v1/events.json`
100
+ - `.aether/data/COLONY_STATE.json` -> `.aether/data/backup-v1/COLONY_STATE.json`
101
+
102
+ ---
103
+
104
+ ## Step 5: Write Consolidated State
105
+
106
+ Write the new consolidated COLONY_STATE.json with the v2.0 structure from Step 3.
107
+
108
+ Format the JSON with 2-space indentation for readability.
109
+
110
+ ---
111
+
112
+ ## Step 6: Display Summary
113
+
114
+ Output header:
115
+
116
+ ```
117
+ 🚚🐜📦🐜🚚 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
118
+ S T A T E M I G R A T I O N C O M P L E T E
119
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 🚚🐜📦🐜🚚
120
+ ```
121
+
122
+ Then output a migration summary:
123
+
124
+ ```
125
+ State Migration Complete (v1 -> v2.0)
126
+ ======================================
127
+
128
+ Migrated data:
129
+ - Goal: <goal or "(not set)">
130
+ - State: <state>
131
+ - Current phase: <phase>
132
+ - Workers: <count of non-idle workers>
133
+ - Plan phases: <count>
134
+ - Active signals: <count>
135
+ - Phase learnings: <count>
136
+ - Decisions: <count>
137
+ - Error records: <count>
138
+ - Events: <count>
139
+
140
+ Files backed up to: .aether/data/backup-v1/
141
+ New state file: .aether/data/COLONY_STATE.json (v2.0)
142
+
143
+ All commands now use consolidated state format.
144
+ ```
145
+
146
+ ---
147
+
148
+ ## Notes
149
+
150
+ - This is a one-time migration command
151
+ - After v5.1 ships, this command can be removed
152
+ - All 12+ ant commands will be updated to use the new single-file format
153
+ - The backup directory preserves original files for rollback if needed
154
+
155
+ ---
156
+
157
+ ## Step 7: Next Up
158
+
159
+ Generate the state-based Next Up block by running using the Bash tool with description "Generating Next Up suggestions...":
160
+ ```bash
161
+ state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
162
+ current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
163
+ total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
164
+ bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_phases"
165
+ ```