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.
Files changed (124) hide show
  1. package/.claude/commands/ant/archaeology.md +12 -0
  2. package/.claude/commands/ant/build.md +382 -319
  3. package/.claude/commands/ant/chaos.md +23 -1
  4. package/.claude/commands/ant/colonize.md +147 -87
  5. package/.claude/commands/ant/continue.md +213 -23
  6. package/.claude/commands/ant/council.md +22 -0
  7. package/.claude/commands/ant/dream.md +18 -0
  8. package/.claude/commands/ant/entomb.md +178 -6
  9. package/.claude/commands/ant/init.md +87 -13
  10. package/.claude/commands/ant/lay-eggs.md +45 -5
  11. package/.claude/commands/ant/oracle.md +82 -9
  12. package/.claude/commands/ant/organize.md +2 -2
  13. package/.claude/commands/ant/pause-colony.md +86 -28
  14. package/.claude/commands/ant/phase.md +26 -0
  15. package/.claude/commands/ant/plan.md +204 -111
  16. package/.claude/commands/ant/resume-colony.md +23 -1
  17. package/.claude/commands/ant/resume.md +159 -0
  18. package/.claude/commands/ant/seal.md +177 -3
  19. package/.claude/commands/ant/swarm.md +78 -97
  20. package/.claude/commands/ant/verify-castes.md +7 -7
  21. package/.claude/commands/ant/watch.md +17 -0
  22. package/.opencode/agents/aether-ambassador.md +97 -0
  23. package/.opencode/agents/aether-archaeologist.md +91 -0
  24. package/.opencode/agents/aether-architect.md +66 -0
  25. package/.opencode/agents/aether-auditor.md +111 -0
  26. package/.opencode/agents/aether-builder.md +28 -10
  27. package/.opencode/agents/aether-chaos.md +98 -0
  28. package/.opencode/agents/aether-chronicler.md +80 -0
  29. package/.opencode/agents/aether-gatekeeper.md +107 -0
  30. package/.opencode/agents/aether-guardian.md +107 -0
  31. package/.opencode/agents/aether-includer.md +108 -0
  32. package/.opencode/agents/aether-keeper.md +106 -0
  33. package/.opencode/agents/aether-measurer.md +119 -0
  34. package/.opencode/agents/aether-probe.md +91 -0
  35. package/.opencode/agents/aether-queen.md +72 -19
  36. package/.opencode/agents/aether-route-setter.md +85 -0
  37. package/.opencode/agents/aether-sage.md +98 -0
  38. package/.opencode/agents/aether-scout.md +33 -15
  39. package/.opencode/agents/aether-surveyor-disciplines.md +334 -0
  40. package/.opencode/agents/aether-surveyor-nest.md +272 -0
  41. package/.opencode/agents/aether-surveyor-pathogens.md +209 -0
  42. package/.opencode/agents/aether-surveyor-provisions.md +277 -0
  43. package/.opencode/agents/aether-tracker.md +91 -0
  44. package/.opencode/agents/aether-watcher.md +30 -12
  45. package/.opencode/agents/aether-weaver.md +87 -0
  46. package/.opencode/agents/workers.md +1034 -0
  47. package/.opencode/commands/ant/archaeology.md +44 -26
  48. package/.opencode/commands/ant/build.md +327 -295
  49. package/.opencode/commands/ant/chaos.md +32 -4
  50. package/.opencode/commands/ant/colonize.md +119 -93
  51. package/.opencode/commands/ant/continue.md +98 -10
  52. package/.opencode/commands/ant/council.md +28 -0
  53. package/.opencode/commands/ant/dream.md +24 -0
  54. package/.opencode/commands/ant/entomb.md +73 -1
  55. package/.opencode/commands/ant/feedback.md +8 -2
  56. package/.opencode/commands/ant/flag.md +9 -3
  57. package/.opencode/commands/ant/flags.md +8 -2
  58. package/.opencode/commands/ant/focus.md +8 -2
  59. package/.opencode/commands/ant/help.md +12 -0
  60. package/.opencode/commands/ant/init.md +49 -4
  61. package/.opencode/commands/ant/lay-eggs.md +30 -2
  62. package/.opencode/commands/ant/oracle.md +39 -7
  63. package/.opencode/commands/ant/organize.md +9 -3
  64. package/.opencode/commands/ant/pause-colony.md +54 -1
  65. package/.opencode/commands/ant/phase.md +36 -4
  66. package/.opencode/commands/ant/plan.md +225 -117
  67. package/.opencode/commands/ant/redirect.md +8 -2
  68. package/.opencode/commands/ant/resume-colony.md +51 -26
  69. package/.opencode/commands/ant/seal.md +76 -0
  70. package/.opencode/commands/ant/status.md +50 -20
  71. package/.opencode/commands/ant/swarm.md +108 -104
  72. package/.opencode/commands/ant/tunnels.md +107 -2
  73. package/CHANGELOG.md +21 -0
  74. package/README.md +199 -86
  75. package/bin/cli.js +142 -25
  76. package/bin/generate-commands.sh +100 -16
  77. package/bin/lib/caste-colors.js +5 -5
  78. package/bin/lib/errors.js +16 -0
  79. package/bin/lib/file-lock.js +279 -44
  80. package/bin/lib/state-sync.js +206 -23
  81. package/bin/lib/update-transaction.js +206 -24
  82. package/bin/sync-to-runtime.sh +129 -0
  83. package/package.json +2 -2
  84. package/runtime/CONTEXT.md +160 -0
  85. package/runtime/aether-utils.sh +1421 -55
  86. package/runtime/docs/AETHER-2.0-IMPLEMENTATION-PLAN.md +1343 -0
  87. package/runtime/docs/AETHER-PHEROMONE-SYSTEM-MASTER-SPEC.md +2642 -0
  88. package/runtime/docs/PHEROMONE-INJECTION.md +240 -0
  89. package/runtime/docs/PHEROMONE-INTEGRATION.md +192 -0
  90. package/runtime/docs/PHEROMONE-SYSTEM-DESIGN.md +426 -0
  91. package/runtime/docs/README.md +94 -0
  92. package/runtime/docs/VISUAL-OUTPUT-SPEC.md +219 -0
  93. package/runtime/docs/biological-reference.md +272 -0
  94. package/runtime/docs/codebase-review.md +399 -0
  95. package/runtime/docs/command-sync.md +164 -0
  96. package/runtime/docs/implementation-learnings.md +89 -0
  97. package/runtime/docs/known-issues.md +217 -0
  98. package/runtime/docs/namespace.md +148 -0
  99. package/runtime/docs/planning-discipline.md +159 -0
  100. package/runtime/lib/queen-utils.sh +729 -0
  101. package/runtime/model-profiles.yaml +100 -0
  102. package/runtime/recover.sh +136 -0
  103. package/runtime/templates/QUEEN.md.template +79 -0
  104. package/runtime/utils/atomic-write.sh +5 -5
  105. package/runtime/utils/chamber-utils.sh +6 -3
  106. package/runtime/utils/error-handler.sh +200 -0
  107. package/runtime/utils/queen-to-md.xsl +395 -0
  108. package/runtime/utils/spawn-tree.sh +428 -0
  109. package/runtime/utils/spawn-with-model.sh +56 -0
  110. package/runtime/utils/state-loader.sh +215 -0
  111. package/runtime/utils/swarm-display.sh +5 -5
  112. package/runtime/utils/watch-spawn-tree.sh +90 -22
  113. package/runtime/utils/xml-compose.sh +247 -0
  114. package/runtime/utils/xml-core.sh +186 -0
  115. package/runtime/utils/xml-utils.sh +2161 -0
  116. package/runtime/verification-loop.md +1 -1
  117. package/runtime/workers-new-castes.md +516 -0
  118. package/runtime/workers.md +20 -8
  119. package/.aether/visualizations/anthill-stages/brood-stable.txt +0 -26
  120. package/.aether/visualizations/anthill-stages/crowned-anthill.txt +0 -30
  121. package/.aether/visualizations/anthill-stages/first-mound.txt +0 -18
  122. package/.aether/visualizations/anthill-stages/open-chambers.txt +0 -24
  123. package/.aether/visualizations/anthill-stages/sealed-chambers.txt +0 -28
  124. 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
