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
@@ -53,7 +53,6 @@ Do not touch during init:
53
53
  - .aether/dreams/ (user notes)
54
54
  - .aether/chambers/ (archived colonies)
55
55
  - .env* files
56
- - .claude/settings.json
57
56
  - .github/workflows/
58
57
  </read_only>
59
58
 
@@ -168,7 +167,7 @@ Strip `(Colony: ...)` suffixes using sed. If grep finds nothing, variables remai
168
167
  Display a brief header:
169
168
  ```
170
169
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
171
- A E T H E R C O L O N Y I N I T
170
+ 🥚 A E T H E R C O L O N Y I N I T
172
171
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
173
172
  ```
174
173
 
@@ -482,30 +481,48 @@ Display "Import skipped. Starting fresh colony." and proceed to Step 8.
482
481
  **If xml_import_available is false (no chambers, no XML, or no xmllint):**
483
482
 
484
483
  Skip silently -- proceed directly to Step 8 without any mention of import (per D-11).
484
+ ### Step 7.5: Install Clash Detection Hook
485
+
486
+ If `.aether/utils/clash-detect.sh` exists, run:
487
+
488
+ ```bash
489
+ bash .aether/aether-utils.sh clash-setup --install 2>/dev/null || true
490
+ ```
491
+
492
+ This installs the PreToolUse hook that prevents conflicting edits across worktrees.
493
+ Non-blocking — if it fails, init continues normally.
494
+
495
+ Also configure the merge driver for package-lock.json:
496
+
497
+ ```bash
498
+ git config merge.lockfile.driver "bash .aether/utils/merge-driver-lockfile.sh %O %A %B" 2>/dev/null || true
499
+ git config merge.lockfile.name "npm lockfile auto-merge" 2>/dev/null || true
500
+ ```
501
+
485
502
  ### Step 8: Display Result
486
503
 
487
504
  Display the success header and result block:
488
505
 
489
506
  ```
490
507
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
491
- A E T H E R C O L O N Y
508
+ 🥚 A E T H E R C O L O N Y
492
509
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
493
510
 
494
- Queen has set the colony's intention
511
+ 👑 Queen has set the colony's intention
495
512
 
496
513
  "{approved_intent}"
497
514
 
498
- Colony Status: READY
515
+ 🟢 Colony Status: READY
499
516
 
500
- {If re-init: " Mode: Re-init (charter updated, state preserved)"}
501
- {If fresh and seeded_count > 0: " Hive wisdom: {seeded_count} cross-colony pattern(s) seeded into QUEEN.md"}
517
+ {If re-init: " 🔄 Mode: Re-init (charter updated, state preserved)"}
518
+ {If fresh and seeded_count > 0: " 🧠 Hive wisdom: {seeded_count} cross-colony pattern(s) seeded into QUEEN.md"}
502
519
 
503
- State persisted -- safe to /clear, then run /ant:plan
520
+ 💾 State persisted -- safe to /clear, then run /ant:plan
504
521
 
505
522
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
506
- Next Up
523
+ 🐜 Next Up
507
524
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
508
- /ant:plan Generate execution plan
509
- /ant:status Check colony state
510
- /ant:focus Set initial focus
525
+ /ant:plan 📊 Generate execution plan
526
+ /ant:status 📋 Check colony state
527
+ /ant:focus 🎯 Set initial focus
511
528
  ```
@@ -283,6 +283,41 @@ Describe the research topic in detail. The more specific, the better the Oracle'
283
283
 
284
284
  (The user will type their topic via the "Other" free-text option.)
285
285
 
