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.
- package/.aether/aether-utils.sh +181 -5
- package/.aether/commands/build.yaml +35 -0
- package/.aether/commands/entomb.yaml +1 -1
- package/.aether/commands/init.yaml +29 -12
- package/.aether/commands/oracle.yaml +70 -0
- package/.aether/commands/patrol.yaml +2 -2
- package/.aether/commands/run.yaml +3 -3
- package/.aether/commands/swarm.yaml +1 -1
- package/.aether/docs/command-playbooks/build-complete.md +41 -8
- package/.aether/docs/command-playbooks/build-full.md +7 -7
- package/.aether/docs/command-playbooks/build-prep.md +1 -1
- package/.aether/docs/command-playbooks/continue-advance.md +33 -0
- package/.aether/docs/command-playbooks/continue-finalize.md +15 -1
- package/.aether/docs/command-playbooks/continue-full.md +15 -1
- package/.aether/docs/source-of-truth-map.md +10 -10
- package/.aether/docs/structural-learning-stack.md +283 -0
- package/.aether/utils/consolidation-seal.sh +196 -0
- package/.aether/utils/consolidation.sh +127 -0
- package/.aether/utils/curation-ants/archivist.sh +97 -0
- package/.aether/utils/curation-ants/critic.sh +214 -0
- package/.aether/utils/curation-ants/herald.sh +102 -0
- package/.aether/utils/curation-ants/janitor.sh +121 -0
- package/.aether/utils/curation-ants/librarian.sh +99 -0
- package/.aether/utils/curation-ants/nurse.sh +153 -0
- package/.aether/utils/curation-ants/orchestrator.sh +181 -0
- package/.aether/utils/curation-ants/scribe.sh +164 -0
- package/.aether/utils/curation-ants/sentinel.sh +119 -0
- package/.aether/utils/event-bus.sh +301 -0
- package/.aether/utils/graph.sh +559 -0
- package/.aether/utils/instinct-store.sh +401 -0
- package/.aether/utils/learning.sh +79 -7
- package/.aether/utils/session.sh +13 -0
- package/.aether/utils/state-api.sh +1 -1
- package/.aether/utils/trust-scoring.sh +347 -0
- package/.aether/utils/worktree.sh +97 -0
- package/.claude/commands/ant/entomb.md +1 -1
- package/.claude/commands/ant/init.md +29 -12
- package/.claude/commands/ant/oracle.md +35 -0
- package/.claude/commands/ant/patrol.md +2 -2
- package/.claude/commands/ant/run.md +3 -3
- package/.claude/commands/ant/swarm.md +1 -1
- package/.opencode/commands/ant/build.md +35 -0
- package/.opencode/commands/ant/init.md +29 -12
- package/.opencode/commands/ant/oracle.md +35 -0
- package/.opencode/commands/ant/patrol.md +2 -2
- package/.opencode/commands/ant/run.md +3 -3
- package/CHANGELOG.md +83 -0
- package/README.md +22 -9
- package/bin/lib/update-transaction.js +8 -3
- package/bin/npx-entry.js +0 -0
- package/package.json +1 -1
- package/.aether/agents/aether-ambassador.md +0 -140
- package/.aether/agents/aether-archaeologist.md +0 -108
- package/.aether/agents/aether-architect.md +0 -133
- package/.aether/agents/aether-auditor.md +0 -144
- package/.aether/agents/aether-builder.md +0 -184
- package/.aether/agents/aether-chaos.md +0 -115
- package/.aether/agents/aether-chronicler.md +0 -122
- package/.aether/agents/aether-gatekeeper.md +0 -116
- package/.aether/agents/aether-includer.md +0 -117
- package/.aether/agents/aether-keeper.md +0 -177
- package/.aether/agents/aether-measurer.md +0 -128
- package/.aether/agents/aether-oracle.md +0 -137
- package/.aether/agents/aether-probe.md +0 -133
- package/.aether/agents/aether-queen.md +0 -286
- package/.aether/agents/aether-route-setter.md +0 -130
- package/.aether/agents/aether-sage.md +0 -106
- package/.aether/agents/aether-scout.md +0 -101
- package/.aether/agents/aether-surveyor-disciplines.md +0 -391
- package/.aether/agents/aether-surveyor-nest.md +0 -329
- package/.aether/agents/aether-surveyor-pathogens.md +0 -264
- package/.aether/agents/aether-surveyor-provisions.md +0 -334
- package/.aether/agents/aether-tracker.md +0 -137
- package/.aether/agents/aether-watcher.md +0 -174
- package/.aether/agents/aether-weaver.md +0 -130
- package/.aether/commands/claude/archaeology.md +0 -334
- package/.aether/commands/claude/build.md +0 -65
- package/.aether/commands/claude/chaos.md +0 -336
- package/.aether/commands/claude/colonize.md +0 -259
- package/.aether/commands/claude/continue.md +0 -60
- package/.aether/commands/claude/council.md +0 -507
- package/.aether/commands/claude/data-clean.md +0 -81
- package/.aether/commands/claude/dream.md +0 -268
- package/.aether/commands/claude/entomb.md +0 -498
- package/.aether/commands/claude/export-signals.md +0 -57
- package/.aether/commands/claude/feedback.md +0 -96
- package/.aether/commands/claude/flag.md +0 -151
- package/.aether/commands/claude/flags.md +0 -169
- package/.aether/commands/claude/focus.md +0 -76
- package/.aether/commands/claude/help.md +0 -154
- package/.aether/commands/claude/history.md +0 -140
- package/.aether/commands/claude/import-signals.md +0 -71
- package/.aether/commands/claude/init.md +0 -505
- package/.aether/commands/claude/insert-phase.md +0 -105
- package/.aether/commands/claude/interpret.md +0 -278
- package/.aether/commands/claude/lay-eggs.md +0 -210
- package/.aether/commands/claude/maturity.md +0 -113
- package/.aether/commands/claude/memory-details.md +0 -77
- package/.aether/commands/claude/migrate-state.md +0 -171
- package/.aether/commands/claude/oracle.md +0 -642
- package/.aether/commands/claude/organize.md +0 -232
- package/.aether/commands/claude/patrol.md +0 -620
- package/.aether/commands/claude/pause-colony.md +0 -233
- package/.aether/commands/claude/phase.md +0 -115
- package/.aether/commands/claude/pheromones.md +0 -156
- package/.aether/commands/claude/plan.md +0 -693
- package/.aether/commands/claude/preferences.md +0 -65
- package/.aether/commands/claude/quick.md +0 -100
- package/.aether/commands/claude/redirect.md +0 -76
- package/.aether/commands/claude/resume-colony.md +0 -197
- package/.aether/commands/claude/resume.md +0 -388
- package/.aether/commands/claude/run.md +0 -231
- package/.aether/commands/claude/seal.md +0 -774
- package/.aether/commands/claude/skill-create.md +0 -286
- package/.aether/commands/claude/status.md +0 -410
- package/.aether/commands/claude/swarm.md +0 -349
- package/.aether/commands/claude/tunnels.md +0 -426
- package/.aether/commands/claude/update.md +0 -132
- package/.aether/commands/claude/verify-castes.md +0 -143
- package/.aether/commands/claude/watch.md +0 -239
- package/.aether/commands/opencode/archaeology.md +0 -331
- package/.aether/commands/opencode/build.md +0 -1168
- package/.aether/commands/opencode/chaos.md +0 -329
- package/.aether/commands/opencode/colonize.md +0 -195
- package/.aether/commands/opencode/continue.md +0 -1436
- package/.aether/commands/opencode/council.md +0 -437
- package/.aether/commands/opencode/data-clean.md +0 -77
- package/.aether/commands/opencode/dream.md +0 -260
- package/.aether/commands/opencode/entomb.md +0 -377
- package/.aether/commands/opencode/export-signals.md +0 -54
- package/.aether/commands/opencode/feedback.md +0 -99
- package/.aether/commands/opencode/flag.md +0 -149
- package/.aether/commands/opencode/flags.md +0 -167
- package/.aether/commands/opencode/focus.md +0 -73
- package/.aether/commands/opencode/help.md +0 -157
- package/.aether/commands/opencode/history.md +0 -136
- package/.aether/commands/opencode/import-signals.md +0 -68
- package/.aether/commands/opencode/init.md +0 -518
- package/.aether/commands/opencode/insert-phase.md +0 -111
- package/.aether/commands/opencode/interpret.md +0 -272
- package/.aether/commands/opencode/lay-eggs.md +0 -213
- package/.aether/commands/opencode/maturity.md +0 -108
- package/.aether/commands/opencode/memory-details.md +0 -83
- package/.aether/commands/opencode/migrate-state.md +0 -165
- package/.aether/commands/opencode/oracle.md +0 -593
- package/.aether/commands/opencode/organize.md +0 -226
- package/.aether/commands/opencode/patrol.md +0 -626
- package/.aether/commands/opencode/pause-colony.md +0 -203
- package/.aether/commands/opencode/phase.md +0 -113
- package/.aether/commands/opencode/pheromones.md +0 -162
- package/.aether/commands/opencode/plan.md +0 -684
- package/.aether/commands/opencode/preferences.md +0 -71
- package/.aether/commands/opencode/quick.md +0 -91
- package/.aether/commands/opencode/redirect.md +0 -84
- package/.aether/commands/opencode/resume-colony.md +0 -190
- package/.aether/commands/opencode/resume.md +0 -394
- package/.aether/commands/opencode/run.md +0 -237
- package/.aether/commands/opencode/seal.md +0 -452
- package/.aether/commands/opencode/skill-create.md +0 -63
- package/.aether/commands/opencode/status.md +0 -307
- package/.aether/commands/opencode/swarm.md +0 -15
- package/.aether/commands/opencode/tunnels.md +0 -400
- package/.aether/commands/opencode/update.md +0 -127
- package/.aether/commands/opencode/verify-castes.md +0 -139
- 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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
[](https://www.npmjs.com/package/aether-colony?utm_source=github&utm_medium=readme&utm_campaign=aether)
|
|
12
|
+
[](https://www.npmjs.com/package/aether-colony?utm_source=github&utm_medium=readme&utm_campaign=aether)
|
|
13
|
+
[](LICENSE)
|
|
14
|
+
[](https://github.com/calcosmic/Aether/stargazers)
|
|
15
|
+
[](https://github.com/sponsors/calcosmic?utm_source=github&utm_medium=readme&utm_campaign=aether)
|
|
16
|
+
|
|
17
|
+
[](https://www.npmjs.com/package/aether-colony?utm_source=github&utm_medium=readme&utm_campaign=aether)
|
|
18
|
+
[](https://www.npmjs.com/package/aether-colony?utm_source=github&utm_medium=readme&utm_campaign=aether)
|
|
19
|
+
[](https://www.npmjs.com/package/aether-colony?utm_source=github&utm_medium=readme&utm_campaign=aether)
|
|
20
|
+
[](https://www.npmjs.com/package/aether-colony?utm_source=github&utm_medium=readme&utm_campaign=aether)
|
|
21
|
+

|
|
22
|
+

|
|
23
|
+

|
|
24
|
+
[](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
|
+
[](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
|
|
176
|
-
|
|
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,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>
|