odd-studio 3.7.6 → 3.7.7

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,6 +1,6 @@
1
1
  {
2
2
  "name": "odd-studio",
3
- "version": "3.7.6",
3
+ "version": "3.7.7",
4
4
  "description": "Outcome-Driven Development planning and build harness for domain experts building serious software with AI.",
5
5
  "author": {
6
6
  "name": "ODD Studio"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "odd-studio",
3
- "version": "3.7.6",
3
+ "version": "3.7.7",
4
4
  "description": "Outcome-Driven Development for AI coding agents — a planning and build harness for domain experts building serious software with AI. Works with Claude Code, OpenCode, and Codex.",
5
5
  "keywords": [
6
6
  "claude-code",
@@ -47,13 +47,7 @@ export default async function installCommands(packageRoot, targetDir, options =
47
47
  const skillSource = path.join(packageRoot, 'skill');
48
48
  await fs.copy(skillSource, oddKnowledge, { overwrite: true });
49
49
 
50
- // Rewrite the main SKILL.md path references for OpenCode
51
- const mainSkill = path.join(oddKnowledge, 'SKILL.md');
52
- if (fs.existsSync(mainSkill)) {
53
- let content = await fs.readFile(mainSkill, 'utf8');
54
- content = content.replace(/~\/\.claude\/skills\/odd\//g, '.opencode/odd/');
55
- await fs.writeFile(mainSkill, content);
56
- }
50
+ await rewriteSkillPaths(oddKnowledge);
57
51
 
58
52
  // Generate the /odd command that loads the main skill
59
53
  const oddCmd = [
@@ -76,3 +70,13 @@ export default async function installCommands(packageRoot, targetDir, options =
76
70
 
77
71
  return { destination: OC_COMMANDS, commandCount: COMMANDS.length };
78
72
  }
73
+
74
+ async function rewriteSkillPaths(rootDir) {
75
+ const skillFiles = await fs.glob(path.join(rootDir, '**', 'SKILL.md'));
76
+ for (const filePath of skillFiles) {
77
+ let content = await fs.readFile(filePath, 'utf8');
78
+ content = content.replace(/~\/\.claude\/skills\/odd\//g, '.opencode/odd/');
79
+ content = content.replace(/\.claude\/skills\/odd\//g, '.opencode/odd/');
80
+ await fs.writeFile(filePath, content);
81
+ }
82
+ }
package/skill/SKILL.md CHANGED
@@ -1,6 +1,6 @@
1
1
  ---
2
2
  name: "odd"
3
- version: "3.7.6"
3
+ version: "3.7.7"
4
4
  description: "Outcome-Driven Development planning and build coach. Use /odd to start or resume an ODD project — building personas, writing outcomes, mapping contracts, creating a Master Implementation Plan, and directing a odd-flow-powered build. Designed for domain experts who are not developers. Works with Claude Code, OpenCode, and Codex."
5
5
  metadata:
6
6
  priority: 10
@@ -20,7 +20,7 @@ If this is a new project, display this welcome message:
20
20
 
21
21
  ---
22
22
 
23
- Welcome to ODD Studio v3.7.6.
23
+ Welcome to ODD Studio v3.7.7.
24
24
 
25
25
  You are about to plan and build something real — using a methodology called Outcome-Driven Development. Before we write a single line of code, we are going to get precise about three things:
26
26
 
@@ -42,7 +42,7 @@ If this is a returning project, display this status message with real values fro
42
42
 
43
43
  ---
44
44
 
45
- Welcome back to ODD Studio v3.7.6.
45
+ Welcome back to ODD Studio v3.7.7.
46
46
 
47
47
  **Project:** [project.name]
48
48
  **Current Phase:** [state.currentPhase]
@@ -43,8 +43,8 @@ You are executing the ODD Studio `*build` command.
43
43
 
44
44
  Execute this flow:
45
45
 
46
- 1. Read `docs/runtime/build-entry.md` from this ODD skill tree.
46
+ 1. Read `.claude/skills/odd/docs/runtime/build-entry.md`.
47
47
  2. Execute the build-entry checks exactly as written.
48
- 3. Then read `docs/build/build-protocol.md` from this ODD skill tree and execute the build flow exactly as written.
48
+ 3. Then read `.claude/skills/odd/docs/build/build-protocol.md` and execute the build flow exactly as written.
49
49
 
50
50
  Do not spawn build agents or write source code before the brief gate passes.
@@ -137,7 +137,7 @@ If more than one strategy seems plausible, do not fix anything yet. Gather one m
137
137
 
138
138
  ## Fix Protocol
139
139
 
140
- After choosing the strategy, load `docs/build/debug-protocol.md` for the detailed investigation procedure for that strategy.
140
+ After choosing the strategy, load `.claude/skills/odd/docs/build/debug-protocol.md` for the detailed investigation procedure for that strategy.
141
141
 
142
142
  When the fix is complete:
143
143
 
@@ -47,10 +47,10 @@ Execute this flow:
47
47
 
48
48
  1. Read `.odd/state.json`.
49
49
  2. Route to the next incomplete planning stage:
50
- - no personas: `docs/planning/persona-architect.md`
51
- - personas exist, no outcomes: `docs/planning/outcome-writer.md`
52
- - outcomes exist, contracts not mapped: `docs/planning/systems-mapper.md`
53
- - contracts mapped, plan not approved: `docs/planning/build-planner.md`
54
- - plan approved, architecture/design docs incomplete: `docs/planning/build-planner.md`
50
+ - no personas: `.claude/skills/odd/docs/planning/persona-architect.md`
51
+ - personas exist, no outcomes: `.claude/skills/odd/docs/planning/outcome-writer.md`
52
+ - outcomes exist, contracts not mapped: `.claude/skills/odd/docs/planning/systems-mapper.md`
53
+ - contracts mapped, plan not approved: `.claude/skills/odd/docs/planning/build-planner.md`
54
+ - plan approved, architecture/design docs incomplete: `.claude/skills/odd/docs/planning/build-planner.md`
55
55
  3. Announce the stage and why it is next before loading the stage document.
56
56
  4. Follow the selected planning document exactly.
@@ -42,5 +42,5 @@ You are executing the ODD Studio `*status` command.
42
42
 
43
43
  Execute this flow:
44
44
 
45
- 1. Read `docs/runtime/status-protocol.md` from this ODD skill tree.
45
+ 1. Read `.claude/skills/odd/docs/runtime/status-protocol.md`.
46
46
  2. Execute the status protocol exactly as written.
@@ -10,7 +10,7 @@ You are executing the ODD Studio `*swarm` command.
10
10
 
11
11
  Execute this flow:
12
12
 
13
- 1. Read `docs/runtime/build-entry.md` from this ODD skill tree.
13
+ 1. Read `.claude/skills/odd/docs/runtime/build-entry.md`.
14
14
  2. Execute the build-entry checks and swarm initialisation exactly as written.
15
- 3. Then read `docs/build/build-protocol.md` from this ODD skill tree.
15
+ 3. Then read `.claude/skills/odd/docs/build/build-protocol.md`.
16
16
  4. Execute the swarm build path for independent outcomes in the current phase.