aether-colony 5.3.2 โ†’ 5.3.3

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 (165) hide show
  1. package/.aether/aether-utils.sh +181 -5
  2. package/.aether/commands/build.yaml +35 -0
  3. package/.aether/commands/entomb.yaml +1 -1
  4. package/.aether/commands/init.yaml +29 -12
  5. package/.aether/commands/oracle.yaml +70 -0
  6. package/.aether/commands/patrol.yaml +2 -2
  7. package/.aether/commands/run.yaml +3 -3
  8. package/.aether/commands/swarm.yaml +1 -1
  9. package/.aether/docs/command-playbooks/build-complete.md +41 -8
  10. package/.aether/docs/command-playbooks/build-full.md +7 -7
  11. package/.aether/docs/command-playbooks/build-prep.md +1 -1
  12. package/.aether/docs/command-playbooks/continue-advance.md +33 -0
  13. package/.aether/docs/command-playbooks/continue-finalize.md +15 -1
  14. package/.aether/docs/command-playbooks/continue-full.md +15 -1
  15. package/.aether/docs/source-of-truth-map.md +10 -10
  16. package/.aether/docs/structural-learning-stack.md +283 -0
  17. package/.aether/utils/consolidation-seal.sh +196 -0
  18. package/.aether/utils/consolidation.sh +127 -0
  19. package/.aether/utils/curation-ants/archivist.sh +97 -0
  20. package/.aether/utils/curation-ants/critic.sh +214 -0
  21. package/.aether/utils/curation-ants/herald.sh +102 -0
  22. package/.aether/utils/curation-ants/janitor.sh +121 -0
  23. package/.aether/utils/curation-ants/librarian.sh +99 -0
  24. package/.aether/utils/curation-ants/nurse.sh +153 -0
  25. package/.aether/utils/curation-ants/orchestrator.sh +181 -0
  26. package/.aether/utils/curation-ants/scribe.sh +164 -0
  27. package/.aether/utils/curation-ants/sentinel.sh +119 -0
  28. package/.aether/utils/event-bus.sh +301 -0
  29. package/.aether/utils/graph.sh +559 -0
  30. package/.aether/utils/instinct-store.sh +401 -0
  31. package/.aether/utils/learning.sh +79 -7
  32. package/.aether/utils/session.sh +13 -0
  33. package/.aether/utils/state-api.sh +1 -1
  34. package/.aether/utils/trust-scoring.sh +347 -0
  35. package/.aether/utils/worktree.sh +97 -0
  36. package/.claude/commands/ant/entomb.md +1 -1
  37. package/.claude/commands/ant/init.md +29 -12
  38. package/.claude/commands/ant/oracle.md +35 -0
  39. package/.claude/commands/ant/patrol.md +2 -2
  40. package/.claude/commands/ant/run.md +3 -3
  41. package/.claude/commands/ant/swarm.md +1 -1
  42. package/.opencode/commands/ant/build.md +35 -0
  43. package/.opencode/commands/ant/init.md +29 -12
  44. package/.opencode/commands/ant/oracle.md +35 -0
  45. package/.opencode/commands/ant/patrol.md +2 -2
  46. package/.opencode/commands/ant/run.md +3 -3
  47. package/CHANGELOG.md +83 -0
  48. package/README.md +22 -9
  49. package/bin/lib/update-transaction.js +8 -3
  50. package/bin/npx-entry.js +0 -0
  51. package/package.json +1 -1
  52. package/.aether/agents/aether-ambassador.md +0 -140
  53. package/.aether/agents/aether-archaeologist.md +0 -108
  54. package/.aether/agents/aether-architect.md +0 -133
  55. package/.aether/agents/aether-auditor.md +0 -144
  56. package/.aether/agents/aether-builder.md +0 -184
  57. package/.aether/agents/aether-chaos.md +0 -115
  58. package/.aether/agents/aether-chronicler.md +0 -122
  59. package/.aether/agents/aether-gatekeeper.md +0 -116
  60. package/.aether/agents/aether-includer.md +0 -117
  61. package/.aether/agents/aether-keeper.md +0 -177
  62. package/.aether/agents/aether-measurer.md +0 -128
  63. package/.aether/agents/aether-oracle.md +0 -137
  64. package/.aether/agents/aether-probe.md +0 -133
  65. package/.aether/agents/aether-queen.md +0 -286
  66. package/.aether/agents/aether-route-setter.md +0 -130
  67. package/.aether/agents/aether-sage.md +0 -106
  68. package/.aether/agents/aether-scout.md +0 -101
  69. package/.aether/agents/aether-surveyor-disciplines.md +0 -391
  70. package/.aether/agents/aether-surveyor-nest.md +0 -329
  71. package/.aether/agents/aether-surveyor-pathogens.md +0 -264
  72. package/.aether/agents/aether-surveyor-provisions.md +0 -334
  73. package/.aether/agents/aether-tracker.md +0 -137
  74. package/.aether/agents/aether-watcher.md +0 -174
  75. package/.aether/agents/aether-weaver.md +0 -130
  76. package/.aether/commands/claude/archaeology.md +0 -334
  77. package/.aether/commands/claude/build.md +0 -65
  78. package/.aether/commands/claude/chaos.md +0 -336
  79. package/.aether/commands/claude/colonize.md +0 -259
  80. package/.aether/commands/claude/continue.md +0 -60
  81. package/.aether/commands/claude/council.md +0 -507
  82. package/.aether/commands/claude/data-clean.md +0 -81
  83. package/.aether/commands/claude/dream.md +0 -268
  84. package/.aether/commands/claude/entomb.md +0 -498
  85. package/.aether/commands/claude/export-signals.md +0 -57
  86. package/.aether/commands/claude/feedback.md +0 -96
  87. package/.aether/commands/claude/flag.md +0 -151
  88. package/.aether/commands/claude/flags.md +0 -169
  89. package/.aether/commands/claude/focus.md +0 -76
  90. package/.aether/commands/claude/help.md +0 -154
  91. package/.aether/commands/claude/history.md +0 -140
  92. package/.aether/commands/claude/import-signals.md +0 -71
  93. package/.aether/commands/claude/init.md +0 -505
  94. package/.aether/commands/claude/insert-phase.md +0 -105
  95. package/.aether/commands/claude/interpret.md +0 -278
  96. package/.aether/commands/claude/lay-eggs.md +0 -210
  97. package/.aether/commands/claude/maturity.md +0 -113
  98. package/.aether/commands/claude/memory-details.md +0 -77
  99. package/.aether/commands/claude/migrate-state.md +0 -171
  100. package/.aether/commands/claude/oracle.md +0 -642
  101. package/.aether/commands/claude/organize.md +0 -232
  102. package/.aether/commands/claude/patrol.md +0 -620
  103. package/.aether/commands/claude/pause-colony.md +0 -233
  104. package/.aether/commands/claude/phase.md +0 -115
  105. package/.aether/commands/claude/pheromones.md +0 -156
  106. package/.aether/commands/claude/plan.md +0 -693
  107. package/.aether/commands/claude/preferences.md +0 -65
  108. package/.aether/commands/claude/quick.md +0 -100
  109. package/.aether/commands/claude/redirect.md +0 -76
  110. package/.aether/commands/claude/resume-colony.md +0 -197
  111. package/.aether/commands/claude/resume.md +0 -388
  112. package/.aether/commands/claude/run.md +0 -231
  113. package/.aether/commands/claude/seal.md +0 -774
  114. package/.aether/commands/claude/skill-create.md +0 -286
  115. package/.aether/commands/claude/status.md +0 -410
  116. package/.aether/commands/claude/swarm.md +0 -349
  117. package/.aether/commands/claude/tunnels.md +0 -426
  118. package/.aether/commands/claude/update.md +0 -132
  119. package/.aether/commands/claude/verify-castes.md +0 -143
  120. package/.aether/commands/claude/watch.md +0 -239
  121. package/.aether/commands/opencode/archaeology.md +0 -331
  122. package/.aether/commands/opencode/build.md +0 -1168
  123. package/.aether/commands/opencode/chaos.md +0 -329
  124. package/.aether/commands/opencode/colonize.md +0 -195
  125. package/.aether/commands/opencode/continue.md +0 -1436
  126. package/.aether/commands/opencode/council.md +0 -437
  127. package/.aether/commands/opencode/data-clean.md +0 -77
  128. package/.aether/commands/opencode/dream.md +0 -260
  129. package/.aether/commands/opencode/entomb.md +0 -377
  130. package/.aether/commands/opencode/export-signals.md +0 -54
  131. package/.aether/commands/opencode/feedback.md +0 -99
  132. package/.aether/commands/opencode/flag.md +0 -149
  133. package/.aether/commands/opencode/flags.md +0 -167
  134. package/.aether/commands/opencode/focus.md +0 -73
  135. package/.aether/commands/opencode/help.md +0 -157
  136. package/.aether/commands/opencode/history.md +0 -136
  137. package/.aether/commands/opencode/import-signals.md +0 -68
  138. package/.aether/commands/opencode/init.md +0 -518
  139. package/.aether/commands/opencode/insert-phase.md +0 -111
  140. package/.aether/commands/opencode/interpret.md +0 -272
  141. package/.aether/commands/opencode/lay-eggs.md +0 -213
  142. package/.aether/commands/opencode/maturity.md +0 -108
  143. package/.aether/commands/opencode/memory-details.md +0 -83
  144. package/.aether/commands/opencode/migrate-state.md +0 -165
  145. package/.aether/commands/opencode/oracle.md +0 -593
  146. package/.aether/commands/opencode/organize.md +0 -226
  147. package/.aether/commands/opencode/patrol.md +0 -626
  148. package/.aether/commands/opencode/pause-colony.md +0 -203
  149. package/.aether/commands/opencode/phase.md +0 -113
  150. package/.aether/commands/opencode/pheromones.md +0 -162
  151. package/.aether/commands/opencode/plan.md +0 -684
  152. package/.aether/commands/opencode/preferences.md +0 -71
  153. package/.aether/commands/opencode/quick.md +0 -91
  154. package/.aether/commands/opencode/redirect.md +0 -84
  155. package/.aether/commands/opencode/resume-colony.md +0 -190
  156. package/.aether/commands/opencode/resume.md +0 -394
  157. package/.aether/commands/opencode/run.md +0 -237
  158. package/.aether/commands/opencode/seal.md +0 -452
  159. package/.aether/commands/opencode/skill-create.md +0 -63
  160. package/.aether/commands/opencode/status.md +0 -307
  161. package/.aether/commands/opencode/swarm.md +0 -15
  162. package/.aether/commands/opencode/tunnels.md +0 -400
  163. package/.aether/commands/opencode/update.md +0 -127
  164. package/.aether/commands/opencode/verify-castes.md +0 -139
  165. package/.aether/commands/opencode/watch.md +0 -227
