aether-colony 3.1.1 → 3.1.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.
@@ -1,157 +0,0 @@
1
- ---
2
- name: ant:verify-castes
3
- description: "Verify model routing is working for all castes"
4
- ---
5
-
6
- You are the **Queen**. Verify that model routing configuration is correct and test that workers can self-report their assigned models.
7
-
8
- ## Step 1: Check Proxy Health
9
-
10
- Run using the Bash tool: `node bin/cli.js caste-models list`
11
-
12
- Capture the proxy status line. If proxy is unhealthy:
13
- - Display warning about proxy not running
14
- - Show instructions to start LiteLLM proxy
15
- - Continue with verification anyway (will show limited functionality)
16
-
17
- ## Step 2: Verify Each Caste Assignment
18
-
19
- For each caste in [prime, builder, watcher, oracle, scout, chaos, architect, archaeologist, colonizer, route_setter]:
20
-
21
- 1. Get assigned model using the Bash tool:
22
- ```
23
- node -e "const mp = require('./bin/lib/model-profiles'); const p = mp.loadModelProfiles('.'); console.log(mp.getEffectiveModel(p, 'CASTE').model)"
24
- ```
25
- Replace CASTE with the actual caste name.
26
-
27
- 2. Verify model is not "default" (should be specific model from profiles)
28
- 3. Log result with checkmark or X
29
-
30
- Display results in a table:
31
- ```
32
- Caste Verification:
33
- ─────────────────────────────────────────
34
- ✓ prime: glm-5 (z_ai)
35
- ✓ builder: kimi-k2.5 (kimi)
36
- ✓ watcher: kimi-k2.5 (kimi)
37
- ...
38
- ```
39
-
40
- ## Step 3: Test Worker Self-Reporting (Recommended)
41
-
42
- Spawn a test worker from each caste to verify they correctly self-report their model assignment:
43
-
44
- ### 3.1 Spawn Test Workers
45
-
46
- For each test caste in [builder, watcher, oracle]:
47
-
48
- 1. Get the model assignment:
49
- ```bash
50
- node -e "const mp = require('./bin/lib/model-profiles'); const p = mp.loadModelProfiles('.'); console.log(mp.getEffectiveModel(p, 'CASTE').model)"
51
- ```
52
-
53
- 2. Spawn test worker via Task tool with `subagent_type="general"`:
54
-
55
- **Test Worker Prompt:**
56
- ```
57
- You are a test worker for model routing verification.
58
-
59
- --- MODEL CONTEXT ---
60
- Assigned model: {model} (from caste: {caste})
61
- Expected: You should process this task using the model assigned above
62
-
63
- --- YOUR TASK ---
64
- Simply echo back the model context in the required JSON format.
65
-
66
- --- OUTPUT ---
67
- Return JSON:
68
- {
69
- "test_passed": true,
70
- "model_context": {
71
- "assigned": "{model}",
72
- "caste": "{caste}",
73
- "source": "caste-default"
74
- },
75
- "verification": "Model context received and will be echoed back"
76
- }
77
- ```
78
-
79
- 3. Collect the worker's JSON response
80
-
81
- ### 3.2 Display Self-Reporting Results
82
-
83
- After all test workers return, display results:
84
-
85
- ```
86
- Model Self-Reporting Test:
87
- ─────────────────────────────────────────
88
- ✓ builder: Reported kimi-k2.5 ✓ (matches assignment)
89
- ✓ watcher: Reported kimi-k2.5 ✓ (matches assignment)
90
- ✓ oracle: Reported minimax-2.5 ✓ (matches assignment)
91
- ```
92
-
93
- If a worker reports a different model than assigned:
94
- ```
95
- ⚠️ oracle: Reported kimi-k2.5 ✗ (expected: minimax-2.5)
96
- → Model routing may not be working for this caste
97
- ```
98
-
99
- **Note:** Workers self-report based on the model context in their prompt. This verifies:
100
- 1. Queen correctly assigns models based on caste
101
- 2. Workers receive and can echo the assignment
102
- 3. The routing chain is intact from configuration → spawn → execution
103
-
104
- ## Step 4: Summary Report
105
-
106
- Display final verification report:
107
- ```
108
- ═══════════════════════════════════════════
109
- Model Routing Verification Complete
110
- ═══════════════════════════════════════════
111
- Proxy Health: ✓ Healthy (or ✗ Not running)
112
- Configuration: X/10 castes have model assignments
113
- Self-Reporting: X/3 test workers echoed correctly
114
-
115
- Status: {operational | needs attention}
116
- ```
117
-
118
- ### If All Checks Pass:
119
- ```
120
- ✓ Model routing is working correctly
121
-
122
- All castes have model assignments and workers correctly
123
- self-report their assigned models. The routing chain:
124
- model-profiles.yaml → Queen spawn → Worker context
125
- is functioning properly.
126
- ```
127
-
128
- ### If Issues Found:
129
- ```
130
- ⚠️ Issues Detected:
131
- - Proxy: {status}
132
- - Missing assignments: {castes without models}
133
- - Self-report failures: {workers that didn't echo correctly}
134
-
135
- Recommendations:
136
- 1. {specific fix for each issue}
137
- ```
138
-
139
- ## How Model Routing Actually Works
140
-
141
- **Current Implementation (Self-Reporting):**
142
- 1. Caste-to-model mappings defined in `.aether/model-profiles.yaml`
143
- 2. Queen reads assignment before spawning worker
144
- 3. Queen includes model context in worker prompt
145
- 4. Worker echoes model_context in JSON output
146
- 5. Queen logs/display shows actual vs expected
147
-
148
- **Note on Environment Variables:**
149
- While the system documents `ANTHROPIC_MODEL` environment variables for
150
- LiteLLM proxy routing, Claude Code's Task tool doesn't support explicit
151
- environment variable passing. The self-reporting approach works within
152
- this constraint by using prompt context instead.
153
-
154
- For actual model routing through LiteLLM:
155
- - Set ANTHROPIC_MODEL in your shell before starting Claude Code
156
- - Or use the proxy's default model routing
157
- - Check LiteLLM proxy logs to verify which models are being called