286
+ **Question 1.5: Research Brief — Formulate and Approve**
287
+
288
+ Take the user's raw topic (from `$normalized_args` or Question 1) and reformulate it into a structured research brief. The user may have typed casual natural language — your job is to sharpen it into a clear, well-scoped research prompt that will produce better results.
289
+
290
+ Display the brief for approval:
291
+
292
+ ```
293
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
294
+ 🔮 R E S E A R C H B R I E F
295
+ ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
296
+
297
+ **Topic:** {reformulated topic — clear, specific, actionable}
298
+ **Core Question:** {the single most important question this research should answer}
299
+ **Context:** {what we already know from the codebase or user input}
300
+ **Success Criteria:** {what a good answer looks like — what would make this research useful}
301
+ ```
302
+
303
+ Guidelines for formulation:
304
+ - Turn vague topics into specific ones ("auth stuff" → "Authentication architecture: session-based vs token-based for this Node.js API")
305
+ - Add codebase context if relevant (tech stack, existing patterns)
306
+ - Make the core question answerable — not open-ended philosophy
307
+ - Keep success criteria concrete ("A recommendation with trade-offs" not "understand everything")
308
+
309
+ Then ask the user to approve:
310
+
311
+ ```
312
+ Does this capture what you're looking for? (approve / edit)
313
+ ```
314
+
315
+ - If the user approves: use the reformulated topic as the research topic going forward
316
+ - If the user edits: incorporate their changes, display the updated brief, and ask again
317
+ - Max 2 revision rounds (same as init). After 2, ask for final approval or cancel.
318
+
319
+ The approved **Topic** from the brief becomes the topic used in all subsequent steps (state.json, plan.json, research-plan.md).
320
+
286
321
  **Question 2: Research Template**
287
322
 
288
323
  ```
@@ -85,7 +85,7 @@ Extract from COLONY_STATE.json:
85
85
  Display audit header:
86
86
  ```
87
87
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
88
- C O L O N Y A U D I T
88
+ 🔍 C O L O N Y A U D I T
89
89
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
90
90
 
91
91
  Goal: {goal}
@@ -507,7 +507,7 @@ Display the formatted audit summary:
507
507
 
508
508
  ```
509
509
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
510
- A U D I T R E S U L T S
510
+ 📋 A U D I T R E S U L T S
511
511
  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
512
512
 
513
513
  Goal: {goal}
@@ -55,7 +55,7 @@ If `--dry-run`: read COLONY_STATE.json, list remaining incomplete phases
55
55
  (applying `--max-phases` cap), display the plan, then stop without executing.
56
56
 
57
57
  ```
58
- ━━━ A U T O P I L O T P R E V I E W ━━━
58
+ ━━━ 🤖 A U T O P I L O T P R E V I E W ━━━
59
59
  Goal: {goal} | Current: Phase {N} | Remaining: {count} | Max: {max or "all"}
60
60
 
61
61
  Phase {id}: {name} ({task_count} tasks) -> build -> continue -> advance
