odd-studio 2.2.0 → 2.2.1
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/bin/odd-studio.js +8 -7
- package/package.json +1 -1
- package/scripts/postinstall.js +1 -0
package/bin/odd-studio.js
CHANGED
|
@@ -62,7 +62,7 @@ program
|
|
|
62
62
|
console.log(chalk.bold(` Setting up: ${chalk.cyan(resolvedName)}\n`));
|
|
63
63
|
|
|
64
64
|
// 1. Scaffold project structure
|
|
65
|
-
print.step(1,
|
|
65
|
+
print.step(1, 5, 'Creating project structure...');
|
|
66
66
|
const spinner1 = ora({ text: '', indent: 4 }).start();
|
|
67
67
|
try {
|
|
68
68
|
await scaffoldProject(targetDir, resolvedName);
|
|
@@ -76,7 +76,7 @@ program
|
|
|
76
76
|
|
|
77
77
|
// 2. Install /odd skill
|
|
78
78
|
if (!options.skipSkill) {
|
|
79
|
-
print.step(2,
|
|
79
|
+
print.step(2, 5, 'Installing /odd skill into Claude Code...');
|
|
80
80
|
const spinner2 = ora({ text: '', indent: 4 }).start();
|
|
81
81
|
try {
|
|
82
82
|
const result = await installSkill(PACKAGE_ROOT);
|
|
@@ -88,13 +88,13 @@ program
|
|
|
88
88
|
print.info('Manual install: copy ' + chalk.dim('skill/') + ' to ' + chalk.dim('~/.claude/skills/odd/'));
|
|
89
89
|
}
|
|
90
90
|
} else {
|
|
91
|
-
print.step(2,
|
|
91
|
+
print.step(2, 5, 'Skipping skill install (--skip-skill)');
|
|
92
92
|
print.warn('Remember to install the skill manually for /odd to work in Claude Code.');
|
|
93
93
|
}
|
|
94
94
|
|
|
95
95
|
// 3. Setup hooks
|
|
96
96
|
if (!options.skipHooks) {
|
|
97
|
-
print.step(3,
|
|
97
|
+
print.step(3, 5, 'Installing safety hooks into Claude Code settings...');
|
|
98
98
|
const spinner3 = ora({ text: '', indent: 4 }).start();
|
|
99
99
|
try {
|
|
100
100
|
const result = await setupHooks(PACKAGE_ROOT);
|
|
@@ -106,7 +106,7 @@ program
|
|
|
106
106
|
print.info('Manual install: add entries from ' + chalk.dim('hooks/') + ' to ~/.claude/settings.json');
|
|
107
107
|
}
|
|
108
108
|
} else {
|
|
109
|
-
print.step(3,
|
|
109
|
+
print.step(3, 5, 'Skipping hooks (--skip-hooks)');
|
|
110
110
|
print.warn('Safety hooks not installed. Git guardrails and quality gates will not run.');
|
|
111
111
|
}
|
|
112
112
|
|
|
@@ -152,8 +152,9 @@ program
|
|
|
152
152
|
if (projectName) {
|
|
153
153
|
console.log(' 1. ' + chalk.cyan(`cd ${projectName}`));
|
|
154
154
|
}
|
|
155
|
-
console.log(' ' + (projectName ? '2' : '1') + '.
|
|
156
|
-
console.log(' ' + (projectName ? '3' : '2') + '.
|
|
155
|
+
console.log(' ' + (projectName ? '2' : '1') + '. Restart Claude Code: ' + chalk.cyan('quit and reopen') + chalk.dim(' (activates ruflo memory + hooks)'));
|
|
156
|
+
console.log(' ' + (projectName ? '3' : '2') + '. Open your project: ' + chalk.cyan('claude .'));
|
|
157
|
+
console.log(' ' + (projectName ? '4' : '3') + '. Start your ODD session: ' + chalk.cyan('/odd'));
|
|
157
158
|
print.blank();
|
|
158
159
|
|
|
159
160
|
console.log(chalk.dim(' ODD Studio implements Outcome-Driven Development.'));
|
package/package.json
CHANGED
package/scripts/postinstall.js
CHANGED
|
@@ -22,6 +22,7 @@ Promise.all([
|
|
|
22
22
|
])
|
|
23
23
|
.then(() => {
|
|
24
24
|
console.log('✓ ODD Studio: /odd skill, safety hooks, and ruflo memory installed into Claude Code');
|
|
25
|
+
console.log(' → Restart Claude Code now to activate ruflo memory and hooks.');
|
|
25
26
|
console.log(' Run: npx odd-studio init [project-name] to scaffold your first project.');
|
|
26
27
|
})
|
|
27
28
|
.catch((e) => {
|