@@ -1,233 +0,0 @@
1
- <!-- Generated from .aether/commands/pause-colony.yaml - DO NOT EDIT DIRECTLY -->
2
- ---
3
- name: ant:pause-colony
4
- description: "๐Ÿ’พ๐Ÿœโธ๏ธ๐Ÿœ๐Ÿ’พ Pause colony work and create handoff document for resuming later"
5
- ---
6
-
7
- You are the **Queen Ant Colony**. Save current state for session handoff.
8
-
9
- ## Instructions
10
-
11
- Parse `$ARGUMENTS`:
12
- - If contains `--no-visual`: set `visual_mode = false` (visual is ON by default)
13
- - Otherwise: set `visual_mode = true`
14
-
15
- ### Step 0: Initialize Visual Mode (if enabled)
16
-
17
- If `visual_mode` is true, run using the Bash tool with description "Initializing pause display...":
18
- ### Step 1: Read State
19
-
20
- Use the Read tool to read `.aether/data/COLONY_STATE.json`.
21
-
22
- If `goal` is null, output `No colony initialized. Nothing to pause.` and stop.
23
-
24
- ### Step 2: Compute Active Signals
25
-
26
- Run using the Bash tool with description "Loading active pheromones...":
27
- ```bash
28
- bash .aether/aether-utils.sh pheromone-read
29
- ```
30
-
31
- Use `.result.signals` as the active signal list (already decay-filtered by runtime logic).
32
- If empty, treat as "no active pheromones."
33
-
34
- ### Step 3: Build Handoff Summary
35
-
36
- Gather context for the handoff from `COLONY_STATE.json`:
37
- - `goal` from top level
38
- - `state` and `current_phase` from top level
39
- - `workers` object
40
- - Active signals from `pheromone-read` output (with current decayed strengths from Step 2)
41
- - Phase progress from `plan.phases` (how many complete, current phase tasks)
42
- - What was in progress or pending
43
-
44
- ### Step 4: Write Handoff
45
-
46
- Use the Write tool to update `.aether/HANDOFF.md` with a session handoff section at the top. The format:
47
-
48
- ```markdown
49
- # Colony Session Paused
50
-
51
- ## Quick Resume
52
- Run `/ant:resume-colony` in a new session.
53
-
54
- ## State at Pause
55
- - Goal: "<goal>"
56
- - State: <state>
57
- - Current Phase: <phase_number> โ€” <phase_name>
58
- - Session: <session_id>
59
- - Paused: <ISO-8601 timestamp>
60
-
61
- ## Active Pheromones
62
- - <TYPE> (strength <current>): "<content>"
63
- (list each non-expired signal)
64
-
65
- ## Phase Progress
66
- (for each phase, show status)
67
- - Phase <id>: <name> [<status>]
68
-
69
- ## Current Phase Tasks
70
- (list tasks in the current phase with their statuses)
71
- - [<icon>] <task_id>: <description>
72
-
73
- ## What Was Happening
74
- <brief description of what the colony was doing>
75
-
76
- ## Next Steps on Resume
77
- <what should happen next>
78
- ```
79
-
80
- ### Step 4.5: Set Paused Flag in State
81
-
82
- Use Read tool to get current COLONY_STATE.json.
83
-
84
- Use Write tool to update COLONY_STATE.json with paused flag:
85
- - Add field: `"paused": true`
86
- - Add field: `"paused_at": "<ISO-8601 timestamp>"`
87
- - Update last_updated timestamp
88
-
89
- This flag indicates the colony is in a paused state and will be cleared on resume.
90
-
91
- ### Step 4.6: Commit Suggestion (Optional)
92
-
93
- **This step is non-blocking. Skipping does not affect the pause or any subsequent steps. Failure to commit has zero consequences.**
94
-
95
- Before displaying the pause confirmation, check if the user has uncommitted work worth preserving.
96
-
97
- **1. Check for uncommitted changes:**
98
- ```bash
99
- git status --porcelain 2>/dev/null
100
- ```
101
- If the output is empty (nothing to commit) or the command fails (not a git repo), skip this step silently and continue to Step 5.
102
-
103
- **2. Check for double-prompting:**
104
- Read `last_commit_suggestion_phase` from COLONY_STATE.json (already loaded in Step 1).
105
- If `last_commit_suggestion_phase` equals the current phase, skip this step silently โ€” the user was already prompted at POST-ADVANCE. Continue to Step 5.
106
-
107
- **3. Capture AI Description:**
108
-
109
- **As the AI, briefly describe what was in progress when pausing.**
110
-
111
- Examples:
112
- - "Mid-implementation of task-based routing, tests passing"
113
- - "Completed model selection logic, integration tests pending"
114
- - "Fixed file locking, ready for verification"
115
-
116
- Store this as `ai_description`. If no clear description emerges, leave empty (will use fallback).
117
-
118
- **4. Generate Enhanced Commit Message:**
119
- ```bash
120
- bash .aether/aether-utils.sh generate-commit-message "contextual" {current_phase} "{phase_name}" "{ai_description}" {plan_number}
121
- ```
122
-
123
- Parse the returned JSON to extract `message`, `body`, `files_changed`, `subsystem`, and `scope`.
124
-
125
- **5. Display the enhanced suggestion:**
126
- ```
127
- โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
128
- Commit Suggestion
129
- โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
130
-
131
- AI Description: {ai_description}
132
-
133
- Formatted Message:
134
- {message}
135
-
136
- Metadata:
137
- Scope: {scope}
138
- Files: {files_changed} files changed
139
-
140
- โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
141
- ```
142
-
143
- **6. Use AskUserQuestion:**
144
- ```
145
- Commit your work before pausing?
146
-
147
- 1. Yes, commit with this message
148
- 2. Yes, but let me edit the description
149
- 3. No, I'll commit later
150
- ```
151
-
152
- **7. If option 1 ("Yes, commit with this message"):**
153
- ```bash
154
- git add -A && git commit -m "{message}" -m "{body}"
155
- ```
156
- Display: `Committed: {message} ({files_changed} files)`
157
-
158
- **8. If option 2 ("Yes, but let me edit"):**
159
- Prompt for custom description, then regenerate and commit.
160
-
161
- **9. If option 3 ("No, I'll commit later"):**
162
- Display: `Skipped. Your changes are saved on disk but not committed.`
163
-
164
- **10. Record the suggestion:**
165
- Set `last_commit_suggestion_phase` to `{current_phase}` in COLONY_STATE.json.
166
-
167
- **Error handling:** If any git command fails, display the error and continue to Step 5.
168
-
169
- Continue to Step 5.
170
-
171
- ### Step 4.8: Update Context Document
172
-
173
- Log this pause activity to `.aether/CONTEXT.md` by running using the Bash tool with description "Updating context document...":
174
-
175
- ```bash
176
- bash .aether/aether-utils.sh context-update activity "pause-colony" "Colony paused โ€” handoff created" "โ€”"
177
- ```
178
-
179
- Update safe-to-clear status by running using the Bash tool with description "Marking safe to clear...":
180
- ```bash
181
- bash .aether/aether-utils.sh context-update safe-to-clear "YES" "Colony paused โ€” safe to /clear, run /ant:resume-colony to continue"
182
- ```
183
-
184
- ### Step 5: Display Confirmation
185
-
186
- Output header:
187
-
188
- ```
189
- ๐Ÿ’พ๐Ÿœโธ๏ธ๐Ÿœ๐Ÿ’พ โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”
190
- C O L O N Y P A U S E D
191
- โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ” ๐Ÿ’พ๐Ÿœโธ๏ธ๐Ÿœ๐Ÿ’พ
192
- ```
193
-
194
- Then output:
195
- +=====================================================+
196
- | AETHER COLONY :: PAUSED |
197
- +=====================================================+
198
-
199
- Goal: "<goal>"
200
- Phase: <current_phase> โ€” <phase_name>
201
- Pheromones: <active_count> active
202
-
203
- Handoff saved to .aether/HANDOFF.md
204
- Paused state saved to COLONY_STATE.json
205
-
206
- To resume in a new session:
207
- /ant:resume-colony
208
-
209
- ๐Ÿ’พ State persisted โ€” safe to /clear
210
-
211
- ๐Ÿ“‹ Context document updated at `.aether/CONTEXT.md`
212
-
213
- ๐Ÿœ What would you like to do next?
214
- 1. /ant:resume-colony โ€” Resume work in this session
215
- 2. /ant:lay-eggs "<new goal>" โ€” Start a new colony
216
- 3. /clear โ€” Clear context and continue
217
-
218
- Use AskUserQuestion with these three options.
219
-
220
- If option 1 selected: proceed to run /ant:resume-colony flow
221
- If option 2 selected: run /ant:lay-eggs flow
222
- If option 3 selected: display "Run /ant:resume-colony when ready to continue, or /ant:lay-eggs to start fresh"
223
- ```
224
-
225
- ### Step 6: Next Up
226
-
227
- Generate the state-based Next Up block by running using the Bash tool with description "Generating Next Up suggestions...":
228
- ```bash
229
- state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
230
- current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
231
- total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
232
- bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_phases"
233
- ```
@@ -1,115 +0,0 @@
1
- <!-- Generated from .aether/commands/phase.yaml - DO NOT EDIT DIRECTLY -->
2
- ---
3
- name: ant:phase
4
- description: "๐Ÿ“๐Ÿœ๐Ÿ“๐Ÿœ๐Ÿ“ Show phase details - Queen reviews phase status, tasks, and caste assignment"
5
- ---
6
-
7
- You are the **Queen Ant Colony**. Display phase details from the project plan.
8
-
9
- ## Instructions
10
-
11
- The argument is: `$ARGUMENTS`
12
-
13
- ### Step 1: Read State
14
-
15
- Use the Read tool to read `.aether/data/COLONY_STATE.json`.
16
-
17
- If `goal` is null, output `No colony initialized. Run /ant:init first.` and stop.
18
-
19
- If `plan.phases` is an empty array, output `No project plan. Run /ant:plan first.` and stop.
20
-
21
- ### Step 2: Determine What to Show
22
-
23
- - If `$ARGUMENTS` is empty -> show the current phase (from `current_phase`). If `current_phase` is 0 or beyond the last phase, show phase 1.
24
- - If `$ARGUMENTS` is a number -> show that specific phase
25
- - If `$ARGUMENTS` is "list" or "all" -> show all phases in summary
26
-
27
- ### Step 3a: Single Phase View
28
-
29
- Find the phase by ID in `plan.phases`.
30
-
31
- **Calculate next phase ID:**
32
- - Let `total_phases` = length of `plan.phases` array
33
- - If current phase ID < total_phases, then `next_id` = current phase ID + 1
34
- - If current phase ID >= total_phases (viewing last phase), omit the "View next phase" suggestion
35
-
36
- Output this header:
37
-
38
-
39
- ```
40
- โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”
41
- ๐Ÿ“๐Ÿœ๐Ÿ“๐Ÿœ๐Ÿ“ P H A S E {id} D E T A I L S
42
- โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”
43
-
44
-
45
-
46
- Then display:
47
-
48
- ```
49
- ๐Ÿ“ Phase <id>: <name>
50
- ๐Ÿ“Š Status: <status>
51
-
52
- <description>
53
-
54
- ๐Ÿœ Tasks:
55
- {status_icon} <task_id>: <description>
56
- โ†ณ depends on: <deps or "none">
57
-
58
- โœ… Success Criteria:
59
- โ€ข <criterion>
60
-
61
- โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
62
-
63
- ๐Ÿœ Next Up
64
-
65
-
66
- โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
67
- /ant:build <id> ๐Ÿ”จ Phase <id>: <phase_name>
68
- /ant:phase <next_id> ๐Ÿ“‹ Phase <next_id>: <next_phase_name> (only if not last phase)
69
- /ant:status ๐Ÿ“Š Colony status
70
- ```
71
-
72
-
73
- After displaying phase details, generate the state-based Next Up block by running using the Bash tool with description "Generating Next Up suggestions...":
74
- ```bash
75
- state=$(jq -r '.state // "IDLE"' .aether/data/COLONY_STATE.json)
76
- current_phase=$(jq -r '.current_phase // 0' .aether/data/COLONY_STATE.json)
77
- total_phases=$(jq -r '.plan.phases | length' .aether/data/COLONY_STATE.json)
78
- bash .aether/aether-utils.sh print-next-up "$state" "$current_phase" "$total_phases"
79
- ```
80
-
81
-
82
- Status icons: `[ ]` pending, `[~]` in_progress, `[โœ“]` completed
83
-
84
- ### Step 3b: List View
85
-
86
- Output this header:
87
-
88
-
89
- ```
90
- โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”
91
- ๐Ÿ“๐Ÿœ๐Ÿ“๐Ÿœ๐Ÿ“ A L L P H A S E S
92
- โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”
93
-
94
-
95
-
96
- For each phase in `plan.phases`, display:
97
- ```
98
- [{id}] {name} [{status}]
99
- {short_description}
100
- ```
101
-
102
- Display phases grouped by status:
103
- ```
104
- โœ“ Completed
105
- [{id}] {name}
106
- ~ In Progress
107
- [{id}] {name}
108
- [ ] Pending
109
- [{id}] {name}
110
- ```
111
-
112
- Display completion progress:
113
- ```
114
- ๐Ÿ“Š Overall: {completed_count}/{total_count} phases complete
115
- ```
@@ -1,156 +0,0 @@
1
- <!-- Generated from .aether/commands/pheromones.yaml - DO NOT EDIT DIRECTLY -->
2
- ---
3
- name: ant:pheromones
4
- description: "๐ŸŽฏ๐Ÿœ๐Ÿšซ๐Ÿœ๐Ÿ’ฌ View and manage active pheromone signals"
5
- ---
6
-
7
- You are the **Queen**. Display and manage the colony's pheromone signals.
8
-
9
- ## Instructions
10
-
11
- Parse `$ARGUMENTS`:
12
- - If contains `--no-visual`: set `visual_mode = false` (visual is ON by default)
13
- - Otherwise: set `visual_mode = true`
14
-
15
- Extract subcommand from `$ARGUMENTS`:
16
- - No argument or `all`: Show all active pheromones
17
- - `focus`: Show only FOCUS signals
18
- - `redirect`: Show only REDIRECT signals
19
- - `feedback`: Show only FEEDBACK signals
20
- - `clear`: Clear expired/inactive signals
21
- - `expire <id>`: Expire a specific signal by ID
22
-
23
- ### Step 1: Read Colony State
24
-
25
- Read `.aether/data/COLONY_STATE.json`.
26
-
27
- If file missing or `goal: null`:
28
- ```
29
- No colony initialized. Run /ant:init first.
30
- ```
31
- Stop here.
32
-
33
- ### Step 2: Handle Subcommands
34
-
35
- **If subcommand is `clear`:**
36
-
37
- Run using the Bash tool:
38
- ```bash
39
- # Count signals before
40
- before_count=$(jq '[.signals[] | select(.active == true)] | length' .aether/data/pheromones.json 2>/dev/null || echo "0")
41
-
42
- # Mark expired/inactive signals as inactive
43
- now=$(date +%s)
44
- jq --argjson now "$now" '
45
- def to_epoch(ts):
46
- if ts == null or ts == "" or ts == "phase_end" then null
47
- else
48
- (ts | split("T")) as $parts |
49
- ($parts[0] | split("-")) as $d |
50
- ($parts[1] | rtrimstr("Z") | split(":")) as $t |
51
- (($d[0] | tonumber) - 1970) * 365 * 86400 +
52
- (($d[1] | tonumber) - 1) * 30 * 86400 +
53
- (($d[2] | tonumber) - 1) * 86400 +
54
- ($t[0] | tonumber) * 3600 +
55
- ($t[1] | tonumber) * 60 +
56
- ($t[2] | rtrimstr("Z") | tonumber)
57
- end;
58
-
59
- def decay_days(t):
60
- if t == "FOCUS" then 30
61
- elif t == "REDIRECT" then 60
62
- else 90
63
- end;
64
-
65
- .signals = [.signals[] |
66
- (to_epoch(.created_at)) as $created_epoch |
67
- (if $created_epoch != null then ($now - $created_epoch) / 86400 else 0 end) as $elapsed_days |
68
- (decay_days(.type)) as $dd |
69
- ((.strength // 0.8) * (1 - ($elapsed_days / $dd))) as $eff_raw |
70
- (if $eff_raw < 0 then 0 else $eff_raw end) as $eff |
71
- if $eff < 0.1 then . + {active: false} else . end
72
- ]
73
- ' .aether/data/pheromones.json > .aether/data/pheromones.json.tmp && mv .aether/data/pheromones.json.tmp .aether/data/pheromones.json
74
-
75
- # Count signals after
76
- after_count=$(jq '[.signals[] | select(.active == true)] | length' .aether/data/pheromones.json 2>/dev/null || echo "0")
77
- cleared=$((before_count - after_count))
78
-
79
- echo "before=$before_count after=$after_count cleared=$cleared"
80
- ```
81
-
82
- Display:
83
- ```
84
- ๐Ÿงน Pheromone Cleanup
85
-
86
- Before: {before_count} active signals
87
- After: {after_count} active signals
88
- Cleared: {cleared} expired signal(s)
89
-
90
- Run /ant:pheromones to see remaining signals.
91
- ```
92
- Stop here.
93
-
94
- **If subcommand is `expire <id>`:**
95
-
96
- Extract the signal ID from arguments.
97
- Run using the Bash tool:
98
- ```bash
99
- signal_id="{extracted_id}"
100
- jq --arg id "$signal_id" '.signals = [.signals[] | if .id == $id then . + {active: false} else . end]' .aether/data/pheromones.json > .aether/data/pheromones.json.tmp && mv .aether/data/pheromones.json.tmp .aether/data/pheromones.json && echo "expired=$signal_id"
101
- ```
102
-
103
- Display:
104
- ```
105
- โœ“ Signal expired: {signal_id}
106
-
107
- Run /ant:pheromones to see remaining signals.
108
- ```
109
- Stop here.
110
-
111
- ### Step 3: Display Active Pheromones (default or filter)
112
-
113
- Run using the Bash tool with description "Displaying pheromones...":
114
- ```bash
115
- bash .aether/aether-utils.sh pheromone-display "{subcommand or 'all'}"
116
- ```
117
-
118
- The output will be the formatted pheromone table.
119
-
120
- ### Step 4: Summary and Next Steps
121
-
122
- Display guidance:
123
- ```
124
- โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”โ”
125
-
126
- ๐Ÿ’ก Managing Pheromones
127
-
128
- /ant:focus "area" ๐ŸŽฏ Guide attention
129
- /ant:redirect "avoid" ๐Ÿšซ Set hard constraint
130
- /ant:feedback "note" ๐Ÿ’ฌ Provide guidance
131
- /ant:pheromones clear ๐Ÿงน Clear expired signals
132
-
133
- ๐Ÿœ Signals decay over time: FOCUS 30d, REDIRECT 60d, FEEDBACK 90d
134
- ```
135
-
136
- ### Edge Cases
137
-
138
- **No pheromones file:**
139
- ```
140
- No pheromones active. Colony has no signals.
141
-
142
- Inject signals with:
143
- /ant:focus "area" - Guide attention
144
- /ant:redirect "avoid" - Set hard constraint
145
- /ant:feedback "note" - Provide guidance
146
- ```
147
-
148
- **No active signals of filtered type:**
149
- ```
150
- No active {type} signals found.
151
-
152
- Try: /ant:pheromones (to see all)
153
- ```
154
-
155
- **Invalid subcommand:**
156
- Display help showing valid subcommands.