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
|
@@ -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
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
<!-- Generated from .aether/commands/flags.yaml - DO NOT EDIT DIRECTLY -->
|
|
1
2
|
---
|
|
2
3
|
name: ant:flags
|
|
3
4
|
description: "📋🐜🚩🐜📋 List project flags (blockers, issues, notes)"
|
|
@@ -27,7 +28,10 @@ Examples:
|
|
|
27
28
|
|
|
28
29
|
### Step 2: Handle Resolution/Acknowledgment
|
|
29
30
|
|
|
31
|
+
|
|
30
32
|
If `--resolve` was provided, run using the Bash tool with description "Resolving colony flag...":
|
|
33
|
+
|
|
34
|
+
|
|
31
35
|
```bash
|
|
32
36
|
bash .aether/aether-utils.sh flag-resolve "{flag_id}" "{resolution_message}"
|
|
33
37
|
```
|
|
@@ -39,7 +43,10 @@ Output:
|
|
|
39
43
|
```
|
|
40
44
|
Stop here.
|
|
41
45
|
|
|
46
|
+
|
|
42
47
|
If `--ack` was provided, run using the Bash tool with description "Acknowledging colony flag...":
|
|
48
|
+
|
|
49
|
+
|
|
43
50
|
```bash
|
|
44
51
|
bash .aether/aether-utils.sh flag-acknowledge "{flag_id}"
|
|
45
52
|
```
|
|
@@ -53,7 +60,10 @@ Stop here.
|
|
|
53
60
|
|
|
54
61
|
### Step 3: List Flags
|
|
55
62
|
|
|
63
|
+
|
|
56
64
|
Run using the Bash tool with description "Loading colony flags...":
|
|
65
|
+
|
|
66
|
+
|
|
57
67
|
```bash
|
|
58
68
|
bash .aether/aether-utils.sh flag-list {options}
|
|
59
69
|
```
|
|
@@ -64,19 +74,21 @@ Parse result for flags array.
|
|
|
64
74
|
|
|
65
75
|
Output header:
|
|
66
76
|
|
|
77
|
+
|
|
67
78
|
```
|
|
68
|
-
|
|
79
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
69
80
|
📋🐜🚩🐜📋 P R O J E C T F L A G S
|
|
70
|
-
|
|
71
|
-
|
|
81
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
82
|
+
|
|
83
|
+
|
|
72
84
|
|
|
73
85
|
If no flags:
|
|
74
86
|
```
|
|
75
87
|
.-.
|
|
76
88
|
(o o) AETHER COLONY
|
|
77
89
|
| O | Flags
|
|
78
|
-
|
|
79
|
-
|
|
90
|
+
`-"
|
|
91
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
80
92
|
|
|
81
93
|
✨ No active flags! Colony is clear.
|
|
82
94
|
|
|
@@ -88,8 +100,8 @@ If flags exist:
|
|
|
88
100
|
.-.
|
|
89
101
|
(o o) AETHER COLONY
|
|
90
102
|
| O | Flags
|
|
91
|
-
|
|
92
|
-
|
|
103
|
+
`-"
|
|
104
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
93
105
|
|
|
94
106
|
{for each flag, grouped by type:}
|
|
95
107
|
|
|
@@ -114,7 +126,7 @@ If flags exist:
|
|
|
114
126
|
{flag_id}: {title}
|
|
115
127
|
Resolved: {date} | {resolution}
|
|
116
128
|
|
|
117
|
-
|
|
129
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
118
130
|
|
|
119
131
|
Summary: {blockers} blockers | {issues} issues | {notes} notes
|
|
120
132
|
|
|
@@ -127,6 +139,7 @@ Commands:
|
|
|
127
139
|
/ant:flag "description" Create new flag
|
|
128
140
|
```
|
|
129
141
|
|
|
142
|
+
|
|
130
143
|
Generate the state-based Next Up block by running using the Bash tool with description "Generating Next Up suggestions...":
|
|
131
144
|
```bash
|
|
132
145
|
state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
|
|
@@ -135,6 +148,7 @@ total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
|
|
|
135
148
|
bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_phases"
|
|
136
149
|
```
|
|
137
150
|
|
|
151
|
+
|
|
138
152
|
---
|
|
139
153
|
|
|
140
154
|
## Quick Actions
|
|
@@ -1,10 +1,14 @@
|
|
|
1
|
+
<!-- Generated from .aether/commands/focus.yaml - DO NOT EDIT DIRECTLY -->
|
|
1
2
|
---
|
|
2
3
|
name: ant:focus
|
|
3
4
|
description: "Emit FOCUS signal to guide colony attention"
|
|
4
5
|
---
|
|
5
6
|
|
|
7
|
+
|
|
6
8
|
You are the **Queen**. Emit a FOCUS pheromone signal.
|
|
7
9
|
|
|
10
|
+
|
|
11
|
+
|
|
8
12
|
## Instructions
|
|
9
13
|
|
|
10
14
|
The focus area is: `$ARGUMENTS`
|
|
@@ -14,15 +18,18 @@ The focus area is: `$ARGUMENTS`
|
|
|
14
18
|
If `$ARGUMENTS` empty -> show usage: `/ant:focus <area>`, stop.
|
|
15
19
|
If content > 500 chars -> "Focus 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 focus area.
|
|
20
25
|
|
|
26
|
+
|
|
21
27
|
### Step 2: Write Signal
|
|
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 "Setting colony focus...":
|
|
27
34
|
```bash
|
|
28
35
|
bash .aether/aether-utils.sh pheromone-write FOCUS "<content>" --strength 0.8 --reason "User directed colony attention" --ttl <ttl>
|
|
@@ -30,6 +37,13 @@ bash .aether/aether-utils.sh pheromone-write FOCUS "<content>" --strength 0.8 --
|
|
|
30
37
|
|
|
31
38
|
Parse the returned JSON for the signal ID.
|
|
32
39
|
|
|
40
|
+
### Step 2.5: Update Context Document
|
|
41
|
+
|
|
42
|
+
Run using the Bash tool with description "Updating context document...":
|
|
43
|
+
```bash
|
|
44
|
+
bash .aether/aether-utils.sh context-update constraint focus "<content>" "user" 2>/dev/null || true
|
|
45
|
+
```
|
|
46
|
+
|
|
33
47
|
### Step 3: Get Active Counts
|
|
34
48
|
|
|
35
49
|
Run using the Bash tool with description "Counting active signals...":
|
|
@@ -47,6 +61,9 @@ FOCUS signal emitted
|
|
|
47
61
|
Active signals: <focus_count> FOCUS, <redirect_count> REDIRECT, <feedback_count> FEEDBACK
|
|
48
62
|
```
|
|
49
63
|
|
|
64
|
+
|
|
65
|
+
|
|
66
|
+
|
|
50
67
|
### Step 5: Next Up
|
|
51
68
|
|
|
52
69
|
Generate the state-based Next Up block by running using the Bash tool with description "Generating Next Up suggestions...":
|
|
@@ -56,3 +73,4 @@ current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
|
|
|
56
73
|
total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
|
|
57
74
|
bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_phases"
|
|
58
75
|
```
|
|
76
|
+
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
+
<!-- Generated from .aether/commands/help.yaml - DO NOT EDIT DIRECTLY -->
|
|
1
2
|
---
|
|
2
|
-
name: help
|
|
3
|
-
description: "
|
|
3
|
+
name: ant:help
|
|
4
|
+
description: "Aether Colony - command reference and system overview"
|
|
4
5
|
---
|
|
5
6
|
|
|
6
7
|
You are the **Queen Ant Colony**. Display the system overview and available commands.
|
|
@@ -13,12 +14,14 @@ Output the following:
|
|
|
13
14
|
👑 AETHER QUEEN ANT COLONY
|
|
14
15
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
15
16
|
|
|
17
|
+
|
|
16
18
|
A multi-agent system built on ant colony intelligence.
|
|
17
19
|
Workers self-organize via pheromone signals. You guide with intention.
|
|
18
20
|
|
|
19
|
-
GETTING STARTED
|
|
21
|
+
SETUP & GETTING STARTED
|
|
20
22
|
|
|
21
|
-
/ant:
|
|
23
|
+
/ant:lay-eggs Set up Aether in this repo (one-time, creates .aether/)
|
|
24
|
+
/ant:init "<goal>" Start a colony with a goal
|
|
22
25
|
/ant:colonize Analyze existing codebase (optional)
|
|
23
26
|
/ant:plan Generate project plan
|
|
24
27
|
/ant:build <phase> Execute a phase (spawns parallel workers)
|
|
@@ -29,24 +32,36 @@ PHEROMONE COMMANDS
|
|
|
29
32
|
/ant:focus "<area>" Guide colony attention (priority: normal, expires: phase end)
|
|
30
33
|
/ant:redirect "<pat>" Warn away from pattern (priority: high, expires: phase end)
|
|
31
34
|
/ant:feedback "<msg>" Adjust behavior (priority: low, expires: phase end)
|
|
35
|
+
/ant:pheromones View and manage active pheromone signals
|
|
36
|
+
/ant:export-signals [path] Export pheromone signals to portable XML
|
|
37
|
+
/ant:import-signals <file> [colony] Import signals from another colony's XML
|
|
32
38
|
|
|
33
39
|
STATUS & UPDATES
|
|
34
40
|
|
|
35
41
|
/ant:status Colony dashboard — goal, phase, instincts, flags
|
|
36
42
|
/ant:update Update system files from global hub (~/.aether/)
|
|
37
43
|
/ant:phase [N|list] View phase details or list all phases
|
|
44
|
+
/ant:insert-phase Insert a corrective phase after current phase
|
|
38
45
|
/ant:flags List active flags (blockers, issues, notes)
|
|
39
46
|
/ant:flag "<title>" Create a flag (blocker, issue, or note)
|
|
40
47
|
|
|
48
|
+
/ant:memory-details Show detailed colony memory — wisdom, promotions, failures
|
|
49
|
+
/ant:maturity View colony maturity journey and milestone progress
|
|
50
|
+
|
|
51
|
+
|
|
41
52
|
SESSION COMMANDS
|
|
42
53
|
|
|
43
54
|
/ant:pause-colony Save state and create handoff document
|
|
44
55
|
/ant:resume-colony Restore from pause (full state + context)
|
|
56
|
+
|
|
57
|
+
/ant:resume Quick session restore (memory health + next steps)
|
|
58
|
+
|
|
45
59
|
/ant:watch Set up tmux session for live colony visibility
|
|
46
60
|
|
|
47
61
|
COLONY LIFECYCLE
|
|
48
62
|
|
|
49
63
|
/ant:seal Seal colony with Crowned Anthill milestone
|
|
64
|
+
/ant:entomb Archive completed colony into chambers
|
|
50
65
|
/ant:history Browse colony event history
|
|
51
66
|
|
|
52
67
|
ADVANCED
|
|
@@ -58,10 +73,15 @@ ADVANCED
|
|
|
58
73
|
/ant:interpret Review dreams — validate against codebase, discuss action
|
|
59
74
|
/ant:chaos 🎲 Resilience testing — adversarial probing of the codebase
|
|
60
75
|
/ant:archaeology 🏺 Git history analysis — excavate patterns from commit history
|
|
76
|
+
/ant:tunnels Browse archived colonies and compare chambers
|
|
61
77
|
|
|
62
78
|
TYPICAL WORKFLOW
|
|
63
79
|
|
|
64
|
-
|
|
80
|
+
First time in a repo:
|
|
81
|
+
0. /ant:lay-eggs (set up Aether in this repo)
|
|
82
|
+
|
|
83
|
+
Starting a colony:
|
|
84
|
+
1. /ant:init "Build a REST API with auth" (start colony with a goal)
|
|
65
85
|
2. /ant:colonize (if existing code)
|
|
66
86
|
3. /ant:plan (generates phases)
|
|
67
87
|
4. /ant:focus "security" (optional guidance)
|
|
@@ -73,6 +93,11 @@ TYPICAL WORKFLOW
|
|
|
73
93
|
8. /ant:resume-colony (restore full context)
|
|
74
94
|
9. /ant:status (see where you left off)
|
|
75
95
|
|
|
96
|
+
After completing a colony:
|
|
97
|
+
10. /ant:seal (mark as complete)
|
|
98
|
+
11. /ant:entomb (archive to chambers)
|
|
99
|
+
12. /ant:init "next project goal" (start fresh colony)
|
|
100
|
+
|
|
76
101
|
WORKER CASTES
|
|
77
102
|
|
|
78
103
|
👑 Queen — orchestrates, spawns workers, synthesizes results
|
|
@@ -88,8 +113,11 @@ WORKER CASTES
|
|
|
88
113
|
HOW IT WORKS
|
|
89
114
|
|
|
90
115
|
Colony Lifecycle:
|
|
116
|
+
|
|
91
117
|
INIT → PLAN → BUILD → CONTINUE → BUILD → ... → COMPLETE
|
|
92
118
|
|
|
119
|
+
|
|
120
|
+
|
|
93
121
|
Workers spawn sub-workers autonomously (max depth 3).
|
|
94
122
|
Builders receive colony knowledge (instincts, learnings, error patterns).
|
|
95
123
|
Watchers independently verify work — builders never self-approve.
|
|
@@ -105,18 +133,22 @@ HOW IT WORKS
|
|
|
105
133
|
Graveyards — markers on files where workers previously failed
|
|
106
134
|
|
|
107
135
|
State Files (.aether/data/):
|
|
108
|
-
COLONY_STATE.json Goal, phases, tasks, memory,
|
|
136
|
+
COLONY_STATE.json Goal, phases, tasks, memory, events
|
|
109
137
|
activity.log Timestamped worker activity
|
|
110
138
|
spawn-tree.txt Worker spawn hierarchy
|
|
111
|
-
|
|
139
|
+
pheromones.json Active FOCUS/REDIRECT/FEEDBACK signals
|
|
140
|
+
constraints.json Compatibility mirror for focus/redirect data
|
|
141
|
+
|
|
112
142
|
```
|
|
113
143
|
|
|
144
|
+
|
|
114
145
|
### Next Up
|
|
115
146
|
|
|
116
|
-
Generate the state-based Next Up block by
|
|
147
|
+
Generate the state-based Next Up block by Run using the Bash tool with description "Generating Next Up suggestions..."::
|
|
117
148
|
```bash
|
|
118
149
|
state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
|
|
119
150
|
current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
|
|
120
151
|
total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
|
|
121
152
|
bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_phases"
|
|
122
153
|
```
|
|
154
|
+
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
<!-- Generated from .aether/commands/history.yaml - DO NOT EDIT DIRECTLY -->
|
|
1
2
|
---
|
|
2
3
|
name: ant:history
|
|
3
4
|
description: "📜🐜📜 Show colony event history"
|
|
@@ -126,6 +127,7 @@ Show total event count at the end:
|
|
|
126
127
|
Total events recorded: <count>
|
|
127
128
|
```
|
|
128
129
|
|
|
130
|
+
|
|
129
131
|
### Step 8: Next Up
|
|
130
132
|
|
|
131
133
|
Generate the state-based Next Up block using the Bash tool with description "Generating Next Up suggestions...":
|
|
@@ -135,3 +137,4 @@ current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
|
|
|
135
137
|
total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
|
|
136
138
|
bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_phases"
|
|
137
139
|
```
|
|
140
|
+
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
<!-- Generated from .aether/commands/import-signals.yaml - DO NOT EDIT DIRECTLY -->
|
|
2
|
+
---
|
|
3
|
+
name: ant:import-signals
|
|
4
|
+
description: "Import pheromone signals from another colony's XML export"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
You are the **Queen**. Import pheromone signals from another colony's XML export.
|
|
8
|
+
|
|
9
|
+
## Instructions
|
|
10
|
+
|
|
11
|
+
The arguments are: `$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
|
+
- First argument: path to XML file (required).
|
|
20
|
+
- Second argument: colony name/prefix (optional; default: derive from XML filename without extension, or use "imported").
|
|
21
|
+
|
|
22
|
+
If no arguments provided, show usage and stop:
|
|
23
|
+
```
|
|
24
|
+
Usage: /ant:import-signals <path-to-signals.xml> [colony-name]
|
|
25
|
+
|
|
26
|
+
<path-to-signals.xml> Path to an exported pheromone XML file
|
|
27
|
+
[colony-name] Optional prefix for imported signal IDs (prevents collisions)
|
|
28
|
+
|
|
29
|
+
Example:
|
|
30
|
+
/ant:import-signals .aether/exchange/pheromones.xml partner-colony
|
|
31
|
+
```
|
|
32
|
+
|
|
33
|
+
Verify the XML file exists. If not -> "File not found: <path>", stop.
|
|
34
|
+
|
|
35
|
+
### Step 2: Import
|
|
36
|
+
|
|
37
|
+
Run using the Bash tool with description "Importing pheromone signals from XML...":
|
|
38
|
+
```bash
|
|
39
|
+
bash .aether/aether-utils.sh pheromone-import-xml "<xml_path>" "<colony_prefix>"
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Parse the returned JSON:
|
|
43
|
+
- If `.ok` is `true`: extract `.result.signal_count` and `.result.source`.
|
|
44
|
+
- If `.ok` is `false`: check `.error` for details. If error mentions `xmllint` or `E_FEATURE_UNAVAILABLE`, display: "XML import requires xmllint. Install with: xcode-select --install (macOS) or apt-get install libxml2-utils (Linux)." Otherwise display the error message and stop.
|
|
45
|
+
|
|
46
|
+
### Step 3: Confirm
|
|
47
|
+
|
|
48
|
+
|
|
49
|
+
Output (4-5 lines, no banners):
|
|
50
|
+
```
|
|
51
|
+
Pheromone signals imported
|
|
52
|
+
Source: <xml_path>
|
|
53
|
+
Signals imported: <signal_count>
|
|
54
|
+
Colony prefix: <colony_prefix>
|
|
55
|
+
|
|
56
|
+
Note: On signal ID collision, current colony signals take priority.
|
|
57
|
+
```
|
|
58
|
+
|
|
59
|
+
|
|
60
|
+
|
|
61
|
+
|
|
62
|
+
### Step 4: Next Up
|
|
63
|
+
|
|
64
|
+
Generate the state-based Next Up block by running using the Bash tool with description "Generating Next Up suggestions...":
|
|
65
|
+
```bash
|
|
66
|
+
state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
|
|
67
|
+
current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
|
|
68
|
+
total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
|
|
69
|
+
bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_phases"
|
|
70
|
+
```
|
|
71
|
+
|