- 🎲 Chaos Ant cannot locate target: $ARGUMENTS
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: "πŸ”πŸœπŸ—ΊοΈπŸœπŸ” Analyze codebase and prepare for colony work"
3
+ description: "πŸ“ŠπŸœπŸ—ΊοΈπŸœπŸ“Š Survey territory with 4 parallel scouts for comprehensive colony intelligence"
4
4
  ---
5
5
 
6
- You are the **Queen**. Perform initial codebase analysis.
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 codebase analysis."
46
+ 3. Output: "No colony state found. Bootstrapping minimal state for territory survey."
19
47
 
20
- **If the file exists:** continue (colonize works with or without a goal).
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, key dependencies)
68
+ Read found files. Extract basic info:
69
+ - Tech stack (language, framework)
42
70
  - Entry points (main files)
43
- - Key directories (src/, lib/, tests/, etc.)
44
- - File counts per top-level directory
71
+ - Key directories
45
72
 
46
- ### Step 2.5: Command Detection
73
+ ### Step 3: Dispatch Surveyor Ants (Parallel)
47
74
 
48
- Detect build, test, type-check, and lint commands from two sources. Track each command with its source attribution (`claude_md` or `heuristic`).
75
+ Create the survey directory:
76
+ ```bash
77
+ mkdir -p .aether/data/survey
78
+ ```
49
79
 
