odd-studio 1.0.0 → 2.0.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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "odd-studio",
3
- "version": "1.0.0",
3
+ "version": "2.0.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
@@ -75,6 +75,23 @@ Type `*plan` to continue planning, `*build` to enter build mode, or `*status` fo
75
75
 
76
76
  ---
77
77
 
78
+ ## MANDATORY RUFLO CHECKPOINTS
79
+
80
+ These are non-negotiable tool executions. You MUST call these ruflo tools — not describe them, not summarise them. Actually invoke the tool at each gate.
81
+
82
+ | Gate | Tool call required | When |
83
+ |---|---|---|
84
+ | Persona approved | `mcp__ruflo__memory_store` key `odd-persona-[name]` namespace `odd-project` | Immediately after Diana marks a persona approved |
85
+ | Outcome approved | `mcp__ruflo__memory_store` key `odd-outcome-[name]` namespace `odd-project` | Immediately after Marcus marks an outcome approved |
86
+ | Contract map complete | `mcp__ruflo__memory_store` key `odd-contract-map` namespace `odd-project` | Immediately after Theo completes the contract map |
87
+ | Plan approved | `mcp__ruflo__memory_store` key `odd-plan` namespace `odd-project` | Immediately after Rachel's plan is approved |
88
+ | State update (all stages) | Write updated `.odd/state.json` | After every persona, outcome, or plan approval |
89
+ | Session start | `mcp__ruflo__memory_retrieve` key `odd-project-state` namespace `odd-project` | Before displaying any welcome or status message |
90
+
91
+ **If ruflo is not available:** continue without it and note to the user that cross-session memory will not persist this session.
92
+
93
+ ---
94
+
78
95
  ## Core Commands
79
96
 
80
97
  All commands begin with `*`. When a user types a command, route to the correct behaviour below.
@@ -159,6 +176,22 @@ Initialise the ruflo swarm for parallel build execution. See the full Ruflo Swar
159
176
 
160
177
  ---
161
178
 
179
+ ### `*agent`
180
+
181
+ Create a custom agent for a domain-specific concern. The domain expert describes what they need in plain language. ODD Studio configures the agent, assigns it to the swarm, and includes its reports in the verification output alongside the QA agent's report.
182
+
183
+ Common use cases: brand voice (flag text that does not match the platform's tone), compliance (check every outcome against a regulatory standard), accessibility (review every screen against WCAG).
184
+
185
+ The domain expert does not write agent code. They describe the concern:
186
+
187
+ > "Every piece of text a customer sees should sound like it comes from a small, friendly independent bookshop. Flag anything that sounds corporate or uses jargon."
188
+
189
+ ODD Studio creates the agent from that description. It runs on every relevant outcome and reports in domain language.
190
+
191
+ After collecting the description, call `mcp__ruflo__agent_spawn` with the custom role and the domain expert's description as instructions. Confirm the agent is active and will run during the next `*build` or `*swarm` session.
192
+
193
+ ---
194
+
162
195
  ### `*export`
163
196
 
164
197
  Generate the IDE Session Brief. This is a standalone document that a developer or AI coding agent can use to execute a build session without needing to ask planning questions.
@@ -182,16 +215,24 @@ After writing the file, display: "Your Session Brief has been written to docs/se
182
215
  Load coaching content from chapter n of the ODD methodology book. Route to the appropriate file in `docs/chapters/`. If the chapter file does not exist, explain what that chapter covers conceptually and offer to explore it through dialogue.
183
216
 
184
217
  Chapter reference:
185
- - Chapter 1: Why features fail and outcomes succeed
186
- - Chapter 2: Persona depth beyond demographics
187
- - Chapter 3: Writing outcomes that actually specify behaviour
188
- - Chapter 4: The walkthrough as specification
189
- - Chapter 5: Contracts the grammar of system connections
190
- - Chapter 6: The Master Implementation Plan
191
- - Chapter 7: Build Protocol how AI agents work from your plan
192
- - Chapter 8: Verification in the domain expert's language
193
- - Chapter 9: UI excellence for non-designers
194
- - Chapter 10: Handling change without breaking the plan
218
+ - Chapter 1: It's All About Clarity
219
+ - Chapter 2: The Right Division of Labour
220
+ - Chapter 3: Features Aren't Enough
221
+ - Chapter 4: Outcomes Should Be Specific
222
+ - Chapter 5: Personas Are Load-Bearing
223
+ - Chapter 6: Every Outcome Has a Contract
224
+ - Chapter 7: Design the Outcome Twice
225
+ - Chapter 8: The Master Implementation Plan
226
+ - Chapter 9: Start from Zero
227
+ - Chapter 10: The Build Protocol
228
+ - Chapter 11: Verification Is Your Job
229
+ - Chapter 12: Building One Outcome
230
+ - Chapter 13: Concurrent Outcomes and the Swarm
231
+ - Chapter 14: The Things That Scare You
232
+ - Chapter 15: Good Interfaces Are Specified, Not Designed
233
+ - Chapter 16: Managing Change
234
+ - Chapter 17: The Swarm in Depth
235
+ - Chapter 18: Conclusion
195
236
 
196
237
  ---
197
238
 
@@ -228,7 +269,8 @@ Display this reference:
228
269
  | `*contracts` | Map contracts with Theo |
229
270
  | `*phase-plan` | Build the Master Implementation Plan with Rachel |
230
271
  | `*ui` | Load UI excellence principles |
231
- | `*swarm` | Initialise ruflo swarm manually |
272
+ | `*swarm` | Build all independent outcomes in the current phase simultaneously |
273
+ | `*agent` | Create a custom agent for a domain-specific concern |
232
274
  | `*export` | Generate IDE Session Brief |
233
275
  | `*chapter [n]` | Load methodology coaching for chapter n |
234
276
  | `*why` | Explain why the current step matters |