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,141 @@
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
+ ### Step -1: Normalize Arguments
11
+
12
+ Run: `normalized_args=$(bash .aether/aether-utils.sh normalize-args "$@")`
13
+
14
+ This ensures arguments work correctly in both Claude Code and OpenCode. Use `$normalized_args` throughout this command.
15
+
16
+ Parse `$normalized_args`:
17
+ - If contains `--no-visual`: set `visual_mode = false` (visual is ON by default)
18
+ - Otherwise: set `visual_mode = true`
19
+
20
+ ### Step 0: Initialize Visual Mode (if enabled)
21
+
22
+ If `visual_mode` is true:
23
+ ```bash
24
+ # Generate session ID
25
+ layeggs_id="layeggs-$(date +%s)"
26
+
27
+ # Initialize swarm display
28
+ bash .aether/aether-utils.sh swarm-display-init "$layeggs_id"
29
+ 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
30
+ ```
31
+
32
+ ### Step 1: Validate Input
33
+
34
+ - If `$normalized_args` is empty:
35
+ ```
36
+ Usage: /ant:lay-eggs "<new colony goal>"
37
+
38
+ Start a fresh colony, preserving pheromones from prior colonies.
39
+ Requires current colony to be entombed or reset.
40
+
41
+ Example:
42
+ /ant:lay-eggs "Build a REST API with authentication"
43
+ ```
44
+ Stop here.
45
+
46
+ ### Step 2: Check Current Colony
47
+
48
+ - Read `.aether/data/COLONY_STATE.json`
49
+ - If goal is not null AND phases exist with status != "completed":
50
+ ```
51
+ Active colony exists: {goal}
52
+
53
+ To start a new colony, you must first:
54
+ 1. Complete all phases, then /ant:entomb to archive
55
+ 2. Or manually reset by deleting .aether/data/COLONY_STATE.json
56
+
57
+ Current: Phase {current_phase}, {phases_count} phases in plan
58
+ ```
59
+ Stop here.
60
+
61
+ ### Step 3: Extract Preserved Knowledge
62
+
63
+ - Read current state to extract preserved fields:
64
+ - `memory.phase_learnings` (all items)
65
+ - `memory.decisions` (all items)
66
+ - `memory.instincts` (all items with confidence >= 0.5)
67
+ - Store for use in Step 4
68
+
69
+ ### Step 4: Create New Colony State
70
+
71
+ Generate new state following RESEARCH.md Pattern 2 (State Reset with Pheromone Preservation):
72
+
73
+ **Fields to preserve from old state:**
74
+ - memory.phase_learnings
75
+ - memory.decisions
76
+ - memory.instincts (high confidence only)
77
+
78
+ **Fields to reset:**
79
+ - goal: new goal from $normalized_args
80
+ - state: "READY"
81
+ - current_phase: 0
82
+ - session_id: new session_{unix_timestamp}_{random}
83
+ - initialized_at: current ISO-8601 timestamp
84
+ - build_started_at: null
85
+ - plan: { generated_at: null, confidence: null, phases: [] }
86
+ - errors: { records: [], flagged_patterns: [] }
87
+ - signals: []
88
+ - graveyards: []
89
+ - events: [colony_initialized event with new goal]
90
+
91
+ **New milestone fields:**
92
+ - milestone: "First Mound"
93
+ - milestone_updated_at: current timestamp
94
+ - milestone_version: "v0.1.0"
95
+
96
+ Write to `.aether/data/COLONY_STATE.json`
97
+
98
+ ### Step 5: Reset Constraints
99
+
100
+ Write `.aether/data/constraints.json`:
101
+ ```json
102
+ {
103
+ "version": "1.0",
104
+ "focus": [],
105
+ "constraints": []
106
+ }
107
+ ```
108
+
109
+ ### Step 6: Display Result
110
+
111
+ **If visual_mode is true, render final swarm display:**
112
+ ```bash
113
+ 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
114
+ bash .aether/aether-utils.sh swarm-display-render "$layeggs_id"
115
+ ```
116
+
117
+ ```
118
+ 🥚 ═══════════════════════════════════════════════════
119
+ F I R S T E G G S L A I D
120
+ ══════════════════════════════════════════════════ 🥚
121
+
122
+ 👑 New colony goal:
123
+ "{goal}"
124
+
125
+ 📋 Session: {session_id}
126
+ 🏆 Milestone: First Mound (v0.1.0)
127
+
128
+ {If inherited knowledge:}
129
+ 🧠 Inherited from prior colonies:
130
+ {N} instinct(s) | {N} decision(s) | {N} learning(s)
131
+ {End if}
132
+
133
+ 🐜 The colony begins anew.
134
+
135
+ /ant:plan 📋 Chart the course
136
+ /ant:colonize 🗺️ Analyze existing code
137
+ ```
138
+
139
+ Include edge case handling:
140
+ - If no prior knowledge: omit the inheritance section
141
+ - If prior colony had no phases: allow laying eggs without entombment
@@ -0,0 +1,92 @@
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: `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
@@ -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,153 @@
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