aether-colony 1.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.aether/CONTEXT.md +160 -0
- package/.aether/QUEEN.md +84 -0
- package/.aether/aether-utils.sh +7749 -0
- package/.aether/docs/QUEEN-SYSTEM.md +211 -0
- package/.aether/docs/README.md +68 -0
- package/.aether/docs/caste-system.md +48 -0
- package/.aether/docs/disciplines/DISCIPLINES.md +93 -0
- package/.aether/docs/disciplines/coding-standards.md +197 -0
- package/.aether/docs/disciplines/debugging.md +207 -0
- package/.aether/docs/disciplines/learning.md +254 -0
- package/.aether/docs/disciplines/tdd.md +257 -0
- package/.aether/docs/disciplines/verification-loop.md +167 -0
- package/.aether/docs/disciplines/verification.md +116 -0
- package/.aether/docs/error-codes.md +268 -0
- package/.aether/docs/known-issues.md +233 -0
- package/.aether/docs/pheromones.md +205 -0
- package/.aether/docs/queen-commands.md +97 -0
- package/.aether/exchange/colony-registry.xml +11 -0
- package/.aether/exchange/pheromone-xml.sh +575 -0
- package/.aether/exchange/pheromones.xml +87 -0
- package/.aether/exchange/queen-wisdom.xml +14 -0
- package/.aether/exchange/registry-xml.sh +273 -0
- package/.aether/exchange/wisdom-xml.sh +319 -0
- package/.aether/midden/approach-changes.md +5 -0
- package/.aether/midden/build-failures.md +5 -0
- package/.aether/midden/test-failures.md +5 -0
- package/.aether/model-profiles.yaml +100 -0
- package/.aether/rules/aether-colony.md +134 -0
- package/.aether/schemas/aether-types.xsd +255 -0
- package/.aether/schemas/colony-registry.xsd +309 -0
- package/.aether/schemas/example-prompt-builder.xml +234 -0
- package/.aether/schemas/pheromone.xsd +163 -0
- package/.aether/schemas/prompt.xsd +416 -0
- package/.aether/schemas/queen-wisdom.xsd +325 -0
- package/.aether/schemas/worker-priming.xsd +276 -0
- package/.aether/templates/QUEEN.md.template +79 -0
- package/.aether/templates/colony-state-reset.jq.template +22 -0
- package/.aether/templates/colony-state.template.json +35 -0
- package/.aether/templates/constraints.template.json +9 -0
- package/.aether/templates/crowned-anthill.template.md +36 -0
- package/.aether/templates/handoff-build-error.template.md +30 -0
- package/.aether/templates/handoff-build-success.template.md +39 -0
- package/.aether/templates/handoff.template.md +40 -0
- package/.aether/templates/learning-observations.template.json +6 -0
- package/.aether/templates/midden.template.json +7 -0
- package/.aether/templates/pheromones.template.json +6 -0
- package/.aether/templates/session.template.json +9 -0
- package/.aether/utils/atomic-write.sh +219 -0
- package/.aether/utils/chamber-compare.sh +193 -0
- package/.aether/utils/chamber-utils.sh +297 -0
- package/.aether/utils/colorize-log.sh +132 -0
- package/.aether/utils/error-handler.sh +212 -0
- package/.aether/utils/file-lock.sh +158 -0
- package/.aether/utils/queen-to-md.xsl +395 -0
- package/.aether/utils/semantic-cli.sh +413 -0
- package/.aether/utils/spawn-tree.sh +428 -0
- package/.aether/utils/spawn-with-model.sh +56 -0
- package/.aether/utils/state-loader.sh +215 -0
- package/.aether/utils/swarm-display.sh +268 -0
- package/.aether/utils/watch-spawn-tree.sh +253 -0
- package/.aether/utils/xml-compose.sh +253 -0
- package/.aether/utils/xml-convert.sh +273 -0
- package/.aether/utils/xml-core.sh +186 -0
- package/.aether/utils/xml-query.sh +201 -0
- package/.aether/utils/xml-utils.sh +110 -0
- package/.aether/workers.md +765 -0
- package/.claude/agents/ant/aether-ambassador.md +264 -0
- package/.claude/agents/ant/aether-archaeologist.md +322 -0
- package/.claude/agents/ant/aether-auditor.md +266 -0
- package/.claude/agents/ant/aether-builder.md +187 -0
- package/.claude/agents/ant/aether-chaos.md +268 -0
- package/.claude/agents/ant/aether-chronicler.md +304 -0
- package/.claude/agents/ant/aether-gatekeeper.md +325 -0
- package/.claude/agents/ant/aether-includer.md +373 -0
- package/.claude/agents/ant/aether-keeper.md +271 -0
- package/.claude/agents/ant/aether-measurer.md +317 -0
- package/.claude/agents/ant/aether-probe.md +210 -0
- package/.claude/agents/ant/aether-queen.md +325 -0
- package/.claude/agents/ant/aether-route-setter.md +173 -0
- package/.claude/agents/ant/aether-sage.md +353 -0
- package/.claude/agents/ant/aether-scout.md +142 -0
- package/.claude/agents/ant/aether-surveyor-disciplines.md +416 -0
- package/.claude/agents/ant/aether-surveyor-nest.md +354 -0
- package/.claude/agents/ant/aether-surveyor-pathogens.md +288 -0
- package/.claude/agents/ant/aether-surveyor-provisions.md +359 -0
- package/.claude/agents/ant/aether-tracker.md +265 -0
- package/.claude/agents/ant/aether-watcher.md +244 -0
- package/.claude/agents/ant/aether-weaver.md +247 -0
- package/.claude/commands/ant/archaeology.md +341 -0
- package/.claude/commands/ant/build.md +1160 -0
- package/.claude/commands/ant/chaos.md +349 -0
- package/.claude/commands/ant/colonize.md +270 -0
- package/.claude/commands/ant/continue.md +1070 -0
- package/.claude/commands/ant/council.md +309 -0
- package/.claude/commands/ant/dream.md +265 -0
- package/.claude/commands/ant/entomb.md +487 -0
- package/.claude/commands/ant/feedback.md +78 -0
- package/.claude/commands/ant/flag.md +139 -0
- package/.claude/commands/ant/flags.md +155 -0
- package/.claude/commands/ant/focus.md +58 -0
- package/.claude/commands/ant/help.md +122 -0
- package/.claude/commands/ant/history.md +137 -0
- package/.claude/commands/ant/init.md +409 -0
- package/.claude/commands/ant/interpret.md +267 -0
- package/.claude/commands/ant/lay-eggs.md +201 -0
- package/.claude/commands/ant/maturity.md +102 -0
- package/.claude/commands/ant/memory-details.md +77 -0
- package/.claude/commands/ant/migrate-state.md +165 -0
- package/.claude/commands/ant/oracle.md +387 -0
- package/.claude/commands/ant/organize.md +227 -0
- package/.claude/commands/ant/pause-colony.md +247 -0
- package/.claude/commands/ant/phase.md +126 -0
- package/.claude/commands/ant/plan.md +544 -0
- package/.claude/commands/ant/redirect.md +58 -0
- package/.claude/commands/ant/resume-colony.md +182 -0
- package/.claude/commands/ant/resume.md +363 -0
- package/.claude/commands/ant/seal.md +306 -0
- package/.claude/commands/ant/status.md +272 -0
- package/.claude/commands/ant/swarm.md +361 -0
- package/.claude/commands/ant/tunnels.md +425 -0
- package/.claude/commands/ant/update.md +209 -0
- package/.claude/commands/ant/verify-castes.md +95 -0
- package/.claude/commands/ant/watch.md +238 -0
- package/.opencode/agents/aether-ambassador.md +140 -0
- package/.opencode/agents/aether-archaeologist.md +108 -0
- package/.opencode/agents/aether-auditor.md +144 -0
- package/.opencode/agents/aether-builder.md +184 -0
- package/.opencode/agents/aether-chaos.md +115 -0
- package/.opencode/agents/aether-chronicler.md +122 -0
- package/.opencode/agents/aether-gatekeeper.md +116 -0
- package/.opencode/agents/aether-includer.md +117 -0
- package/.opencode/agents/aether-keeper.md +177 -0
- package/.opencode/agents/aether-measurer.md +128 -0
- package/.opencode/agents/aether-probe.md +133 -0
- package/.opencode/agents/aether-queen.md +286 -0
- package/.opencode/agents/aether-route-setter.md +130 -0
- package/.opencode/agents/aether-sage.md +106 -0
- package/.opencode/agents/aether-scout.md +101 -0
- package/.opencode/agents/aether-surveyor-disciplines.md +386 -0
- package/.opencode/agents/aether-surveyor-nest.md +324 -0
- package/.opencode/agents/aether-surveyor-pathogens.md +259 -0
- package/.opencode/agents/aether-surveyor-provisions.md +329 -0
- package/.opencode/agents/aether-tracker.md +137 -0
- package/.opencode/agents/aether-watcher.md +174 -0
- package/.opencode/agents/aether-weaver.md +130 -0
- package/.opencode/commands/ant/archaeology.md +338 -0
- package/.opencode/commands/ant/build.md +1200 -0
- package/.opencode/commands/ant/chaos.md +346 -0
- package/.opencode/commands/ant/colonize.md +202 -0
- package/.opencode/commands/ant/continue.md +938 -0
- package/.opencode/commands/ant/council.md +305 -0
- package/.opencode/commands/ant/dream.md +262 -0
- package/.opencode/commands/ant/entomb.md +367 -0
- package/.opencode/commands/ant/feedback.md +80 -0
- package/.opencode/commands/ant/flag.md +137 -0
- package/.opencode/commands/ant/flags.md +153 -0
- package/.opencode/commands/ant/focus.md +56 -0
- package/.opencode/commands/ant/help.md +124 -0
- package/.opencode/commands/ant/history.md +127 -0
- package/.opencode/commands/ant/init.md +337 -0
- package/.opencode/commands/ant/interpret.md +256 -0
- package/.opencode/commands/ant/lay-eggs.md +141 -0
- package/.opencode/commands/ant/maturity.md +92 -0
- package/.opencode/commands/ant/memory-details.md +77 -0
- package/.opencode/commands/ant/migrate-state.md +153 -0
- package/.opencode/commands/ant/oracle.md +338 -0
- package/.opencode/commands/ant/organize.md +224 -0
- package/.opencode/commands/ant/pause-colony.md +220 -0
- package/.opencode/commands/ant/phase.md +123 -0
- package/.opencode/commands/ant/plan.md +531 -0
- package/.opencode/commands/ant/redirect.md +67 -0
- package/.opencode/commands/ant/resume-colony.md +178 -0
- package/.opencode/commands/ant/resume.md +363 -0
- package/.opencode/commands/ant/seal.md +247 -0
- package/.opencode/commands/ant/status.md +272 -0
- package/.opencode/commands/ant/swarm.md +357 -0
- package/.opencode/commands/ant/tunnels.md +406 -0
- package/.opencode/commands/ant/update.md +191 -0
- package/.opencode/commands/ant/verify-castes.md +85 -0
- package/.opencode/commands/ant/watch.md +220 -0
- package/.opencode/opencode.json +3 -0
- package/CHANGELOG.md +325 -0
- package/DISCLAIMER.md +74 -0
- package/LICENSE +21 -0
- package/README.md +258 -0
- package/bin/cli.js +2436 -0
- package/bin/generate-commands.sh +291 -0
- package/bin/lib/caste-colors.js +57 -0
- package/bin/lib/colors.js +76 -0
- package/bin/lib/errors.js +255 -0
- package/bin/lib/event-types.js +190 -0
- package/bin/lib/file-lock.js +695 -0
- package/bin/lib/init.js +454 -0
- package/bin/lib/logger.js +242 -0
- package/bin/lib/model-profiles.js +445 -0
- package/bin/lib/model-verify.js +288 -0
- package/bin/lib/nestmate-loader.js +130 -0
- package/bin/lib/proxy-health.js +253 -0
- package/bin/lib/spawn-logger.js +266 -0
- package/bin/lib/state-guard.js +602 -0
- package/bin/lib/state-sync.js +516 -0
- package/bin/lib/telemetry.js +441 -0
- package/bin/lib/update-transaction.js +1454 -0
- package/bin/npx-install.js +178 -0
- package/bin/sync-to-runtime.sh +6 -0
- package/bin/validate-package.sh +88 -0
- package/package.json +70 -0
|
@@ -0,0 +1,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
|