aether-colony 5.3.2 → 5.4.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 +181 -5
- package/.aether/commands/archaeology.yaml +3 -3
- package/.aether/commands/build.yaml +80 -45
- package/.aether/commands/chaos.yaml +7 -7
- package/.aether/commands/colonize.yaml +17 -17
- package/.aether/commands/continue.yaml +40 -40
- package/.aether/commands/council.yaml +6 -6
- package/.aether/commands/data-clean.yaml +3 -3
- package/.aether/commands/dream.yaml +2 -2
- package/.aether/commands/entomb.yaml +12 -12
- package/.aether/commands/export-signals.yaml +2 -2
- package/.aether/commands/feedback.yaml +6 -6
- package/.aether/commands/flag.yaml +2 -2
- package/.aether/commands/flags.yaml +4 -4
- package/.aether/commands/focus.yaml +6 -6
- package/.aether/commands/help.yaml +1 -1
- package/.aether/commands/history.yaml +1 -1
- package/.aether/commands/import-signals.yaml +2 -2
- package/.aether/commands/init.yaml +44 -27
- package/.aether/commands/insert-phase.yaml +1 -1
- package/.aether/commands/interpret.yaml +2 -2
- package/.aether/commands/lay-eggs.yaml +3 -3
- package/.aether/commands/maturity.yaml +2 -2
- package/.aether/commands/memory-details.yaml +1 -1
- package/.aether/commands/migrate-state.yaml +1 -1
- package/.aether/commands/oracle.yaml +147 -82
- package/.aether/commands/organize.yaml +5 -5
- package/.aether/commands/patrol.yaml +8 -8
- package/.aether/commands/pause-colony.yaml +7 -7
- package/.aether/commands/phase.yaml +1 -1
- package/.aether/commands/pheromones.yaml +1 -1
- package/.aether/commands/plan.yaml +14 -14
- package/.aether/commands/quick.yaml +4 -4
- package/.aether/commands/redirect.yaml +6 -6
- package/.aether/commands/resume-colony.yaml +9 -9
- package/.aether/commands/resume.yaml +5 -38
- package/.aether/commands/run.yaml +10 -10
- package/.aether/commands/seal.yaml +33 -33
- package/.aether/commands/skill-create.yaml +4 -4
- package/.aether/commands/status.yaml +14 -14
- package/.aether/commands/swarm.yaml +14 -14
- package/.aether/commands/tunnels.yaml +7 -7
- package/.aether/commands/update.yaml +1 -1
- package/.aether/commands/verify-castes.yaml +3 -3
- package/.aether/commands/watch.yaml +15 -15
- package/.aether/docs/command-playbooks/build-complete.md +48 -15
- package/.aether/docs/command-playbooks/build-context.md +11 -11
- package/.aether/docs/command-playbooks/build-full.md +76 -76
- package/.aether/docs/command-playbooks/build-prep.md +10 -10
- package/.aether/docs/command-playbooks/build-verify.md +27 -27
- package/.aether/docs/command-playbooks/build-wave.md +38 -38
- package/.aether/docs/command-playbooks/continue-advance.md +60 -27
- package/.aether/docs/command-playbooks/continue-finalize.md +25 -11
- package/.aether/docs/command-playbooks/continue-full.md +60 -46
- package/.aether/docs/command-playbooks/continue-gates.md +18 -18
- package/.aether/docs/command-playbooks/continue-verify.md +10 -10
- package/.aether/docs/source-of-truth-map.md +10 -10
- package/.aether/docs/structural-learning-stack.md +283 -0
- package/.aether/templates/colony-state-template.json +1 -0
- package/.aether/utils/consolidation-seal.sh +196 -0
- package/.aether/utils/consolidation.sh +127 -0
- package/.aether/utils/curation-ants/archivist.sh +97 -0
- package/.aether/utils/curation-ants/critic.sh +214 -0
- package/.aether/utils/curation-ants/herald.sh +102 -0
- package/.aether/utils/curation-ants/janitor.sh +121 -0
- package/.aether/utils/curation-ants/librarian.sh +99 -0
- package/.aether/utils/curation-ants/nurse.sh +153 -0
- package/.aether/utils/curation-ants/orchestrator.sh +181 -0
- package/.aether/utils/curation-ants/scribe.sh +164 -0
- package/.aether/utils/curation-ants/sentinel.sh +119 -0
- package/.aether/utils/event-bus.sh +301 -0
- package/.aether/utils/graph.sh +559 -0
- package/.aether/utils/instinct-store.sh +401 -0
- package/.aether/utils/learning.sh +79 -7
- package/.aether/utils/oracle/oracle-stop-hook.sh +896 -0
- package/.aether/utils/session.sh +13 -0
- package/.aether/utils/state-api.sh +1 -1
- package/.aether/utils/trust-scoring.sh +347 -0
- package/.aether/utils/worktree.sh +97 -0
- package/.claude/commands/ant/archaeology.md +2 -2
- package/.claude/commands/ant/chaos.md +4 -4
- package/.claude/commands/ant/colonize.md +9 -9
- package/.claude/commands/ant/council.md +6 -6
- package/.claude/commands/ant/data-clean.md +3 -3
- package/.claude/commands/ant/dream.md +2 -2
- package/.claude/commands/ant/entomb.md +9 -9
- package/.claude/commands/ant/export-signals.md +2 -2
- package/.claude/commands/ant/feedback.md +4 -4
- package/.claude/commands/ant/flag.md +2 -2
- package/.claude/commands/ant/flags.md +4 -4
- package/.claude/commands/ant/focus.md +4 -4
- package/.claude/commands/ant/help.md +1 -1
- package/.claude/commands/ant/history.md +1 -1
- package/.claude/commands/ant/import-signals.md +2 -2
- package/.claude/commands/ant/init.md +44 -27
- package/.claude/commands/ant/insert-phase.md +1 -1
- package/.claude/commands/ant/interpret.md +2 -2
- package/.claude/commands/ant/lay-eggs.md +2 -2
- package/.claude/commands/ant/maturity.md +2 -2
- package/.claude/commands/ant/memory-details.md +1 -1
- package/.claude/commands/ant/migrate-state.md +1 -1
- package/.claude/commands/ant/oracle.md +78 -42
- package/.claude/commands/ant/organize.md +3 -3
- package/.claude/commands/ant/patrol.md +8 -8
- package/.claude/commands/ant/pause-colony.md +5 -5
- package/.claude/commands/ant/phase.md +1 -1
- package/.claude/commands/ant/pheromones.md +1 -1
- package/.claude/commands/ant/plan.md +8 -8
- package/.claude/commands/ant/quick.md +4 -4
- package/.claude/commands/ant/redirect.md +4 -4
- package/.claude/commands/ant/resume-colony.md +5 -5
- package/.claude/commands/ant/resume.md +17 -29
- package/.claude/commands/ant/run.md +10 -10
- package/.claude/commands/ant/seal.md +25 -25
- package/.claude/commands/ant/skill-create.md +2 -2
- package/.claude/commands/ant/status.md +14 -14
- package/.claude/commands/ant/swarm.md +14 -14
- package/.claude/commands/ant/tunnels.md +4 -4
- package/.claude/commands/ant/update.md +1 -1
- package/.claude/commands/ant/verify-castes.md +2 -2
- package/.claude/commands/ant/watch.md +8 -8
- package/.opencode/commands/ant/archaeology.md +1 -1
- package/.opencode/commands/ant/build.md +80 -45
- package/.opencode/commands/ant/chaos.md +3 -3
- package/.opencode/commands/ant/colonize.md +8 -8
- package/.opencode/commands/ant/continue.md +40 -40
- package/.opencode/commands/ant/council.md +5 -5
- package/.opencode/commands/ant/data-clean.md +2 -2
- package/.opencode/commands/ant/dream.md +1 -1
- package/.opencode/commands/ant/entomb.md +3 -3
- package/.opencode/commands/ant/export-signals.md +1 -1
- package/.opencode/commands/ant/feedback.md +2 -2
- package/.opencode/commands/ant/flag.md +1 -1
- package/.opencode/commands/ant/flags.md +3 -3
- package/.opencode/commands/ant/focus.md +2 -2
- package/.opencode/commands/ant/import-signals.md +1 -1
- package/.opencode/commands/ant/init.md +44 -27
- package/.opencode/commands/ant/insert-phase.md +1 -1
- package/.opencode/commands/ant/interpret.md +1 -1
- package/.opencode/commands/ant/lay-eggs.md +2 -2
- package/.opencode/commands/ant/maturity.md +1 -1
- package/.opencode/commands/ant/memory-details.md +1 -1
- package/.opencode/commands/ant/oracle.md +69 -40
- package/.opencode/commands/ant/organize.md +2 -2
- package/.opencode/commands/ant/patrol.md +8 -8
- package/.opencode/commands/ant/pause-colony.md +2 -2
- package/.opencode/commands/ant/pheromones.md +1 -1
- package/.opencode/commands/ant/plan.md +6 -6
- package/.opencode/commands/ant/quick.md +4 -4
- package/.opencode/commands/ant/redirect.md +2 -2
- package/.opencode/commands/ant/resume-colony.md +4 -4
- package/.opencode/commands/ant/resume.md +5 -17
- package/.opencode/commands/ant/run.md +10 -10
- package/.opencode/commands/ant/seal.md +8 -8
- package/.opencode/commands/ant/skill-create.md +2 -2
- package/.opencode/commands/ant/status.md +10 -10
- package/.opencode/commands/ant/tunnels.md +3 -3
- package/.opencode/commands/ant/verify-castes.md +1 -1
- package/.opencode/commands/ant/watch.md +7 -7
- package/CHANGELOG.md +83 -0
- package/README.md +22 -9
- package/bin/cli.js +118 -3
- package/bin/lib/binary-downloader.js +267 -0
- package/bin/lib/update-transaction.js +27 -3
- package/bin/lib/version-gate.js +179 -0
- package/bin/npx-entry.js +0 -0
- package/package.json +1 -1
- package/.aether/agents/aether-ambassador.md +0 -140
- package/.aether/agents/aether-archaeologist.md +0 -108
- package/.aether/agents/aether-architect.md +0 -133
- package/.aether/agents/aether-auditor.md +0 -144
- package/.aether/agents/aether-builder.md +0 -184
- package/.aether/agents/aether-chaos.md +0 -115
- package/.aether/agents/aether-chronicler.md +0 -122
- package/.aether/agents/aether-gatekeeper.md +0 -116
- package/.aether/agents/aether-includer.md +0 -117
- package/.aether/agents/aether-keeper.md +0 -177
- package/.aether/agents/aether-measurer.md +0 -128
- package/.aether/agents/aether-oracle.md +0 -137
- package/.aether/agents/aether-probe.md +0 -133
- package/.aether/agents/aether-queen.md +0 -286
- package/.aether/agents/aether-route-setter.md +0 -130
- package/.aether/agents/aether-sage.md +0 -106
- package/.aether/agents/aether-scout.md +0 -101
- package/.aether/agents/aether-surveyor-disciplines.md +0 -391
- package/.aether/agents/aether-surveyor-nest.md +0 -329
- package/.aether/agents/aether-surveyor-pathogens.md +0 -264
- package/.aether/agents/aether-surveyor-provisions.md +0 -334
- package/.aether/agents/aether-tracker.md +0 -137
- package/.aether/agents/aether-watcher.md +0 -174
- package/.aether/agents/aether-weaver.md +0 -130
- package/.aether/commands/claude/archaeology.md +0 -334
- package/.aether/commands/claude/build.md +0 -65
- package/.aether/commands/claude/chaos.md +0 -336
- package/.aether/commands/claude/colonize.md +0 -259
- package/.aether/commands/claude/continue.md +0 -60
- package/.aether/commands/claude/council.md +0 -507
- package/.aether/commands/claude/data-clean.md +0 -81
- package/.aether/commands/claude/dream.md +0 -268
- package/.aether/commands/claude/entomb.md +0 -498
- package/.aether/commands/claude/export-signals.md +0 -57
- package/.aether/commands/claude/feedback.md +0 -96
- package/.aether/commands/claude/flag.md +0 -151
- package/.aether/commands/claude/flags.md +0 -169
- package/.aether/commands/claude/focus.md +0 -76
- package/.aether/commands/claude/help.md +0 -154
- package/.aether/commands/claude/history.md +0 -140
- package/.aether/commands/claude/import-signals.md +0 -71
- package/.aether/commands/claude/init.md +0 -505
- package/.aether/commands/claude/insert-phase.md +0 -105
- package/.aether/commands/claude/interpret.md +0 -278
- package/.aether/commands/claude/lay-eggs.md +0 -210
- package/.aether/commands/claude/maturity.md +0 -113
- package/.aether/commands/claude/memory-details.md +0 -77
- package/.aether/commands/claude/migrate-state.md +0 -171
- package/.aether/commands/claude/oracle.md +0 -642
- package/.aether/commands/claude/organize.md +0 -232
- package/.aether/commands/claude/patrol.md +0 -620
- package/.aether/commands/claude/pause-colony.md +0 -233
- package/.aether/commands/claude/phase.md +0 -115
- package/.aether/commands/claude/pheromones.md +0 -156
- package/.aether/commands/claude/plan.md +0 -693
- package/.aether/commands/claude/preferences.md +0 -65
- package/.aether/commands/claude/quick.md +0 -100
- package/.aether/commands/claude/redirect.md +0 -76
- package/.aether/commands/claude/resume-colony.md +0 -197
- package/.aether/commands/claude/resume.md +0 -388
- package/.aether/commands/claude/run.md +0 -231
- package/.aether/commands/claude/seal.md +0 -774
- package/.aether/commands/claude/skill-create.md +0 -286
- package/.aether/commands/claude/status.md +0 -410
- package/.aether/commands/claude/swarm.md +0 -349
- package/.aether/commands/claude/tunnels.md +0 -426
- package/.aether/commands/claude/update.md +0 -132
- package/.aether/commands/claude/verify-castes.md +0 -143
- package/.aether/commands/claude/watch.md +0 -239
- package/.aether/commands/opencode/archaeology.md +0 -331
- package/.aether/commands/opencode/build.md +0 -1168
- package/.aether/commands/opencode/chaos.md +0 -329
- package/.aether/commands/opencode/colonize.md +0 -195
- package/.aether/commands/opencode/continue.md +0 -1436
- package/.aether/commands/opencode/council.md +0 -437
- package/.aether/commands/opencode/data-clean.md +0 -77
- package/.aether/commands/opencode/dream.md +0 -260
- package/.aether/commands/opencode/entomb.md +0 -377
- package/.aether/commands/opencode/export-signals.md +0 -54
- package/.aether/commands/opencode/feedback.md +0 -99
- package/.aether/commands/opencode/flag.md +0 -149
- package/.aether/commands/opencode/flags.md +0 -167
- package/.aether/commands/opencode/focus.md +0 -73
- package/.aether/commands/opencode/help.md +0 -157
- package/.aether/commands/opencode/history.md +0 -136
- package/.aether/commands/opencode/import-signals.md +0 -68
- package/.aether/commands/opencode/init.md +0 -518
- package/.aether/commands/opencode/insert-phase.md +0 -111
- package/.aether/commands/opencode/interpret.md +0 -272
- package/.aether/commands/opencode/lay-eggs.md +0 -213
- package/.aether/commands/opencode/maturity.md +0 -108
- package/.aether/commands/opencode/memory-details.md +0 -83
- package/.aether/commands/opencode/migrate-state.md +0 -165
- package/.aether/commands/opencode/oracle.md +0 -593
- package/.aether/commands/opencode/organize.md +0 -226
- package/.aether/commands/opencode/patrol.md +0 -626
- package/.aether/commands/opencode/pause-colony.md +0 -203
- package/.aether/commands/opencode/phase.md +0 -113
- package/.aether/commands/opencode/pheromones.md +0 -162
- package/.aether/commands/opencode/plan.md +0 -684
- package/.aether/commands/opencode/preferences.md +0 -71
- package/.aether/commands/opencode/quick.md +0 -91
- package/.aether/commands/opencode/redirect.md +0 -84
- package/.aether/commands/opencode/resume-colony.md +0 -190
- package/.aether/commands/opencode/resume.md +0 -394
- package/.aether/commands/opencode/run.md +0 -237
- package/.aether/commands/opencode/seal.md +0 -452
- package/.aether/commands/opencode/skill-create.md +0 -63
- package/.aether/commands/opencode/status.md +0 -307
- package/.aether/commands/opencode/swarm.md +0 -15
- package/.aether/commands/opencode/tunnels.md +0 -400
- package/.aether/commands/opencode/update.md +0 -127
- package/.aether/commands/opencode/verify-castes.md +0 -139
- package/.aether/commands/opencode/watch.md +0 -227
|
@@ -53,7 +53,6 @@ Do not touch during init:
|
|
|
53
53
|
- .aether/dreams/ (user notes)
|
|
54
54
|
- .aether/chambers/ (archived colonies)
|
|
55
55
|
- .env* files
|
|
56
|
-
- .claude/settings.json
|
|
57
56
|
- .github/workflows/
|
|
58
57
|
</read_only>
|
|
59
58
|
|
|
@@ -102,7 +101,7 @@ Stop here. Do not proceed.
|
|
|
102
101
|
|
|
103
102
|
Run:
|
|
104
103
|
```
|
|
105
|
-
|
|
104
|
+
aether queen-init
|
|
106
105
|
```
|
|
107
106
|
|
|
108
107
|
Parse the JSON result:
|
|
@@ -115,7 +114,7 @@ This step is non-blocking -- proceed regardless of outcome.
|
|
|
115
114
|
|
|
116
115
|
Run the scan via Bash tool:
|
|
117
116
|
```bash
|
|
118
|
-
scan_result=$(
|
|
117
|
+
scan_result=$(aether init-research 2>/dev/null)
|
|
119
118
|
scan_data=$(echo "$scan_result" | jq '.result')
|
|
120
119
|
```
|
|
121
120
|
|
|
@@ -168,7 +167,7 @@ Strip `(Colony: ...)` suffixes using sed. If grep finds nothing, variables remai
|
|
|
168
167
|
Display a brief header:
|
|
169
168
|
```
|
|
170
169
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
171
|
-
|
|
170
|
+
🥚 A E T H E R C O L O N Y I N I T
|
|
172
171
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
173
172
|
```
|
|
174
173
|
|
|
@@ -286,14 +285,14 @@ Only reached after user approval. ALL file writes happen here.
|
|
|
286
285
|
|
|
287
286
|
1. Write charter content via:
|
|
288
287
|
```bash
|
|
289
|
-
|
|
288
|
+
aether charter-write --intent "{approved_intent}" --vision "{approved_vision}" --governance "{approved_governance}" --goals "{approved_goals}"
|
|
290
289
|
```
|
|
291
290
|
|
|
292
291
|
2. Auto-apply approved pheromone suggestions (see pheromone auto-apply below).
|
|
293
292
|
|
|
294
293
|
3. Update the goal field in COLONY_STATE.json in-place using the state API:
|
|
295
294
|
```bash
|
|
296
|
-
|
|
295
|
+
aether state-write "$(jq --arg new_goal "{approved_intent}" '.goal = $new_goal' .aether/data/COLONY_STATE.json)"
|
|
297
296
|
```
|
|
298
297
|
|
|
299
298
|
4. **Verify the write** — read back and confirm goal is set:
|
|
@@ -311,7 +310,7 @@ if [[ "$verify_goal" == "null" || -z "$verify_goal" ]]; then
|
|
|
311
310
|
fi
|
|
312
311
|
```
|
|
313
312
|
|
|
314
|
-
5. Run `
|
|
313
|
+
5. Run `aether session-init "$(jq -r '.session_id' .aether/data/COLONY_STATE.json)" "{approved_intent}"`
|
|
315
314
|
|
|
316
315
|
6. Skip to Step 8 (display result). Do NOT write COLONY_STATE.json from template, do NOT write constraints.json, do NOT write pheromones.json.
|
|
317
316
|
|
|
@@ -369,12 +368,12 @@ for template in pheromones midden learning-observations; do
|
|
|
369
368
|
done
|
|
370
369
|
```
|
|
371
370
|
|
|
372
|
-
8. Run `
|
|
373
|
-
9. Run `
|
|
371
|
+
8. Run `aether context-update init "{approved_intent}"`
|
|
372
|
+
9. Run `aether validate-state colony`
|
|
374
373
|
10. Register repo (silent on failure):
|
|
375
374
|
```bash
|
|
376
|
-
domain_tags=$(
|
|
377
|
-
|
|
375
|
+
domain_tags=$(aether domain-detect 2>/dev/null | jq -r '.result.tags // ""' || echo "")
|
|
376
|
+
aether registry-add --path "$(pwd)" "$(jq -r '.version // "unknown"' ~/.aether/version.json 2>/dev/null || echo 'unknown')" --goal "{approved_intent}" --active true --tags "$domain_tags" 2>/dev/null || true
|
|
378
377
|
cp ~/.aether/version.json .aether/version.json 2>/dev/null || true
|
|
379
378
|
```
|
|
380
379
|
11. Seed QUEEN.md from hive (non-blocking):
|
|
@@ -384,10 +383,10 @@ domain_tags=$(jq -r --arg repo "$(pwd)" \
|
|
|
384
383
|
"$HOME/.aether/registry.json" 2>/dev/null || echo "")
|
|
385
384
|
seed_args="queen-seed-from-hive --limit 5"
|
|
386
385
|
[[ -n "$domain_tags" ]] && seed_args="$seed_args --domain $domain_tags"
|
|
387
|
-
seed_result=$(
|
|
386
|
+
seed_result=$(aether $seed_args 2>/dev/null || echo '{}')
|
|
388
387
|
seeded_count=$(echo "$seed_result" | jq -r '.result.seeded // 0' 2>/dev/null || echo "0")
|
|
389
388
|
```
|
|
390
|
-
12. Run `
|
|
389
|
+
12. Run `aether session-init "{session_id}" "{approved_intent}"`
|
|
391
390
|
|
|
392
391
|
**Pheromone auto-apply (referenced by both re-init and fresh init paths above):**
|
|
393
392
|
|
|
@@ -395,7 +394,7 @@ If approved pheromone suggestions exist (the user kept them in the prompt and di
|
|
|
395
394
|
|
|
396
395
|
For each approved pheromone suggestion, call:
|
|
397
396
|
```bash
|
|
398
|
-
|
|
397
|
+
aether pheromone-write "{type}" '{content}' --source "system:init" --reason '{reason}' --ttl "30d" 2>/dev/null || true
|
|
399
398
|
```
|
|
400
399
|
|
|
401
400
|
Implementation notes:
|
|
@@ -453,21 +452,21 @@ Import ALL available data types (per D-09 -- no cherry-picking):
|
|
|
453
452
|
```bash
|
|
454
453
|
# Import pheromones (per D-09)
|
|
455
454
|
if [[ -f "$latest_chamber/pheromones.xml" ]]; then
|
|
456
|
-
pher_import=$(
|
|
455
|
+
pher_import=$(aether pheromone-import-xml --input "$latest_chamber/pheromones.xml" --colony "imported" 2>/dev/null || echo '{"ok":false}')
|
|
457
456
|
pher_imported=$(echo "$pher_import" | jq -r '.result.imported // 0' 2>/dev/null || echo "0")
|
|
458
457
|
echo "Pheromones: ${pher_imported} signal(s) imported"
|
|
459
458
|
fi
|
|
460
459
|
|
|
461
460
|
# Import wisdom to queen-wisdom.json (per D-09)
|
|
462
461
|
if [[ -f "$latest_chamber/queen-wisdom.xml" ]]; then
|
|
463
|
-
wis_import=$(
|
|
462
|
+
wis_import=$(aether wisdom-import-xml "$latest_chamber/queen-wisdom.xml" ".aether/data/queen-wisdom.json" 2>/dev/null || echo '{"ok":false}')
|
|
464
463
|
wis_imported=$(echo "$wis_import" | jq -r '.result.imported // 0' 2>/dev/null || echo "0")
|
|
465
464
|
echo "Wisdom: ${wis_imported} entries(s) imported to queen-wisdom.json"
|
|
466
465
|
fi
|
|
467
466
|
|
|
468
467
|
# Import registry lineage (per D-09)
|
|
469
468
|
if [[ -f "$latest_chamber/colony-registry.xml" ]]; then
|
|
470
|
-
reg_import=$(
|
|
469
|
+
reg_import=$(aether registry-import-xml "$latest_chamber/colony-registry.xml" 2>/dev/null || echo '{"ok":false}')
|
|
471
470
|
reg_imported=$(echo "$reg_import" | jq -r '.result.imported // 0' 2>/dev/null || echo "0")
|
|
472
471
|
echo "Registry: ${reg_imported} colon(ies) lineage imported"
|
|
473
472
|
fi
|
|
@@ -482,30 +481,48 @@ Display "Import skipped. Starting fresh colony." and proceed to Step 8.
|
|
|
482
481
|
**If xml_import_available is false (no chambers, no XML, or no xmllint):**
|
|
483
482
|
|
|
484
483
|
Skip silently -- proceed directly to Step 8 without any mention of import (per D-11).
|
|
484
|
+
### Step 7.5: Install Clash Detection Hook
|
|
485
|
+
|
|
486
|
+
If `.aether/utils/clash-detect.sh` exists, run:
|
|
487
|
+
|
|
488
|
+
```bash
|
|
489
|
+
aether clash-setup --install 2>/dev/null || true
|
|
490
|
+
```
|
|
491
|
+
|
|
492
|
+
This installs the PreToolUse hook that prevents conflicting edits across worktrees.
|
|
493
|
+
Non-blocking — if it fails, init continues normally.
|
|
494
|
+
|
|
495
|
+
Also configure the merge driver for package-lock.json:
|
|
496
|
+
|
|
497
|
+
```bash
|
|
498
|
+
git config merge.lockfile.driver "bash .aether/utils/merge-driver-lockfile.sh %O %A %B" 2>/dev/null || true
|
|
499
|
+
git config merge.lockfile.name "npm lockfile auto-merge" 2>/dev/null || true
|
|
500
|
+
```
|
|
501
|
+
|
|
485
502
|
### Step 8: Display Result
|
|
486
503
|
|
|
487
504
|
Display the success header and result block:
|
|
488
505
|
|
|
489
506
|
```
|
|
490
507
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
491
|
-
|
|
508
|
+
🥚 A E T H E R C O L O N Y
|
|
492
509
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
493
510
|
|
|
494
|
-
Queen has set the colony's intention
|
|
511
|
+
👑 Queen has set the colony's intention
|
|
495
512
|
|
|
496
513
|
"{approved_intent}"
|
|
497
514
|
|
|
498
|
-
Colony Status: READY
|
|
515
|
+
🟢 Colony Status: READY
|
|
499
516
|
|
|
500
|
-
{If re-init: " Mode: Re-init (charter updated, state preserved)"}
|
|
501
|
-
{If fresh and seeded_count > 0: " Hive wisdom: {seeded_count} cross-colony pattern(s) seeded into QUEEN.md"}
|
|
517
|
+
{If re-init: " 🔄 Mode: Re-init (charter updated, state preserved)"}
|
|
518
|
+
{If fresh and seeded_count > 0: " 🧠 Hive wisdom: {seeded_count} cross-colony pattern(s) seeded into QUEEN.md"}
|
|
502
519
|
|
|
503
|
-
State persisted -- safe to /clear, then run /ant:plan
|
|
520
|
+
💾 State persisted -- safe to /clear, then run /ant:plan
|
|
504
521
|
|
|
505
522
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
506
|
-
|
|
523
|
+
🐜 Next Up
|
|
507
524
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
508
|
-
/ant:plan Generate execution plan
|
|
509
|
-
/ant:status Check colony state
|
|
510
|
-
/ant:focus Set initial focus
|
|
525
|
+
/ant:plan 📊 Generate execution plan
|
|
526
|
+
/ant:status 📋 Check colony state
|
|
527
|
+
/ant:focus 🎯 Set initial focus
|
|
511
528
|
```
|
|
@@ -233,7 +233,7 @@ Wait for user response.
|
|
|
233
233
|
|
|
234
234
|
|
|
235
235
|
```bash
|
|
236
|
-
|
|
236
|
+
aether activity-log "INTERPRET" "Interpreter" "Dream review: {dream_file}, {confirmed} confirmed, {partial} partial, {unconfirmed} unconfirmed, {refuted} refuted, {actions_taken} actions taken"
|
|
237
237
|
```
|
|
238
238
|
|
|
239
239
|
### Step 8: Display Closing
|
|
@@ -147,7 +147,7 @@ echo "System files copied."
|
|
|
147
147
|
|
|
148
148
|
|
|
149
149
|
|
|
150
|
-
Run: `
|
|
150
|
+
Run: `aether queen-init`
|
|
151
151
|
|
|
152
152
|
|
|
153
153
|
Parse the JSON result:
|
|
@@ -163,7 +163,7 @@ Attempt to register this repo in the global hub. Silent on failure — registry
|
|
|
163
163
|
Run (ignore errors):
|
|
164
164
|
|
|
165
165
|
```bash
|
|
166
|
-
|
|
166
|
+
aether registry-add --path "$(pwd)" "$(jq -r '.version // "unknown"' ~/.aether/version.json 2>/dev/null || echo 'unknown')" 2>/dev/null || true
|
|
167
167
|
```
|
|
168
168
|
|
|
169
169
|
### Step 7: Verify Setup
|
|
@@ -17,7 +17,7 @@ You are the **Queen**. Display the colony's maturity journey.
|
|
|
17
17
|
### Step 1: Detect Current Milestone
|
|
18
18
|
|
|
19
19
|
Run:
|
|
20
|
-
`
|
|
20
|
+
`aether milestone-detect`
|
|
21
21
|
|
|
22
22
|
Parse JSON result to get:
|
|
23
23
|
- `milestone`: Current milestone name (First Mound, Open Chambers, Brood Stable, Ventilated Nest, Sealed Chambers, Crowned Anthill)
|
|
@@ -26,7 +26,7 @@ Drill-down view of accumulated colony wisdom, pending promotions, and recent fai
|
|
|
26
26
|
|
|
27
27
|
Run using the Bash tool with description "Loading colony memory...":
|
|
28
28
|
```bash
|
|
29
|
-
|
|
29
|
+
aether memory-metrics
|
|
30
30
|
```
|
|
31
31
|
|
|
32
32
|
### Step 2: Display Wisdom (from QUEEN.md)
|
|
@@ -49,10 +49,10 @@ Oracle peering into the depths...
|
|
|
49
49
|
|
|
50
50
|
### Step 0b: Stop Oracle
|
|
51
51
|
|
|
52
|
-
|
|
52
|
+
Stop any active Oracle research:
|
|
53
53
|
|
|
54
54
|
```bash
|
|
55
|
-
mkdir -p .aether/oracle && touch .aether/oracle/.stop
|
|
55
|
+
mkdir -p .aether/oracle && touch .aether/oracle/.stop && rm -f .aether/oracle/.loop-active
|
|
56
56
|
```
|
|
57
57
|
|
|
58
58
|
Output:
|
|
@@ -60,8 +60,9 @@ Output:
|
|
|
60
60
|
```
|
|
61
61
|
🔮 Oracle Stop Signal Sent
|
|
62
62
|
|
|
63
|
-
Created .aether/oracle/.stop
|
|
64
|
-
|
|
63
|
+
Created .aether/oracle/.stop (legacy tmux signal)
|
|
64
|
+
Removed .aether/oracle/.loop-active (in-session loop marker)
|
|
65
|
+
The research loop will halt at the next iteration boundary.
|
|
65
66
|
|
|
66
67
|
To check final results: /ant:oracle status
|
|
67
68
|
```
|
|
@@ -283,6 +284,41 @@ Describe the research topic in detail. The more specific, the better the Oracle'
|
|
|
283
284
|
|
|
284
285
|
(The user will type their topic via the "Other" free-text option.)
|
|
285
286
|
|
|
287
|
+
**Question 1.5: Research Brief — Formulate and Approve**
|
|
288
|
+
|
|
289
|
+
Take the user's raw topic (from `$normalized_args` or Question 1) and reformulate it into a structured research brief. The user may have typed casual natural language — your job is to sharpen it into a clear, well-scoped research prompt that will produce better results.
|
|
290
|
+
|
|
291
|
+
Display the brief for approval:
|
|
292
|
+
|
|
293
|
+
```
|
|
294
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
295
|
+
🔮 R E S E A R C H B R I E F
|
|
296
|
+
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
297
|
+
|
|
298
|
+
**Topic:** {reformulated topic — clear, specific, actionable}
|
|
299
|
+
**Core Question:** {the single most important question this research should answer}
|
|
300
|
+
**Context:** {what we already know from the codebase or user input}
|
|
301
|
+
**Success Criteria:** {what a good answer looks like — what would make this research useful}
|
|
302
|
+
```
|
|
303
|
+
|
|
304
|
+
Guidelines for formulation:
|
|
305
|
+
- Turn vague topics into specific ones ("auth stuff" → "Authentication architecture: session-based vs token-based for this Node.js API")
|
|
306
|
+
- Add codebase context if relevant (tech stack, existing patterns)
|
|
307
|
+
- Make the core question answerable — not open-ended philosophy
|
|
308
|
+
- Keep success criteria concrete ("A recommendation with trade-offs" not "understand everything")
|
|
309
|
+
|
|
310
|
+
Then ask the user to approve:
|
|
311
|
+
|
|
312
|
+
```
|
|
313
|
+
Does this capture what you're looking for? (approve / edit)
|
|
314
|
+
```
|
|
315
|
+
|
|
316
|
+
- If the user approves: use the reformulated topic as the research topic going forward
|
|
317
|
+
- If the user edits: incorporate their changes, display the updated brief, and ask again
|
|
318
|
+
- Max 2 revision rounds (same as init). After 2, ask for final approval or cancel.
|
|
319
|
+
|
|
320
|
+
The approved **Topic** from the brief becomes the topic used in all subsequent steps (state.json, plan.json, research-plan.md).
|
|
321
|
+
|
|
286
322
|
**Question 2: Research Template**
|
|
287
323
|
|
|
288
324
|
```
|
|
@@ -418,7 +454,7 @@ Use the Write tool to create `.aether/oracle/state.json`:
|
|
|
418
454
|
For each focus area string from Question 7:
|
|
419
455
|
|
|
420
456
|
```bash
|
|
421
|
-
|
|
457
|
+
aether pheromone-write --type FOCUS --content "$focus_area" \
|
|
422
458
|
--strength 0.8 --source "oracle:wizard" \
|
|
423
459
|
--reason "Focus area set in oracle wizard" --ttl "24h" 2>/dev/null || true
|
|
424
460
|
```
|
|
@@ -517,7 +553,7 @@ Proceed to Step 3.
|
|
|
517
553
|
|
|
518
554
|
---
|
|
519
555
|
|
|
520
|
-
### Step 3: Launch
|
|
556
|
+
### Step 3: Launch (In-Session Loop)
|
|
521
557
|
|
|
522
558
|
Output the research configuration summary, showing the sub-questions from plan.json:
|
|
523
559
|
|
|
@@ -541,53 +577,46 @@ Output the research configuration summary, showing the sub-questions from plan.j
|
|
|
541
577
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
542
578
|
```
|
|
543
579
|
|
|
544
|
-
|
|
545
|
-
|
|
546
|
-
**Try tmux:**
|
|
580
|
+
**Create the loop marker file:**
|
|
547
581
|
|
|
548
582
|
```bash
|
|
549
|
-
|
|
550
|
-
|
|
551
|
-
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
|
|
559
|
-
|
|
560
|
-
|
|
561
|
-
|
|
562
|
-
|
|
563
|
-
|
|
564
|
-
|
|
565
|
-
The Oracle will stop when it reaches {target_confidence}% confidence
|
|
566
|
-
or completes {max_iterations} iterations.
|
|
567
|
-
|
|
568
|
-
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
569
|
-
|
|
570
|
-
You can keep working. The Oracle runs independently.
|
|
583
|
+
SESSION_ID="${CLAUDE_SESSION_ID:-$(uuidgen 2>/dev/null || date +%s)}"
|
|
584
|
+
MAX_IT=<max_iterations from wizard>
|
|
585
|
+
TARGET_CONF=<target_confidence from wizard>
|
|
586
|
+
cat > .aether/oracle/.loop-active <<MARKER
|
|
587
|
+
---
|
|
588
|
+
iteration: 0
|
|
589
|
+
max_iterations: $MAX_IT
|
|
590
|
+
session_id: $SESSION_ID
|
|
591
|
+
phase: survey
|
|
592
|
+
target_confidence: $TARGET_CONF
|
|
593
|
+
synthesis_done: false
|
|
594
|
+
oracle_md_path: .aether/utils/oracle/oracle.md
|
|
595
|
+
---
|
|
596
|
+
Oracle research loop active
|
|
597
|
+
MARKER
|
|
598
|
+
echo "LOOP_MARKER_CREATED"
|
|
571
599
|
```
|
|
572
600
|
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
**If TMUX_FAIL** (tmux not installed or error):
|
|
601
|
+
Output:
|
|
576
602
|
|
|
577
603
|
```
|
|
578
|
-
🔮
|
|
604
|
+
🔮 Oracle Research Started (In-Session Loop)
|
|
579
605
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
580
606
|
|
|
581
|
-
|
|
607
|
+
The Oracle is researching IN THIS SESSION.
|
|
582
608
|
|
|
583
|
-
|
|
584
|
-
|
|
609
|
+
The Stop hook keeps the loop running automatically between iterations.
|
|
610
|
+
Phases advance: survey -> investigate -> synthesize -> verify
|
|
611
|
+
Loop ends when confidence target is reached or max iterations hit.
|
|
585
612
|
|
|
586
|
-
Then come back here:
|
|
587
613
|
📊 Check status: /ant:oracle status
|
|
588
614
|
🛑 Stop early: /ant:oracle stop
|
|
589
615
|
|
|
590
616
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
617
|
+
|
|
618
|
+
You can continue chatting. The Oracle loop runs between your messages.
|
|
591
619
|
```
|
|
592
620
|
|
|
593
|
-
|
|
621
|
+
**Now begin the first iteration.** Read `.aether/utils/oracle/oracle.md` and start survey phase research.
|
|
622
|
+
Target the first untouched question from plan.json. Update state files as you go.
|
|
@@ -36,7 +36,7 @@ From COLONY_STATE.json, extract:
|
|
|
36
36
|
|
|
37
37
|
Run using the Bash tool:
|
|
38
38
|
```bash
|
|
39
|
-
|
|
39
|
+
aether pheromone-read
|
|
40
40
|
```
|
|
41
41
|
|
|
42
42
|
Use `.result.signals` as the active signal list (already decay-filtered by runtime logic).
|
|
@@ -213,7 +213,7 @@ Next:
|
|
|
213
213
|
|
|
214
214
|
Use the Bash tool to run:
|
|
215
215
|
```
|
|
216
|
-
|
|
216
|
+
aether activity-log "COMPLETE" "queen" "Hygiene report generated"
|
|
217
217
|
```
|
|
218
218
|
|
|
219
219
|
Display persistence confirmation:
|
|
@@ -85,7 +85,7 @@ Extract from COLONY_STATE.json:
|
|
|
85
85
|
Display audit header:
|
|
86
86
|
```
|
|
87
87
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
88
|
-
|
|
88
|
+
🔍 C O L O N Y A U D I T
|
|
89
89
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
90
90
|
|
|
91
91
|
Goal: {goal}
|
|
@@ -255,12 +255,12 @@ Run these commands in parallel using the Bash tool:
|
|
|
255
255
|
|
|
256
256
|
**Flags check:**
|
|
257
257
|
```bash
|
|
258
|
-
|
|
258
|
+
aether flag-list --json 2>/dev/null || echo '{"result":{"flags":[]}}'
|
|
259
259
|
```
|
|
260
260
|
|
|
261
261
|
**Midden check:**
|
|
262
262
|
```bash
|
|
263
|
-
|
|
263
|
+
aether midden-recent-failures 2>/dev/null || echo '{"result":{"failures":[]}}'
|
|
264
264
|
```
|
|
265
265
|
|
|
266
266
|
**Parse flag results:**
|
|
@@ -338,12 +338,12 @@ Display: `Checking colony health...`
|
|
|
338
338
|
|
|
339
339
|
**Expire stale pheromones:**
|
|
340
340
|
```bash
|
|
341
|
-
|
|
341
|
+
aether pheromone-expire 2>/dev/null || true
|
|
342
342
|
```
|
|
343
343
|
|
|
344
344
|
**Load memory metrics:**
|
|
345
345
|
```bash
|
|
346
|
-
|
|
346
|
+
aether memory-metrics 2>/dev/null || echo '{}'
|
|
347
347
|
```
|
|
348
348
|
|
|
349
349
|
**Load instincts:**
|
|
@@ -363,7 +363,7 @@ From COLONY_STATE.json `events`:
|
|
|
363
363
|
|
|
364
364
|
**Count pheromone signals:**
|
|
365
365
|
```bash
|
|
366
|
-
|
|
366
|
+
aether pheromone-count 2>/dev/null || echo '{"result":{"count":0}}'
|
|
367
367
|
```
|
|
368
368
|
|
|
369
369
|
Display:
|
|
@@ -507,7 +507,7 @@ Display the formatted audit summary:
|
|
|
507
507
|
|
|
508
508
|
```
|
|
509
509
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
510
|
-
|
|
510
|
+
📋 A U D I T R E S U L T S
|
|
511
511
|
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
|
|
512
512
|
|
|
513
513
|
Goal: {goal}
|
|
@@ -592,7 +592,7 @@ Next:
|
|
|
592
592
|
|
|
593
593
|
Run using the Bash tool:
|
|
594
594
|
```bash
|
|
595
|
-
|
|
595
|
+
aether activity-log "COMPLETE" "queen" "Colony audit completed - {recommendation}"
|
|
596
596
|
```
|
|
597
597
|
|
|
598
598
|
Display persistence confirmation:
|
|
@@ -28,7 +28,7 @@ If `goal` is null, output `No colony initialized. Nothing to pause.` and stop.
|
|
|
28
28
|
|
|
29
29
|
Run using the Bash tool:
|
|
30
30
|
```bash
|
|
31
|
-
|
|
31
|
+
aether pheromone-read
|
|
32
32
|
```
|
|
33
33
|
|
|
34
34
|
Use `.result.signals` as the active signal list (already decay-filtered by runtime logic).
|
|
@@ -109,7 +109,7 @@ If `last_commit_suggestion_phase` equals the current phase, skip this step silen
|
|
|
109
109
|
|
|
110
110
|
3. **Generate the commit message:**
|
|
111
111
|
```bash
|
|
112
|
-
|
|
112
|
+
aether generate-commit-message --type "pause" --phase {current_phase} --subject "{phase_name}"
|
|
113
113
|
```
|
|
114
114
|
Parse the returned JSON to extract `message` and `files_changed`.
|
|
115
115
|
|
|
@@ -118,7 +118,7 @@ Stop here.
|
|
|
118
118
|
|
|
119
119
|
Run using the Bash tool with description "Displaying pheromones...":
|
|
120
120
|
```bash
|
|
121
|
-
|
|
121
|
+
aether pheromone-display "{subcommand or 'all'}"
|
|
122
122
|
```
|
|
123
123
|
|
|
124
124
|
The output will be the formatted pheromone table.
|
|
@@ -46,7 +46,7 @@ Stop here.
|
|
|
46
46
|
|
|
47
47
|
### Step 1.5: Load State and Show Resumption Context
|
|
48
48
|
|
|
49
|
-
Run using Bash tool: `
|
|
49
|
+
Run using Bash tool: `aether load-state`
|
|
50
50
|
|
|
51
51
|
If successful and goal is not null:
|
|
52
52
|
1. Extract current_phase from state
|
|
@@ -61,7 +61,7 @@ If .aether/HANDOFF.md exists (detected in load-state output):
|
|
|
61
61
|
- Read .aether/HANDOFF.md for additional context
|
|
62
62
|
- Remove .aether/HANDOFF.md after display (cleanup)
|
|
63
63
|
|
|
64
|
-
Run: `
|
|
64
|
+
Run: `aether unload-state` to release lock.
|
|
65
65
|
|
|
66
66
|
**Error handling:**
|
|
67
67
|
- If E_FILE_NOT_FOUND: "No colony initialized. Run /ant:init first." and stop
|
|
@@ -97,7 +97,7 @@ Select planning depth (prompt user if not explicitly provided):
|
|
|
97
97
|
|
|
98
98
|
Run using the Bash tool with description "Loading compact planning context...":
|
|
99
99
|
```bash
|
|
100
|
-
|
|
100
|
+
aether context-capsule --compact --json 2>/dev/null
|
|
101
101
|
```
|
|
102
102
|
|
|
103
103
|
If JSON is valid and `.ok == true`, extract `.result.prompt_section` into `context_capsule_prompt`.
|
|
@@ -179,7 +179,7 @@ Investigate domain knowledge for each phase before the planning loop begins. Thi
|
|
|
179
179
|
**1. Retrieve hive wisdom for research priming:**
|
|
180
180
|
|
|
181
181
|
```bash
|
|
182
|
-
hive_context=$(
|
|
182
|
+
hive_context=$(aether hive-read --limit 5 --format text 2>/dev/null)
|
|
183
183
|
```
|
|
184
184
|
|
|
185
185
|
Parse the JSON result to extract `.result.text` as `hive_text`. If command fails or returns empty, set `hive_text = ""`.
|
|
@@ -581,7 +581,7 @@ verify_state=$(jq -r '.state' .aether/data/COLONY_STATE.json)
|
|
|
581
581
|
if [[ "$verify_phases" -lt 1 || "$verify_timestamp" == "null" || "$verify_state" != "READY" ]]; then
|
|
582
582
|
echo "ERROR: Plan write verification failed (phases=$verify_phases, generated_at=$verify_timestamp, state=$verify_state)"
|
|
583
583
|
echo "Attempting retry write..."
|
|
584
|
-
|
|
584
|
+
aether state-write "$(jq --argjson phases "$(echo '$PLAN_JSON' | jq '.plan.phases')" --arg ts "$(date -u +%Y-%m-%dT%H:%M:%SZ)" '.plan.phases = $phases | .plan.generated_at = $ts | .state = "READY"' .aether/data/COLONY_STATE.json)"
|
|
585
585
|
verify_phases=$(jq '.plan.phases | length' .aether/data/COLONY_STATE.json)
|
|
586
586
|
if [[ "$verify_phases" -lt 1 ]]; then
|
|
587
587
|
echo "FATAL: Retry write also failed. Plan was not persisted."
|
|
@@ -592,7 +592,7 @@ fi
|
|
|
592
592
|
echo "Plan verified: $verify_phases phases, generated_at=$verify_timestamp, state=$verify_state"
|
|
593
593
|
```
|
|
594
594
|
|
|
595
|
-
Log plan completion: `
|
|
595
|
+
Log plan completion: `aether activity-log "PLAN_COMPLETE" "queen" "Plan finalized with {confidence}% confidence"`
|
|
596
596
|
|
|
597
597
|
Update watch-status.txt:
|
|
598
598
|
```
|
|
@@ -39,7 +39,7 @@ Stop here.
|
|
|
39
39
|
|
|
40
40
|
Run:
|
|
41
41
|
```bash
|
|
42
|
-
|
|
42
|
+
aether generate-ant-name --caste "scout"
|
|
43
43
|
```
|
|
44
44
|
|
|
45
45
|
Capture the output as `scout_name`.
|
|
@@ -54,7 +54,7 @@ Spawning {scout_name} — {query truncated to 50 chars}
|
|
|
54
54
|
|
|
55
55
|
Run:
|
|
56
56
|
```bash
|
|
57
|
-
|
|
57
|
+
aether spawn-log --name "Queen" --caste "scout" --id "{scout_name}" --description "Quick query: {query}"
|
|
58
58
|
```
|
|
59
59
|
|
|
60
60
|
|
|
@@ -73,14 +73,14 @@ Display your findings directly to the user.
|
|
|
73
73
|
|
|
74
74
|
Run:
|
|
75
75
|
```bash
|
|
76
|
-
|
|
76
|
+
aether spawn-complete --id "{scout_name}" --status "completed" --summary "Quick query answered"
|
|
77
77
|
```
|
|
78
78
|
|
|
79
79
|
### Step 5: Update Session (lightweight)
|
|
80
80
|
|
|
81
81
|
Run:
|
|
82
82
|
```bash
|
|
83
|
-
|
|
83
|
+
aether session-update --command "/ant:quick" --worker "" --summary "Quick query: {query truncated to 60 chars}" 2>/dev/null || true
|
|
84
84
|
```
|
|
85
85
|
|
|
86
86
|
**NOTE:** This command does NOT:
|
|
@@ -57,8 +57,8 @@ Write constraints.json.
|
|
|
57
57
|
|
|
58
58
|
**Write pheromone signal and update context:**
|
|
59
59
|
```bash
|
|
60
|
-
|
|
61
|
-
|
|
60
|
+
aether pheromone-write --type REDIRECT --content "$normalized_args" --strength 0.9 --reason "User warned colony away from pattern" 2>/dev/null || true
|
|
61
|
+
aether context-update --section constraint --key redirect --content "$normalized_args" "user" 2>/dev/null || true
|
|
62
62
|
```
|
|
63
63
|
|
|
64
64
|
### Step 3: Confirm
|
|
@@ -20,13 +20,13 @@ Parse `$normalized_args`:
|
|
|
20
20
|
|
|
21
21
|
### Step 0.5: Version Check (Non-blocking)
|
|
22
22
|
|
|
23
|
-
Run using the Bash tool: `
|
|
23
|
+
Run using the Bash tool: `aether version-check-cached 2>/dev/null || true`
|
|
24
24
|
|
|
25
25
|
If the command succeeds and the JSON result contains a non-empty string, display it as a one-line notice. Proceed regardless of outcome.
|
|
26
26
|
|
|
27
27
|
### Step 1: Load State and Validate
|
|
28
28
|
|
|
29
|
-
Run using Bash tool: `
|
|
29
|
+
Run using Bash tool: `aether load-state`
|
|
30
30
|
|
|
31
31
|
If successful:
|
|
32
32
|
1. Parse state from result
|
|
@@ -41,7 +41,7 @@ Keep state loaded (don't unload yet) - we'll need it for the full display.
|
|
|
41
41
|
|
|
42
42
|
Run using the Bash tool:
|
|
43
43
|
```bash
|
|
44
|
-
|
|
44
|
+
aether pheromone-read
|
|
45
45
|
```
|
|
46
46
|
|
|
47
47
|
Use `.result.signals` as the active signal list (already decay-filtered by runtime logic).
|
|
@@ -133,7 +133,7 @@ Use Write tool to update COLONY_STATE.json:
|
|
|
133
133
|
|
|
134
134
|
Use Bash tool to remove HANDOFF.md: `rm -f .aether/HANDOFF.md`
|
|
135
135
|
|
|
136
|
-
Run: `
|
|
136
|
+
Run: `aether unload-state` to release lock.
|
|
137
137
|
|
|
138
138
|
---
|
|
139
139
|
|