aether-colony 3.1.4 β 3.1.15
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/.claude/commands/ant/archaeology.md +12 -0
- package/.claude/commands/ant/build.md +382 -319
- package/.claude/commands/ant/chaos.md +23 -1
- package/.claude/commands/ant/colonize.md +147 -87
- package/.claude/commands/ant/continue.md +213 -23
- package/.claude/commands/ant/council.md +22 -0
- package/.claude/commands/ant/dream.md +18 -0
- package/.claude/commands/ant/entomb.md +178 -6
- package/.claude/commands/ant/init.md +87 -13
- package/.claude/commands/ant/lay-eggs.md +45 -5
- package/.claude/commands/ant/oracle.md +82 -9
- package/.claude/commands/ant/organize.md +2 -2
- package/.claude/commands/ant/pause-colony.md +86 -28
- package/.claude/commands/ant/phase.md +26 -0
- package/.claude/commands/ant/plan.md +204 -111
- package/.claude/commands/ant/resume-colony.md +23 -1
- package/.claude/commands/ant/resume.md +159 -0
- package/.claude/commands/ant/seal.md +177 -3
- package/.claude/commands/ant/swarm.md +78 -97
- package/.claude/commands/ant/verify-castes.md +7 -7
- package/.claude/commands/ant/watch.md +17 -0
- package/.opencode/agents/aether-ambassador.md +97 -0
- package/.opencode/agents/aether-archaeologist.md +91 -0
- package/.opencode/agents/aether-architect.md +66 -0
- package/.opencode/agents/aether-auditor.md +111 -0
- package/.opencode/agents/aether-builder.md +28 -10
- package/.opencode/agents/aether-chaos.md +98 -0
- package/.opencode/agents/aether-chronicler.md +80 -0
- package/.opencode/agents/aether-gatekeeper.md +107 -0
- package/.opencode/agents/aether-guardian.md +107 -0
- package/.opencode/agents/aether-includer.md +108 -0
- package/.opencode/agents/aether-keeper.md +106 -0
- package/.opencode/agents/aether-measurer.md +119 -0
- package/.opencode/agents/aether-probe.md +91 -0
- package/.opencode/agents/aether-queen.md +72 -19
- package/.opencode/agents/aether-route-setter.md +85 -0
- package/.opencode/agents/aether-sage.md +98 -0
- package/.opencode/agents/aether-scout.md +33 -15
- package/.opencode/agents/aether-surveyor-disciplines.md +334 -0
- package/.opencode/agents/aether-surveyor-nest.md +272 -0
- package/.opencode/agents/aether-surveyor-pathogens.md +209 -0
- package/.opencode/agents/aether-surveyor-provisions.md +277 -0
- package/.opencode/agents/aether-tracker.md +91 -0
- package/.opencode/agents/aether-watcher.md +30 -12
- package/.opencode/agents/aether-weaver.md +87 -0
- package/.opencode/agents/workers.md +1034 -0
- package/.opencode/commands/ant/archaeology.md +44 -26
- package/.opencode/commands/ant/build.md +327 -295
- package/.opencode/commands/ant/chaos.md +32 -4
- package/.opencode/commands/ant/colonize.md +119 -93
- package/.opencode/commands/ant/continue.md +98 -10
- package/.opencode/commands/ant/council.md +28 -0
- package/.opencode/commands/ant/dream.md +24 -0
- package/.opencode/commands/ant/entomb.md +73 -1
- package/.opencode/commands/ant/feedback.md +8 -2
- package/.opencode/commands/ant/flag.md +9 -3
- package/.opencode/commands/ant/flags.md +8 -2
- package/.opencode/commands/ant/focus.md +8 -2
- package/.opencode/commands/ant/help.md +12 -0
- package/.opencode/commands/ant/init.md +49 -4
- package/.opencode/commands/ant/lay-eggs.md +30 -2
- package/.opencode/commands/ant/oracle.md +39 -7
- package/.opencode/commands/ant/organize.md +9 -3
- package/.opencode/commands/ant/pause-colony.md +54 -1
- package/.opencode/commands/ant/phase.md +36 -4
- package/.opencode/commands/ant/plan.md +225 -117
- package/.opencode/commands/ant/redirect.md +8 -2
- package/.opencode/commands/ant/resume-colony.md +51 -26
- package/.opencode/commands/ant/seal.md +76 -0
- package/.opencode/commands/ant/status.md +50 -20
- package/.opencode/commands/ant/swarm.md +108 -104
- package/.opencode/commands/ant/tunnels.md +107 -2
- package/CHANGELOG.md +21 -0
- package/README.md +199 -86
- package/bin/cli.js +142 -25
- package/bin/generate-commands.sh +100 -16
- package/bin/lib/caste-colors.js +5 -5
- package/bin/lib/errors.js +16 -0
- package/bin/lib/file-lock.js +279 -44
- package/bin/lib/state-sync.js +206 -23
- package/bin/lib/update-transaction.js +206 -24
- package/bin/sync-to-runtime.sh +129 -0
- package/package.json +2 -2
- package/runtime/CONTEXT.md +160 -0
- package/runtime/aether-utils.sh +1421 -55
- package/runtime/docs/AETHER-2.0-IMPLEMENTATION-PLAN.md +1343 -0
- package/runtime/docs/AETHER-PHEROMONE-SYSTEM-MASTER-SPEC.md +2642 -0
- package/runtime/docs/PHEROMONE-INJECTION.md +240 -0
- package/runtime/docs/PHEROMONE-INTEGRATION.md +192 -0
- package/runtime/docs/PHEROMONE-SYSTEM-DESIGN.md +426 -0
- package/runtime/docs/README.md +94 -0
- package/runtime/docs/VISUAL-OUTPUT-SPEC.md +219 -0
- package/runtime/docs/biological-reference.md +272 -0
- package/runtime/docs/codebase-review.md +399 -0
- package/runtime/docs/command-sync.md +164 -0
- package/runtime/docs/implementation-learnings.md +89 -0
- package/runtime/docs/known-issues.md +217 -0
- package/runtime/docs/namespace.md +148 -0
- package/runtime/docs/planning-discipline.md +159 -0
- package/runtime/lib/queen-utils.sh +729 -0
- package/runtime/model-profiles.yaml +100 -0
- package/runtime/recover.sh +136 -0
- package/runtime/templates/QUEEN.md.template +79 -0
- package/runtime/utils/atomic-write.sh +5 -5
- package/runtime/utils/chamber-utils.sh +6 -3
- package/runtime/utils/error-handler.sh +200 -0
- package/runtime/utils/queen-to-md.xsl +395 -0
- package/runtime/utils/spawn-tree.sh +428 -0
- package/runtime/utils/spawn-with-model.sh +56 -0
- package/runtime/utils/state-loader.sh +215 -0
- package/runtime/utils/swarm-display.sh +5 -5
- package/runtime/utils/watch-spawn-tree.sh +90 -22
- package/runtime/utils/xml-compose.sh +247 -0
- package/runtime/utils/xml-core.sh +186 -0
- package/runtime/utils/xml-utils.sh +2161 -0
- package/runtime/verification-loop.md +1 -1
- package/runtime/workers-new-castes.md +516 -0
- package/runtime/workers.md +20 -8
- package/.aether/visualizations/anthill-stages/brood-stable.txt +0 -26
- package/.aether/visualizations/anthill-stages/crowned-anthill.txt +0 -30
- package/.aether/visualizations/anthill-stages/first-mound.txt +0 -18
- package/.aether/visualizations/anthill-stages/open-chambers.txt +0 -24
- package/.aether/visualizations/anthill-stages/sealed-chambers.txt +0 -28
- package/.aether/visualizations/anthill-stages/ventilated-nest.txt +0 -27
|
@@ -60,6 +60,22 @@ Categories tested:
|
|
|
60
60
|
|
|
61
61
|
## Instructions
|
|
62
62
|
|
|
63
|
+
Parse `$ARGUMENTS`:
|
|
64
|
+
- If contains `--no-visual`: set `visual_mode = false` (visual is ON by default)
|
|
65
|
+
- Otherwise: set `visual_mode = true`
|
|
66
|
+
|
|
67
|
+
### Step 0: Initialize Visual Mode (if enabled)
|
|
68
|
+
|
|
69
|
+
If `visual_mode` is true:
|
|
70
|
+
```bash
|
|
71
|
+
# Generate session ID
|
|
72
|
+
chaos_id="chaos-$(date +%s)"
|
|
73
|
+
|
|
74
|
+
# Initialize swarm display
|
|
75
|
+
bash .aether/aether-utils.sh swarm-display-init "$chaos_id"
|
|
76
|
+
bash .aether/aether-utils.sh swarm-display-update "Chaos Ant" "chaos" "excavating" "Probing for weaknesses" "Colony" '{"read":0,"grep":0,"edit":0,"bash":0}' 0 "fungus_garden" 0
|
|
77
|
+
```
|
|
78
|
+
|
|
63
79
|
### Step 1: Awaken β Load Context
|
|
64
80
|
|
|
65
81
|
Read these files in parallel to understand the colony and codebase:
|
|
@@ -76,7 +92,7 @@ Read these files in parallel to understand the colony and codebase:
|
|
|
76
92
|
|
|
77
93
|
**If no relevant files can be found for the target:**
|
|
78
94
|
```
|
|
79
|
-
|
|
95
|
+
π²π Chaos Ant cannot locate target: $ARGUMENTS
|
|
80
96
|
Searched for matching files and modules but found nothing.
|
|
81
97
|
Please provide a valid file path, module name, or feature description.
|
|
82
98
|
```
|
|
@@ -206,6 +222,12 @@ For each scenario, produce a finding in this format. Display each to the termina
|
|
|
206
222
|
|
|
207
223
|
### Step 5: Produce the Chaos Report
|
|
208
224
|
|
|
225
|
+
**If visual_mode is true, render final swarm display:**
|
|
226
|
+
```bash
|
|
227
|
+
bash .aether/aether-utils.sh swarm-display-update "Chaos Ant" "chaos" "completed" "Resilience test complete" "Colony" '{"read":8,"grep":4,"edit":0,"bash":3}' 100 "fungus_garden" 100
|
|
228
|
+
bash .aether/aether-utils.sh swarm-display-render "$chaos_id"
|
|
229
|
+
```
|
|
230
|
+
|
|
209
231
|
After all 5 scenarios, compile the structured report:
|
|
210
232
|
|
|
211
233
|
```
|
|
@@ -1,12 +1,40 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: ant:colonize
|
|
3
|
-
description: "
|
|
3
|
+
description: "πππΊοΈππ Survey territory with 4 parallel scouts for comprehensive colony intelligence"
|
|
4
4
|
---
|
|
5
5
|
|
|
6
|
-
You are the **Queen**.
|
|
6
|
+
You are the **Queen**. Dispatch Surveyor Ants to map the territory.
|
|
7
|
+
|
|
8
|
+
The arguments are: `$ARGUMENTS`
|
|
9
|
+
|
|
10
|
+
**Parse arguments:**
|
|
11
|
+
- If contains `--no-visual`: set `visual_mode = false` (visual is ON by default)
|
|
12
|
+
- If contains `--force` or `--force-resurvey`: set `force_resurvey = true`
|
|
13
|
+
- Otherwise: set `visual_mode = true`, `force_resurvey = false`
|
|
7
14
|
|
|
8
15
|
## Instructions
|
|
9
16
|
|
|
17
|
+
### Step 0: Initialize Visual Mode (if enabled)
|
|
18
|
+
|
|
19
|
+
If `visual_mode` is true:
|
|
20
|
+
```bash
|
|
21
|
+
# Generate session ID
|
|
22
|
+
colonize_id="colonize-$(date +%s)"
|
|
23
|
+
|
|
24
|
+
# Initialize swarm display
|
|
25
|
+
bash .aether/aether-utils.sh swarm-display-init "$colonize_id"
|
|
26
|
+
bash .aether/aether-utils.sh swarm-display-update "Queen" "prime" "dispatching" "Surveying territory" "Colony" '{"read":0,"grep":0,"edit":0,"bash":0}' 0 "fungus_garden" 0
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Display header:
|
|
30
|
+
```
|
|
31
|
+
πππΊοΈππ βββββββββββββββββββββββββββββββββββββββββββββββ
|
|
32
|
+
C O L O N I Z E β T e r r i t o r y S u r v e y
|
|
33
|
+
βββββββββββββββββββββββββββββββββββββββββββββββ πππΊοΈππ
|
|
34
|
+
|
|
35
|
+
Queen dispatching Surveyor Ants...
|
|
36
|
+
```
|
|
37
|
+
|
|
10
38
|
### Step 1: Validate
|
|
11
39
|
|
|
12
40
|
Read `.aether/data/COLONY_STATE.json`.
|
|
@@ -15,15 +43,15 @@ Read `.aether/data/COLONY_STATE.json`.
|
|
|
15
43
|
1. Create `.aether/data/` directory if it does not exist.
|
|
16
44
|
2. Write a minimal COLONY_STATE.json:
|
|
17
45
|
`{"version": "3.0", "goal": null, "state": "IDLE", "current_phase": 0, "session_id": null, "initialized_at": null, "build_started_at": null, "plan": {"generated_at": null, "confidence": null, "phases": []}, "memory": {"phase_learnings": [], "decisions": [], "instincts": []}, "errors": {"records": [], "flagged_patterns": []}, "signals": [], "graveyards": [], "events": []}`
|
|
18
|
-
3. Output: "No colony state found. Bootstrapping minimal state for
|
|
46
|
+
3. Output: "No colony state found. Bootstrapping minimal state for territory survey."
|
|
19
47
|
|
|
20
|
-
**If the file exists:** continue
|
|
48
|
+
**If the file exists:** continue.
|
|
21
49
|
|
|
22
50
|
**If `plan.phases` is not empty:** output "Colony already has phases. Use /ant:continue.", stop.
|
|
23
51
|
|
|
24
|
-
### Step 2: Surface Scan
|
|
52
|
+
### Step 2: Quick Surface Scan (for session context)
|
|
25
53
|
|
|
26
|
-
Use Glob to find key files (read up to 20 total).
|
|
54
|
+
Use Glob to find key files (read up to 20 total) to provide context for the survey.
|
|
27
55
|
|
|
28
56
|
**Package manifests:**
|
|
29
57
|
- package.json, Cargo.toml, pyproject.toml, go.mod, Gemfile, pom.xml, build.gradle
|
|
@@ -37,107 +65,158 @@ Use Glob to find key files (read up to 20 total).
|
|
|
37
65
|
**Config:**
|
|
38
66
|
- tsconfig.json, .eslintrc.*, jest.config.*, vite.config.*, webpack.config.*
|
|
39
67
|
|
|
40
|
-
Read found files. Extract:
|
|
41
|
-
- Tech stack (language, framework
|
|
68
|
+
Read found files. Extract basic info:
|
|
69
|
+
- Tech stack (language, framework)
|
|
42
70
|
- Entry points (main files)
|
|
43
|
-
- Key directories
|
|
44
|
-
- File counts per top-level directory
|
|
71
|
+
- Key directories
|
|
45
72
|
|
|
46
|
-
### Step
|
|
73
|
+
### Step 3: Dispatch Surveyor Ants (Parallel)
|
|
47
74
|
|
|
48
|
-
|
|
75
|
+
Create the survey directory:
|
|
76
|
+
```bash
|
|
77
|
+
mkdir -p .aether/data/survey
|
|
78
|
+
```
|
|
49
79
|
|
|
50
|
-
|
|
80
|
+
#### Step 3.1: Check for Stale Survey Session
|
|
51
81
|
|
|
52
|
-
|
|
53
|
-
Scan for commands under headings matching: `Commands`, `Scripts`, `Development`, `Build`, `Testing`, `Lint`, or similar.
|
|
54
|
-
Also extract inline code blocks containing patterns like `npm`, `npx`, `yarn`, `pnpm`, `cargo`, `go`, `pytest`, `make`, `gradle`, `mvn`.
|
|
55
|
-
For each command found, store: `{ label, command, source: "claude_md" }`.
|
|
82
|
+
Before dispatching surveyors, check for existing survey files and capture session start time:
|
|
56
83
|
|
|
57
|
-
|
|
84
|
+
```bash
|
|
85
|
+
SURVEY_START=$(date +%s)
|
|
58
86
|
|
|
59
|
-
|
|
87
|
+
# Check for stale survey files
|
|
88
|
+
stale_check=$(bash .aether/aether-utils.sh session-verify-fresh --command survey "" "$SURVEY_START")
|
|
89
|
+
has_stale=$(echo "$stale_check" | jq -r '.stale | length')
|
|
90
|
+
has_fresh=$(echo "$stale_check" | jq -r '.fresh | length')
|
|
60
91
|
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
| pyproject.toml | `[tool.mypy]` or mypy in deps | typecheck | `mypy .` |
|
|
73
|
-
| go.mod | (exists) | test | `go test ./...` |
|
|
74
|
-
| go.mod | (exists) | build | `go build ./...` |
|
|
92
|
+
if [[ "$has_stale" -gt 0 ]] || [[ "$has_fresh" -gt 0 ]]; then
|
|
93
|
+
# Found existing survey files
|
|
94
|
+
if [[ "$force_resurvey" == "true" ]]; then
|
|
95
|
+
bash .aether/aether-utils.sh session-clear --command survey
|
|
96
|
+
echo "Cleared existing survey files for fresh territory mapping"
|
|
97
|
+
else
|
|
98
|
+
echo "Found existing territory survey. Use --force-resurvey to remap."
|
|
99
|
+
# Continue - will use existing survey files
|
|
100
|
+
fi
|
|
101
|
+
fi
|
|
102
|
+
```
|
|
75
103
|
|
|
76
|
-
|
|
104
|
+
Generate unique names for the 4 Surveyor Ants and log their dispatch:
|
|
105
|
+
```bash
|
|
106
|
+
bash .aether/aether-utils.sh generate-ant-name "surveyor"
|
|
107
|
+
bash .aether/aether-utils.sh generate-ant-name "surveyor"
|
|
108
|
+
bash .aether/aether-utils.sh generate-ant-name "surveyor"
|
|
109
|
+
bash .aether/aether-utils.sh generate-ant-name "surveyor"
|
|
110
|
+
```
|
|
77
111
|
|
|
78
|
-
|
|
112
|
+
Log the dispatch:
|
|
113
|
+
```bash
|
|
114
|
+
bash .aether/aether-utils.sh spawn-log "Queen" "surveyor" "{provisions_name}" "Mapping provisions and trails"
|
|
115
|
+
bash .aether/aether-utils.sh spawn-log "Queen" "surveyor" "{nest_name}" "Mapping nest structure"
|
|
116
|
+
bash .aether/aether-utils.sh spawn-log "Queen" "surveyor" "{disciplines_name}" "Mapping disciplines and sentinels"
|
|
117
|
+
bash .aether/aether-utils.sh spawn-log "Queen" "surveyor" "{pathogens_name}" "Identifying pathogens"
|
|
118
|
+
```
|
|
79
119
|
|
|
80
|
-
|
|
120
|
+
**Spawn 4 Surveyor Ants in parallel using the Task tool:**
|
|
81
121
|
|
|
82
|
-
|
|
122
|
+
Each Task should use `subagent_type="aether-surveyor-{focus}"`:
|
|
123
|
+
1. `aether-surveyor-provisions` β Maps PROVISIONS.md and TRAILS.md
|
|
124
|
+
2. `aether-surveyor-nest` β Maps BLUEPRINT.md and CHAMBERS.md
|
|
125
|
+
3. `aether-surveyor-disciplines` β Maps DISCIPLINES.md and SENTINEL-PROTOCOLS.md
|
|
126
|
+
4. `aether-surveyor-pathogens` β Maps PATHOGENS.md
|
|
83
127
|
|
|
84
|
-
|
|
85
|
-
|
|
128
|
+
**Prompt for each surveyor:**
|
|
129
|
+
```
|
|
130
|
+
You are Surveyor Ant {name}. Explore this codebase and write your survey documents.
|
|
86
131
|
|
|
87
|
-
|
|
88
|
-
**Entry:** <main entry points>
|
|
132
|
+
Focus: {provisions|nest|disciplines|pathogens}
|
|
89
133
|
|
|
90
|
-
|
|
91
|
-
-
|
|
92
|
-
-
|
|
134
|
+
The surface scan found:
|
|
135
|
+
- Language: {language}
|
|
136
|
+
- Framework: {framework}
|
|
137
|
+
- Key directories: {dirs}
|
|
93
138
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
- ...
|
|
139
|
+
Write your documents to `.aether/data/survey/` following your agent template.
|
|
140
|
+
Return only confirmation when complete β do not include document contents.
|
|
141
|
+
```
|
|
98
142
|
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
143
|
+
Collect confirmations from all 4 surveyors. Each should return:
|
|
144
|
+
- Document name(s) written
|
|
145
|
+
- Line count(s)
|
|
146
|
+
- Brief status
|
|
147
|
+
|
|
148
|
+
### Step 4: Verify Survey Completeness
|
|
149
|
+
|
|
150
|
+
Check that all 7 documents were created:
|
|
151
|
+
```bash
|
|
152
|
+
ls .aether/data/survey/PROVISIONS.md 2>/dev/null && echo "PROVISIONS: OK" || echo "PROVISIONS: MISSING"
|
|
153
|
+
ls .aether/data/survey/TRAILS.md 2>/dev/null && echo "TRAILS: OK" || echo "TRAILS: MISSING"
|
|
154
|
+
ls .aether/data/survey/BLUEPRINT.md 2>/dev/null && echo "BLUEPRINT: OK" || echo "BLUEPRINT: MISSING"
|
|
155
|
+
ls .aether/data/survey/CHAMBERS.md 2>/dev/null && echo "CHAMBERS: OK" || echo "CHAMBERS: MISSING"
|
|
156
|
+
ls .aether/data/survey/DISCIPLINES.md 2>/dev/null && echo "DISCIPLINES: OK" || echo "DISCIPLINES: MISSING"
|
|
157
|
+
ls .aether/data/survey/SENTINEL-PROTOCOLS.md 2>/dev/null && echo "SENTINEL: OK" || echo "SENTINEL: MISSING"
|
|
158
|
+
ls .aether/data/survey/PATHOGENS.md 2>/dev/null && echo "PATHOGENS: OK" || echo "PATHOGENS: MISSING"
|
|
159
|
+
```
|
|
105
160
|
|
|
106
|
-
|
|
161
|
+
If any documents are missing, note which ones in the output.
|
|
107
162
|
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
163
|
+
#### Step 4.5: Verify Survey Files Are Fresh
|
|
164
|
+
|
|
165
|
+
Verify that all survey files were created after the session start:
|
|
166
|
+
```bash
|
|
167
|
+
verify_result=$(bash .aether/aether-utils.sh session-verify-fresh --command survey "" "$SURVEY_START")
|
|
168
|
+
fresh_count=$(echo "$verify_result" | jq -r '.fresh | length')
|
|
111
169
|
|
|
112
|
-
|
|
170
|
+
if [[ "$fresh_count" -lt 7 ]]; then
|
|
171
|
+
echo "Warning: Some survey files may be stale or missing"
|
|
172
|
+
echo "$verify_result" | jq -r '.stale[], .missing[]' | while read doc; do
|
|
173
|
+
echo " - $doc"
|
|
174
|
+
done
|
|
175
|
+
fi
|
|
176
|
+
```
|
|
113
177
|
|
|
114
|
-
### Step
|
|
178
|
+
### Step 5: Update State
|
|
115
179
|
|
|
116
180
|
Read `.aether/data/COLONY_STATE.json`. Update:
|
|
117
181
|
- Set `state` to `"IDLE"` (ready for planning)
|
|
182
|
+
- Set `territory_surveyed` to `"<ISO-8601 UTC>"`
|
|
118
183
|
|
|
119
184
|
Write Event: Append to the `events` array as pipe-delimited string:
|
|
120
|
-
`"<ISO-8601 UTC>|
|
|
185
|
+
`"<ISO-8601 UTC>|territory_surveyed|colonize|Territory surveyed: 7 documents"`
|
|
121
186
|
|
|
122
187
|
If the `events` array exceeds 100 entries, remove the oldest entries to keep only 100.
|
|
123
188
|
|
|
124
189
|
Write the updated COLONY_STATE.json.
|
|
125
190
|
|
|
126
|
-
### Step
|
|
191
|
+
### Step 6: Confirm
|
|
127
192
|
|
|
128
193
|
Output header:
|
|
129
194
|
|
|
130
195
|
```
|
|
131
|
-
|
|
132
|
-
|
|
133
|
-
βββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
196
|
+
πππΊοΈππ βββββββββββββββββββββββββββββββββββββββββββββββββββ
|
|
197
|
+
T E R R I T O R Y S U R V E Y C O M P L E T E
|
|
198
|
+
βββββββββββββββββββββββββββββββββββββββββββββββββββ πππΊοΈππ
|
|
134
199
|
```
|
|
135
200
|
|
|
136
201
|
Then output:
|
|
137
202
|
|
|
138
203
|
```
|
|
139
|
-
|
|
140
|
-
|
|
204
|
+
πΊοΈ Colony territory has been surveyed.
|
|
205
|
+
|
|
206
|
+
Survey Reports:
|
|
207
|
+
π¦ PROVISIONS.md β Tech stack & dependencies
|
|
208
|
+
π€οΈ TRAILS.md β External integrations
|
|
209
|
+
π BLUEPRINT.md β Architecture patterns
|
|
210
|
+
π CHAMBERS.md β Directory structure
|
|
211
|
+
π DISCIPLINES.md β Coding conventions
|
|
212
|
+
π‘οΈ SENTINEL-PROTOCOLS.md β Testing patterns
|
|
213
|
+
β οΈ PATHOGENS.md β Tech debt & concerns
|
|
214
|
+
|
|
215
|
+
Location: .aether/data/survey/
|
|
216
|
+
|
|
217
|
+
{If any docs missing:}
|
|
218
|
+
β οΈ Missing: {list missing documents}
|
|
219
|
+
{/if}
|
|
141
220
|
|
|
142
221
|
Stack: <language> + <framework>
|
|
143
222
|
Entry: <main entry point>
|
|
@@ -151,26 +230,7 @@ Next:
|
|
|
151
230
|
|
|
152
231
|
{If goal is not null:}
|
|
153
232
|
Next:
|
|
154
|
-
/ant:plan Generate project plan
|
|
233
|
+
/ant:plan Generate project plan (will load relevant survey docs)
|
|
155
234
|
/ant:focus "<area>" Inject focus before planning
|
|
156
235
|
/ant:redirect "<pat>" Inject constraint before planning
|
|
157
236
|
```
|
|
158
|
-
|
|
159
|
-
### Step 5.5: Suggest Commands for CLAUDE.md
|
|
160
|
-
|
|
161
|
-
Skip if all commands came from `claude_md` or none were detected. This is **non-blocking** -- do not edit CLAUDE.md automatically.
|
|
162
|
-
|
|
163
|
-
For heuristic-sourced commands only, output:
|
|
164
|
-
|
|
165
|
-
```
|
|
166
|
-
π‘ Detected commands not yet in CLAUDE.md. Consider adding:
|
|
167
|
-
```
|
|
168
|
-
|
|
169
|
-
Then a fenced code block the user can copy-paste into CLAUDE.md:
|
|
170
|
-
|
|
171
|
-
```markdown
|
|
172
|
-
## Commands
|
|
173
|
-
- <label>: `<command>`
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
Then: `Paste the above into your project's CLAUDE.md to skip heuristic detection next time.`
|