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,408 @@
|
|
|
1
|
+
name: "ant:status"
|
|
2
|
+
description_claude: "ππποΈππ Show colony status at a glance"
|
|
3
|
+
description_opencode: "ππποΈππ Show colony status at a glance"
|
|
4
|
+
body: |
|
|
5
|
+
You are the **Queen**. Show colony status.
|
|
6
|
+
|
|
7
|
+
## Instructions
|
|
8
|
+
|
|
9
|
+
### Step 0: Version Check (Non-blocking)
|
|
10
|
+
|
|
11
|
+
{{TOOL_PREFIX "Checking colony version..."}} `bash .aether/aether-utils.sh version-check-cached 2>/dev/null || true`
|
|
12
|
+
|
|
13
|
+
If the command succeeds and the JSON result contains a non-empty string, display it as a one-line notice. Proceed regardless of outcome.
|
|
14
|
+
|
|
15
|
+
### Step 1: Read State + Version Check
|
|
16
|
+
|
|
17
|
+
Read `.aether/data/COLONY_STATE.json`.
|
|
18
|
+
|
|
19
|
+
If file missing or `goal: null`:
|
|
20
|
+
```
|
|
21
|
+
No colony initialized. Run /ant:init first.
|
|
22
|
+
```
|
|
23
|
+
Stop here.
|
|
24
|
+
|
|
25
|
+
**Auto-upgrade old state:**
|
|
26
|
+
If `version` field is missing, "1.0", or "2.0":
|
|
27
|
+
1. Preserve: `goal`, `state`, `current_phase`, `plan.phases` (keep phase structure)
|
|
28
|
+
2. Write upgraded state:
|
|
29
|
+
```json
|
|
30
|
+
{
|
|
31
|
+
"version": "3.0",
|
|
32
|
+
"goal": "<preserved>",
|
|
33
|
+
"state": "<preserved or 'READY'>",
|
|
34
|
+
"current_phase": <preserved or 0>,
|
|
35
|
+
"session_id": "migrated_<timestamp>",
|
|
36
|
+
"initialized_at": "<preserved or now>",
|
|
37
|
+
"build_started_at": null,
|
|
38
|
+
"plan": {
|
|
39
|
+
"generated_at": "<preserved or null>",
|
|
40
|
+
"confidence": null,
|
|
41
|
+
"phases": <preserved or []>
|
|
42
|
+
},
|
|
43
|
+
"memory": { "phase_learnings": [], "decisions": [], "instincts": [] },
|
|
44
|
+
"errors": { "records": [], "flagged_patterns": [] },
|
|
45
|
+
"events": ["<now>|state_upgraded|system|Auto-upgraded from v<old> to v3.0"]
|
|
46
|
+
}
|
|
47
|
+
```
|
|
48
|
+
3. Output: `State auto-upgraded to v3.0`
|
|
49
|
+
4. Continue with command.
|
|
50
|
+
|
|
51
|
+
### Step 1.5: Load State and Show Resumption Context
|
|
52
|
+
|
|
53
|
+
{{TOOL_PREFIX "Loading colony state..."}} `bash .aether/aether-utils.sh load-state`
|
|
54
|
+
|
|
55
|
+
If successful and goal is not null:
|
|
56
|
+
1. Extract current_phase from state
|
|
57
|
+
2. Get phase name from plan.phases[current_phase - 1].name (or "(unnamed)")
|
|
58
|
+
3. Get last event timestamp from events array (last element)
|
|
59
|
+
4. Display extended resumption context:
|
|
60
|
+
```
|
|
61
|
+
π Resuming: Phase X - Name
|
|
62
|
+
Last activity: timestamp
|
|
63
|
+
```
|
|
64
|
+
|
|
65
|
+
5. Check for .aether/HANDOFF.md existence in the load-state output or via separate check
|
|
66
|
+
6. If .aether/HANDOFF.md exists:
|
|
67
|
+
- Display: "Resuming from paused session"
|
|
68
|
+
- Read .aether/HANDOFF.md content for additional context
|
|
69
|
+
- Remove .aether/HANDOFF.md after displaying (cleanup)
|
|
70
|
+
|
|
71
|
+
{{TOOL_PREFIX "Releasing colony lock..."}} `bash .aether/aether-utils.sh unload-state` to release lock.
|
|
72
|
+
|
|
73
|
+
### Step 2: Compute Summary
|
|
74
|
+
|
|
75
|
+
From state, extract:
|
|
76
|
+
|
|
77
|
+
### Step 2.4: Survey Freshness (Advisory)
|
|
78
|
+
|
|
79
|
+
{{TOOL_PREFIX "Checking survey freshness..."}}
|
|
80
|
+
```bash
|
|
81
|
+
survey_docs=$(ls -1 .aether/data/survey/*.md 2>/dev/null | wc -l | tr -d ' ')
|
|
82
|
+
survey_latest=$(ls -t .aether/data/survey/*.md 2>/dev/null | head -1)
|
|
83
|
+
if [[ -n "$survey_latest" ]]; then
|
|
84
|
+
now_epoch=$(date +%s)
|
|
85
|
+
modified_epoch=$(stat -f %m "$survey_latest" 2>/dev/null || stat -c %Y "$survey_latest" 2>/dev/null || echo 0)
|
|
86
|
+
survey_age_days=$(( (now_epoch - modified_epoch) / 86400 ))
|
|
87
|
+
else
|
|
88
|
+
survey_age_days=-1
|
|
89
|
+
fi
|
|
90
|
+
echo "survey_docs=$survey_docs"
|
|
91
|
+
echo "survey_age_days=$survey_age_days"
|
|
92
|
+
```
|
|
93
|
+
|
|
94
|
+
Interpretation:
|
|
95
|
+
- If `survey_docs == 0`: `survey_status = "missing"`
|
|
96
|
+
- If `survey_age_days > 14`: `survey_status = "stale"`
|
|
97
|
+
- Otherwise: `survey_status = "fresh"`
|
|
98
|
+
|
|
99
|
+
### Step 2.5: Gather Dream Information
|
|
100
|
+
|
|
101
|
+
{{TOOL_PREFIX "Counting dream entries..."}} `ls -1 .aether/dreams/*.md 2>/dev/null | wc -l`
|
|
102
|
+
|
|
103
|
+
Capture:
|
|
104
|
+
- Dream count: number of .md files in .aether/dreams/
|
|
105
|
+
- Latest dream: most recent file by name (files are timestamped: YYYY-MM-DD-HHMM.md)
|
|
106
|
+
|
|
107
|
+
To get latest dream timestamp, {{TOOL_PREFIX "Finding latest dream..."}}
|
|
108
|
+
```bash
|
|
109
|
+
ls -1 .aether/dreams/*.md 2>/dev/null | sort | tail -1 | sed 's/.*\/\([0-9]\{4\}-[0-9]\{2\}-[0-9]\{2\}\)-\([0-9]\{4\}\).*/\1 \2/'
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
Format the timestamp as: YYYY-MM-DD HH:MM
|
|
113
|
+
|
|
114
|
+
{{#claude}}
|
|
115
|
+
### Step 2.5.5: Colony Depth
|
|
116
|
+
|
|
117
|
+
Run using the Bash tool with description "Reading colony depth...":
|
|
118
|
+
```bash
|
|
119
|
+
depth_result=$(bash .aether/aether-utils.sh colony-depth get 2>/dev/null || echo '{"ok":true,"result":{"depth":"standard","source":"default"}}')
|
|
120
|
+
colony_depth=$(echo "$depth_result" | jq -r '.result.depth // "standard"')
|
|
121
|
+
depth_source=$(echo "$depth_result" | jq -r '.result.source // "default"')
|
|
122
|
+
echo "colony_depth=$colony_depth"
|
|
123
|
+
echo "depth_source=$depth_source"
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Store `colony_depth` and `depth_source` for the dashboard display.
|
|
127
|
+
|
|
128
|
+
Depth label mapping:
|
|
129
|
+
- light -> "Builder only (fastest)"
|
|
130
|
+
- standard -> "Builder + Scout (balanced)"
|
|
131
|
+
- deep -> "Builder + Scout + Oracle (thorough)"
|
|
132
|
+
- full -> "All agents (most thorough)"
|
|
133
|
+
|
|
134
|
+
From state, extract:
|
|
135
|
+
{{/claude}}
|
|
136
|
+
|
|
137
|
+
**Phase info:**
|
|
138
|
+
- Current phase number: `current_phase`
|
|
139
|
+
- Total phases: `plan.phases.length`
|
|
140
|
+
- Phase name: `plan.phases[current_phase - 1].name` (if exists)
|
|
141
|
+
|
|
142
|
+
**Task progress:**
|
|
143
|
+
- If phases exist, count tasks in current phase
|
|
144
|
+
- Completed: tasks with `status: "completed"`
|
|
145
|
+
- Total: all tasks in current phase
|
|
146
|
+
|
|
147
|
+
**Constraints:**
|
|
148
|
+
Read `.aether/data/constraints.json` if exists:
|
|
149
|
+
- Focus count: `focus.length`
|
|
150
|
+
- Constraints count: `constraints.length`
|
|
151
|
+
|
|
152
|
+
**Flags:**
|
|
153
|
+
{{TOOL_PREFIX "Checking for blockers..."}} `bash .aether/aether-utils.sh flag-check-blockers`
|
|
154
|
+
Extract:
|
|
155
|
+
- Blockers count (critical, block advancement)
|
|
156
|
+
- Issues count (high, warnings)
|
|
157
|
+
- Notes count (low, informational)
|
|
158
|
+
|
|
159
|
+
**Escalation state:**
|
|
160
|
+
Count escalated flags by checking for blocker flags with source "escalation":
|
|
161
|
+
|
|
162
|
+
{{TOOL_PREFIX "Checking escalation state..."}}
|
|
163
|
+
```bash
|
|
164
|
+
escalated_count=$(bash .aether/aether-utils.sh flag-list --type blocker 2>/dev/null | jq '[.result.flags[] | select(.source == "escalation")] | length' 2>/dev/null || echo "0")
|
|
165
|
+
echo "escalated_count=$escalated_count"
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
**Instincts:**
|
|
169
|
+
From `memory.instincts`:
|
|
170
|
+
- Total count: `instincts.length`
|
|
171
|
+
- High confidence (β₯0.7): count where confidence >= 0.7
|
|
172
|
+
- Top 3: sorted by confidence descending
|
|
173
|
+
|
|
174
|
+
**Colony state:**
|
|
175
|
+
- `state` field (IDLE, READY, EXECUTING, PLANNING)
|
|
176
|
+
|
|
177
|
+
**Milestone:**
|
|
178
|
+
- `milestone` field (First Mound, Open Chambers, Brood Stable, Ventilated Nest, Sealed Chambers, Crowned Anthill)
|
|
179
|
+
- `milestone_updated_at` field (timestamp of last milestone change)
|
|
180
|
+
|
|
181
|
+
### Step 2.6: Detect Milestone
|
|
182
|
+
|
|
183
|
+
{{TOOL_PREFIX "Detecting colony milestone..."}} `bash .aether/aether-utils.sh milestone-detect`
|
|
184
|
+
|
|
185
|
+
Extract from JSON result:
|
|
186
|
+
- `milestone`: Current milestone name
|
|
187
|
+
- `version`: Computed version string
|
|
188
|
+
- `phases_completed`: Number of completed phases
|
|
189
|
+
- `total_phases`: Total phases in plan
|
|
190
|
+
|
|
191
|
+
### Step 2.8: Load Memory Health Metrics
|
|
192
|
+
|
|
193
|
+
{{TOOL_PREFIX "Loading memory health metrics..."}}
|
|
194
|
+
```bash
|
|
195
|
+
bash .aether/aether-utils.sh memory-metrics
|
|
196
|
+
```
|
|
197
|
+
|
|
198
|
+
Extract from JSON result:
|
|
199
|
+
- wisdom.total
|
|
200
|
+
- pending.total
|
|
201
|
+
- recent_failures.count
|
|
202
|
+
- last_activity.queen_md_updated
|
|
203
|
+
- last_activity.learning_captured
|
|
204
|
+
|
|
205
|
+
Format timestamps for display (YYYY-MM-DD HH:MM).
|
|
206
|
+
|
|
207
|
+
### Step 2.7: Generate Progress Bars
|
|
208
|
+
|
|
209
|
+
Calculate progress metrics and generate visual bars.
|
|
210
|
+
|
|
211
|
+
{{TOOL_PREFIX "Computing phase progress..."}}
|
|
212
|
+
```bash
|
|
213
|
+
current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
|
|
214
|
+
total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
|
|
215
|
+
|
|
216
|
+
# Calculate task progress in current phase
|
|
217
|
+
if [[ "$current_phase" -gt 0 && "$current_phase" -le "$total_phases" ]]; then
|
|
218
|
+
phase_idx=$((current_phase - 1))
|
|
219
|
+
tasks_completed=$(jq -r ".plan.phases[$phase_idx].tasks // [] | map(select(.status == \"completed\")) | length" .aether/data/COLONY_STATE.json)
|
|
220
|
+
tasks_total=$(jq -r ".plan.phases[$phase_idx].tasks // [] | length" .aether/data/COLONY_STATE.json)
|
|
221
|
+
phase_name=$(jq -r ".plan.phases[$phase_idx].name // \"Unnamed\"" .aether/data/COLONY_STATE.json)
|
|
222
|
+
else
|
|
223
|
+
tasks_completed=0
|
|
224
|
+
tasks_total=0
|
|
225
|
+
phase_name="No plan created"
|
|
226
|
+
fi
|
|
227
|
+
|
|
228
|
+
# Generate progress bars
|
|
229
|
+
phase_bar=$(bash .aether/aether-utils.sh generate-progress-bar "$current_phase" "$total_phases" 20)
|
|
230
|
+
task_bar=$(bash .aether/aether-utils.sh generate-progress-bar "$tasks_completed" "$tasks_total" 20)
|
|
231
|
+
|
|
232
|
+
echo "phase_bar=$phase_bar"
|
|
233
|
+
echo "task_bar=$task_bar"
|
|
234
|
+
echo "phase_name=$phase_name"
|
|
235
|
+
```
|
|
236
|
+
|
|
237
|
+
Store `phase_bar`, `task_bar`, and `phase_name` values for display in Step 3.
|
|
238
|
+
|
|
239
|
+
### Step 3: Display
|
|
240
|
+
|
|
241
|
+
Output format:
|
|
242
|
+
|
|
243
|
+
```
|
|
244
|
+
.-.
|
|
245
|
+
(o o) AETHER COLONY
|
|
246
|
+
| O | Status Report
|
|
247
|
+
`-`
|
|
248
|
+
ββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
249
|
+
|
|
250
|
+
π Goal: <goal (truncated to 60 chars)>
|
|
251
|
+
|
|
252
|
+
π Progress
|
|
253
|
+
Phase: [ββββββββββββββββββββ] <N>/<M> phases
|
|
254
|
+
Tasks: [ββββββββββββββββββββ] <completed>/<total> tasks in Phase <N>
|
|
255
|
+
|
|
256
|
+
π― Focus: <focus_count> areas | π« Avoid: <constraints_count> patterns
|
|
257
|
+
π§ Instincts: <total> learned (<high_confidence> strong)
|
|
258
|
+
π© Flags: <blockers> blockers | <issues> issues | <notes> notes
|
|
259
|
+
{if escalated_count > 0:}
|
|
260
|
+
β οΈ Escalated: {escalated_count} task(s) awaiting your decision
|
|
261
|
+
{end if}
|
|
262
|
+
π Milestone: <milestone> (<version>)
|
|
263
|
+
{{#claude}}
|
|
264
|
+
π¬ Depth: {colony_depth} β {label}{if depth_source == "default": " (default)"}
|
|
265
|
+
{{/claude}}
|
|
266
|
+
π Dreams: <dream_count> recorded (latest: <latest_dream>)
|
|
267
|
+
πΊοΈ Survey: <survey_docs> docs (<survey_age_days>d old, <fresh|stale|missing>)
|
|
268
|
+
|
|
269
|
+
π Memory Health
|
|
270
|
+
βββββββββββββββββββ¬βββββββββ¬ββββββββββββββββββββββββββββββ
|
|
271
|
+
β Metric β Count β Last Updated β
|
|
272
|
+
βββββββββββββββββββΌβββββββββΌββββββββββββββββββββββββββββββ€
|
|
273
|
+
β Wisdom Entries β {wisdom_total:>6} β {queen_updated} β
|
|
274
|
+
β Pending Promos β {pending_total:>6} β {learning_updated} β
|
|
275
|
+
β Recent Failures β {failures_count:>6} β {last_failure} β
|
|
276
|
+
βββββββββββββββββββ΄βββββββββ΄ββββββββββββββββββββββββββββββ
|
|
277
|
+
|
|
278
|
+
State: <state>
|
|
279
|
+
```
|
|
280
|
+
|
|
281
|
+
Use the `phase_bar` and `task_bar` values computed in Step 2.7 for the actual bar characters and counts.
|
|
282
|
+
|
|
283
|
+
**If instincts exist, also show top 3:**
|
|
284
|
+
```
|
|
285
|
+
π§ Colony Instincts:
|
|
286
|
+
[0.9] π testing: Always run tests before completion
|
|
287
|
+
[0.8] π architecture: Use composition over inheritance
|
|
288
|
+
[0.7] π debugging: Trace to root cause first
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
**Dream display:**
|
|
292
|
+
- If no dreams exist: `π Dreams: None recorded`
|
|
293
|
+
- If dreams exist: `π Dreams: <count> recorded (latest: YYYY-MM-DD HH:MM)`
|
|
294
|
+
|
|
295
|
+
**Memory Health display:**
|
|
296
|
+
- If memory-metrics returns empty/null values, show:
|
|
297
|
+
```
|
|
298
|
+
π Memory Health
|
|
299
|
+
No memory data available. Colony wisdom will accumulate as you complete phases.
|
|
300
|
+
```
|
|
301
|
+
|
|
302
|
+
{{#claude}}
|
|
303
|
+
**Colony Vital Signs:**
|
|
304
|
+
After the Memory Health table, run:
|
|
305
|
+
```bash
|
|
306
|
+
bash .aether/aether-utils.sh colony-vital-signs
|
|
307
|
+
```
|
|
308
|
+
|
|
309
|
+
Extract from JSON result:
|
|
310
|
+
- build_velocity.phases_per_day and build_velocity.trend
|
|
311
|
+
- error_rate.errors_per_day and error_rate.status
|
|
312
|
+
- signal_health.active_count and signal_health.status
|
|
313
|
+
- memory_pressure.instinct_count and memory_pressure.status
|
|
314
|
+
- colony_age_hours
|
|
315
|
+
- overall_health (0-100 score)
|
|
316
|
+
|
|
317
|
+
Map overall_health score to a label:
|
|
318
|
+
- 80-100: "Thriving"
|
|
319
|
+
- 60-79: "Healthy"
|
|
320
|
+
- 40-59: "Stable"
|
|
321
|
+
- 20-39: "Struggling"
|
|
322
|
+
- 0-19: "Critical"
|
|
323
|
+
|
|
324
|
+
Display:
|
|
325
|
+
```
|
|
326
|
+
π Colony Vital Signs
|
|
327
|
+
βββββββββββββββββββ¬βββββββββββββ¬ββββββββββββββββββββββββββββββ
|
|
328
|
+
β Vital Sign β Value β Status β
|
|
329
|
+
βββββββββββββββββββΌβββββββββββββΌββββββββββββββββββββββββββββββ€
|
|
330
|
+
β Build Velocity β {phases_per_day}/d β {trend} β
|
|
331
|
+
β Error Rate β {errors_per_day}/d β {error_status} β
|
|
332
|
+
β Signal Health β {active_count} β {signal_status} β
|
|
333
|
+
β Memory Pressure β {instinct_count} β {memory_status} β
|
|
334
|
+
β Colony Age β {colony_age_hours}h β β
|
|
335
|
+
βββββββββββββββββββΌβββββββββββββΌββββββββββββββββββββββββββββββ€
|
|
336
|
+
β Overall Health β {overall_health}% β {health_label} β
|
|
337
|
+
βββββββββββββββββββ΄βββββββββββββ΄ββββββββββββββββββββββββββββββ
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
If the command fails or returns no data, display:
|
|
341
|
+
```
|
|
342
|
+
π Colony Vital Signs: No data available
|
|
343
|
+
```
|
|
344
|
+
{{/claude}}
|
|
345
|
+
|
|
346
|
+
{{#claude}}
|
|
347
|
+
**Data Safety:**
|
|
348
|
+
After the Colony Vital Signs panel, run:
|
|
349
|
+
```bash
|
|
350
|
+
bash .aether/aether-utils.sh data-safety-stats
|
|
351
|
+
```
|
|
352
|
+
|
|
353
|
+
If the result contains non-zero counts, display:
|
|
354
|
+
```
|
|
355
|
+
π‘οΈ Data Safety
|
|
356
|
+
Stale locks cleaned: {stale_locks_cleaned}
|
|
357
|
+
JSON validation rejects: {json_validation_rejects}
|
|
358
|
+
```
|
|
359
|
+
|
|
360
|
+
If all counts are 0 or the subcommand returns no data, display:
|
|
361
|
+
```
|
|
362
|
+
π‘οΈ Data Safety: No issues detected
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
**Pheromone Summary:**
|
|
366
|
+
After the Data Safety section, run:
|
|
367
|
+
```bash
|
|
368
|
+
bash .aether/aether-utils.sh pheromone-count
|
|
369
|
+
```
|
|
370
|
+
|
|
371
|
+
Display:
|
|
372
|
+
```
|
|
373
|
+
π― Active Pheromones
|
|
374
|
+
ββββββββββββββ¬ββββββββ¬βββββββββββββββββββββββββββββββββββ
|
|
375
|
+
β Type β Count β Strongest Signal β
|
|
376
|
+
ββββββββββββββΌββββββββΌβββββββββββββββββββββββββββββββββββ€
|
|
377
|
+
β π― FOCUS β {n} β {strongest_focus or "none"} β
|
|
378
|
+
β π« REDIRECTβ {n} β {strongest_redirect or "none"} β
|
|
379
|
+
β π¬ FEEDBACKβ {n} β {strongest_feedback or "none"} β
|
|
380
|
+
ββββββββββββββ΄ββββββββ΄βββββββββββββββββββββββββββββββββββ
|
|
381
|
+
|
|
382
|
+
Run /ant:pheromones for full details
|
|
383
|
+
```
|
|
384
|
+
|
|
385
|
+
If all counts are 0:
|
|
386
|
+
```
|
|
387
|
+
π― Active Pheromones: None
|
|
388
|
+
Use /ant:focus, /ant:redirect, or /ant:feedback to inject signals
|
|
389
|
+
```
|
|
390
|
+
{{/claude}}
|
|
391
|
+
|
|
392
|
+
**Edge cases:**
|
|
393
|
+
- No phases yet: show `[ββββββββββββββββββββ] 0/0 phases`
|
|
394
|
+
- No tasks in phase: show `[ββββββββββββββββββββ] 0/0 tasks in Phase 0`
|
|
395
|
+
- No constraints file: "Constraints: 0 focus, 0 avoid"
|
|
396
|
+
|
|
397
|
+
**At the end of the output, generate the Next Up block:**
|
|
398
|
+
|
|
399
|
+
{{TOOL_PREFIX "Generating next steps..."}}
|
|
400
|
+
```bash
|
|
401
|
+
state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
|
|
402
|
+
current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
|
|
403
|
+
total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
|
|
404
|
+
|
|
405
|
+
bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_phases"
|
|
406
|
+
```
|
|
407
|
+
|
|
408
|
+
This auto-generates state-based recommendations (IDLE β init, READY β build, EXECUTING β continue, PLANNING β plan).
|