@@ -193,7 +193,7 @@ If `--continue` flag was passed: skip this check entirely (user dismissed replan
193
193
  If `result.should_replan == true`: **PAUSE** with replan suggestion banner:
194
194
 
195
195
  ```
196
- ━━━ R E P L A N S U G G E S T E D ━━━
196
+ ━━━ 🔄 R E P L A N S U G G E S T E D ━━━
197
197
  Phases auto-completed: {N} | Learnings accumulated: {learnings_since_last}
198
198
 
199
199
  The colony has completed {N} phases since the last plan review.
@@ -211,7 +211,7 @@ If `result.should_replan == false`: proceed normally (no pause).
211
211
  ### Step 6: Final Summary
212
212
 
213
213
  ```
214
- ━━━ A U T O P I L O T C O M P L E T E ━━━
214
+ ━━━ A U T O P I L O T C O M P L E T E ━━━
215
215
  Phases completed: {N} | Elapsed: {Xm Ys} | Now at: Phase {current}
216
216
 
217
217
  {all complete} -> Colony goal achieved! Run /ant:seal
package/CHANGELOG.md CHANGED
@@ -690,3 +690,86 @@ The following entries are automatically generated by the colony during work phas
690
690
  - **Files:** `aether-utils.sh`, `utils/hive.sh`, `utils/learning.sh`, `tests/`
691
691
  - **Decisions:** Colony sealed at Crowned Anthill; hardened ~40 json_ok sites + checkpointing + hive null safety
692
692
  - **What Worked:** 5 phases completed; 9 instincts created; 4 hive-eligible
693
+
694
+ ## 2026-03-31
695
+
696
+ ### Phase 0 — Plan 01
697
+
698
+ - **Files:** `build-complete.md`, `build.yaml`, `build.md`
699
+ - **Decisions:** Add Stage Audit Gate to build orchestrators
700
+ - **What Worked:** Pre-synthesis verification gate ensures all stages complete
701
+
702
+ ### Phase 3 — Plan 01
703
+
704
+ - **What Worked:** lint:sync clean; lint clean; 524 tests pass
705
+
706
+ ### Phase 0 — Plan 00
707
+
708
+ - **Files:** `build-complete.md`, `build.yaml`, `update-transaction.test.js`
709
+ - **Decisions:** Colony sealed at Crowned Anthill; Enforce non-skippable build playbook execution and verify exchange fix
710
+ - **What Worked:** 3 phases completed; Colony wisdom promoted to QUEEN.md
711
+
712
+ ### Phase 1 — Plan 01
713
+
714
+ - **Files:** `build-complete.md`, `state-contract-design.md`
715
+ - **Decisions:** Deleted wrong test file; Fixed step numbering; Added DATA_DIR exception clause
716
+ - **What Worked:** Swarm parallel audit; Pre-existing quality issues logged
717
+
718
+ ## 2026-04-01
719
+
720
+ ### Phase 2 — Plan 01
721
+
722
+ - **Files:** `trust-scoring.sh`, `event-bus.sh`, `aether-utils.sh`
723
+ - **Decisions:** Stateless calculation module; JSONL event bus with file locking
724
+ - **What Worked:** Parallel builders; Self-registration pattern
725
+
726
+ ### Phase 3 — Plan 01
727
+
728
+ - **Files:** `instinct-store.sh`, `graph.sh`, `learning.sh`, `aether-utils.sh`
729
+ - **Decisions:** Standalone instinct storage; jq graph traversal; Trust-scored observations
730
+ - **What Worked:** Additive parallel modification
731
+
732
+ ### Phase 4 — Plan 01
733
+
734
+ - **Files:** `nurse.sh`, `herald.sh`, `librarian.sh`, `critic.sh`, `sentinel.sh`, `janitor.sh`, `archivist.sh`, `scribe.sh`, `orchestrator.sh`
735
+ - **Decisions:** 8 curation ants; curation-run orchestrator; Sentinel-first execution order
736
+ - **What Worked:** Parallel core/ops builders; Orchestrator integration
737
+
738
+ ### Phase 5 — Plan 01
739
+
740
+ - **Files:** `consolidation.sh`, `consolidation-seal.sh`, `test-e2e-pipeline.sh`
741
+ - **Decisions:** Lightweight phase-end; Full seal consolidation; E2E integration test
742
+
743
+ ### Phase 6 — Plan 01
744
+
745
+ - **Files:** `structural-learning-stack.md`, `CLAUDE.md`
746
+ - **Decisions:** Architecture documentation; Updated component counts; Full test sweep
747
+
748
+ ### Phase 0 — Plan 00
749
+
750
+ - **Files:** `trust-scoring.sh`, `event-bus.sh`, `instinct-store.sh`, `graph.sh`, `consolidation.sh`, `curation-ants`
751
+ - **Decisions:** Colony sealed at Crowned Anthill; Structural Learning Stack complete
752
+ - **What Worked:** 6 phases completed; Colony wisdom promoted to QUEEN.md
753
+
754
+ ### Phase 0 — Plan 01
755
+
756
+ - **Files:** `go.mod`, `pkg/storage/storage.go`, `pkg/storage/storage_test.go`
757
+ - **Decisions:** Go module at github.com/aether-colony/aether; atomic writes via temp+rename; per-path RWMutex for concurrent safety
758
+ - **What Worked:** Parallel builders for independent packages; TDD with race detector
759
+ - **Requirements:** go build, test, vet pass;91.2% coverage;524 npm tests unaffected addressed
760
+
761
+ ### Phase 0 — Plan 02
762
+
763
+ - **Files:** `.aether/utils/trust-scoring.sh`, `.aether/utils/event-bus.sh`
764
+
765
+ ### Phase 3 — Plan 03
766
+
767
+ - **Files:** `learning.sh`, `instinct-store.sh`, `graph.sh`, `test-instinct-store.sh`
768
+ - **Decisions:** Standalone instinct storage; Backward-compatible trust score migration; jq graph layer for instinct relationships
769
+ - **What Worked:** Trust score integration with learning-observe; Full instinct schema with provenance; Graph link/neighbors/reach/cluster
770
+
771
+ ### Phase 0 — Plan 00
772
+
773
+ - **Files:** `learning.sh`, `instinct-store.sh`, `graph.sh`, `test-instinct-store.sh`, `trust-scoring.sh`, `event-bus.sh`
774
+ - **Decisions:** Colony sealed at Crowned Anthill; Structural Learning Stack verified
775
+ - **What Worked:** 3 phases completed; Colony wisdom promoted to QUEEN.md
package/README.md CHANGED
@@ -8,11 +8,20 @@
8
8
 
9
9
  <br>
10
10
 
11
- [![npm](https://img.shields.io/npm/v/aether-colony?style=for-the-badge&logo=npm&logoColor=white&label=npm&color=7B3FE4)](https://www.npmjs.com/package/aether-colony)
12
- [![downloads](https://img.shields.io/npm/dw/aether-colony?style=for-the-badge&logo=npm&logoColor=white&color=333333)](https://www.npmjs.com/package/aether-colony)
13
- [![license](https://img.shields.io/github/license/calcosmic/Aether?style=for-the-badge&color=333333)](LICENSE)
14
- [![stars](https://img.shields.io/github/stars/calcosmic/Aether?style=for-the-badge&logo=github&logoColor=white&color=333333)](https://github.com/calcosmic/Aether/stargazers)
15
- [![sponsor](https://img.shields.io/badge/Sponsor-%E2%9D%A4-ea4aaa?style=for-the-badge&logo=github-sponsors&logoColor=white)](https://github.com/sponsors/calcosmic)
11
+ [![npm version](https://img.shields.io/npm/v/aether-colony.svg?style=flat-square)](https://www.npmjs.com/package/aether-colony?utm_source=github&utm_medium=readme&utm_campaign=aether)
12
+ [![npm downloads](https://img.shields.io/npm/dw/aether-colony.svg?style=flat-square)](https://www.npmjs.com/package/aether-colony?utm_source=github&utm_medium=readme&utm_campaign=aether)
13
+ [![License: MIT](https://img.shields.io/github/license/calcosmic/Aether.svg?style=flat-square)](LICENSE)
14
+ [![GitHub stars](https://img.shields.io/github/stars/calcosmic/Aether.svg?style=flat-square)](https://github.com/calcosmic/Aether/stargazers)
15
+ [![Sponsor](https://img.shields.io/badge/Sponsor-GitHub-%23ea4aaa.svg?style=flat-square&logo=github)](https://github.com/sponsors/calcosmic?utm_source=github&utm_medium=readme&utm_campaign=aether)
16
+
17
+ [![weekly downloads](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/calcosmic/Aether/main/docs/badges/weekly-downloads.json&style=flat-square)](https://www.npmjs.com/package/aether-colony?utm_source=github&utm_medium=readme&utm_campaign=aether)
18
+ [![monthly downloads](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/calcosmic/Aether/main/docs/badges/monthly-downloads.json&style=flat-square)](https://www.npmjs.com/package/aether-colony?utm_source=github&utm_medium=readme&utm_campaign=aether)
19
+ [![total downloads](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/calcosmic/Aether/main/docs/badges/total-downloads.json&style=flat-square)](https://www.npmjs.com/package/aether-colony?utm_source=github&utm_medium=readme&utm_campaign=aether)
20
+ [![bundle size](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/calcosmic/Aether/main/docs/badges/bundle-size.json&style=flat-square)](https://www.npmjs.com/package/aether-colony?utm_source=github&utm_medium=readme&utm_campaign=aether)
21
+ ![test count](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/calcosmic/Aether/main/docs/badges/test-count.json&style=flat-square)
22
+ ![commands](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/calcosmic/Aether/main/docs/badges/commands.json&style=flat-square)
23
+ ![agents](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/calcosmic/Aether/main/docs/badges/agents.json&style=flat-square)
24
+ [![colony version](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/calcosmic/Aether/main/docs/badges/colony-version.json&style=flat-square)](https://github.com/calcosmic/Aether/releases)
16
25
 
17
26
  <br>
18
27
 
@@ -24,6 +33,10 @@ $ npx aether-colony
24
33
 
25
34
  *The whole is greater than the sum of its ants.* 🐜
26
35
 
36
+ <br>
37
+
38
+ [![🐜 aetherantcolony.com](https://img.shields.io/badge/%F0%9F%90%9C_aetherantcolony.com-7B3FE4?style=for-the-badge&logoColor=white)](https://aetherantcolony.com?utm_source=github&utm_medium=readme&utm_campaign=aether)
39
+
27
40
  </div>
28
41
 
29
42
  ---
@@ -215,14 +228,14 @@ Five commands from zero to shipped.
215
228
 
216
229
  ## Works With
217
230
 
218
- - **[Claude Code](https://docs.anthropic.com/en/docs/claude-code)** — 45 slash commands + 24 agent definitions
219
- - **[OpenCode](https://github.com/opencode-ai/opencode)** — 45 slash commands + agent definitions
231
+ - **[Claude Code](https://docs.anthropic.com/en/docs/claude-code?utm_source=github&utm_medium=readme&utm_campaign=aether)** — 45 slash commands + 24 agent definitions
232
+ - **[OpenCode](https://github.com/opencode-ai/opencode?utm_source=github&utm_medium=readme&utm_campaign=aether)** — 45 slash commands + agent definitions
220
233
 
221
234
  ## Support
222
235
 
223
236
  If Aether has been useful to you:
224
237
 
225
- **[Sponsor on GitHub](https://github.com/sponsors/calcosmic)**
238
+ **[Sponsor on GitHub](https://github.com/sponsors/calcosmic?utm_source=github&utm_medium=readme&utm_campaign=aether)**
226
239
 
227
240
  <details>
228
241
  <summary>Crypto</summary>
@@ -234,7 +247,7 @@ If Aether has been useful to you:
234
247
 
235
248
  </details>
236
249
 
237
- [PayPal](https://www.paypal.com/ncp/payment/RENG7ZMW5F59L) · [Buy Me a Coffee](https://buymeacoffee.com/music5y)
250
+ [PayPal](https://www.paypal.com/ncp/payment/RENG7ZMW5F59L?utm_source=github&utm_medium=readme&utm_campaign=aether) · [Buy Me a Coffee](https://buymeacoffee.com/music5y?utm_source=github&utm_medium=readme&utm_campaign=aether)
238
251
 
239
252
  ## License
240
253
 
@@ -172,8 +172,9 @@ class UpdateTransaction {
172
172
 
173
173
  // Directories to exclude from sync (user data, local state, and separately-synced dirs)
174
174
  // v4.0: archive and chambers added — these are private and must not sync to target repos
175
- // v6.0: oracle, midden, exchange added for complete user data protection
176
- this.EXCLUDE_DIRS = ['data', 'dreams', 'oracle', 'midden', 'checkpoints', 'locks', 'temp', 'agents', 'commands', 'rules', 'archive', 'chambers', 'exchange'];
175
+ // v6.0: oracle, midden added for complete user data protection
176
+ // v7.0: exchange removed from exclusion .sh scripts must distribute; .xml/.json data excluded by file extension
177
+ this.EXCLUDE_DIRS = ['data', 'dreams', 'oracle', 'midden', 'checkpoints', 'locks', 'temp', 'agents', 'commands', 'rules', 'archive', 'chambers'];
177
178
 
178
179
  // Files to exclude from sync (user wisdom, protected files)
179
180
  this.EXCLUDE_FILES = ['QUEEN.md'];
@@ -192,7 +193,6 @@ class UpdateTransaction {
192
193
  'temp',
193
194
  'archive',
194
195
  'chambers',
195
- 'exchange',
196
196
  ]);
197
197
  this.managedPrefixes = [
198
198
  '.claude/commands/ant',
@@ -792,6 +792,11 @@ class UpdateTransaction {
792
792
  if (this.EXCLUDE_FILES.includes(basename)) {
793
793
  return true;
794
794
  }
795
+ // Protect exchange data files — only .sh scripts should distribute
796
+ // Only filter files (not directories), so the exchange dir itself is traversed
797
+ if (parts.includes('exchange') && !basename.endsWith('.sh') && !relPath.endsWith('exchange')) {
798
+ return true;
799
+ }
795
800
  return false;
796
801
  }
797
802
 
package/bin/npx-entry.js CHANGED
File without changes
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aether-colony",
3
- "version": "5.3.2",
3
+ "version": "5.3.3",
4
4
  "description": "Multi-agent system using ant colony intelligence for Claude Code and OpenCode — workers self-organize via pheromone signals",
5
5
  "bin": {
6
6
  "aether": "bin/cli.js",
@@ -1,140 +0,0 @@
1
- ---
2
- name: aether-ambassador
3
- description: "Use this agent for third-party API integration, SDK setup, and external service connectivity. The ambassador bridges your code with external systems."
4
- ---
5
-
6
- You are **🔌 Ambassador Ant** in the Aether Colony. You bridge internal systems with external services, negotiating connections like a diplomat between colonies.
7
-
8
- ## Activity Logging
9
-
10
- Log progress as you work:
11
- ```bash
12
- bash .aether/aether-utils.sh activity-log "ACTION" "{your_name} (Ambassador)" "description"
13
- ```
14
-
15
- Actions: RESEARCH, CONNECTED, TESTED, DOCUMENTED, ERROR
16
-
17
- ## Your Role
18
-
19
- As Ambassador, you:
20
- 1. Research external APIs thoroughly
21
- 2. Design integration patterns
22
- 3. Implement robust connections
23
- 4. Test error scenarios
24
- 5. Document for colony use
25
-
26
- ## When to Bridge
27
-
28
- - New external API needed
29
- - API version migration
30
- - Webhook integrations
31
- - SDK implementation
32
- - OAuth/Auth setup
33
- - Rate limiting implementation
34
-
35
- ## Integration Patterns
36
-
37
- - **Client Wrapper**: Abstract API complexity
38
- - **Circuit Breaker**: Handle service failures
39
- - **Retry with Backoff**: Handle transient errors
40
- - **Caching**: Reduce API calls
41
- - **Webhook Handlers**: Receive async notifications
42
- - **Queue Integration**: Async processing
43
-
44
- ## Error Handling
45
-
46
- - **Transient errors**: Retry with exponential backoff
47
- - **Auth errors**: Refresh tokens, then retry
48
- - **Rate limits**: Queue and retry later
49
- - **Timeout**: Set reasonable timeouts
50
- - **Validation errors**: Parse and return meaningful errors
51
-
52
- ## Security Considerations
53
-
54
- - Store API keys securely (env vars, not code)
55
- - Use HTTPS always
56
- - Validate SSL certificates
57
- - Implement request signing if needed
58
- - Log securely (no secrets in logs)
59
-
60
- ## Output Format
61
-
62
- ```json
63
- {
64
- "ant_name": "{your name}",
65
- "caste": "ambassador",
66
- "status": "completed" | "failed" | "blocked",
67
- "summary": "What you accomplished",
68
- "endpoints_integrated": [],
69
- "authentication_method": "",
70
- "rate_limits_handled": true,
71
- "error_scenarios_covered": [],
72
- "documentation_pages": 0,
73
- "tests_written": [],
74
- "blockers": []
75
- }
76
- ```
77
-
78
- <failure_modes>
79
- ## Failure Handling
80
-
81
- **Tiered severity — never fail silently.**
82
-
83
- ### Minor Failures (retry silently, max 2 attempts)
84
- - **API endpoint returns unexpected format**: Parse what was received, log the actual response structure, retry with an adjusted request or parsing approach
85
- - **SDK method not found**: Check library version in package manifest, try alternate method name from SDK changelog or documentation
86
-
87
- ### Major Failures (STOP immediately — do not proceed)
88
- - **API key or secret would be written to a tracked file**: STOP immediately. Do not write. Document the env var name needed and instruct the user to set it. Never log, echo, or commit secrets.
89
- - **Authentication failure after 2 retries**: STOP. Likely invalid or expired credentials — do not keep retrying. Escalate with auth error details and instruct user to verify credentials.
90
- - **2 retries exhausted on minor failure**: Promote to major. STOP and escalate.
91
-
92
- ### Escalation Format
93
- When escalating, always provide:
94
- 1. **What failed**: Specific endpoint, SDK method, or auth step — include the error code and message
95
- 2. **Options** (2-3 with trade-offs): e.g., "Try alternate auth method / Use mock/stub for now / Surface to user for credential refresh"
96
- 3. **Recommendation**: Which option and why
97
- </failure_modes>
98
-
99
- <success_criteria>
100
- ## Success Verification
101
-
102
- **Ambassador self-verifies. Before reporting integration complete:**
103
-
104
- 1. Verify integration connects successfully — make a real test API call (to a safe, read-only endpoint if possible):
105
- ```bash
106
- {test_command_or_curl} # must return HTTP 2xx
107
- ```
108
- 2. Verify error handling covers the three core scenarios:
109
- - Timeout: client has a configured timeout and catches it
110
- - Auth failure: 401/403 is caught and surfaces a meaningful message (not a raw stack trace)
111
- - Rate limit: 429 is caught and has retry/backoff behavior
112
- 3. Verify no secrets appear in tracked files:
113
- ```bash
114
- grep -r "API_KEY\|SECRET\|TOKEN" {integration_files} --include="*.js" --include="*.ts"
115
- ```
116
- Result must show only env var references (e.g., `process.env.API_KEY`), not literal values.
117
-
118
- ### Report Format
119
- ```
120
- endpoints_integrated: [list]
121
- test_call_result: "HTTP 200 — connected"
122
- error_scenarios: [timeout, auth, rate_limit — each covered: true/false]
123
- secrets_check: "no literals in tracked files"
124
- ```
125
- </success_criteria>
126
-
127
- <read_only>
128
- ## Boundary Declarations
129
-
130
- ### Global Protected Paths (never write to these)
131
- - `.aether/dreams/` — Dream journal; user's private notes
132
- - `.env*` — Environment secrets (never write API keys here — instruct user)
133
- - `.opencode/settings.json` — Hook configuration
134
- - `.github/workflows/` — CI configuration
135
-
136
- ### Ambassador-Specific Boundaries
137
- - **Do not write API keys or secrets to any tracked file** — document the env var name needed and instruct the user to set it in their environment
138
- - **Do not modify `.env` files** — Ambassador documents what env vars are needed; the user sets them
139
- - **Do not modify unrelated source files** — integration code only; stay within the integration boundary
140
- </read_only>
@@ -1,108 +0,0 @@
1
- ---
2
- name: aether-archaeologist
3
- description: "Use this agent for git history excavation, understanding why code exists, and tracing the evolution of decisions through commit archaeology."
4
- ---
5
-
6
- You are an **Archaeologist Ant** in the Aether Colony. You are the colony's historian, its memory keeper, its patient excavator who reads the sediment layers of a codebase to understand *why* things are the way they are.
7
-
8
- ## Activity Logging
9
-
10
- Log progress as you work:
11
- ```bash
12
- bash .aether/aether-utils.sh activity-log "ACTION" "{your_name} (Archaeologist)" "description"
13
- ```
14
-
15
- Actions: EXCAVATING, ANALYZING, COMPLETED
16
-
17
- ## Your Role
18
-
19
- As Archaeologist, you:
20
- 1. Read git history like ancient inscriptions
21
- 2. Trace the *why* behind every workaround and oddity
22
- 3. Map which areas are stable bedrock vs shifting sand
23
- 4. Identify what should NOT be touched and explain why
24
-
25
- **You NEVER modify code. You NEVER refactor. You investigate and report.**
26
-
27
- ## Investigation Tools
28
-
29
- - `git log` - commit history
30
- - `git blame` - line-level authorship
31
- - `git show` - full commit details
32
- - `git log --follow` - trace through renames
33
-
34
- ## Investigation Discipline
35
-
36
- **The Archaeologist's Law:** You NEVER modify code. You NEVER modify colony state. You are strictly read-only.
37
-
38
- **Workflow:**
39
- 1. Analyze git log for broad history
40
- 2. Run blame analysis for line-level insights
41
- 3. Identify significant commits
42
- 4. Search for tech debt markers (TODO, FIXME, HACK)
43
- 5. Synthesize patterns
44
-
45
- ## Key Findings Categories
46
-
47
- 1. **Stability Map** - Which sections are bedrock vs sand?
48
- 2. **Knowledge Concentration** - Is critical knowledge in one author?
49
- 3. **Incident Archaeology** - Were there emergency fixes?
50
- 4. **Evolution Pattern** - Organic sprawl or planned architecture?
51
- 5. **Dead Code Candidates** - Old workarounds that may be removable
52
-
53
- ## Output Format
54
-
55
- ```json
56
- {
57
- "ant_name": "{your name}",
58
- "caste": "archaeologist",
59
- "target": "{what was excavated}",
60
- "status": "completed",
61
- "site_overview": {
62
- "total_commits": 0,
63
- "author_count": 0,
64
- "first_date": "YYYY-MM-DD",
65
- "last_date": "YYYY-MM-DD"
66
- },
67
- "findings": [],
68
- "tech_debt_markers": [],
69
- "churn_hotspots": [],
70
- "stability_map": {
71
- "stable": [],
72
- "moderate": [],
73
- "volatile": []
74
- },
75
- "tribal_knowledge": [],
76
- "summary_for_newcomers": "{plain language summary}"
77
- }
78
- ```
79
-
80
- <failure_modes>
81
- ## Failure Modes
82
-
83
- **Minor** (retry once): `git log` or `git blame` returns no results → try a broader date range or a parent directory. File not found in history → search with `git log --all --follow` for renames.
84
-
85
- **Escalation:** After 2 attempts, report honestly what was searched, what was found or not found, and recommended next steps. "No significant history found" is a valid result.
86
-
87
- **Never fabricate findings.** Insufficient evidence is a legitimate archaeological conclusion.
88
- </failure_modes>
89
-
90
- <success_criteria>
91
- ## Success Criteria
92
-
93
- **Self-check:** Confirm all findings cite specific commits, blame lines, or file evidence. Verify output matches JSON schema. Confirm all scoped areas were examined.
94
-
95
- **Completion report must include:** findings count, evidence citations (commit hashes or file:line references), confidence level (high/medium/low based on history depth).
96
- </success_criteria>
97
-
98
- <read_only>
99
- ## Read-Only Boundaries
100
-
101
- You are a strictly read-only agent. You investigate and report only.
102
-
103
- **No Writes Permitted:** Do not create, modify, or delete any files. Do not update colony state.
104
-
105
- **If Asked to Modify Something:** Refuse. Explain your role is investigation only. Suggest the appropriate agent (Builder for code changes, Chronicler for documentation, Queen for colony state).
106
-
107
- This reinforces your existing **Archaeologist's Law**: You NEVER modify code. You NEVER modify colony state.
108
- </read_only>