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,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"
|
|
@@ -11,17 +12,10 @@ Parse `$ARGUMENTS`:
|
|
|
11
12
|
- If contains `--no-visual`: set `visual_mode = false` (visual is ON by default)
|
|
12
13
|
- Otherwise: set `visual_mode = true`
|
|
13
14
|
|
|
15
|
+
|
|
14
16
|
### Step 0: Initialize Visual Mode (if enabled)
|
|
15
17
|
|
|
16
18
|
If `visual_mode` is true, run using the Bash tool with description "Initializing council display...":
|
|
17
|
-
```bash
|
|
18
|
-
# Generate session ID
|
|
19
|
-
council_id="council-$(date +%s)"
|
|
20
|
-
|
|
21
|
-
# Initialize swarm display
|
|
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
|
|
24
|
-
```
|
|
25
19
|
|
|
26
20
|
### Step 1: Read Current State
|
|
27
21
|
|
|
@@ -42,10 +36,13 @@ Capture the current state for context:
|
|
|
42
36
|
|
|
43
37
|
### Step 2: Display Council Header
|
|
44
38
|
|
|
39
|
+
|
|
45
40
|
```
|
|
46
41
|
📜🐜🏛️🐜📜 ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
47
|
-
|
|
48
|
-
|
|
42
|
+
A N T C O U N C I L
|
|
43
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 📜🐜🏛️🐜📜
|
|
44
|
+
|
|
45
|
+
|
|
49
46
|
|
|
50
47
|
👑 Queen convenes the council for guidance
|
|
51
48
|
|
|
@@ -239,12 +236,6 @@ Keep max 100 events.
|
|
|
239
236
|
|
|
240
237
|
### Step 8: Display Summary
|
|
241
238
|
|
|
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
239
|
```
|
|
249
240
|
📜🐜🏛️🐜📜 COUNCIL ADJOURNED
|
|
250
241
|
|
|
@@ -298,6 +289,7 @@ If `prior_state` was PLANNING:
|
|
|
298
289
|
Planning will continue with new guidance.
|
|
299
290
|
```
|
|
300
291
|
|
|
292
|
+
|
|
301
293
|
### Step 9: Next Up
|
|
302
294
|
|
|
303
295
|
Generate the state-based Next Up block by running using the Bash tool with description "Generating Next Up suggestions...":
|
|
@@ -307,3 +299,4 @@ current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
|
|
|
307
299
|
total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
|
|
308
300
|
bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_phases"
|
|
309
301
|
```
|
|
302
|
+
|
|
@@ -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
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
<!-- Generated from .aether/commands/export-signals.yaml - DO NOT EDIT DIRECTLY -->
|
|
2
|
+
---
|
|
3
|
+
name: ant:export-signals
|
|
4
|
+
description: "Export colony pheromone signals to portable XML format"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
You are the **Queen**. Export colony pheromone signals to portable XML format.
|
|
8
|
+
|
|
9
|
+
## Instructions
|
|
10
|
+
|
|
11
|
+
The optional output path is: `$ARGUMENTS`
|
|
12
|
+
|
|
13
|
+
### Step 1: Validate
|
|
14
|
+
|
|
15
|
+
Read `.aether/data/COLONY_STATE.json`.
|
|
16
|
+
If file missing or `goal: null` -> "No colony initialized. Run /ant:init first.", stop.
|
|
17
|
+
|
|
18
|
+
Parse `$ARGUMENTS`:
|
|
19
|
+
- If a path is provided, use it as the output path.
|
|
20
|
+
- If empty, default to `.aether/exchange/pheromones.xml`.
|
|
21
|
+
|
|
22
|
+
### Step 2: Export
|
|
23
|
+
|
|
24
|
+
Run using the Bash tool with description "Exporting pheromone signals to XML...":
|
|
25
|
+
```bash
|
|
26
|
+
bash .aether/aether-utils.sh pheromone-export-xml "<output_path>"
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Parse the returned JSON:
|
|
30
|
+
- If `.ok` is `true`: extract `.result.path` and `.result.validated` (if present).
|
|
31
|
+
- If `.ok` is `false`: check `.error` for details. If error mentions `xmllint` or `E_FEATURE_UNAVAILABLE`, display: "XML export requires xmllint. Install with: xcode-select --install (macOS) or apt-get install libxml2-utils (Linux)." Otherwise display the error message and stop.
|
|
32
|
+
|
|
33
|
+
### Step 3: Confirm
|
|
34
|
+
|
|
35
|
+
|
|
36
|
+
Output (3-5 lines, no banners):
|
|
37
|
+
```
|
|
38
|
+
Pheromone signals exported to XML
|
|
39
|
+
Path: <output_path>
|
|
40
|
+
Validated: <yes/no based on .result.validated>
|
|
41
|
+
|
|
42
|
+
Share this file with another colony using /ant:import-signals.
|
|
43
|
+
```
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
|
|
47
|
+
|
|
48
|
+
### Step 4: Next Up
|
|
49
|
+
|
|
50
|
+
Generate the state-based Next Up block by running using the Bash tool with description "Generating Next Up suggestions...":
|
|
51
|
+
```bash
|
|
52
|
+
state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
|
|
53
|
+
current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
|
|
54
|
+
total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
|
|
55
|
+
bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_phases"
|
|
56
|
+
```
|
|
57
|
+
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
+
<!-- Generated from .aether/commands/feedback.yaml - DO NOT EDIT DIRECTLY -->
|
|
1
2
|
---
|
|
2
3
|
name: ant:feedback
|
|
3
4
|
description: "Emit FEEDBACK signal to provide guidance to colony"
|
|
4
5
|
---
|
|
5
6
|
|
|
7
|
+
|
|
6
8
|
You are the **Queen**. Emit a FEEDBACK pheromone signal.
|
|
7
9
|
|
|
10
|
+
|
|
11
|
+
|
|
8
12
|
## Instructions
|
|
9
13
|
|
|
10
14
|
The feedback message is: `$ARGUMENTS`
|
|
@@ -14,15 +18,18 @@ The feedback message is: `$ARGUMENTS`
|
|
|
14
18
|
If `$ARGUMENTS` empty -> show usage: `/ant:feedback <message>`, stop.
|
|
15
19
|
If content > 500 chars -> "Signal content too long (max 500 chars)", stop.
|
|
16
20
|
|
|
21
|
+
|
|
17
22
|
Parse optional flags from `$ARGUMENTS`:
|
|
18
23
|
- `--ttl <value>`: signal lifetime (e.g., `2h`, `1d`, `7d`). Default: `phase_end`.
|
|
19
24
|
- Strip flags from content before using it as the feedback message.
|
|
20
25
|
|
|
26
|
+
|
|
21
27
|
### Step 2: Write Signal and Create Instinct
|
|
22
28
|
|
|
23
29
|
Read `.aether/data/COLONY_STATE.json`.
|
|
24
30
|
If `goal: null` -> "No colony initialized.", stop.
|
|
25
31
|
|
|
32
|
+
|
|
26
33
|
Run using the Bash tool with description "Recording colony feedback...":
|
|
27
34
|
```bash
|
|
28
35
|
bash .aether/aether-utils.sh pheromone-write FEEDBACK "<content>" --strength 0.7 --reason "User feedback guidance" --ttl <ttl>
|
|
@@ -48,6 +55,13 @@ User feedback is high-value learning. Generate ISO-8601 timestamp and append to
|
|
|
48
55
|
|
|
49
56
|
Write COLONY_STATE.json.
|
|
50
57
|
|
|
58
|
+
### Step 2.5: Update Context Document
|
|
59
|
+
|
|
60
|
+
Run using the Bash tool with description "Updating context document...":
|
|
61
|
+
```bash
|
|
62
|
+
bash .aether/aether-utils.sh context-update constraint feedback "<content>" "user" 2>/dev/null || true
|
|
63
|
+
```
|
|
64
|
+
|
|
51
65
|
### Step 3: Get Active Counts
|
|
52
66
|
|
|
53
67
|
Run using the Bash tool with description "Counting active signals...":
|
|
@@ -67,6 +81,9 @@ FEEDBACK signal emitted
|
|
|
67
81
|
Instinct created: [0.7] <domain>: <action summary>
|
|
68
82
|
```
|
|
69
83
|
|
|
84
|
+
|
|
85
|
+
|
|
86
|
+
|
|
70
87
|
### Step 5: Next Up
|
|
71
88
|
|
|
72
89
|
Generate the state-based Next Up block by running using the Bash tool with description "Generating Next Up suggestions...":
|
|
@@ -76,3 +93,4 @@ current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
|
|
|
76
93
|
total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
|
|
77
94
|
bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_phases"
|
|
78
95
|
```
|
|
96
|
+
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
<!-- Generated from .aether/commands/flag.yaml - DO NOT EDIT DIRECTLY -->
|
|
1
2
|
---
|
|
2
3
|
name: ant:flag
|
|
3
4
|
description: "🚩🐜📋🐜🚩 Create a project-specific flag (blocker, issue, or note)"
|
|
@@ -61,23 +62,32 @@ Output header based on flag type:
|
|
|
61
62
|
|
|
62
63
|
**For blocker:**
|
|
63
64
|
```
|
|
65
|
+
|
|
64
66
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
65
67
|
🚩🐜📋🐜🚩 B L O C K E R F L A G C R E A T E D
|
|
66
68
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
69
|
+
|
|
70
|
+
|
|
67
71
|
```
|
|
68
72
|
|
|
69
73
|
**For issue:**
|
|
70
74
|
```
|
|
75
|
+
|
|
71
76
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
72
77
|
🚩🐜📋🐜🚩 I S S U E F L A G C R E A T E D
|
|
73
78
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
79
|
+
|
|
80
|
+
|
|
74
81
|
```
|
|
75
82
|
|
|
76
83
|
**For note:**
|
|
77
84
|
```
|
|
85
|
+
|
|
78
86
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
79
87
|
🚩🐜📋🐜🚩 N O T E F L A G C R E A T E D
|
|
80
88
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
89
|
+
|
|
90
|
+
|
|
81
91
|
```
|
|
82
92
|
|
|
83
93
|
Then output based on flag type:
|
|
@@ -119,6 +129,7 @@ Then output based on flag type:
|
|
|
119
129
|
Use /ant:flags to view all flags.
|
|
120
130
|
```
|
|
121
131
|
|
|
132
|
+
|
|
122
133
|
Generate the state-based Next Up block by running using the Bash tool with description "Generating Next Up suggestions...":
|
|
123
134
|
```bash
|
|
124
135
|
state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
|
|
@@ -127,6 +138,7 @@ total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
|
|
|
127
138
|
bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_phases"
|
|
128
139
|
```
|
|
129
140
|
|
|
141
|
+
|
|
130
142
|
---
|
|
131
143
|
|
|
132
144
|
## Flag Lifecycle
|