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,34 +1,23 @@
|
|
|
1
|
+
<!-- Generated from .aether/commands/resume-colony.yaml - DO NOT EDIT DIRECTLY -->
|
|
1
2
|
---
|
|
2
3
|
name: ant:resume-colony
|
|
3
4
|
description: "🚦➡️🐜💨💨 Resume colony from saved session - restores all state"
|
|
4
5
|
---
|
|
5
6
|
|
|
6
|
-
You are the **Queen Ant Colony**. Restore state from a paused session.
|
|
7
|
-
|
|
8
|
-
## Instructions
|
|
9
|
-
|
|
10
7
|
### Step -1: Normalize Arguments
|
|
11
8
|
|
|
12
9
|
Run: `normalized_args=$(bash .aether/aether-utils.sh normalize-args "$@")`
|
|
13
10
|
|
|
14
11
|
This ensures arguments work correctly in both Claude Code and OpenCode. Use `$normalized_args` throughout this command.
|
|
15
12
|
|
|
13
|
+
You are the **Queen Ant Colony**. Restore state from a paused session.
|
|
14
|
+
|
|
15
|
+
## Instructions
|
|
16
|
+
|
|
16
17
|
Parse `$normalized_args`:
|
|
17
18
|
- If contains `--no-visual`: set `visual_mode = false` (visual is ON by default)
|
|
18
19
|
- Otherwise: set `visual_mode = true`
|
|
19
20
|
|
|
20
|
-
### Step 0: Initialize Visual Mode (if enabled)
|
|
21
|
-
|
|
22
|
-
If `visual_mode` is true:
|
|
23
|
-
```bash
|
|
24
|
-
# Generate session ID
|
|
25
|
-
resume_id="resume-$(date +%s)"
|
|
26
|
-
|
|
27
|
-
# Initialize swarm display
|
|
28
|
-
bash .aether/aether-utils.sh swarm-display-init "$resume_id"
|
|
29
|
-
bash .aether/aether-utils.sh swarm-display-update "Queen" "prime" "excavating" "Resuming colony" "Colony" '{"read":0,"grep":0,"edit":0,"bash":0}' 0 "fungus_garden" 0
|
|
30
|
-
```
|
|
31
|
-
|
|
32
21
|
### Step 0.5: Version Check (Non-blocking)
|
|
33
22
|
|
|
34
23
|
Run using the Bash tool: `bash .aether/aether-utils.sh version-check 2>/dev/null || true`
|
|
@@ -42,20 +31,43 @@ Run using Bash tool: `bash .aether/aether-utils.sh load-state`
|
|
|
42
31
|
If successful:
|
|
43
32
|
1. Parse state from result
|
|
44
33
|
2. If goal is null: Show "No colony state found..." message and stop
|
|
45
|
-
3.
|
|
46
|
-
4.
|
|
34
|
+
3. If `milestone` == `"Crowned Anthill"`: Show "This colony has been sealed. Start a new colony with `/ant:init \"new goal\"`." and stop
|
|
35
|
+
4. Check if paused flag is true - if not, note "Colony was not paused, but resuming anyway"
|
|
36
|
+
5. Extract all state fields for display
|
|
47
37
|
|
|
48
38
|
Keep state loaded (don't unload yet) - we'll need it for the full display.
|
|
49
39
|
|
|
50
40
|
### Step 2: Compute Active Signals
|
|
51
41
|
|
|
52
|
-
|
|
42
|
+
Run using the Bash tool:
|
|
43
|
+
```bash
|
|
44
|
+
bash .aether/aether-utils.sh pheromone-read
|
|
45
|
+
```
|
|
46
|
+
|
|
47
|
+
Use `.result.signals` as the active signal list (already decay-filtered by runtime logic).
|
|
48
|
+
If empty, treat as "no active pheromones."
|
|
53
49
|
|
|
54
|
-
|
|
55
|
-
- `expires_at` is null (permanent signals like INIT), OR
|
|
56
|
-
- `expires_at` > current timestamp (not expired)
|
|
50
|
+
### Step 2.5: Load Survey Context (Advisory)
|
|
57
51
|
|
|
58
|
-
|
|
52
|
+
Run:
|
|
53
|
+
```bash
|
|
54
|
+
survey_docs=$(ls -1 .aether/data/survey/*.md 2>/dev/null | wc -l | tr -d ' ')
|
|
55
|
+
survey_latest=$(ls -t .aether/data/survey/*.md 2>/dev/null | head -1)
|
|
56
|
+
if [[ -n "$survey_latest" ]]; then
|
|
57
|
+
now_epoch=$(date +%s)
|
|
58
|
+
modified_epoch=$(stat -f %m "$survey_latest" 2>/dev/null || stat -c %Y "$survey_latest" 2>/dev/null || echo 0)
|
|
59
|
+
survey_age_days=$(( (now_epoch - modified_epoch) / 86400 ))
|
|
60
|
+
else
|
|
61
|
+
survey_age_days=-1
|
|
62
|
+
fi
|
|
63
|
+
echo "survey_docs=$survey_docs"
|
|
64
|
+
echo "survey_age_days=$survey_age_days"
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
Interpretation:
|
|
68
|
+
- `survey_docs == 0` => survey missing
|
|
69
|
+
- `survey_age_days > 14` => survey stale
|
|
70
|
+
- otherwise survey fresh
|
|
59
71
|
|
|
60
72
|
### Step 3: Display Restored State
|
|
61
73
|
|
|
@@ -93,18 +105,18 @@ PHASE PROGRESS
|
|
|
93
105
|
Phase <id>: <name> [<status>]
|
|
94
106
|
(list all phases from plan.phases)
|
|
95
107
|
|
|
108
|
+
SURVEY CONTEXT
|
|
109
|
+
Docs: <survey_docs>
|
|
110
|
+
Age: <survey_age_days> days
|
|
111
|
+
Status: <fresh|stale|missing>
|
|
112
|
+
Recommendation: <if missing or stale, suggest /ant:colonize --force-resurvey>
|
|
113
|
+
|
|
96
114
|
CONTEXT FROM HANDOFF
|
|
97
115
|
<summarize what was happening from .aether/HANDOFF.md>
|
|
98
116
|
|
|
99
117
|
NEXT ACTIONS
|
|
100
118
|
```
|
|
101
119
|
|
|
102
|
-
**If visual_mode is true, render final swarm display:**
|
|
103
|
-
```bash
|
|
104
|
-
bash .aether/aether-utils.sh swarm-display-update "Queen" "prime" "completed" "Colony resumed" "Colony" '{"read":3,"grep":0,"edit":2,"bash":1}' 100 "fungus_garden" 100
|
|
105
|
-
bash .aether/aether-utils.sh swarm-display-render "$resume_id"
|
|
106
|
-
```
|
|
107
|
-
|
|
108
120
|
Route to next action based on state:
|
|
109
121
|
- If state is `READY` and there's a pending phase -> suggest `/ant:build <phase>`
|
|
110
122
|
- If state is `EXECUTING` -> note that a build was interrupted, suggest restarting with `/ant:build <phase>`
|
|
@@ -1,8 +1,15 @@
|
|
|
1
|
+
<!-- Generated from .aether/commands/resume.yaml - DO NOT EDIT DIRECTLY -->
|
|
1
2
|
---
|
|
2
3
|
name: ant:resume
|
|
3
4
|
description: "Resume Previous Session"
|
|
4
5
|
---
|
|
5
6
|
|
|
7
|
+
### Step -1: Normalize Arguments
|
|
8
|
+
|
|
9
|
+
Run: `normalized_args=$(bash .aether/aether-utils.sh normalize-args "$@")`
|
|
10
|
+
|
|
11
|
+
This ensures arguments work correctly in both Claude Code and OpenCode. Use `$normalized_args` throughout this command.
|
|
12
|
+
|
|
6
13
|
# /ant:resume — Resume Previous Session
|
|
7
14
|
|
|
8
15
|
Resume work after `/clear` or in a new session. Reads colony state, detects codebase drift, and gives you a clear "do this next" recommendation.
|
|
@@ -23,7 +30,7 @@ Execute the following steps in order when the user runs `/ant:resume`.
|
|
|
23
30
|
|
|
24
31
|
### Step 1: Read Session State
|
|
25
32
|
|
|
26
|
-
Run
|
|
33
|
+
Run::
|
|
27
34
|
```bash
|
|
28
35
|
bash .aether/aether-utils.sh session-read
|
|
29
36
|
```
|
|
@@ -33,14 +40,16 @@ Parse the JSON result.
|
|
|
33
40
|
- If `exists` is `false`: display the following and **stop**:
|
|
34
41
|
|
|
35
42
|
```
|
|
36
|
-
|
|
43
|
+
|
|
44
|
+
═══════════════════════════════════════════════════
|
|
37
45
|
RESUME SESSION
|
|
38
46
|
|
|
39
47
|
No previous session found.
|
|
40
48
|
|
|
41
49
|
Start fresh: /ant:init "your goal"
|
|
42
50
|
Or check: /ant:status
|
|
43
|
-
|
|
51
|
+
|
|
52
|
+
═══════════════════════════════════════════════════
|
|
44
53
|
```
|
|
45
54
|
|
|
46
55
|
- If `exists` is `true`: extract from the session data:
|
|
@@ -59,6 +68,7 @@ Use the Read tool to read `.aether/data/COLONY_STATE.json`.
|
|
|
59
68
|
|
|
60
69
|
COLONY_STATE.json is the authoritative source for goal and state (session.json may be stale). Extract:
|
|
61
70
|
- `goal` (use this as authoritative, overriding session.json colony_goal)
|
|
71
|
+
- `milestone` (check for sealed colony)
|
|
62
72
|
- `state` (READY, PLANNING, EXECUTING, PAUSED)
|
|
63
73
|
- `current_phase`
|
|
64
74
|
- `plan.phases` (array with id, name, status for each phase)
|
|
@@ -66,6 +76,14 @@ COLONY_STATE.json is the authoritative source for goal and state (session.json m
|
|
|
66
76
|
- `memory.decisions` (flat list — do NOT distinguish user vs Claude origin)
|
|
67
77
|
- `events` (last 5 for recent activity context)
|
|
68
78
|
|
|
79
|
+
**If `milestone` == `"Crowned Anthill"`:** This colony has been sealed. Display:
|
|
80
|
+
```
|
|
81
|
+
This colony has been sealed (Crowned Anthill).
|
|
82
|
+
|
|
83
|
+
Start a new colony with /ant:init "new goal"
|
|
84
|
+
```
|
|
85
|
+
Stop here — do NOT display stale phase data from the sealed colony.
|
|
86
|
+
|
|
69
87
|
If the file is missing or the JSON cannot be parsed, **stop immediately** and display:
|
|
70
88
|
|
|
71
89
|
```
|
|
@@ -84,15 +102,21 @@ Do NOT proceed with stale or fabricated data.
|
|
|
84
102
|
|
|
85
103
|
### Step 3: Read Pheromone Signals
|
|
86
104
|
|
|
87
|
-
Use the Read tool to read `.aether/data/constraints.json`.
|
|
88
105
|
|
|
89
|
-
Extract the following top-level keys:
|
|
90
|
-
- `focus` array — active focus signals (if key missing, treat as empty array)
|
|
91
|
-
- `constraints` array — active redirect/constraint signals (if key missing, treat as empty array)
|
|
92
106
|
|
|
93
|
-
|
|
107
|
+
Run::
|
|
108
|
+
```bash
|
|
109
|
+
bash .aether/aether-utils.sh pheromone-read all
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Parse the JSON result. Extract `.result.signals` array.
|
|
113
|
+
|
|
114
|
+
- If `ok` is `true` and `.result.signals` is non-empty: store signals for dashboard rendering in Step 8
|
|
115
|
+
- If `ok` is `true` and `.result.signals` is empty: no active pheromones (skip in dashboard)
|
|
116
|
+
- If the command fails or returns an error: skip silently (no pheromones active)
|
|
117
|
+
|
|
118
|
+
Note: pheromone-read applies decay calculation automatically. The `effective_strength` field reflects current signal strength after time-based decay. Signals below 0.1 effective strength are already filtered out.
|
|
94
119
|
|
|
95
|
-
Pheromones persist until explicitly cleared — no decay.
|
|
96
120
|
|
|
97
121
|
---
|
|
98
122
|
|
|
@@ -236,7 +260,8 @@ Stop here — do not continue to Step 8 or render the dashboard.
|
|
|
236
260
|
Lead with the next-step recommendation. Context follows underneath ("straight to action" ordering).
|
|
237
261
|
|
|
238
262
|
```
|
|
239
|
-
|
|
263
|
+
|
|
264
|
+
═══════════════════════════════════════════════════
|
|
240
265
|
RESUME SESSION
|
|
241
266
|
|
|
242
267
|
Next: {recommended}
|
|
@@ -272,15 +297,44 @@ Recent Decisions:
|
|
|
272
297
|
{end}
|
|
273
298
|
{end}
|
|
274
299
|
|
|
275
|
-
{if
|
|
300
|
+
{if signals array from Step 3 is not empty:}
|
|
276
301
|
Active Signals:
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
{
|
|
280
|
-
{
|
|
281
|
-
REDIRECT: {constraint text}
|
|
302
|
+
|
|
303
|
+
|
|
304
|
+
{for each signal in signals:}
|
|
305
|
+
{signal.type}: "{signal.content}" [{signal.effective_strength * 100 | floor}%]
|
|
282
306
|
{end}
|
|
307
|
+
|
|
283
308
|
{end}
|
|
309
|
+
```
|
|
310
|
+
|
|
311
|
+
---
|
|
312
|
+
|
|
313
|
+
### Step 8.5: Display Memory Health (Secondary)
|
|
314
|
+
|
|
315
|
+
Run::
|
|
316
|
+
```bash
|
|
317
|
+
bash .aether/aether-utils.sh resume-dashboard
|
|
318
|
+
```
|
|
319
|
+
|
|
320
|
+
Extract memory_health from the JSON result:
|
|
321
|
+
- wisdom_count
|
|
322
|
+
- pending_promotions
|
|
323
|
+
- recent_failures
|
|
324
|
+
|
|
325
|
+
Display after the main dashboard:
|
|
326
|
+
```
|
|
327
|
+
📊 Memory Health
|
|
328
|
+
Wisdom: {wisdom_count} entries | Pending: {pending_promotions} promotions | Failures: {recent_failures} recent
|
|
329
|
+
|
|
330
|
+
Run /ant:memory-details for full breakdown
|
|
331
|
+
```
|
|
332
|
+
|
|
333
|
+
If all counts are 0, show:
|
|
334
|
+
```
|
|
335
|
+
📊 Memory Health
|
|
336
|
+
No accumulated wisdom yet. Complete phases to build colony memory.
|
|
337
|
+
```
|
|
284
338
|
|
|
285
339
|
Last Command: {last_command}
|
|
286
340
|
Session: {session_id}
|
|
@@ -290,14 +344,14 @@ Session: {session_id}
|
|
|
290
344
|
|
|
291
345
|
### Step 9: Mark Session Resumed
|
|
292
346
|
|
|
293
|
-
Run
|
|
347
|
+
Run::
|
|
294
348
|
```bash
|
|
295
349
|
bash .aether/aether-utils.sh session-mark-resumed
|
|
296
350
|
```
|
|
297
351
|
|
|
298
352
|
### Step 10: Next Up
|
|
299
353
|
|
|
300
|
-
Generate the state-based Next Up block by
|
|
354
|
+
Generate the state-based Next Up block by Run::
|
|
301
355
|
```bash
|
|
302
356
|
state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
|
|
303
357
|
current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
|
|
@@ -313,7 +367,10 @@ bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_pha
|
|
|
313
367
|
|-----------|----------|
|
|
314
368
|
| session.json missing (exists=false) | "No previous session found" — offer /ant:init and /ant:status |
|
|
315
369
|
| COLONY_STATE.json missing or corrupted | Pause, ask user: start fresh or recover |
|
|
316
|
-
|
|
370
|
+
|
|
371
|
+
|
|
372
|
+
| pheromone-read fails | Skip silently (no pheromones) |
|
|
373
|
+
|
|
317
374
|
| CONTEXT.md missing | Fall back to COLONY_STATE.json narrative |
|
|
318
375
|
| No plan phases, no generated_at | BLOCK — redirect to /ant:plan |
|
|
319
376
|
| Plan attempted but no phases | BLOCK — redirect to /ant:plan |
|
|
@@ -325,7 +382,10 @@ bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_pha
|
|
|
325
382
|
|
|
326
383
|
## Key Constraints
|
|
327
384
|
|
|
328
|
-
|
|
385
|
+
|
|
386
|
+
|
|
387
|
+
- Use Read tool for COLONY_STATE.json (not bash cat/jq). Use Bash tool for pheromone-read (applies decay calculation).
|
|
388
|
+
|
|
329
389
|
- Use Bash tool only for aether-utils.sh commands and git commands
|
|
330
390
|
- Handle ALL missing/corrupted file cases gracefully
|
|
331
391
|
- Time-agnostic: restore identically regardless of how long ago the session was
|
|
@@ -0,0 +1,237 @@
|
|
|
1
|
+
<!-- Generated from .aether/commands/run.yaml - DO NOT EDIT DIRECTLY -->
|
|
2
|
+
---
|
|
3
|
+
name: ant:run
|
|
4
|
+
description: "🤖🐜🔄🐜🤖 Autopilot — builds, verifies, learns, and advances through phases automatically with smart pausing"
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
### Step -1: Normalize Arguments
|
|
8
|
+
|
|
9
|
+
Run: `normalized_args=$(bash .aether/aether-utils.sh normalize-args "$@")`
|
|
10
|
+
|
|
11
|
+
This ensures arguments work correctly in both Claude Code and OpenCode. Use `$normalized_args` throughout this command.
|
|
12
|
+
|
|
13
|
+
You are the **Queen**. Execute `/ant:run` — the adaptive autopilot loop.
|
|
14
|
+
|
|
15
|
+
The arguments are: `$normalized_args`
|
|
16
|
+
|
|
17
|
+
## Purpose
|
|
18
|
+
|
|
19
|
+
This command automates the build-continue-advance cycle across multiple phases.
|
|
20
|
+
It reads and executes the same playbooks used by `/ant:build` and `/ant:continue`,
|
|
21
|
+
chaining them in a loop with intelligent pause conditions.
|
|
22
|
+
|
|
23
|
+
## Rules
|
|
24
|
+
|
|
25
|
+
1. Do **not** invoke nested slash commands (`/ant:build`, `/ant:continue`, etc.).
|
|
26
|
+
2. Use the Read tool to load each playbook file, then execute it inline.
|
|
27
|
+
3. Preserve variables/results from prior stages and pass them forward.
|
|
28
|
+
4. Stop immediately on any pause condition (defined below).
|
|
29
|
+
5. Keep existing behavior and output format from the playbooks.
|
|
30
|
+
6. Log `autopilot_advance` events after each successful phase transition.
|
|
31
|
+
|
|
32
|
+
## Arguments
|
|
33
|
+
|
|
34
|
+
Parse `$normalized_args` for:
|
|
35
|
+
- `--max-phases N` — Max phases to process (default: all remaining)
|
|
36
|
+
- `--replan-interval N` — Pause for replan suggestion every N phases (default: 2)
|
|
37
|
+
- `--continue` — Resume after a replan pause without replanning
|
|
38
|
+
- `--dry-run` — Preview plan without executing
|
|
39
|
+
- `--headless` — Run without interactive prompts; queue decisions for later review
|
|
40
|
+
- `--verbose` / `-v`, `--no-visual`, `--no-suggest` — Pass through to playbooks
|
|
41
|
+
|
|
42
|
+
```
|
|
43
|
+
/ant:run Run all remaining phases
|
|
44
|
+
/ant:run --max-phases 2 Run at most 2 phases then stop
|
|
45
|
+
/ant:run --replan-interval 3 Suggest replan every 3 phases instead of 2
|
|
46
|
+
/ant:run --continue Resume after replan pause without replanning
|
|
47
|
+
/ant:run --dry-run Preview the autopilot plan
|
|
48
|
+
/ant:run --headless Run all phases without interactive prompts
|
|
49
|
+
/ant:run --max-phases 3 -v Run 3 phases with verbose output
|
|
50
|
+
```
|
|
51
|
+
|
|
52
|
+
## Dry Run Mode
|
|
53
|
+
|
|
54
|
+
If `--dry-run`: read COLONY_STATE.json, list remaining incomplete phases
|
|
55
|
+
(applying `--max-phases` cap), display the plan, then stop without executing.
|
|
56
|
+
|
|
57
|
+
```
|
|
58
|
+
━━━ A U T O P I L O T P R E V I E W ━━━
|
|
59
|
+
Goal: {goal} | Current: Phase {N} | Remaining: {count} | Max: {max or "all"}
|
|
60
|
+
|
|
61
|
+
Phase {id}: {name} ({task_count} tasks) -> build -> continue -> advance
|
|
62
|
+
...
|
|
63
|
+
|
|
64
|
+
Pause triggers: test failures, critical Chaos findings, new blockers,
|
|
65
|
+
security gate failures, quality gate failures, runtime verification needed,
|
|
66
|
+
replan suggestion (every {replan_interval} phases)
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
## Autopilot Loop
|
|
70
|
+
|
|
71
|
+
### Step 0: Initialize
|
|
72
|
+
|
|
73
|
+
1. Read `.aether/data/COLONY_STATE.json`; validate goal + plan.phases exist
|
|
74
|
+
- If `milestone` == `"Crowned Anthill"`: output "This colony has been sealed. Start a new colony with `/ant:init \"new goal\"`." and stop
|
|
75
|
+
2. Determine remaining incomplete phases; apply `--max-phases` cap
|
|
76
|
+
3. Set `phases_completed = 0`, `autopilot_start = $(date +%s)`
|
|
77
|
+
4. Record pre-build blocker count: `bash .aether/aether-utils.sh flag-check-blockers {phase}`
|
|
78
|
+
5. If `--headless` flag is present:
|
|
79
|
+
- Run: `bash .aether/aether-utils.sh autopilot-set-headless true`
|
|
80
|
+
- Display: `Headless mode: ON — interactive prompts will be queued as pending decisions`
|
|
81
|
+
6. Display: `AUTOPILOT ENGAGED | Goal: {goal} | Phase {N} | Max: {max or "all"}`
|
|
82
|
+
|
|
83
|
+
### Step 1: Build Phase
|
|
84
|
+
|
|
85
|
+
Execute build playbooks in order, carrying cross-stage state
|
|
86
|
+
(`phase_id`, `visual_mode`, `verbose_mode`, `suggest_enabled`,
|
|
87
|
+
`prompt_section`, `wave_results`,
|
|
88
|
+
`verification_status`, `synthesis_status`, `next_action`):
|
|
89
|
+
|
|
90
|
+
1. `.aether/docs/command-playbooks/build-prep.md`
|
|
91
|
+
2. `.aether/docs/command-playbooks/build-context.md`
|
|
92
|
+
3. `.aether/docs/command-playbooks/build-wave.md`
|
|
93
|
+
4. `.aether/docs/command-playbooks/build-verify.md`
|
|
94
|
+
5. `.aether/docs/command-playbooks/build-complete.md`
|
|
95
|
+
|
|
96
|
+
Capture the synthesis result for pause evaluation.
|
|
97
|
+
|
|
98
|
+
### Step 2: Build Pause Check
|
|
99
|
+
|
|
100
|
+
**PAUSE if ANY of these are true** (display reason, log event, STOP):
|
|
101
|
+
|
|
102
|
+
| # | Condition | Source |
|
|
103
|
+
|---|-----------|--------|
|
|
104
|
+
| 1 | Watcher `verification_passed == false` | build-verify synthesis |
|
|
105
|
+
| 2 | Any Chaos finding severity `critical` or `high` | build-verify synthesis |
|
|
106
|
+
| 3 | New blocker flags created (count increased since Step 0.4) | flag-check-blockers |
|
|
107
|
+
|
|
108
|
+
On pause, display the AUTOPILOT PAUSED banner with reason, affected phase,
|
|
109
|
+
specific issues, and instruction: "Fix issues, then run /ant:run to resume."
|
|
110
|
+
Log: `"<timestamp>|autopilot_paused|run|Paused at Phase {id}: {reason}"`
|
|
111
|
+
|
|
112
|
+
**Headless override for visual checkpoints:** If headless mode is active and a
|
|
113
|
+
visual checkpoint prompt would normally be shown to the user, instead queue it as
|
|
114
|
+
a pending decision:
|
|
115
|
+
```bash
|
|
116
|
+
bash .aether/aether-utils.sh pending-decision-add \
|
|
117
|
+
--title "Visual checkpoint: Phase {id}" \
|
|
118
|
+
--type "checkpoint" \
|
|
119
|
+
--description "{checkpoint_description}" \
|
|
120
|
+
--phase "{id}" \
|
|
121
|
+
--source "build-pause-check"
|
|
122
|
+
```
|
|
123
|
+
Then continue without pausing.
|
|
124
|
+
|
|
125
|
+
**If no pause:** proceed to Step 3.
|
|
126
|
+
|
|
127
|
+
### Step 3: Continue (Verify + Advance)
|
|
128
|
+
|
|
129
|
+
Execute continue playbooks in order, carrying cross-stage state
|
|
130
|
+
(`visual_mode`, `state`, `current_phase`, `verification_results`,
|
|
131
|
+
`gate_results`, `advancement_result`, `next_phase_id`, `completion_state`):
|
|
132
|
+
|
|
133
|
+
1. `.aether/docs/command-playbooks/continue-verify.md`
|
|
134
|
+
2. `.aether/docs/command-playbooks/continue-gates.md`
|
|
135
|
+
3. `.aether/docs/command-playbooks/continue-advance.md`
|
|
136
|
+
4. `.aether/docs/command-playbooks/continue-finalize.md`
|
|
137
|
+
|
|
138
|
+
**Autopilot override for runtime verification (Step 1.11 in continue-gates):**
|
|
139
|
+
Skip the AskUserQuestion prompt. Instead, auto-PAUSE with reason
|
|
140
|
+
"Runtime verification required" so the user can test manually before resuming.
|
|
141
|
+
|
|
142
|
+
**Headless override for runtime verification:** If headless mode is active and
|
|
143
|
+
runtime verification would normally pause, queue as a pending decision instead:
|
|
144
|
+
```bash
|
|
145
|
+
bash .aether/aether-utils.sh pending-decision-add \
|
|
146
|
+
--title "Runtime verification needed: Phase {id}" \
|
|
147
|
+
--type "runtime-verification" \
|
|
148
|
+
--description "Manual testing required before advancing past Phase {id}" \
|
|
149
|
+
--phase "{id}" \
|
|
150
|
+
--source "continue-gates"
|
|
151
|
+
```
|
|
152
|
+
Then continue without pausing.
|
|
153
|
+
|
|
154
|
+
### Step 4: Continue Pause Check
|
|
155
|
+
|
|
156
|
+
**PAUSE if ANY of these are true:**
|
|
157
|
+
|
|
158
|
+
| # | Condition | Source |
|
|
159
|
+
|---|-----------|--------|
|
|
160
|
+
| 4 | Verification loop reported NOT READY | continue-verify |
|
|
161
|
+
| 5 | Gatekeeper found critical CVEs | continue-gates |
|
|
162
|
+
| 6 | Auditor critical findings or score < 60 | continue-gates |
|
|
163
|
+
| 7 | Unresolved blocker flags remain | continue-gates |
|
|
164
|
+
| 8 | Runtime verification needed | continue-gates Step 1.11 |
|
|
165
|
+
| 9 | All phases complete (no next phase) | continue-advance |
|
|
166
|
+
| 10 | Replan trigger fires (unless `--continue`) | autopilot-check-replan (Step 5.5) |
|
|
167
|
+
|
|
168
|
+
For condition 9: jump to Step 6 (celebration). For condition 10: PAUSE with
|
|
169
|
+
replan suggestion (see Step 5.5). For all others: PAUSE with reason, log event, STOP.
|
|
170
|
+
|
|
171
|
+
**If no pause:** proceed to Step 5.
|
|
172
|
+
|
|
173
|
+
### Step 5: Auto-Advance and Loop
|
|
174
|
+
|
|
175
|
+
1. Increment `phases_completed`
|
|
176
|
+
2. Update autopilot state: `bash .aether/aether-utils.sh autopilot-update --action advance --phase {next} --result success`
|
|
177
|
+
3. Log: `"<timestamp>|autopilot_advance|run|Phase {prev} -> {next} ({phases_completed}/{max})"`
|
|
178
|
+
4. Display: `--- Autopilot: Phase {prev} done -> Phase {next} ({N}/{max}) ---`
|
|
179
|
+
5. **Replan check** (see Step 5.5)
|
|
180
|
+
6. If `phases_completed >= max_phases` or no incomplete phases: go to Step 6
|
|
181
|
+
7. Otherwise: update `current_phase`, return to Step 1
|
|
182
|
+
|
|
183
|
+
### Step 5.5: Replan Trigger Check
|
|
184
|
+
|
|
185
|
+
After each successful phase advance, check if a replan pause should fire:
|
|
186
|
+
|
|
187
|
+
```bash
|
|
188
|
+
bash .aether/aether-utils.sh autopilot-check-replan --interval {replan_interval}
|
|
189
|
+
```
|
|
190
|
+
|
|
191
|
+
If `--continue` flag was passed: skip this check entirely (user dismissed replan).
|
|
192
|
+
|
|
193
|
+
If `result.should_replan == true`: **PAUSE** with replan suggestion banner:
|
|
194
|
+
|
|
195
|
+
```
|
|
196
|
+
━━━ R E P L A N S U G G E S T E D ━━━
|
|
197
|
+
Phases auto-completed: {N} | Learnings accumulated: {learnings_since_last}
|
|
198
|
+
|
|
199
|
+
The colony has completed {N} phases since the last plan review.
|
|
200
|
+
New learnings may have changed the optimal path forward.
|
|
201
|
+
|
|
202
|
+
Options:
|
|
203
|
+
/ant:plan Regenerate phases with current learnings
|
|
204
|
+
/ant:run --continue Dismiss and continue without replanning
|
|
205
|
+
```
|
|
206
|
+
|
|
207
|
+
Log: `"<timestamp>|autopilot_replan_pause|run|Replan suggested after {N} phases ({learnings} learnings)"`
|
|
208
|
+
|
|
209
|
+
If `result.should_replan == false`: proceed normally (no pause).
|
|
210
|
+
|
|
211
|
+
### Step 6: Final Summary
|
|
212
|
+
|
|
213
|
+
```
|
|
214
|
+
━━━ A U T O P I L O T C O M P L E T E ━━━
|
|
215
|
+
Phases completed: {N} | Elapsed: {Xm Ys} | Now at: Phase {current}
|
|
216
|
+
|
|
217
|
+
{all complete} -> Colony goal achieved! Run /ant:seal
|
|
218
|
+
{max reached} -> Run /ant:run to continue
|
|
219
|
+
{replan} -> Run /ant:plan to replan, or /ant:run --continue to dismiss
|
|
220
|
+
{paused} -> Fix {reason}, then /ant:run to resume
|
|
221
|
+
```
|
|
222
|
+
|
|
223
|
+
If headless mode was active and pending decisions were queued, display:
|
|
224
|
+
```
|
|
225
|
+
Pending decisions: {N} — run `pending-decision-list` to review
|
|
226
|
+
```
|
|
227
|
+
|
|
228
|
+
Update session:
|
|
229
|
+
`bash .aether/aether-utils.sh session-update "/ant:run" "/ant:run" "Autopilot: {N} phases, now Phase {current}"`
|
|
230
|
+
|
|
231
|
+
## Execution Contract
|
|
232
|
+
|
|
233
|
+
For each playbook stage: Read file, execute inline, track `{stage_name, status, key_outputs}`.
|
|
234
|
+
If `status == failed`: evaluate pause conditions. Pause = graceful stop with saved state.
|
|
235
|
+
Hard failure (e.g., state corruption) = halt immediately, no recovery attempt.
|
|
236
|
+
|
|
237
|
+
On every pause: save COLONY_STATE.json, log event, update session, display resume instructions.
|