50
- **Source 1 β€” CLAUDE.md (priority):**
80
+ #### Step 3.1: Check for Stale Survey Session
51
81
 
52
- Read `CLAUDE.md` in the project root. If it does not exist, skip to Source 2.
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
- **Source 2 β€” Heuristic from package manifests:**
84
+ ```bash
85
+ SURVEY_START=$(date +%s)
58
86
 
59
- Using the manifests found in Step 2, infer commands with this table:
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
- | Manifest | Field/Pattern | Label | Command |
62
- |---|---|---|---|
63
- | package.json | `scripts.test` | test | `npm test` |
64
- | package.json | `scripts.build` | build | `npm run build` |
65
- | package.json | `scripts.lint` | lint | `npm run lint` |
66
- | package.json | `scripts.typecheck` or `scripts.type-check` | typecheck | `npm run typecheck` |
67
- | Cargo.toml | (exists) | test | `cargo test` |
68
- | Cargo.toml | (exists) | build | `cargo build` |
69
- | Cargo.toml | `clippy` in deps | lint | `cargo clippy` |
70
- | pyproject.toml | `[tool.pytest]` or pytest in deps | test | `pytest` |
71
- | pyproject.toml | `[tool.ruff]` or ruff in deps | lint | `ruff check .` |
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
- For each inferred command, only store it if no command with the same label was already found from CLAUDE.md (CLAUDE.md wins per-label). Store as: `{ label, command, source: "heuristic" }`.
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
- If neither source yields any commands, set the detected commands list to empty.
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
- ### Step 3: Write CODEBASE.md
120
+ **Spawn 4 Surveyor Ants in parallel using the Task tool:**
81
121
 
82
- Create `.planning/CODEBASE.md` (ensure `.planning/` exists first):
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
- ```markdown
85
- # Codebase Overview
128
+ **Prompt for each surveyor:**
129
+ ```
130
+ You are Surveyor Ant {name}. Explore this codebase and write your survey documents.
86
131
 
87
- **Stack:** <language> + <framework>
88
- **Entry:** <main entry points>
132
+ Focus: {provisions|nest|disciplines|pathogens}
89
133
 
90
- **Structure:**
91
- - <dir>/ (<count> files)
92
- - ...
134
+ The surface scan found:
135
+ - Language: {language}
136
+ - Framework: {framework}
137
+ - Key directories: {dirs}
93
138
 
94
- **Key Dependencies:**
95
- - <dep1>: <purpose>
96
- - <dep2>: <purpose>
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
- ## Commands
100
- <for each detected command from Step 2.5>
101
- - **<label>**: `<command>` (<source: claude_md | heuristic>)
102
- <if no commands detected>
103
- No build system detected.
104
- </if>
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
- **Test Location:** <tests/ or __tests__/ or similar>
161
+ If any documents are missing, note which ones in the output.
107
162
 
108
- **Notes:**
109
- - <any notable patterns or conventions observed>
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
- Keep output under 50 lines. Focus on what's relevant to the colony goal (if set), or provide a general codebase overview.
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 4: Update State
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>|codebase_colonized|colonize|Codebase analyzed: <primary language/framework>"`
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 5: Confirm
191
+ ### Step 6: Confirm
127
192
 
128
193
  Output header:
129
194
 
130
195
  ```
131
- πŸ”πŸœπŸ—ΊοΈπŸœπŸ” ═══════════════════════════════════════════════════
132
- C O D E B A S E A N A L Y S I S
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
- Codebase analysis complete.
140
- See: .planning/CODEBASE.md
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.`