aether-colony 5.0.0 → 5.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/aether-utils.sh +3150 -3349
- package/.aether/agents-claude/aether-ambassador.md +265 -0
- package/.aether/agents-claude/aether-archaeologist.md +327 -0
- package/.aether/agents-claude/aether-architect.md +236 -0
- package/.aether/agents-claude/aether-auditor.md +271 -0
- package/.aether/agents-claude/aether-builder.md +224 -0
- package/.aether/agents-claude/aether-chaos.md +269 -0
- package/.aether/agents-claude/aether-chronicler.md +305 -0
- package/.aether/agents-claude/aether-gatekeeper.md +330 -0
- package/.aether/agents-claude/aether-includer.md +374 -0
- package/.aether/agents-claude/aether-keeper.md +272 -0
- package/.aether/agents-claude/aether-measurer.md +322 -0
- package/.aether/agents-claude/aether-oracle.md +237 -0
- package/.aether/agents-claude/aether-probe.md +211 -0
- package/.aether/agents-claude/aether-queen.md +330 -0
- package/.aether/agents-claude/aether-route-setter.md +178 -0
- package/.aether/agents-claude/aether-sage.md +418 -0
- package/.aether/agents-claude/aether-scout.md +179 -0
- package/.aether/agents-claude/aether-surveyor-disciplines.md +417 -0
- package/.aether/agents-claude/aether-surveyor-nest.md +355 -0
- package/.aether/agents-claude/aether-surveyor-pathogens.md +289 -0
- package/.aether/agents-claude/aether-surveyor-provisions.md +360 -0
- package/.aether/agents-claude/aether-tracker.md +270 -0
- package/.aether/agents-claude/aether-watcher.md +280 -0
- package/.aether/agents-claude/aether-weaver.md +248 -0
- package/.aether/commands/archaeology.yaml +653 -0
- package/.aether/commands/build.yaml +1221 -0
- package/.aether/commands/chaos.yaml +653 -0
- package/.aether/commands/colonize.yaml +438 -0
- package/.aether/commands/continue.yaml +1484 -0
- package/.aether/commands/council.yaml +304 -0
- package/.aether/commands/data-clean.yaml +80 -0
- package/.aether/commands/dream.yaml +275 -0
- package/.aether/commands/entomb.yaml +863 -0
- package/.aether/commands/export-signals.yaml +64 -0
- package/.aether/commands/feedback.yaml +158 -0
- package/.aether/commands/flag.yaml +160 -0
- package/.aether/commands/flags.yaml +177 -0
- package/.aether/commands/focus.yaml +112 -0
- package/.aether/commands/help.yaml +167 -0
- package/.aether/commands/history.yaml +137 -0
- package/.aether/commands/import-signals.yaml +79 -0
- package/.aether/commands/init.yaml +469 -0
- package/.aether/commands/insert-phase.yaml +98 -0
- package/.aether/commands/interpret.yaml +285 -0
- package/.aether/commands/lay-eggs.yaml +224 -0
- package/.aether/commands/maturity.yaml +122 -0
- package/.aether/commands/memory-details.yaml +74 -0
- package/.aether/commands/migrate-state.yaml +174 -0
- package/.aether/commands/oracle.yaml +1224 -0
- package/.aether/commands/organize.yaml +446 -0
- package/.aether/commands/patrol.yaml +621 -0
- package/.aether/commands/pause-colony.yaml +424 -0
- package/.aether/commands/phase.yaml +124 -0
- package/.aether/commands/pheromones.yaml +153 -0
- package/.aether/commands/plan.yaml +1313 -0
- package/.aether/commands/preferences.yaml +63 -0
- package/.aether/commands/redirect.yaml +123 -0
- package/.aether/commands/resume-colony.yaml +373 -0
- package/.aether/commands/resume.yaml +398 -0
- package/.aether/commands/run.yaml +193 -0
- package/.aether/commands/seal.yaml +1205 -0
- package/.aether/commands/skill-create.yaml +337 -0
- package/.aether/commands/status.yaml +364 -0
- package/.aether/commands/swarm.yaml +352 -0
- package/.aether/commands/tunnels.yaml +814 -0
- package/.aether/commands/update.yaml +131 -0
- package/.aether/commands/verify-castes.yaml +159 -0
- package/.aether/commands/watch.yaml +454 -0
- package/.aether/docs/INCIDENT_TEMPLATE.md +32 -0
- package/.aether/docs/QUEEN-SYSTEM.md +11 -11
- package/.aether/docs/README.md +32 -2
- package/.aether/docs/command-playbooks/README.md +23 -0
- package/.aether/docs/command-playbooks/build-complete.md +349 -0
- package/.aether/docs/command-playbooks/build-context.md +282 -0
- package/.aether/docs/command-playbooks/build-full.md +1682 -0
- package/.aether/docs/command-playbooks/build-prep.md +283 -0
- package/.aether/docs/command-playbooks/build-verify.md +405 -0
- package/.aether/docs/command-playbooks/build-wave.md +749 -0
- package/.aether/docs/command-playbooks/continue-advance.md +524 -0
- package/.aether/docs/command-playbooks/continue-finalize.md +447 -0
- package/.aether/docs/command-playbooks/continue-full.md +1724 -0
- package/.aether/docs/command-playbooks/continue-gates.md +686 -0
- package/.aether/docs/command-playbooks/continue-verify.md +406 -0
- package/.aether/docs/context-continuity.md +84 -0
- package/.aether/docs/disciplines/DISCIPLINES.md +9 -7
- package/.aether/docs/error-codes.md +1 -1
- package/.aether/docs/known-issues.md +34 -173
- package/.aether/docs/pheromones.md +86 -6
- package/.aether/docs/plans/pheromone-display-plan.md +257 -0
- package/.aether/docs/queen-commands.md +10 -9
- package/.aether/docs/source-of-truth-map.md +132 -0
- package/.aether/docs/xml-utilities.md +47 -0
- package/.aether/rules/aether-colony.md +23 -13
- package/.aether/scripts/incident-test-add.sh +47 -0
- package/.aether/scripts/weekly-audit.sh +79 -0
- package/.aether/skills/.index.json +649 -0
- package/.aether/skills/colony/.manifest.json +16 -0
- package/.aether/skills/colony/build-discipline/SKILL.md +78 -0
- package/.aether/skills/colony/colony-interaction/SKILL.md +56 -0
- package/.aether/skills/colony/colony-lifecycle/SKILL.md +77 -0
- package/.aether/skills/colony/colony-visuals/SKILL.md +112 -0
- package/.aether/skills/colony/context-management/SKILL.md +80 -0
- package/.aether/skills/colony/error-presentation/SKILL.md +99 -0
- package/.aether/skills/colony/pheromone-protocol/SKILL.md +79 -0
- package/.aether/skills/colony/pheromone-visibility/SKILL.md +81 -0
- package/.aether/skills/colony/state-safety/SKILL.md +84 -0
- package/.aether/skills/colony/worker-priming/SKILL.md +82 -0
- package/.aether/skills/domain/.manifest.json +24 -0
- package/.aether/skills/domain/README.md +33 -0
- package/.aether/skills/domain/django/SKILL.md +49 -0
- package/.aether/skills/domain/docker/SKILL.md +52 -0
- package/.aether/skills/domain/golang/SKILL.md +52 -0
- package/.aether/skills/domain/graphql/SKILL.md +51 -0
- package/.aether/skills/domain/html-css/SKILL.md +48 -0
- package/.aether/skills/domain/nextjs/SKILL.md +45 -0
- package/.aether/skills/domain/nodejs/SKILL.md +53 -0
- package/.aether/skills/domain/postgresql/SKILL.md +53 -0
- package/.aether/skills/domain/prisma/SKILL.md +59 -0
- package/.aether/skills/domain/python/SKILL.md +50 -0
- package/.aether/skills/domain/rails/SKILL.md +52 -0
- package/.aether/skills/domain/react/SKILL.md +45 -0
- package/.aether/skills/domain/rest-api/SKILL.md +58 -0
- package/.aether/skills/domain/svelte/SKILL.md +47 -0
- package/.aether/skills/domain/tailwind/SKILL.md +45 -0
- package/.aether/skills/domain/testing/SKILL.md +53 -0
- package/.aether/skills/domain/typescript/SKILL.md +58 -0
- package/.aether/skills/domain/vue/SKILL.md +49 -0
- package/.aether/templates/QUEEN.md.template +23 -41
- package/.aether/templates/colony-state-reset.jq.template +1 -0
- package/.aether/templates/colony-state.template.json +4 -0
- package/.aether/templates/learning-observations.template.json +6 -0
- package/.aether/templates/midden.template.json +13 -0
- package/.aether/templates/pheromones.template.json +6 -0
- package/.aether/templates/session.template.json +9 -0
- package/.aether/utils/atomic-write.sh +63 -17
- package/.aether/utils/chamber-utils.sh +145 -2
- package/.aether/utils/emoji-audit.sh +166 -0
- package/.aether/utils/error-handler.sh +21 -7
- package/.aether/utils/file-lock.sh +182 -27
- package/.aether/utils/flag.sh +267 -0
- package/.aether/utils/hive.sh +572 -0
- package/.aether/utils/learning.sh +1928 -0
- package/.aether/utils/midden.sh +342 -0
- package/.aether/utils/oracle/oracle.md +168 -0
- package/.aether/utils/oracle/oracle.sh +1023 -0
- package/.aether/utils/pheromone.sh +2029 -0
- package/.aether/utils/queen.sh +1698 -0
- package/.aether/utils/scan.sh +860 -0
- package/.aether/utils/semantic-cli.sh +10 -8
- package/.aether/utils/session.sh +552 -0
- package/.aether/utils/skills.sh +509 -0
- package/.aether/utils/spawn-tree.sh +103 -271
- package/.aether/utils/spawn.sh +260 -0
- package/.aether/utils/state-api.sh +199 -0
- package/.aether/utils/state-loader.sh +8 -6
- package/.aether/utils/suggest.sh +611 -0
- package/.aether/utils/swarm-display.sh +10 -1
- package/.aether/utils/swarm.sh +1004 -0
- package/.aether/utils/watch-spawn-tree.sh +11 -2
- package/.aether/utils/xml-compose.sh +2 -2
- package/.aether/utils/xml-convert.sh +9 -5
- package/.aether/utils/xml-core.sh +5 -9
- package/.aether/utils/xml-query.sh +4 -4
- package/.aether/workers.md +86 -67
- package/.claude/agents/ant/aether-ambassador.md +2 -1
- package/.claude/agents/ant/aether-archaeologist.md +6 -1
- package/.claude/agents/ant/aether-architect.md +236 -0
- package/.claude/agents/ant/aether-auditor.md +6 -1
- package/.claude/agents/ant/aether-builder.md +38 -1
- package/.claude/agents/ant/aether-chaos.md +2 -1
- package/.claude/agents/ant/aether-chronicler.md +1 -0
- package/.claude/agents/ant/aether-gatekeeper.md +6 -1
- package/.claude/agents/ant/aether-includer.md +1 -0
- package/.claude/agents/ant/aether-keeper.md +1 -0
- package/.claude/agents/ant/aether-measurer.md +6 -1
- package/.claude/agents/ant/aether-oracle.md +237 -0
- package/.claude/agents/ant/aether-probe.md +2 -1
- package/.claude/agents/ant/aether-queen.md +6 -1
- package/.claude/agents/ant/aether-route-setter.md +6 -1
- package/.claude/agents/ant/aether-sage.md +68 -3
- package/.claude/agents/ant/aether-scout.md +38 -1
- package/.claude/agents/ant/aether-surveyor-disciplines.md +2 -1
- package/.claude/agents/ant/aether-surveyor-nest.md +2 -1
- package/.claude/agents/ant/aether-surveyor-pathogens.md +2 -1
- package/.claude/agents/ant/aether-surveyor-provisions.md +2 -1
- package/.claude/agents/ant/aether-tracker.md +6 -1
- package/.claude/agents/ant/aether-watcher.md +37 -1
- package/.claude/agents/ant/aether-weaver.md +2 -1
- package/.claude/commands/ant/archaeology.md +1 -8
- package/.claude/commands/ant/build.md +43 -1159
- package/.claude/commands/ant/chaos.md +1 -14
- package/.claude/commands/ant/colonize.md +1 -14
- package/.claude/commands/ant/continue.md +40 -1026
- package/.claude/commands/ant/council.md +9 -16
- package/.claude/commands/ant/data-clean.md +81 -0
- package/.claude/commands/ant/dream.md +12 -9
- package/.claude/commands/ant/entomb.md +62 -87
- package/.claude/commands/ant/export-signals.md +57 -0
- package/.claude/commands/ant/feedback.md +18 -0
- package/.claude/commands/ant/flag.md +12 -0
- package/.claude/commands/ant/flags.md +22 -8
- package/.claude/commands/ant/focus.md +18 -0
- package/.claude/commands/ant/help.md +40 -8
- package/.claude/commands/ant/history.md +3 -0
- package/.claude/commands/ant/import-signals.md +71 -0
- package/.claude/commands/ant/init.md +316 -191
- package/.claude/commands/ant/insert-phase.md +101 -0
- package/.claude/commands/ant/interpret.md +11 -0
- package/.claude/commands/ant/lay-eggs.md +167 -158
- package/.claude/commands/ant/maturity.md +22 -11
- package/.claude/commands/ant/memory-details.md +77 -0
- package/.claude/commands/ant/migrate-state.md +6 -0
- package/.claude/commands/ant/oracle.md +317 -62
- package/.claude/commands/ant/organize.md +10 -5
- package/.claude/commands/ant/patrol.md +620 -0
- package/.claude/commands/ant/pause-colony.md +8 -22
- package/.claude/commands/ant/phase.md +26 -37
- package/.claude/commands/ant/pheromones.md +156 -0
- package/.claude/commands/ant/plan.md +175 -52
- package/.claude/commands/ant/preferences.md +65 -0
- package/.claude/commands/ant/redirect.md +18 -0
- package/.claude/commands/ant/resume-colony.md +34 -20
- package/.claude/commands/ant/resume.md +51 -7
- package/.claude/commands/ant/run.md +195 -0
- package/.claude/commands/ant/seal.md +497 -78
- package/.claude/commands/ant/skill-create.md +286 -0
- package/.claude/commands/ant/status.md +127 -1
- package/.claude/commands/ant/swarm.md +11 -23
- package/.claude/commands/ant/tunnels.md +1 -0
- package/.claude/commands/ant/update.md +58 -135
- package/.claude/commands/ant/verify-castes.md +90 -42
- package/.claude/commands/ant/watch.md +1 -0
- package/.opencode/agents/aether-ambassador.md +1 -1
- package/.opencode/agents/aether-architect.md +133 -0
- package/.opencode/agents/aether-builder.md +3 -3
- package/.opencode/agents/aether-oracle.md +137 -0
- package/.opencode/agents/aether-queen.md +1 -1
- package/.opencode/agents/aether-route-setter.md +1 -1
- package/.opencode/agents/aether-scout.md +1 -1
- package/.opencode/agents/aether-surveyor-disciplines.md +6 -1
- package/.opencode/agents/aether-surveyor-nest.md +6 -1
- package/.opencode/agents/aether-surveyor-pathogens.md +6 -1
- package/.opencode/agents/aether-surveyor-provisions.md +6 -1
- package/.opencode/agents/aether-tracker.md +1 -1
- package/.opencode/agents/aether-watcher.md +1 -1
- package/.opencode/agents/aether-weaver.md +1 -1
- package/.opencode/commands/ant/archaeology.md +7 -14
- package/.opencode/commands/ant/build.md +54 -88
- package/.opencode/commands/ant/chaos.md +7 -24
- package/.opencode/commands/ant/colonize.md +8 -17
- package/.opencode/commands/ant/continue.md +595 -66
- package/.opencode/commands/ant/council.md +11 -22
- package/.opencode/commands/ant/data-clean.md +77 -0
- package/.opencode/commands/ant/dream.md +15 -17
- package/.opencode/commands/ant/entomb.md +28 -18
- package/.opencode/commands/ant/export-signals.md +54 -0
- package/.opencode/commands/ant/feedback.md +24 -5
- package/.opencode/commands/ant/flag.md +16 -4
- package/.opencode/commands/ant/flags.md +24 -10
- package/.opencode/commands/ant/focus.md +22 -5
- package/.opencode/commands/ant/help.md +41 -8
- package/.opencode/commands/ant/history.md +9 -0
- package/.opencode/commands/ant/import-signals.md +68 -0
- package/.opencode/commands/ant/init.md +365 -156
- package/.opencode/commands/ant/insert-phase.md +107 -0
- package/.opencode/commands/ant/interpret.md +16 -0
- package/.opencode/commands/ant/lay-eggs.md +184 -112
- package/.opencode/commands/ant/maturity.md +18 -2
- package/.opencode/commands/ant/memory-details.md +83 -0
- package/.opencode/commands/ant/migrate-state.md +12 -0
- package/.opencode/commands/ant/oracle.md +322 -67
- package/.opencode/commands/ant/organize.md +14 -12
- package/.opencode/commands/ant/patrol.md +626 -0
- package/.opencode/commands/ant/pause-colony.md +12 -29
- package/.opencode/commands/ant/phase.md +30 -40
- package/.opencode/commands/ant/pheromones.md +162 -0
- package/.opencode/commands/ant/plan.md +184 -56
- package/.opencode/commands/ant/preferences.md +71 -0
- package/.opencode/commands/ant/redirect.md +22 -5
- package/.opencode/commands/ant/resume-colony.md +38 -27
- package/.opencode/commands/ant/resume.md +71 -20
- package/.opencode/commands/ant/run.md +201 -0
- package/.opencode/commands/ant/seal.md +230 -25
- package/.opencode/commands/ant/skill-create.md +63 -0
- package/.opencode/commands/ant/status.md +124 -31
- package/.opencode/commands/ant/swarm.md +3 -345
- package/.opencode/commands/ant/tunnels.md +3 -9
- package/.opencode/commands/ant/update.md +63 -127
- package/.opencode/commands/ant/verify-castes.md +96 -42
- package/.opencode/commands/ant/watch.md +7 -0
- package/CHANGELOG.md +278 -1
- package/README.md +188 -340
- package/bin/cli.js +236 -429
- package/bin/generate-commands.js +186 -0
- package/bin/generate-commands.sh +128 -89
- package/bin/lib/spawn-logger.js +0 -15
- package/bin/lib/update-transaction.js +285 -35
- package/bin/npx-install.js +178 -0
- package/bin/validate-package.sh +85 -3
- package/package.json +7 -3
- package/.aether/CONTEXT.md +0 -160
- package/.aether/docs/QUEEN.md +0 -84
- package/.aether/exchange/colony-registry.xml +0 -11
- package/.aether/exchange/pheromones.xml +0 -87
- package/.aether/exchange/queen-wisdom.xml +0 -14
- package/.aether/model-profiles.yaml +0 -100
- package/.aether/utils/spawn-with-model.sh +0 -56
- package/bin/lib/model-profiles.js +0 -445
- package/bin/lib/model-verify.js +0 -288
- package/bin/lib/proxy-health.js +0 -253
- package/bin/lib/telemetry.js +0 -441
|
@@ -1,18 +1,19 @@
|
|
|
1
|
+
<!-- Generated from .aether/commands/phase.yaml - DO NOT EDIT DIRECTLY -->
|
|
1
2
|
---
|
|
2
3
|
name: ant:phase
|
|
3
4
|
description: "📝🐜📍🐜📝 Show phase details - Queen reviews phase status, tasks, and caste assignment"
|
|
4
5
|
---
|
|
5
6
|
|
|
6
|
-
You are the **Queen Ant Colony**. Display phase details from the project plan.
|
|
7
|
-
|
|
8
|
-
## Instructions
|
|
9
|
-
|
|
10
7
|
### Step -1: Normalize Arguments
|
|
11
8
|
|
|
12
9
|
Run: `normalized_args=$(bash .aether/aether-utils.sh normalize-args "$@")`
|
|
13
10
|
|
|
14
11
|
This ensures arguments work correctly in both Claude Code and OpenCode. Use `$normalized_args` throughout this command.
|
|
15
12
|
|
|
13
|
+
You are the **Queen Ant Colony**. Display phase details from the project plan.
|
|
14
|
+
|
|
15
|
+
## Instructions
|
|
16
|
+
|
|
16
17
|
The argument is: `$normalized_args`
|
|
17
18
|
|
|
18
19
|
### Step 1: Read State
|
|
@@ -40,11 +41,13 @@ Find the phase by ID in `plan.phases`.
|
|
|
40
41
|
|
|
41
42
|
Output this header:
|
|
42
43
|
|
|
44
|
+
|
|
45
|
+
|
|
43
46
|
```
|
|
44
47
|
📝🐜📍🐜📝 ═══════════════════════════════════════════════════
|
|
45
48
|
P H A S E {id} D E T A I L S
|
|
46
49
|
═══════════════════════════════════════════════════ 📝🐜📍🐜📝
|
|
47
|
-
|
|
50
|
+
|
|
48
51
|
|
|
49
52
|
Then display:
|
|
50
53
|
|
|
@@ -61,63 +64,50 @@ Then display:
|
|
|
61
64
|
✅ Success Criteria:
|
|
62
65
|
• <criterion>
|
|
63
66
|
|
|
64
|
-
|
|
67
|
+
───────────────────────────────────────────────────
|
|
68
|
+
|
|
69
|
+
|
|
65
70
|
🐜 Next Steps:
|
|
71
|
+
|
|
72
|
+
───────────────────────────────────────────────────
|
|
66
73
|
/ant:build <id> 🔨 Phase <id>: <phase_name>
|
|
67
74
|
/ant:phase <next_id> 📋 Phase <next_id>: <next_phase_name> (only if not last phase)
|
|
68
75
|
/ant:status 📊 Colony status
|
|
69
76
|
```
|
|
70
77
|
|
|
78
|
+
|
|
79
|
+
|
|
71
80
|
Status icons: `[ ]` pending, `[~]` in_progress, `[✓]` completed
|
|
72
81
|
|
|
73
82
|
### Step 3b: List View
|
|
74
83
|
|
|
75
84
|
Output this header:
|
|
76
85
|
|
|
86
|
+
|
|
87
|
+
|
|
77
88
|
```
|
|
78
89
|
📝🐜📍🐜📝 ═══════════════════════════════════════════════════
|
|
79
90
|
A L L P H A S E S
|
|
80
91
|
═══════════════════════════════════════════════════ 📝🐜📍🐜📝
|
|
81
|
-
```
|
|
82
92
|
|
|
83
|
-
Then display all phases as a summary:
|
|
84
93
|
|
|
94
|
+
For each phase in `plan.phases`, display:
|
|
85
95
|
```
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
{icon} Phase <id>: <name>
|
|
89
|
-
<completed>/<total> tasks | <status>
|
|
90
|
-
|
|
91
|
-
(repeat for each phase)
|
|
92
|
-
|
|
93
|
-
─────────────────────────────────────────────────────
|
|
94
|
-
Legend: [✓] completed [~] in progress [ ] pending
|
|
95
|
-
|
|
96
|
-
🐜 /ant:phase <id> for details
|
|
96
|
+
[{id}] {name} [{status}]
|
|
97
|
+
{short_description}
|
|
97
98
|
```
|
|
98
99
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
After displaying phase details, offer to update the handoff document with review notes:
|
|
102
|
-
|
|
103
|
-
Use AskUserQuestion:
|
|
100
|
+
Display phases grouped by status:
|
|
104
101
|
```
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
102
|
+
✓ Completed
|
|
103
|
+
[{id}] {name}
|
|
104
|
+
~ In Progress
|
|
105
|
+
[{id}] {name}
|
|
106
|
+
[ ] Pending
|
|
107
|
+
[{id}] {name}
|
|
109
108
|
```
|
|
110
109
|
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
```bash
|
|
115
|
-
cat >> .aether/HANDOFF.md << 'HANDOFF_EOF'
|
|
116
|
-
|
|
117
|
-
## Phase {id} Review Notes
|
|
118
|
-
- Reviewed: $(date -u +%Y-%m-%dT%H:%M:%SZ)
|
|
119
|
-
- Notes: {user_notes}
|
|
120
|
-
HANDOFF_EOF
|
|
110
|
+
Display completion progress:
|
|
111
|
+
```
|
|
112
|
+
📊 Overall: {completed_count}/{total_count} phases complete
|
|
121
113
|
```
|
|
122
|
-
|
|
123
|
-
Display: `Handoff updated with review notes.`
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
<!-- Generated from .aether/commands/pheromones.yaml - DO NOT EDIT DIRECTLY -->
|
|
2
|
+
---
|
|
3
|
+
name: ant:pheromones
|
|
4
|
+
description: "🎯🐜🚫🐜💬 View and manage active pheromone signals"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
### Step -1: Normalize Arguments
|
|
8
|
+
|
|
9
|
+
Run: `normalized_args=$(bash .aether/aether-utils.sh normalize-args "$@")`
|
|
10
|
+
|
|
11
|
+
This ensures arguments work correctly in both Claude Code and OpenCode. Use `$normalized_args` throughout this command.
|
|
12
|
+
|
|
13
|
+
You are the **Queen**. Display and manage the colony's pheromone signals.
|
|
14
|
+
|
|
15
|
+
## Instructions
|
|
16
|
+
|
|
17
|
+
Parse `$normalized_args`:
|
|
18
|
+
- If contains `--no-visual`: set `visual_mode = false` (visual is ON by default)
|
|
19
|
+
- Otherwise: set `visual_mode = true`
|
|
20
|
+
|
|
21
|
+
Extract subcommand from `$normalized_args`:
|
|
22
|
+
- No argument or `all`: Show all active pheromones
|
|
23
|
+
- `focus`: Show only FOCUS signals
|
|
24
|
+
- `redirect`: Show only REDIRECT signals
|
|
25
|
+
- `feedback`: Show only FEEDBACK signals
|
|
26
|
+
- `clear`: Clear expired/inactive signals
|
|
27
|
+
- `expire <id>`: Expire a specific signal by ID
|
|
28
|
+
|
|
29
|
+
### Step 1: Read Colony State
|
|
30
|
+
|
|
31
|
+
Read `.aether/data/COLONY_STATE.json`.
|
|
32
|
+
|
|
33
|
+
If file missing or `goal: null`:
|
|
34
|
+
```
|
|
35
|
+
No colony initialized. Run /ant:init first.
|
|
36
|
+
```
|
|
37
|
+
Stop here.
|
|
38
|
+
|
|
39
|
+
### Step 2: Handle Subcommands
|
|
40
|
+
|
|
41
|
+
**If subcommand is `clear`:**
|
|
42
|
+
|
|
43
|
+
Run using the Bash tool:
|
|
44
|
+
```bash
|
|
45
|
+
# Count signals before
|
|
46
|
+
before_count=$(jq '[.signals[] | select(.active == true)] | length' .aether/data/pheromones.json 2>/dev/null || echo "0")
|
|
47
|
+
|
|
48
|
+
# Mark expired/inactive signals as inactive
|
|
49
|
+
now=$(date +%s)
|
|
50
|
+
jq --argjson now "$now" '
|
|
51
|
+
def to_epoch(ts):
|
|
52
|
+
if ts == null or ts == "" or ts == "phase_end" then null
|
|
53
|
+
else
|
|
54
|
+
(ts | split("T")) as $parts |
|
|
55
|
+
($parts[0] | split("-")) as $d |
|
|
56
|
+
($parts[1] | rtrimstr("Z") | split(":")) as $t |
|
|
57
|
+
(($d[0] | tonumber) - 1970) * 365 * 86400 +
|
|
58
|
+
(($d[1] | tonumber) - 1) * 30 * 86400 +
|
|
59
|
+
(($d[2] | tonumber) - 1) * 86400 +
|
|
60
|
+
($t[0] | tonumber) * 3600 +
|
|
61
|
+
($t[1] | tonumber) * 60 +
|
|
62
|
+
($t[2] | rtrimstr("Z") | tonumber)
|
|
63
|
+
end;
|
|
64
|
+
|
|
65
|
+
def decay_days(t):
|
|
66
|
+
if t == "FOCUS" then 30
|
|
67
|
+
elif t == "REDIRECT" then 60
|
|
68
|
+
else 90
|
|
69
|
+
end;
|
|
70
|
+
|
|
71
|
+
.signals = [.signals[] |
|
|
72
|
+
(to_epoch(.created_at)) as $created_epoch |
|
|
73
|
+
(if $created_epoch != null then ($now - $created_epoch) / 86400 else 0 end) as $elapsed_days |
|
|
74
|
+
(decay_days(.type)) as $dd |
|
|
75
|
+
((.strength // 0.8) * (1 - ($elapsed_days / $dd))) as $eff_raw |
|
|
76
|
+
(if $eff_raw < 0 then 0 else $eff_raw end) as $eff |
|
|
77
|
+
if $eff < 0.1 then . + {active: false} else . end
|
|
78
|
+
]
|
|
79
|
+
' .aether/data/pheromones.json > .aether/data/pheromones.json.tmp && mv .aether/data/pheromones.json.tmp .aether/data/pheromones.json
|
|
80
|
+
|
|
81
|
+
# Count signals after
|
|
82
|
+
after_count=$(jq '[.signals[] | select(.active == true)] | length' .aether/data/pheromones.json 2>/dev/null || echo "0")
|
|
83
|
+
cleared=$((before_count - after_count))
|
|
84
|
+
|
|
85
|
+
echo "before=$before_count after=$after_count cleared=$cleared"
|
|
86
|
+
```
|
|
87
|
+
|
|
88
|
+
Display:
|
|
89
|
+
```
|
|
90
|
+
🧹 Pheromone Cleanup
|
|
91
|
+
|
|
92
|
+
Before: {before_count} active signals
|
|
93
|
+
After: {after_count} active signals
|
|
94
|
+
Cleared: {cleared} expired signal(s)
|
|
95
|
+
|
|
96
|
+
Run /ant:pheromones to see remaining signals.
|
|
97
|
+
```
|
|
98
|
+
Stop here.
|
|
99
|
+
|
|
100
|
+
**If subcommand is `expire <id>`:**
|
|
101
|
+
|
|
102
|
+
Extract the signal ID from arguments.
|
|
103
|
+
Run using the Bash tool:
|
|
104
|
+
```bash
|
|
105
|
+
signal_id="{extracted_id}"
|
|
106
|
+
jq --arg id "$signal_id" '.signals = [.signals[] | if .id == $id then . + {active: false} else . end]' .aether/data/pheromones.json > .aether/data/pheromones.json.tmp && mv .aether/data/pheromones.json.tmp .aether/data/pheromones.json && echo "expired=$signal_id"
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
Display:
|
|
110
|
+
```
|
|
111
|
+
✓ Signal expired: {signal_id}
|
|
112
|
+
|
|
113
|
+
Run /ant:pheromones to see remaining signals.
|
|
114
|
+
```
|
|
115
|
+
Stop here.
|
|
116
|
+
|
|
117
|
+
### Step 3: Display Active Pheromones (default or filter)
|
|
118
|
+
|
|
119
|
+
Run using the Bash tool with description "Displaying pheromones...":
|
|
120
|
+
```bash
|
|
121
|
+
bash .aether/aether-utils.sh pheromone-display "{subcommand or 'all'}"
|
|
122
|
+
```
|
|
123
|
+
|
|
124
|
+
The output will be the formatted pheromone table.
|
|
125
|
+
|
|
126
|
+
### Step 4: Summary and Next Steps
|
|
127
|
+
|
|
128
|
+
Display guidance:
|
|
129
|
+
```
|
|
130
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
131
|
+
|
|
132
|
+
💡 Managing Pheromones
|
|
133
|
+
|
|
134
|
+
/ant:focus "area" 🎯 Guide attention
|
|
135
|
+
/ant:redirect "avoid" 🚫 Set hard constraint
|
|
136
|
+
/ant:feedback "note" 💬 Provide guidance
|
|
137
|
+
/ant:pheromones clear 🧹 Clear expired signals
|
|
138
|
+
|
|
139
|
+
🐜 Signals decay over time: FOCUS 30d, REDIRECT 60d, FEEDBACK 90d
|
|
140
|
+
```
|
|
141
|
+
|
|
142
|
+
### Edge Cases
|
|
143
|
+
|
|
144
|
+
**No pheromones file:**
|
|
145
|
+
```
|
|
146
|
+
No pheromones active. Colony has no signals.
|
|
147
|
+
|
|
148
|
+
Inject signals with:
|
|
149
|
+
/ant:focus "area" - Guide attention
|
|
150
|
+
/ant:redirect "avoid" - Set hard constraint
|
|
151
|
+
/ant:feedback "note" - Provide guidance
|
|
152
|
+
```
|
|
153
|
+
|
|
154
|
+
**No active signals of filtered type:**
|
|
155
|
+
```
|
|
156
|
+
No active {type} signals found.
|
|
157
|
+
|
|
158
|
+
Try: /ant:pheromones (to see all)
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
**Invalid subcommand:**
|
|
162
|
+
Display help showing valid subcommands.
|
|
@@ -1,41 +1,25 @@
|
|
|
1
|
+
<!-- Generated from .aether/commands/plan.yaml - DO NOT EDIT DIRECTLY -->
|
|
1
2
|
---
|
|
2
3
|
name: ant:plan
|
|
3
4
|
description: "📊🐜🗺️🐜📊 Show project plan or generate project-specific phases"
|
|
4
5
|
---
|
|
5
6
|
|
|
6
|
-
You are the **Queen**. Orchestrate research and planning until 80% confidence (maximum 4 iterations).
|
|
7
|
-
|
|
8
|
-
## Instructions
|
|
9
|
-
|
|
10
7
|
### Step -1: Normalize Arguments
|
|
11
8
|
|
|
12
9
|
Run: `normalized_args=$(bash .aether/aether-utils.sh normalize-args "$@")`
|
|
13
10
|
|
|
14
11
|
This ensures arguments work correctly in both Claude Code and OpenCode. Use `$normalized_args` throughout this command.
|
|
15
12
|
|
|
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
13
|
|
|
22
|
-
|
|
23
|
-
```bash
|
|
24
|
-
# Generate session ID
|
|
25
|
-
plan_id="plan-$(date +%s)"
|
|
14
|
+
You are the **Queen**. Orchestrate research and planning until the selected confidence target is reached within the selected iteration budget.
|
|
26
15
|
|
|
27
|
-
|
|
28
|
-
bash .aether/aether-utils.sh swarm-display-init "$plan_id"
|
|
29
|
-
bash .aether/aether-utils.sh swarm-display-update "Queen" "prime" "excavating" "Generating colony plan" "Colony" '{"read":0,"grep":0,"edit":0,"bash":0}' 0 "fungus_garden" 0
|
|
30
|
-
```
|
|
31
|
-
|
|
32
|
-
### Step 0.5: Version Check (Non-blocking)
|
|
33
|
-
|
|
34
|
-
Run using the Bash tool: `bash .aether/aether-utils.sh version-check 2>/dev/null || true`
|
|
16
|
+
## Instructions
|
|
35
17
|
|
|
36
|
-
|
|
18
|
+
Parse `$normalized_args`:
|
|
19
|
+
- If contains `--no-visual`: set `visual_mode = false` (visual is ON by default)
|
|
20
|
+
- Otherwise: set `visual_mode = true`
|
|
37
21
|
|
|
38
|
-
### Step 1: Read State
|
|
22
|
+
### Step 1: Read State
|
|
39
23
|
|
|
40
24
|
Read `.aether/data/COLONY_STATE.json`.
|
|
41
25
|
|
|
@@ -86,6 +70,33 @@ Parse `$normalized_args`:
|
|
|
86
70
|
- If contains `--accept`: Set `force_accept = true` (accept current plan regardless of confidence)
|
|
87
71
|
- Otherwise: `force_accept = false`
|
|
88
72
|
|
|
73
|
+
Select planning depth (prompt user if not explicitly provided):
|
|
74
|
+
- Presets:
|
|
75
|
+
- `fast`: `target_confidence = 80`, `max_iterations = 4`
|
|
76
|
+
- `balanced`: `target_confidence = 90`, `max_iterations = 6`
|
|
77
|
+
- `deep`: `target_confidence = 95`, `max_iterations = 8`
|
|
78
|
+
- `exhaustive`: `target_confidence = 99`, `max_iterations = 12`
|
|
79
|
+
- Preset selectors:
|
|
80
|
+
- `--fast`, `--balanced`, `--deep`, `--exhaustive`
|
|
81
|
+
- `--quality fast|balanced|deep|exhaustive`
|
|
82
|
+
- CLI overrides:
|
|
83
|
+
- `--target <70-99>` to set `target_confidence`
|
|
84
|
+
- `--max-iterations <2-12>` to set `max_iterations`
|
|
85
|
+
- If no preset/overrides are provided, ask:
|
|
86
|
+
`Planning depth? 1) Fast 2) Balanced 3) Deep (recommended) 4) Exhaustive`
|
|
87
|
+
- Map user choice to a preset, default to `deep` on unclear input.
|
|
88
|
+
- If overrides are out of range, clamp to valid ranges and continue.
|
|
89
|
+
|
|
90
|
+
### Step 2.5: Load Compact Context Capsule
|
|
91
|
+
|
|
92
|
+
Run using the Bash tool with description "Loading compact planning context...":
|
|
93
|
+
```bash
|
|
94
|
+
bash .aether/aether-utils.sh context-capsule --compact --json 2>/dev/null
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
If JSON is valid and `.ok == true`, extract `.result.prompt_section` into `context_capsule_prompt`.
|
|
98
|
+
If command fails or returns invalid JSON, set `context_capsule_prompt = ""` and continue.
|
|
99
|
+
|
|
89
100
|
### Step 3: Initialize Planning State
|
|
90
101
|
|
|
91
102
|
Update watch files for tmux visibility:
|
|
@@ -98,7 +109,7 @@ AETHER COLONY :: PLANNING
|
|
|
98
109
|
State: PLANNING
|
|
99
110
|
Phase: 0/0 (generating plan)
|
|
100
111
|
Confidence: 0%
|
|
101
|
-
Iteration: 0/
|
|
112
|
+
Iteration: 0/{max_iterations}
|
|
102
113
|
|
|
103
114
|
Active Workers:
|
|
104
115
|
[Research] Starting...
|
|
@@ -115,17 +126,12 @@ Progress
|
|
|
115
126
|
|
|
116
127
|
[ ] 0%
|
|
117
128
|
|
|
118
|
-
Target:
|
|
129
|
+
Target: {target_confidence}% confidence
|
|
119
130
|
|
|
120
|
-
Iteration: 0/
|
|
131
|
+
Iteration: 0/{max_iterations}
|
|
121
132
|
Gaps: (analyzing...)
|
|
122
133
|
```
|
|
123
134
|
|
|
124
|
-
Log start:
|
|
125
|
-
```bash
|
|
126
|
-
bash .aether/aether-utils.sh activity-log "PLAN_START" "queen" "Iterative planning loop initiated for goal"
|
|
127
|
-
```
|
|
128
|
-
|
|
129
135
|
### Step 3.5: Load Territory Survey
|
|
130
136
|
|
|
131
137
|
Check if territory survey exists before research:
|
|
@@ -160,6 +166,129 @@ ls .aether/data/survey/*.md 2>/dev/null
|
|
|
160
166
|
|
|
161
167
|
**If no survey:** Continue without survey context (scouts will do fresh exploration)
|
|
162
168
|
|
|
169
|
+
### Step 3.6: Phase Domain Research
|
|
170
|
+
|
|
171
|
+
Investigate domain knowledge for each phase before the planning loop begins. This runs every time `/ant:plan` generates a new plan -- no skip flag.
|
|
172
|
+
|
|
173
|
+
**1. Retrieve hive wisdom for research priming:**
|
|
174
|
+
|
|
175
|
+
```bash
|
|
176
|
+
hive_context=$(bash .aether/aether-utils.sh hive-read --limit 5 --format text 2>/dev/null)
|
|
177
|
+
```
|
|
178
|
+
|
|
179
|
+
Parse the JSON result to extract `.result.text` as `hive_text`. If command fails or returns empty, set `hive_text = ""`.
|
|
180
|
+
|
|
181
|
+
**2. Clean any previous research for this phase:**
|
|
182
|
+
|
|
183
|
+
```bash
|
|
184
|
+
research_dir=".aether/data/phase-research"
|
|
185
|
+
mkdir -p "$research_dir"
|
|
186
|
+
rm -f "$research_dir/phase-{phase_number}-research.md"
|
|
187
|
+
```
|
|
188
|
+
|
|
189
|
+
Re-running /ant:plan always re-researches from scratch.
|
|
190
|
+
|
|
191
|
+
**3. Spawn Research Scout** via Task tool with `subagent_type="aether-scout"`:
|
|
192
|
+
|
|
193
|
+
FALLBACK: If "Agent type not found", use general-purpose and inject role: "You are a Scout Ant performing Phase Domain Research."
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
You are a Scout Ant performing Phase Domain Research.
|
|
197
|
+
|
|
198
|
+
--- MISSION ---
|
|
199
|
+
Investigate the domain knowledge needed for Phase {phase_number}: {phase_name}
|
|
200
|
+
Goal: "{goal}"
|
|
201
|
+
Phase description: "{phase_description}"
|
|
202
|
+
|
|
203
|
+
{context_capsule_prompt}
|
|
204
|
+
|
|
205
|
+
--- PRE-EXISTING COLONY WISDOM ---
|
|
206
|
+
{hive_text}
|
|
207
|
+
|
|
208
|
+
--- RESEARCH AREAS ---
|
|
209
|
+
1. Key patterns in the existing codebase relevant to this phase
|
|
210
|
+
2. External library/API documentation if the phase involves external tools
|
|
211
|
+
3. Common gotchas and pitfalls in this domain
|
|
212
|
+
4. Recommended implementation approach based on findings
|
|
213
|
+
|
|
214
|
+
--- SCOPE CONSTRAINTS ---
|
|
215
|
+
- Maximum 5 key patterns
|
|
216
|
+
- Maximum 3 gotchas
|
|
217
|
+
- Maximum 1 recommended approach paragraph
|
|
218
|
+
- Total output under 3000 words
|
|
219
|
+
- Prioritize actionable guidance over exhaustive documentation
|
|
220
|
+
- Check hive wisdom above first -- do not re-discover known patterns
|
|
221
|
+
|
|
222
|
+
--- TOOLS ---
|
|
223
|
+
Use: Glob, Grep, Read, WebSearch, WebFetch
|
|
224
|
+
Do NOT use: Task, Write, Edit
|
|
225
|
+
|
|
226
|
+
--- OUTPUT FORMAT ---
|
|
227
|
+
Return JSON:
|
|
228
|
+
{
|
|
229
|
+
"hive_wisdom_used": ["list of hive entries that were relevant"],
|
|
230
|
+
"key_patterns": [
|
|
231
|
+
{"pattern": "description", "source": "file path or URL", "relevance": "why it matters for this phase"}
|
|
232
|
+
],
|
|
233
|
+
"external_context": [
|
|
234
|
+
{"topic": "what", "finding": "description", "source": "URL or doc reference"}
|
|
235
|
+
],
|
|
236
|
+
"gotchas": [
|
|
237
|
+
{"issue": "what can go wrong", "prevention": "how to avoid it", "source": "evidence"}
|
|
238
|
+
],
|
|
239
|
+
"recommended_approach": "synthesis paragraph",
|
|
240
|
+
"files_to_study": ["path1", "path2"]
|
|
241
|
+
}
|
|
242
|
+
```
|
|
243
|
+
|
|
244
|
+
**4. Wait for scout to complete** (blocking -- direct Task return).
|
|
245
|
+
|
|
246
|
+
**5. Parse scout JSON output and write RESEARCH.md to disk.** The Queen (plan.md orchestrator) writes the file -- scout is read-only. Write to: `.aether/data/phase-research/phase-{phase_number}-research.md`
|
|
247
|
+
|
|
248
|
+
RESEARCH.md format (6 fixed sections):
|
|
249
|
+
|
|
250
|
+
```markdown
|
|
251
|
+
# Phase {N} Research: {Phase Name}
|
|
252
|
+
|
|
253
|
+
**Generated:** {ISO-8601 timestamp}
|
|
254
|
+
**Phase:** {N} - {Phase Name}
|
|
255
|
+
**Research scope:** {brief summary of what was investigated}
|
|
256
|
+
|
|
257
|
+
## Hive Wisdom (Pre-existing Knowledge)
|
|
258
|
+
{Format hive_wisdom_used entries, or "No relevant hive wisdom found" if empty}
|
|
259
|
+
|
|
260
|
+
## Key Patterns
|
|
261
|
+
{Format each key_patterns entry as: **{pattern}:** {relevance} (Source: {source})}
|
|
262
|
+
|
|
263
|
+
## External Context
|
|
264
|
+
{Format each external_context entry as: **{topic}:** {finding} (Source: {source})}
|
|
265
|
+
{If empty: "No external research needed for this phase"}
|
|
266
|
+
|
|
267
|
+
## Gotchas
|
|
268
|
+
{Format each gotchas entry as: **{issue}:** {prevention} (Source: {source})}
|
|
269
|
+
|
|
270
|
+
## Recommended Approach
|
|
271
|
+
{recommended_approach text}
|
|
272
|
+
|
|
273
|
+
## Files to Study
|
|
274
|
+
{Format as bullet list of file paths}
|
|
275
|
+
```
|
|
276
|
+
|
|
277
|
+
**6. Store research findings** in a variable `research_findings_summary` for injection into the Route-Setter prompt in Step 4. This is a compact summary (not the full RESEARCH.md):
|
|
278
|
+
|
|
279
|
+
```
|
|
280
|
+
Key Patterns: {bullet list of pattern names}
|
|
281
|
+
Gotchas: {bullet list of gotcha titles}
|
|
282
|
+
Recommended: {recommended_approach, first sentence only}
|
|
283
|
+
Files: {comma-separated file paths}
|
|
284
|
+
```
|
|
285
|
+
|
|
286
|
+
**7. Display completion:**
|
|
287
|
+
|
|
288
|
+
```
|
|
289
|
+
Research complete: phase-{phase_number}-research.md ({word_count} words)
|
|
290
|
+
```
|
|
291
|
+
|
|
163
292
|
### Step 4: Research and Planning Loop
|
|
164
293
|
|
|
165
294
|
Initialize tracking:
|
|
@@ -170,15 +299,15 @@ Initialize tracking:
|
|
|
170
299
|
- `last_confidence = 0`
|
|
171
300
|
- `stall_count = 0` (consecutive iterations with < 5% improvement)
|
|
172
301
|
|
|
173
|
-
**Loop (max
|
|
302
|
+
**Loop (max {max_iterations} iterations, 2 agents per iteration: 1 scout + 1 planner):**
|
|
174
303
|
|
|
175
304
|
```
|
|
176
|
-
while iteration <
|
|
305
|
+
while iteration < max_iterations AND confidence < target_confidence:
|
|
177
306
|
iteration += 1
|
|
178
307
|
|
|
179
308
|
# === AUTO-BREAK CHECKS (no user prompt needed) ===
|
|
180
309
|
if iteration > 1:
|
|
181
|
-
if confidence >=
|
|
310
|
+
if confidence >= target_confidence:
|
|
182
311
|
Log: "Confidence threshold reached ({confidence}%), finalizing plan"
|
|
183
312
|
break
|
|
184
313
|
if stall_count >= 2:
|
|
@@ -190,7 +319,7 @@ while iteration < 4 AND confidence < 80:
|
|
|
190
319
|
if iteration == 1:
|
|
191
320
|
|
|
192
321
|
# Broad exploration on first pass
|
|
193
|
-
Spawn Research Scout via Task tool with subagent_type="
|
|
322
|
+
Spawn Research Scout via Task tool with subagent_type="aether-scout":
|
|
194
323
|
|
|
195
324
|
"""
|
|
196
325
|
You are a Scout Ant in the Aether Colony.
|
|
@@ -199,7 +328,9 @@ while iteration < 4 AND confidence < 80:
|
|
|
199
328
|
Research the codebase to understand what exists and how it works.
|
|
200
329
|
|
|
201
330
|
Goal: "{goal}"
|
|
202
|
-
Iteration: {iteration}/
|
|
331
|
+
Iteration: {iteration}/{max_iterations}
|
|
332
|
+
|
|
333
|
+
{context_capsule_prompt}
|
|
203
334
|
|
|
204
335
|
--- EXPLORATION AREAS ---
|
|
205
336
|
Cover ALL of these in a single pass:
|
|
@@ -234,7 +365,7 @@ while iteration < 4 AND confidence < 80:
|
|
|
234
365
|
else:
|
|
235
366
|
|
|
236
367
|
# Gap-focused research on subsequent passes
|
|
237
|
-
Spawn Gap-Focused Scout via Task tool with subagent_type="
|
|
368
|
+
Spawn Gap-Focused Scout via Task tool with subagent_type="aether-scout":
|
|
238
369
|
|
|
239
370
|
"""
|
|
240
371
|
You are a Scout Ant in the Aether Colony (gap-focused research).
|
|
@@ -243,7 +374,9 @@ while iteration < 4 AND confidence < 80:
|
|
|
243
374
|
Investigate ONLY these specific knowledge gaps. Do not explore broadly.
|
|
244
375
|
|
|
245
376
|
Goal: "{goal}"
|
|
246
|
-
Iteration: {iteration}/
|
|
377
|
+
Iteration: {iteration}/{max_iterations}
|
|
378
|
+
|
|
379
|
+
{context_capsule_prompt}
|
|
247
380
|
|
|
248
381
|
--- GAPS TO INVESTIGATE ---
|
|
249
382
|
{for each gap in gaps:}
|
|
@@ -276,12 +409,10 @@ while iteration < 4 AND confidence < 80:
|
|
|
276
409
|
# Wait for scout to complete.
|
|
277
410
|
# Update gaps list from scout results.
|
|
278
411
|
|
|
279
|
-
Log: `bash .aether/aether-utils.sh activity-log "RESEARCH" "scout" "Iteration {iteration}: {scout.findings.length} findings, {scout.gaps_remaining.length} gaps"`
|
|
280
|
-
|
|
281
412
|
# === PLANNING PHASE (always runs — 1 planner per iteration) ===
|
|
282
413
|
|
|
283
|
-
Spawn Planning Ant (Route-Setter) via Task tool with subagent_type="
|
|
284
|
-
# NOTE: Claude Code uses aether-route-setter; OpenCode uses
|
|
414
|
+
Spawn Planning Ant (Route-Setter) via Task tool with subagent_type="aether-route-setter":
|
|
415
|
+
# NOTE: Claude Code uses aether-route-setter; OpenCode now uses same specialist agent
|
|
285
416
|
|
|
286
417
|
"""
|
|
287
418
|
You are a Route-Setter Ant in the Aether Colony.
|
|
@@ -290,7 +421,9 @@ while iteration < 4 AND confidence < 80:
|
|
|
290
421
|
Create or refine a project plan based on research findings.
|
|
291
422
|
|
|
292
423
|
Goal: "{goal}"
|
|
293
|
-
Iteration: {iteration}/
|
|
424
|
+
Iteration: {iteration}/{max_iterations}
|
|
425
|
+
|
|
426
|
+
{context_capsule_prompt}
|
|
294
427
|
|
|
295
428
|
--- PLANNING DISCIPLINE ---
|
|
296
429
|
Read .aether/planning.md for full reference.
|
|
@@ -329,6 +462,9 @@ while iteration < 4 AND confidence < 80:
|
|
|
329
462
|
--- RESEARCH FINDINGS ---
|
|
330
463
|
{scout.findings formatted — compact, max 5 items}
|
|
331
464
|
|
|
465
|
+
--- PHASE DOMAIN RESEARCH (from Step 3.6) ---
|
|
466
|
+
{research_findings_summary if available, otherwise omit this section}
|
|
467
|
+
|
|
332
468
|
Remaining Gaps:
|
|
333
469
|
{gaps formatted — compact, max 3 items}
|
|
334
470
|
|
|
@@ -390,8 +526,6 @@ while iteration < 4 AND confidence < 80:
|
|
|
390
526
|
|
|
391
527
|
Parse planning results. Update plan_draft and confidence.
|
|
392
528
|
|
|
393
|
-
Log: `bash .aether/aether-utils.sh activity-log "PLANNING" "route-setter" "Confidence: {confidence}% (+{delta}%)"`
|
|
394
|
-
|
|
395
529
|
# === UPDATE WATCH FILES ===
|
|
396
530
|
|
|
397
531
|
Update `.aether/data/watch-status.txt` with current state.
|
|
@@ -423,7 +557,7 @@ Proceed directly to Step 5. No user confirmation needed — the plan auto-finali
|
|
|
423
557
|
|
|
424
558
|
### Step 5: Finalize Plan
|
|
425
559
|
|
|
426
|
-
Once loop exits (confidence >=
|
|
560
|
+
Once loop exits (confidence >= {target_confidence}, max iterations reached, or stall detected):
|
|
427
561
|
|
|
428
562
|
Read current COLONY_STATE.json, then update:
|
|
429
563
|
- Set `plan.phases` to the final phases array
|
|
@@ -433,7 +567,7 @@ Read current COLONY_STATE.json, then update:
|
|
|
433
567
|
|
|
434
568
|
Write COLONY_STATE.json.
|
|
435
569
|
|
|
436
|
-
Log: `bash .aether/aether-utils.sh activity-log "PLAN_COMPLETE" "queen" "Plan finalized with {confidence}% confidence"`
|
|
570
|
+
Log plan completion: `bash .aether/aether-utils.sh activity-log "PLAN_COMPLETE" "queen" "Plan finalized with {confidence}% confidence"`
|
|
437
571
|
|
|
438
572
|
Update watch-status.txt:
|
|
439
573
|
```
|
|
@@ -449,12 +583,6 @@ Ready to build.
|
|
|
449
583
|
|
|
450
584
|
### Step 6: Display Plan
|
|
451
585
|
|
|
452
|
-
**If visual_mode is true, render final swarm display:**
|
|
453
|
-
```bash
|
|
454
|
-
bash .aether/aether-utils.sh swarm-display-update "Queen" "prime" "completed" "Plan generated" "Colony" '{"read":8,"grep":4,"edit":2,"bash":1}' 100 "fungus_garden" 100
|
|
455
|
-
bash .aether/aether-utils.sh swarm-display-render "$plan_id"
|
|
456
|
-
```
|
|
457
|
-
|
|
458
586
|
Read `plan.phases` from COLONY_STATE.json and display:
|
|
459
587
|
|
|
460
588
|
```
|
|
@@ -510,7 +638,7 @@ Each dimension rated 0-100%:
|
|
|
510
638
|
|
|
511
639
|
**Overall** = weighted average (knowledge 25%, requirements 25%, risks 20%, dependencies 15%, effort 15%)
|
|
512
640
|
|
|
513
|
-
**Target
|
|
641
|
+
**Target:** Use the selected planning depth target. Higher targets trade latency for stronger up-front plan quality.
|
|
514
642
|
|
|
515
643
|
---
|
|
516
644
|
|
|
@@ -518,9 +646,9 @@ Each dimension rated 0-100%:
|
|
|
518
646
|
|
|
519
647
|
The planning loop terminates automatically without requiring user input:
|
|
520
648
|
|
|
521
|
-
1. **Confidence Threshold**: Loop exits when overall confidence reaches
|
|
649
|
+
1. **Confidence Threshold**: Loop exits when overall confidence reaches `{target_confidence}%`
|
|
522
650
|
|
|
523
|
-
2. **Hard Iteration Cap**: Maximum
|
|
651
|
+
2. **Hard Iteration Cap**: Maximum `{max_iterations}` iterations (2 subagents per iteration: 1 scout + 1 planner)
|
|
524
652
|
|
|
525
653
|
3. **Stall Detection**: If confidence improves < 5% for 2 consecutive iterations, auto-finalize current plan
|
|
526
654
|
|