odd-studio 2.6.0 → 2.7.0

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 (2) hide show
  1. package/package.json +1 -1
  2. package/skill/SKILL.md +56 -4
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "odd-studio",
3
- "version": "2.6.0",
3
+ "version": "2.7.0",
4
4
  "description": "Outcome-Driven Development for Claude Code — a planning and build harness for domain experts building serious software with AI.",
5
5
  "keywords": [
6
6
  "claude-code",
package/skill/SKILL.md CHANGED
@@ -119,10 +119,22 @@ Enter build mode. This command runs the following checks in order before beginni
119
119
  1. Checks that `planApproved` is true in `.odd/state.json`. If not, explain that the plan must be approved before building, and offer `*plan` to complete it.
120
120
  2. Checks that `techStackDecided` is true. If not, explain that the technical architecture decision must be made first, and route to `*phase-plan` to complete it with Rachel.
121
121
  3. Checks that `servicesConfigured` is true. If not, run the **Project Setup Protocol** below before proceeding.
122
- 4. Loads `docs/build/build-protocol.md` into context.
123
- 5. Initialises the ruflo swarm (see Ruflo Swarm Initialisation below).
124
- 6. Confirms to the user which phase is being worked on and which outcomes are in scope.
125
- 7. Begins executing the Build Protocol for the current phase.
122
+ 4. **Model check.** Read the current model from the session context. If the session is running on Opus (or another high-reasoning model), display the model advisory:
123
+
124
+ ---
125
+
126
+ **Model advisory:** You are currently on **[current model]**. The planning phase benefits from Opus-level reasoning, but the build phase runs well on **Sonnet** — it is faster, cheaper, and produces excellent code from well-specified outcomes like yours.
127
+
128
+ Switch now with `/model` if you would like to use Sonnet for the build, or continue on [current model] if you prefer.
129
+
130
+ ---
131
+
132
+ If the user switches or continues, proceed. Do not block — this is advisory only. Do not repeat the advisory if the user has already seen it in this session.
133
+
134
+ 5. Loads `docs/build/build-protocol.md` into context.
135
+ 6. Initialises the ruflo swarm (see Ruflo Swarm Initialisation below).
136
+ 7. Confirms to the user which phase is being worked on and which outcomes are in scope.
137
+ 8. Begins executing the Build Protocol for the current phase.
126
138
 
127
139
  ---
128
140
 
@@ -164,6 +176,41 @@ Jump directly to implementation planning. Check that contracts have been mapped.
164
176
 
165
177
  ---
166
178
 
179
+ ### `*models`
180
+
181
+ Display the current model routing configuration and allow the user to customise it. Read `modelRouting` from `.odd/state.json`. If not set, display the defaults:
182
+
183
+ ---
184
+
185
+ **Model Routing — Current Configuration**
186
+
187
+ ODD Studio recommends different models for different stages of your project:
188
+
189
+ | Stage | Recommended Model | Why |
190
+ |-------|------------------|-----|
191
+ | Planning (personas, outcomes, contracts, plan) | **Opus** | Deep reasoning about domain complexity, persona psychology, dependency analysis |
192
+ | Building (code generation, swarm agents) | **Sonnet** | Fast, cost-effective, excellent code quality from well-specified outcomes |
193
+ | Verification (QA checks, security scanning) | **Sonnet** | Sufficient for structured verification against known criteria |
194
+
195
+ These are recommendations, not requirements. You can override any of them.
196
+
197
+ To change: `*models planning sonnet` or `*models building opus`
198
+ To reset to defaults: `*models reset`
199
+
200
+ ---
201
+
202
+ When the user provides a subcommand like `*models [stage] [model]`:
203
+ - Validate that `stage` is one of: `planning`, `building`, `verification`
204
+ - Accept any model name (do not validate — the user may have access to models we do not know about)
205
+ - Update `modelRouting.[stage]` in `.odd/state.json`
206
+ - Display: "Model for [stage] set to [model]."
207
+
208
+ When `*models reset` is called:
209
+ - Remove the `modelRouting` field from `.odd/state.json` (revert to defaults)
210
+ - Display: "Model routing reset to defaults."
211
+
212
+ ---
213
+
167
214
  ### `*ui`
168
215
 
169
216
  Load the UI excellence briefing. This is relevant whenever an outcome involves a screen the persona will interact with. Load `docs/ui/design-system.md`.
@@ -329,6 +376,7 @@ Display this reference:
329
376
  | `*contracts` | Map contracts with Theo |
330
377
  | `*phase-plan` | Build the Master Implementation Plan with Rachel |
331
378
  | `*ui` | Load UI excellence principles |
379
+ | `*models` | View or change which Claude model is recommended for each stage |
332
380
  | `*swarm` | Build all independent outcomes in the current phase simultaneously |
333
381
  | `*agent` | Create a custom agent for a domain-specific concern |
334
382
  | `*export` | Generate IDE Session Brief |
@@ -652,6 +700,10 @@ techStack: string (chosen framework, e.g. "Next.js")
652
700
  orm: string (always "Drizzle")
653
701
  testingFramework: string (always "Vitest")
654
702
  servicesConfigured: boolean
703
+ modelRouting: object (optional — omit to use defaults)
704
+ planning: string (default "opus")
705
+ building: string (default "sonnet")
706
+ verification: string (default "sonnet")
655
707
  ```
656
708
 
657
709
  ---