aether-colony 5.0.0 → 5.2.1
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 +3226 -3345
- 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 +442 -0
- package/.aether/commands/continue.yaml +1484 -0
- package/.aether/commands/council.yaml +509 -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 +502 -0
- package/.aether/commands/insert-phase.yaml +102 -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 +1364 -0
- package/.aether/commands/preferences.yaml +63 -0
- package/.aether/commands/quick.yaml +104 -0
- package/.aether/commands/redirect.yaml +123 -0
- package/.aether/commands/resume-colony.yaml +375 -0
- package/.aether/commands/resume.yaml +407 -0
- package/.aether/commands/run.yaml +229 -0
- package/.aether/commands/seal.yaml +1214 -0
- package/.aether/commands/skill-create.yaml +337 -0
- package/.aether/commands/status.yaml +408 -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 +1683 -0
- package/.aether/docs/command-playbooks/build-prep.md +284 -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 +1725 -0
- package/.aether/docs/command-playbooks/continue-gates.md +686 -0
- package/.aether/docs/command-playbooks/continue-verify.md +407 -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/council.sh +425 -0
- 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 +278 -0
- package/.aether/utils/hive.sh +572 -0
- package/.aether/utils/immune.sh +508 -0
- package/.aether/utils/learning.sh +1928 -0
- package/.aether/utils/midden.sh +520 -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 +1710 -0
- package/.aether/utils/scan.sh +860 -0
- package/.aether/utils/semantic-cli.sh +10 -8
- package/.aether/utils/session.sh +816 -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 +389 -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 +3 -14
- package/.claude/commands/ant/continue.md +40 -1026
- package/.claude/commands/ant/council.md +213 -15
- 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 +349 -191
- package/.claude/commands/ant/insert-phase.md +105 -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 +199 -50
- package/.claude/commands/ant/preferences.md +65 -0
- package/.claude/commands/ant/quick.md +100 -0
- package/.claude/commands/ant/redirect.md +18 -0
- package/.claude/commands/ant/resume-colony.md +37 -22
- package/.claude/commands/ant/resume.md +60 -7
- package/.claude/commands/ant/run.md +231 -0
- package/.claude/commands/ant/seal.md +506 -78
- package/.claude/commands/ant/skill-create.md +286 -0
- package/.claude/commands/ant/status.md +171 -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 +10 -17
- package/.opencode/commands/ant/continue.md +595 -66
- package/.opencode/commands/ant/council.md +150 -18
- 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 +396 -154
- package/.opencode/commands/ant/insert-phase.md +111 -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 +210 -57
- package/.opencode/commands/ant/preferences.md +71 -0
- package/.opencode/commands/ant/quick.md +91 -0
- package/.opencode/commands/ant/redirect.md +22 -5
- package/.opencode/commands/ant/resume-colony.md +41 -29
- package/.opencode/commands/ant/resume.md +80 -20
- package/.opencode/commands/ant/run.md +237 -0
- package/.opencode/commands/ant/seal.md +230 -25
- package/.opencode/commands/ant/skill-create.md +63 -0
- package/.opencode/commands/ant/status.md +125 -30
- 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 +368 -1
- package/README.md +195 -324
- 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 +16 -4
- 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,3 +1,4 @@
|
|
|
1
|
+
<!-- Generated from .aether/commands/council.yaml - DO NOT EDIT DIRECTLY -->
|
|
1
2
|
---
|
|
2
3
|
name: ant:council
|
|
3
4
|
description: "📜🐜🏛️🐜📜 Convene council for intent clarification via multi-choice questions"
|
|
@@ -8,20 +9,212 @@ You are the **Queen Ant Colony**. Convene the council to clarify user intent and
|
|
|
8
9
|
## Instructions
|
|
9
10
|
|
|
10
11
|
Parse `$ARGUMENTS`:
|
|
12
|
+
- If starts with `--deliberate`: set `deliberate_mode = true`, extract proposal text after `--deliberate`
|
|
11
13
|
- If contains `--no-visual`: set `visual_mode = false` (visual is ON by default)
|
|
12
14
|
- Otherwise: set `visual_mode = true`
|
|
13
15
|
|
|
14
|
-
|
|
16
|
+
**If `deliberate_mode` is true:** Skip to [Deliberation Mode](#deliberation-mode) and stop after it.
|
|
15
17
|
|
|
16
|
-
|
|
18
|
+
---
|
|
19
|
+
|
|
20
|
+
## Deliberation Mode
|
|
21
|
+
|
|
22
|
+
When `--deliberate "<proposal>"` is passed, run a structured Advocate/Challenger/Sage deliberation.
|
|
23
|
+
|
|
24
|
+
### Step D1: Check Budget
|
|
25
|
+
|
|
26
|
+
Run using the Bash tool with description "Checking deliberation budget...":
|
|
27
|
+
```bash
|
|
28
|
+
bash .aether/aether-utils.sh council-budget-check
|
|
29
|
+
```
|
|
30
|
+
|
|
31
|
+
Parse result. If `allowed` is `false`:
|
|
32
|
+
```
|
|
33
|
+
📜🐜🏛️🐜📜 COUNCIL — BUDGET EXHAUSTED
|
|
34
|
+
|
|
35
|
+
Spawn budget is fully allocated. Complete or close existing deliberations before starting new ones.
|
|
36
|
+
Run /ant:council to review existing deliberations.
|
|
37
|
+
```
|
|
38
|
+
Stop here.
|
|
39
|
+
|
|
40
|
+
### Step D2: Open Deliberation
|
|
41
|
+
|
|
42
|
+
Run using the Bash tool with description "Opening deliberation...":
|
|
43
|
+
```bash
|
|
44
|
+
bash .aether/aether-utils.sh council-deliberate --proposal "<proposal>"
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Capture `deliberation_id` from `result.id`.
|
|
48
|
+
|
|
49
|
+
Display:
|
|
50
|
+
```
|
|
51
|
+
📜🐜🏛️🐜📜 COUNCIL DELIBERATION OPENED
|
|
52
|
+
|
|
53
|
+
Proposal: "<proposal>"
|
|
54
|
+
ID: {deliberation_id}
|
|
55
|
+
Budget: {budget} spawns available
|
|
56
|
+
|
|
57
|
+
Convening Advocate, Challenger, and Sage...
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
### Step D3: Spawn Advocate Scout
|
|
61
|
+
|
|
62
|
+
Spawn an Advocate scout to argue **in favor** of the proposal.
|
|
63
|
+
|
|
64
|
+
|
|
65
|
+
Use the Task tool to spawn a scout with the following system prompt:
|
|
66
|
+
```
|
|
67
|
+
You are the Advocate on the Ant Colony council.
|
|
68
|
+
Your role is to argue STRONGLY IN FAVOR of the proposal.
|
|
69
|
+
Present the strongest possible case for why this proposal should be adopted.
|
|
70
|
+
Be specific. Focus on concrete benefits and outcomes.
|
|
71
|
+
Keep your argument under 200 words.
|
|
72
|
+
Reply with ONLY your argument text — no preamble or meta-commentary.
|
|
73
|
+
```
|
|
74
|
+
|
|
75
|
+
And user message:
|
|
76
|
+
```
|
|
77
|
+
Proposal: "<proposal>"
|
|
78
|
+
|
|
79
|
+
Present your strongest argument in favor of this proposal.
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
Capture the advocate's argument as `advocate_argument`.
|
|
83
|
+
|
|
84
|
+
|
|
85
|
+
Record the argument:
|
|
86
|
+
```bash
|
|
87
|
+
bash .aether/aether-utils.sh council-advocate \
|
|
88
|
+
--deliberation-id "<deliberation_id>" \
|
|
89
|
+
--argument "<advocate_argument>"
|
|
90
|
+
```
|
|
91
|
+
|
|
92
|
+
Display:
|
|
93
|
+
```
|
|
94
|
+
⚖️ ADVOCATE:
|
|
95
|
+
{advocate_argument}
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
### Step D4: Spawn Challenger Scout
|
|
99
|
+
|
|
100
|
+
Spawn a Challenger scout to argue **against** the proposal.
|
|
101
|
+
|
|
102
|
+
|
|
103
|
+
Use the Task tool to spawn a scout with the following system prompt:
|
|
104
|
+
```
|
|
105
|
+
You are the Challenger on the Ant Colony council.
|
|
106
|
+
Your role is to argue STRONGLY AGAINST the proposal.
|
|
107
|
+
Present the strongest possible case for why this proposal should be rejected or deferred.
|
|
108
|
+
Be specific. Focus on concrete risks, costs, and downsides.
|
|
109
|
+
Keep your argument under 200 words.
|
|
110
|
+
Reply with ONLY your argument text — no preamble or meta-commentary.
|
|
111
|
+
```
|
|
112
|
+
|
|
113
|
+
And user message:
|
|
114
|
+
```
|
|
115
|
+
Proposal: "<proposal>"
|
|
116
|
+
|
|
117
|
+
Present your strongest argument against this proposal.
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Capture the challenger's argument as `challenger_argument`.
|
|
121
|
+
|
|
122
|
+
|
|
123
|
+
Record the argument:
|
|
124
|
+
```bash
|
|
125
|
+
bash .aether/aether-utils.sh council-challenger \
|
|
126
|
+
--deliberation-id "<deliberation_id>" \
|
|
127
|
+
--argument "<challenger_argument>"
|
|
128
|
+
```
|
|
129
|
+
|
|
130
|
+
Display:
|
|
131
|
+
```
|
|
132
|
+
⚔️ CHALLENGER:
|
|
133
|
+
{challenger_argument}
|
|
134
|
+
```
|
|
135
|
+
|
|
136
|
+
### Step D5: Spawn Sage Scout
|
|
137
|
+
|
|
138
|
+
Spawn a Sage scout to synthesize both positions and provide a recommendation.
|
|
139
|
+
|
|
140
|
+
|
|
141
|
+
Use the Task tool to spawn a scout with the following system prompt:
|
|
142
|
+
```
|
|
143
|
+
You are the Sage on the Ant Colony council.
|
|
144
|
+
You have heard both the Advocate and Challenger arguments.
|
|
145
|
+
Your role is to synthesize both positions into balanced wisdom and provide a clear recommendation.
|
|
146
|
+
Your recommendation must be one of: adopt, reject, defer, or adopt-with-conditions.
|
|
147
|
+
Keep your synthesis under 150 words.
|
|
148
|
+
Reply with JSON only:
|
|
149
|
+
{"synthesis": "<your balanced synthesis>", "recommendation": "adopt|reject|defer|adopt-with-conditions"}
|
|
150
|
+
```
|
|
151
|
+
|
|
152
|
+
And user message:
|
|
153
|
+
```
|
|
154
|
+
Proposal: "<proposal>"
|
|
155
|
+
|
|
156
|
+
Advocate argued: "<advocate_argument>"
|
|
157
|
+
|
|
158
|
+
Challenger argued: "<challenger_argument>"
|
|
159
|
+
|
|
160
|
+
Synthesize both positions and provide your recommendation.
|
|
161
|
+
```
|
|
162
|
+
|
|
163
|
+
Parse the JSON response. Capture `synthesis` and `recommendation`.
|
|
164
|
+
|
|
165
|
+
|
|
166
|
+
Record the sage synthesis:
|
|
17
167
|
```bash
|
|
18
|
-
|
|
19
|
-
|
|
168
|
+
bash .aether/aether-utils.sh council-sage \
|
|
169
|
+
--deliberation-id "<deliberation_id>" \
|
|
170
|
+
--synthesis "<synthesis>" \
|
|
171
|
+
--recommendation "<recommendation>"
|
|
172
|
+
```
|
|
173
|
+
|
|
174
|
+
### Step D6: Display Result
|
|
175
|
+
|
|
176
|
+
```
|
|
177
|
+
📜🐜🏛️🐜📜 COUNCIL DELIBERATION COMPLETE
|
|
178
|
+
|
|
179
|
+
Proposal: "<proposal>"
|
|
180
|
+
|
|
181
|
+
⚖️ Advocate:
|
|
182
|
+
{advocate_argument}
|
|
183
|
+
|
|
184
|
+
⚔️ Challenger:
|
|
185
|
+
{challenger_argument}
|
|
186
|
+
|
|
187
|
+
🧙 Sage Synthesis:
|
|
188
|
+
{synthesis}
|
|
189
|
+
|
|
190
|
+
Recommendation: {recommendation}
|
|
191
|
+
```
|
|
192
|
+
|
|
193
|
+
If recommendation is `adopt` or `adopt-with-conditions`:
|
|
194
|
+
```
|
|
195
|
+
✅ Council recommends proceeding.
|
|
196
|
+
Run /ant:focus "<proposal summary>" to inject guidance for the colony.
|
|
197
|
+
```
|
|
198
|
+
|
|
199
|
+
If recommendation is `reject`:
|
|
200
|
+
```
|
|
201
|
+
❌ Council recommends against this proposal.
|
|
202
|
+
Run /ant:redirect "<proposal summary>" if you want to make this a hard constraint.
|
|
203
|
+
```
|
|
20
204
|
|
|
21
|
-
|
|
22
|
-
bash .aether/aether-utils.sh swarm-display-init "$council_id"
|
|
23
|
-
bash .aether/aether-utils.sh swarm-display-update "Queen" "prime" "excavating" "Convening council" "Colony" '{"read":0,"grep":0,"edit":0,"bash":0}' 0 "fungus_garden" 0
|
|
205
|
+
If recommendation is `defer`:
|
|
24
206
|
```
|
|
207
|
+
⏸️ Council recommends deferring this decision.
|
|
208
|
+
Return when more context is available.
|
|
209
|
+
```
|
|
210
|
+
|
|
211
|
+
---
|
|
212
|
+
|
|
213
|
+
|
|
214
|
+
|
|
215
|
+
### Step 0: Initialize Visual Mode (if enabled)
|
|
216
|
+
|
|
217
|
+
If `visual_mode` is true, run using the Bash tool with description "Initializing council display...":
|
|
25
218
|
|
|
26
219
|
### Step 1: Read Current State
|
|
27
220
|
|
|
@@ -35,6 +228,12 @@ No colony initialized. Run /ant:init first.
|
|
|
35
228
|
```
|
|
36
229
|
Stop here.
|
|
37
230
|
|
|
231
|
+
If `milestone` == `"Crowned Anthill"`:
|
|
232
|
+
```
|
|
233
|
+
This colony has been sealed. Start a new colony with /ant:init "new goal".
|
|
234
|
+
```
|
|
235
|
+
Stop here.
|
|
236
|
+
|
|
38
237
|
Capture the current state for context:
|
|
39
238
|
- `prior_state` = state field value (READY, EXECUTING, PLANNING, etc.)
|
|
40
239
|
- `current_phase` = current_phase field value
|
|
@@ -42,10 +241,13 @@ Capture the current state for context:
|
|
|
42
241
|
|
|
43
242
|
### Step 2: Display Council Header
|
|
44
243
|
|
|
244
|
+
|
|
45
245
|
```
|
|
46
246
|
📜🐜🏛️🐜📜 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
47
|
-
|
|
48
|
-
|
|
247
|
+
A N T C O U N C I L
|
|
248
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 📜🐜🏛️🐜📜
|
|
249
|
+
|
|
250
|
+
|
|
49
251
|
|
|
50
252
|
👑 Queen convenes the council for guidance
|
|
51
253
|
|
|
@@ -239,12 +441,6 @@ Keep max 100 events.
|
|
|
239
441
|
|
|
240
442
|
### Step 8: Display Summary
|
|
241
443
|
|
|
242
|
-
**If visual_mode is true, render final swarm display** by running using the Bash tool with description "Updating council display...":
|
|
243
|
-
```bash
|
|
244
|
-
bash .aether/aether-utils.sh swarm-display-update "Queen" "prime" "completed" "Council adjourned" "Colony" '{"read":3,"grep":0,"edit":2,"bash":1}' 100 "fungus_garden" 100
|
|
245
|
-
bash .aether/aether-utils.sh swarm-display-text "$council_id"
|
|
246
|
-
```
|
|
247
|
-
|
|
248
444
|
```
|
|
249
445
|
📜🐜🏛️🐜📜 COUNCIL ADJOURNED
|
|
250
446
|
|
|
@@ -298,6 +494,7 @@ If `prior_state` was PLANNING:
|
|
|
298
494
|
Planning will continue with new guidance.
|
|
299
495
|
```
|
|
300
496
|
|
|
497
|
+
|
|
301
498
|
### Step 9: Next Up
|
|
302
499
|
|
|
303
500
|
Generate the state-based Next Up block by running using the Bash tool with description "Generating Next Up suggestions...":
|
|
@@ -307,3 +504,4 @@ current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
|
|
|
307
504
|
total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
|
|
308
505
|
bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_phases"
|
|
309
506
|
```
|
|
507
|
+
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
<!-- Generated from .aether/commands/data-clean.yaml - DO NOT EDIT DIRECTLY -->
|
|
2
|
+
---
|
|
3
|
+
name: ant:data-clean
|
|
4
|
+
description: "Scan and remove test artifacts from colony data files"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
You are the **Queen Ant Colony**. Run the data cleaner to scan for and remove test/synthetic artifacts from colony data files.
|
|
8
|
+
|
|
9
|
+
|
|
10
|
+
> **Note:** `$ARGUMENTS` is unused. This command always scans all data files.
|
|
11
|
+
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
## Instructions
|
|
15
|
+
|
|
16
|
+
### Step 1: Scan
|
|
17
|
+
|
|
18
|
+
Run using the Bash tool with description "Scanning colony data for test artifacts...":
|
|
19
|
+
```bash
|
|
20
|
+
bash .aether/aether-utils.sh data-clean --dry-run
|
|
21
|
+
```
|
|
22
|
+
|
|
23
|
+
Display the output to the user. This shows artifact counts per data file without modifying anything.
|
|
24
|
+
|
|
25
|
+
### Step 2: Decision Gate
|
|
26
|
+
|
|
27
|
+
Parse the scan output for "Total artifacts: N".
|
|
28
|
+
|
|
29
|
+
**If total is 0:**
|
|
30
|
+
Display:
|
|
31
|
+
```
|
|
32
|
+
Colony data is clean. No artifacts found.
|
|
33
|
+
```
|
|
34
|
+
Skip to Step 5.
|
|
35
|
+
|
|
36
|
+
**If total is greater than 0:**
|
|
37
|
+
Ask the user:
|
|
38
|
+
```
|
|
39
|
+
Found {N} test artifacts across colony data files.
|
|
40
|
+
Remove these artifacts? (yes/no)
|
|
41
|
+
```
|
|
42
|
+
|
|
43
|
+
If user says no, display "No changes made." and skip to Step 5.
|
|
44
|
+
|
|
45
|
+
### Step 3: Clean
|
|
46
|
+
|
|
47
|
+
If user confirmed, run using the Bash tool with description "Removing test artifacts...":
|
|
48
|
+
```bash
|
|
49
|
+
bash .aether/aether-utils.sh data-clean --confirm
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
### Step 4: Summary
|
|
53
|
+
|
|
54
|
+
Display the cleanup results showing what was removed from each file.
|
|
55
|
+
|
|
56
|
+
For example:
|
|
57
|
+
```
|
|
58
|
+
Data Clean Complete
|
|
59
|
+
===================
|
|
60
|
+
Removed {total} artifacts:
|
|
61
|
+
- pheromones.json: {N} test signals
|
|
62
|
+
- QUEEN.md: {N} test entries
|
|
63
|
+
- learning-observations.json: {N} test observations
|
|
64
|
+
- midden.json: {N} test entries
|
|
65
|
+
- spawn-tree.txt: {N} test worker lines
|
|
66
|
+
- constraints.json: {N} test focus entries
|
|
67
|
+
|
|
68
|
+
Run /ant:status to verify colony state.
|
|
69
|
+
```
|
|
70
|
+
|
|
71
|
+
|
|
72
|
+
### Step 5: Next Up
|
|
73
|
+
|
|
74
|
+
Generate the state-based Next Up block by running using the Bash tool with description "Generating Next Up suggestions...":
|
|
75
|
+
```bash
|
|
76
|
+
state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
|
|
77
|
+
current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
|
|
78
|
+
total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
|
|
79
|
+
bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_phases"
|
|
80
|
+
```
|
|
81
|
+
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
<!-- Generated from .aether/commands/dream.yaml - DO NOT EDIT DIRECTLY -->
|
|
1
2
|
---
|
|
2
3
|
name: ant:dream
|
|
3
4
|
description: "💭🐜🌙🐜💭 The Dreamer - a philosophical wanderer that observes, imagines, and writes wisdom about the codebase"
|
|
@@ -35,17 +36,9 @@ Parse `$ARGUMENTS`:
|
|
|
35
36
|
- If contains `--no-visual`: set `visual_mode = false` (visual is ON by default)
|
|
36
37
|
- Otherwise: set `visual_mode = true`
|
|
37
38
|
|
|
38
|
-
### Step 0.5: Initialize Visual Mode (if enabled)
|
|
39
39
|
|
|
40
|
-
|
|
41
|
-
```bash
|
|
42
|
-
# Generate session ID
|
|
43
|
-
dream_id="dream-$(date +%s)"
|
|
40
|
+
### Step 0.5: Initialize Visual Mode (if enabled)
|
|
44
41
|
|
|
45
|
-
# Initialize swarm display
|
|
46
|
-
bash .aether/aether-utils.sh swarm-display-init "$dream_id"
|
|
47
|
-
bash .aether/aether-utils.sh swarm-display-update "Dreamer" "dreamer" "observing" "Wandering the codebase" "Colony" '{"read":0,"grep":0,"edit":0,"bash":0}' 0 "nursery" 0
|
|
48
|
-
```
|
|
49
42
|
|
|
50
43
|
### Step 1: Awaken — Load Context
|
|
51
44
|
|
|
@@ -66,11 +59,14 @@ Read these files in parallel to understand the world you're dreaming about:
|
|
|
66
59
|
- Read the most recent dream file if one exists (to avoid repeating yourself)
|
|
67
60
|
|
|
68
61
|
Display awakening:
|
|
62
|
+
|
|
69
63
|
```
|
|
70
64
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
71
65
|
💭🐜🌙🐜💭 T H E D R E A M E R A W A K E N S
|
|
72
66
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
73
67
|
|
|
68
|
+
|
|
69
|
+
|
|
74
70
|
Colony: {goal}
|
|
75
71
|
Phase: {current_phase}/{total_phases} — {phase_name}
|
|
76
72
|
State: {state}
|
|
@@ -197,11 +193,14 @@ Concerns raised: {count}
|
|
|
197
193
|
|
|
198
194
|
Output to the terminal:
|
|
199
195
|
|
|
196
|
+
|
|
200
197
|
```
|
|
201
198
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
202
199
|
💭🐜🌙🐜💭 D R E A M C O M P L E T E
|
|
203
200
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
204
201
|
|
|
202
|
+
|
|
203
|
+
|
|
205
204
|
📓 {N} dreams recorded → .aether/dreams/{filename}.md
|
|
206
205
|
|
|
207
206
|
{For each dream, one line:}
|
|
@@ -224,11 +223,14 @@ Colony status: /ant:status
|
|
|
224
223
|
|
|
225
224
|
### Step 6: Log Activity
|
|
226
225
|
|
|
226
|
+
|
|
227
227
|
Run using the Bash tool with description "Logging dream activity...":
|
|
228
|
+
|
|
228
229
|
```bash
|
|
229
230
|
bash .aether/aether-utils.sh activity-log "DREAM" "Dreamer" "Dream session: {N} observations, {concerns} concerns, {pheromones} pheromone suggestions"
|
|
230
231
|
```
|
|
231
232
|
|
|
233
|
+
|
|
232
234
|
Generate the state-based Next Up block by running using the Bash tool with description "Generating Next Up suggestions...":
|
|
233
235
|
```bash
|
|
234
236
|
state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
|
|
@@ -237,6 +239,7 @@ total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
|
|
|
237
239
|
bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_phases"
|
|
238
240
|
```
|
|
239
241
|
|
|
242
|
+
|
|
240
243
|
## Dream Categories
|
|
241
244
|
|
|
242
245
|
Use these categories and their emoji consistently:
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
<!-- Generated from .aether/commands/entomb.yaml - DO NOT EDIT DIRECTLY -->
|
|
1
2
|
---
|
|
2
3
|
name: ant:entomb
|
|
3
4
|
description: "⚰️🐜⚰️ Entomb completed colony in chambers"
|
|
@@ -52,14 +53,6 @@ Do not touch during entomb:
|
|
|
52
53
|
### Step 0: Initialize Visual Mode (if enabled)
|
|
53
54
|
|
|
54
55
|
If `visual_mode` is true:
|
|
55
|
-
```bash
|
|
56
|
-
# Generate session ID
|
|
57
|
-
entomb_id="entomb-$(date +%s)"
|
|
58
|
-
|
|
59
|
-
# Initialize swarm display (consolidated)
|
|
60
|
-
bash .aether/aether-utils.sh swarm-display-init "$entomb_id" && bash .aether/aether-utils.sh swarm-display-update "Queen" "prime" "excavating" "Entombing colony" "Colony" '{"read":0,"grep":0,"edit":0,"bash":0}' 0 "fungus_garden" 0
|
|
61
|
-
```
|
|
62
|
-
|
|
63
56
|
### Step 1: Read State
|
|
64
57
|
|
|
65
58
|
Read `.aether/data/COLONY_STATE.json`.
|
|
@@ -72,6 +65,12 @@ Stop here.
|
|
|
72
65
|
|
|
73
66
|
Extract: `goal`, `state`, `current_phase`, `plan.phases`, `milestone`, `version`, `initialized_at`, `memory.decisions`, `memory.phase_learnings`, `memory.instincts`.
|
|
74
67
|
|
|
68
|
+
Read `colony_version` for display (default to 1 for backward compat with older colonies):
|
|
69
|
+
```bash
|
|
70
|
+
colony_version=$(jq -r '.colony_version // 1' .aether/data/COLONY_STATE.json 2>/dev/null || echo 1)
|
|
71
|
+
[[ "$colony_version" =~ ^[0-9]+$ ]] || colony_version=1
|
|
72
|
+
```
|
|
73
|
+
|
|
75
74
|
### Step 2: Seal-First Enforcement
|
|
76
75
|
|
|
77
76
|
Check `milestone` in COLONY_STATE.json.
|
|
@@ -100,6 +99,7 @@ Show what will be archived:
|
|
|
100
99
|
ENTOMB COLONY
|
|
101
100
|
|
|
102
101
|
Goal: {goal}
|
|
102
|
+
Version: v{colony_version}
|
|
103
103
|
Milestone: Crowned Anthill
|
|
104
104
|
Phases: {phases_completed} of {total_phases}
|
|
105
105
|
|
|
@@ -123,6 +123,36 @@ Entombment cancelled. Colony remains active.
|
|
|
123
123
|
```
|
|
124
124
|
Stop here.
|
|
125
125
|
|
|
126
|
+
### Step 3.25: Wisdom Approval
|
|
127
|
+
|
|
128
|
+
Before archiving, review wisdom proposals accumulated during this colony's lifecycle.
|
|
129
|
+
|
|
130
|
+
```bash
|
|
131
|
+
# Check for pending proposals
|
|
132
|
+
proposals=$(bash .aether/aether-utils.sh learning-check-promotion 2>/dev/null || echo '{"proposals":[]}')
|
|
133
|
+
proposal_count=$(echo "$proposals" | jq '.proposals | length')
|
|
134
|
+
|
|
135
|
+
if [[ "$proposal_count" -gt 0 ]]; then
|
|
136
|
+
echo ""
|
|
137
|
+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
138
|
+
echo " 🧠 FINAL WISDOM REVIEW"
|
|
139
|
+
echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
140
|
+
echo ""
|
|
141
|
+
echo "Review wisdom proposals before archiving this colony."
|
|
142
|
+
echo "Approved proposals will be promoted to QUEEN.md."
|
|
143
|
+
echo ""
|
|
144
|
+
|
|
145
|
+
# Run approval workflow (blocking)
|
|
146
|
+
bash .aether/aether-utils.sh learning-approve-proposals
|
|
147
|
+
|
|
148
|
+
echo ""
|
|
149
|
+
echo "Wisdom review complete. Proceeding with entombment..."
|
|
150
|
+
echo ""
|
|
151
|
+
else
|
|
152
|
+
echo "No wisdom proposals to review."
|
|
153
|
+
fi
|
|
154
|
+
```
|
|
155
|
+
|
|
126
156
|
### Step 3.5: Check XML Tools
|
|
127
157
|
|
|
128
158
|
XML archiving is required for entombment. Check tool availability before proceeding.
|
|
@@ -168,90 +198,24 @@ Entombment requires XML archiving. Install xmllint and try again.
|
|
|
168
198
|
```
|
|
169
199
|
Stop here.
|
|
170
200
|
|
|
171
|
-
### Step 4:
|
|
172
|
-
|
|
173
|
-
Before creating the chamber, promote validated learnings to QUEEN.md for future colonies.
|
|
201
|
+
### Step 4: Ensure QUEEN.md Exists
|
|
174
202
|
|
|
175
|
-
|
|
203
|
+
Verify QUEEN.md is initialized for wisdom storage:
|
|
176
204
|
|
|
177
205
|
```bash
|
|
178
|
-
queen_file=".aether/
|
|
206
|
+
queen_file=".aether/QUEEN.md"
|
|
179
207
|
if [[ ! -f "$queen_file" ]]; then
|
|
180
208
|
init_result=$(bash .aether/aether-utils.sh queen-init 2>/dev/null || echo '{"ok":false}')
|
|
181
209
|
init_ok=$(echo "$init_result" | jq -r '.ok // false')
|
|
182
210
|
if [[ "$init_ok" == "true" ]]; then
|
|
183
211
|
created=$(echo "$init_result" | jq -r '.result.created // false')
|
|
184
212
|
if [[ "$created" == "true" ]]; then
|
|
185
|
-
bash .aether/aether-utils.sh activity-log "CREATED" "Queen" "Initialized QUEEN.md for wisdom
|
|
213
|
+
bash .aether/aether-utils.sh activity-log "CREATED" "Queen" "Initialized QUEEN.md for wisdom storage"
|
|
186
214
|
fi
|
|
187
215
|
fi
|
|
188
216
|
fi
|
|
189
217
|
```
|
|
190
218
|
|
|
191
|
-
**Step 4.2: Extract and promote validated learnings**
|
|
192
|
-
|
|
193
|
-
```bash
|
|
194
|
-
# Extract colony name from goal (sanitized)
|
|
195
|
-
colony_name=$(jq -r '.goal' .aether/data/COLONY_STATE.json | tr '[:upper:]' '[:lower:]' | tr -cs '[:alnum:]' '-' | sed 's/^-//;s/-$//' | cut -c1-30)
|
|
196
|
-
|
|
197
|
-
# Extract validated learnings from phase_learnings
|
|
198
|
-
learnings=$(jq -c '.memory.phase_learnings // []' .aether/data/COLONY_STATE.json)
|
|
199
|
-
|
|
200
|
-
# Extract decisions
|
|
201
|
-
decisions=$(jq -c '.memory.decisions // []' .aether/data/COLONY_STATE.json)
|
|
202
|
-
|
|
203
|
-
promotion_count=0
|
|
204
|
-
|
|
205
|
-
# Promote patterns from validated learnings
|
|
206
|
-
if [[ -f "$queen_file" ]]; then
|
|
207
|
-
# Process each phase's learnings
|
|
208
|
-
echo "$learnings" | jq -c '.[]' 2>/dev/null | while read -r learning_group; do
|
|
209
|
-
phase=$(echo "$learning_group" | jq -r '.phase // "unknown"')
|
|
210
|
-
# Extract individual learnings and promote as patterns
|
|
211
|
-
echo "$learning_group" | jq -r '.learnings[]? | select(.status == "validated") | .claim' 2>/dev/null | while read -r claim; do
|
|
212
|
-
if [[ -n "$claim" && "$claim" != "null" ]]; then
|
|
213
|
-
# Truncate if too long
|
|
214
|
-
content=$(echo "$claim" | cut -c1-200)
|
|
215
|
-
result=$(bash .aether/aether-utils.sh queen-promote "pattern" "$content" "$colony_name" 2>/dev/null || echo '{"ok":false}')
|
|
216
|
-
if [[ $(echo "$result" | jq -r '.ok // false') == "true" ]]; then
|
|
217
|
-
promotion_count=$((promotion_count + 1))
|
|
218
|
-
fi
|
|
219
|
-
fi
|
|
220
|
-
done
|
|
221
|
-
done
|
|
222
|
-
|
|
223
|
-
# Promote high-confidence instincts as patterns
|
|
224
|
-
instincts=$(jq -c '.memory.instincts // []' .aether/data/COLONY_STATE.json)
|
|
225
|
-
echo "$instincts" | jq -c '.[]' 2>/dev/null | while read -r instinct; do
|
|
226
|
-
confidence=$(echo "$instinct" | jq -r '.confidence // 0')
|
|
227
|
-
status=$(echo "$instinct" | jq -r '.status // ""')
|
|
228
|
-
action=$(echo "$instinct" | jq -r '.action // ""')
|
|
229
|
-
# Promote validated instincts with high confidence (>= 0.7)
|
|
230
|
-
if [[ "$status" == "validated" && $(echo "$confidence >= 0.7" | bc -l 2>/dev/null || echo 0) -eq 1 && -n "$action" ]]; then
|
|
231
|
-
content=$(echo "$action" | cut -c1-200)
|
|
232
|
-
result=$(bash .aether/aether-utils.sh queen-promote "pattern" "$content" "$colony_name" 2>/dev/null || echo '{"ok":false}')
|
|
233
|
-
if [[ $(echo "$result" | jq -r '.ok // false') == "true" ]]; then
|
|
234
|
-
promotion_count=$((promotion_count + 1))
|
|
235
|
-
fi
|
|
236
|
-
fi
|
|
237
|
-
done
|
|
238
|
-
|
|
239
|
-
# Log promotion results
|
|
240
|
-
bash .aether/aether-utils.sh activity-log "MODIFIED" "Queen" "Promoted $promotion_count validated learnings to QUEEN.md from entombed colony"
|
|
241
|
-
fi
|
|
242
|
-
```
|
|
243
|
-
|
|
244
|
-
**Step 4.3: Display promotion summary**
|
|
245
|
-
|
|
246
|
-
```
|
|
247
|
-
---
|
|
248
|
-
Wisdom Promotion Summary
|
|
249
|
-
---
|
|
250
|
-
Colony: {colony_name}
|
|
251
|
-
Promoted: {promotion_count} validated patterns to QUEEN.md
|
|
252
|
-
---
|
|
253
|
-
```
|
|
254
|
-
|
|
255
219
|
### Step 5: Generate Chamber Name
|
|
256
220
|
|
|
257
221
|
Date-first naming:
|
|
@@ -315,6 +279,15 @@ done
|
|
|
315
279
|
|
|
316
280
|
# Archive dreams directory (optional — may not exist)
|
|
317
281
|
[[ -d ".aether/dreams" ]] && cp -r ".aether/dreams" "$chamber_dir/dreams" 2>/dev/null || true
|
|
282
|
+
|
|
283
|
+
# Archive XML exchange files to chamber (per D-04, D-05)
|
|
284
|
+
xml_archived=0
|
|
285
|
+
for xml_file in .aether/exchange/*.xml; do
|
|
286
|
+
[[ -f "$xml_file" ]] && cp "$xml_file" "$chamber_dir/" && xml_archived=$((xml_archived + 1))
|
|
287
|
+
done
|
|
288
|
+
if [[ "$xml_archived" -gt 0 ]]; then
|
|
289
|
+
echo "XML Archive: ${xml_archived} exchange file(s) copied to chamber"
|
|
290
|
+
fi
|
|
318
291
|
```
|
|
319
292
|
|
|
320
293
|
Do NOT copy: `.aether/data/backups/`, `.aether/data/locks/`, `.aether/data/midden/`, `.aether/data/survey/`.
|
|
@@ -343,7 +316,8 @@ fi
|
|
|
343
316
|
If xml_ok is true, store for display:
|
|
344
317
|
```bash
|
|
345
318
|
xml_pheromone_count=$(echo "$xml_result" | jq -r '.result.pheromone_count // 0' 2>/dev/null)
|
|
346
|
-
|
|
319
|
+
xml_exchange_count=$(find .aether/exchange -maxdepth 1 -name "*.xml" 2>/dev/null | wc -l | tr -d ' ')
|
|
320
|
+
xml_archive_line="XML Archive: colony-archive.xml (${xml_pheromone_count} signals) + ${xml_exchange_count} exchange file(s)"
|
|
347
321
|
```
|
|
348
322
|
|
|
349
323
|
**Critical behavior:** If XML export fails, entomb STOPS. The chamber directory is removed (cleanup). The colony state is NOT reset. The user sees a clear error and can retry after fixing the issue.
|
|
@@ -379,8 +353,9 @@ if [[ -f "$eternal_file" ]]; then
|
|
|
379
353
|
--arg sealed_at "$(date -u +%Y-%m-%dT%H:%M:%SZ)" \
|
|
380
354
|
--arg chamber ".aether/chambers/$chamber_name" \
|
|
381
355
|
'{goal: $goal, milestone: $milestone, sealed_at: $sealed_at, chamber: $chamber}')
|
|
382
|
-
|
|
383
|
-
|
|
356
|
+
tmp_eternal="$(mktemp /tmp/aether-eternal.XXXXXX)"
|
|
357
|
+
jq --argjson colony_entry "$colony_entry" '.colonies = ((.colonies // []) + [$colony_entry])' "$eternal_file" > "$tmp_eternal" \
|
|
358
|
+
&& mv "$tmp_eternal" "$eternal_file"
|
|
384
359
|
fi
|
|
385
360
|
```
|
|
386
361
|
|
|
@@ -438,6 +413,11 @@ Clean up seal document (it's now in the chamber):
|
|
|
438
413
|
rm -f .aether/CROWNED-ANTHILL.md
|
|
439
414
|
```
|
|
440
415
|
|
|
416
|
+
Clean up exchange XML files (now archived in chamber per D-06):
|
|
417
|
+
```bash
|
|
418
|
+
rm -f .aether/exchange/*.xml 2>/dev/null || true
|
|
419
|
+
```
|
|
420
|
+
|
|
441
421
|
### Step 11: Write HANDOFF.md
|
|
442
422
|
|
|
443
423
|
Write handoff documenting the entombed colony:
|
|
@@ -461,18 +441,13 @@ Write the result to .aether/HANDOFF.md using the Write tool.
|
|
|
461
441
|
|
|
462
442
|
### Step 12: Display Result
|
|
463
443
|
|
|
464
|
-
**If visual_mode is true, render swarm display (consolidated):**
|
|
465
|
-
```bash
|
|
466
|
-
bash .aether/aether-utils.sh swarm-display-update "Queen" "prime" "completed" "Colony entombed" "Colony" '{"read":3,"grep":0,"edit":2,"bash":5}' 100 "fungus_garden" 100 && bash .aether/aether-utils.sh swarm-display-inline "$entomb_id"
|
|
467
|
-
```
|
|
468
|
-
|
|
469
444
|
Display:
|
|
470
445
|
```
|
|
471
446
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
472
447
|
C O L O N Y E N T O M B E D
|
|
473
448
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
474
449
|
|
|
475
|
-
|
|
450
|
+
Entombed v{colony_version}
|
|
476
451
|
|
|
477
452
|
Goal: {goal}
|
|
478
453
|
Phases: {completed} completed
|