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.
- package/codex-plugin/.codex-plugin/plugin.json +1 -1
- package/package.json +1 -1
- package/scripts/install-commands.js +11 -7
- package/skill/SKILL.md +1 -1
- package/skill/docs/startup/startup-protocol.md +2 -2
- package/skill/odd-build/SKILL.md +2 -2
- package/skill/odd-debug/SKILL.md +1 -1
- package/skill/odd-plan/SKILL.md +5 -5
- package/skill/odd-status/SKILL.md +1 -1
- package/skill/odd-swarm/SKILL.md +2 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "odd-studio",
|
|
3
|
-
"version": "3.7.
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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.
|
|
45
|
+
Welcome back to ODD Studio v3.7.7.
|
|
46
46
|
|
|
47
47
|
**Project:** [project.name]
|
|
48
48
|
**Current Phase:** [state.currentPhase]
|
package/skill/odd-build/SKILL.md
CHANGED
|
@@ -43,8 +43,8 @@ You are executing the ODD Studio `*build` command.
|
|
|
43
43
|
|
|
44
44
|
Execute this flow:
|
|
45
45
|
|
|
46
|
-
1. Read
|
|
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
|
|
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.
|
package/skill/odd-debug/SKILL.md
CHANGED
|
@@ -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
|
|
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
|
|
package/skill/odd-plan/SKILL.md
CHANGED
|
@@ -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:
|
|
51
|
-
- personas exist, no outcomes:
|
|
52
|
-
- outcomes exist, contracts not mapped:
|
|
53
|
-
- contracts mapped, plan not approved:
|
|
54
|
-
- plan approved, architecture/design docs incomplete:
|
|
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
|
|
45
|
+
1. Read `.claude/skills/odd/docs/runtime/status-protocol.md`.
|
|
46
46
|
2. Execute the status protocol exactly as written.
|
package/skill/odd-swarm/SKILL.md
CHANGED
|
@@ -10,7 +10,7 @@ You are executing the ODD Studio `*swarm` command.
|
|
|
10
10
|
|
|
11
11
|
Execute this flow:
|
|
12
12
|
|
|
13
|
-
1. Read
|
|
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
|
|
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.
|