@open-product-primer/cli 0.1.1 → 0.1.2
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/dist/cli.js +2 -2
- package/dist/commands/doctor.js +2 -2
- package/dist/commands/init.js +2 -2
- package/dist/lib/install-agent.js +12 -3
- package/package.json +1 -1
package/dist/cli.js
CHANGED
|
@@ -12,8 +12,8 @@ const measure_1 = require("./commands/measure");
|
|
|
12
12
|
const package_json_1 = __importDefault(require("../package.json"));
|
|
13
13
|
const program = new commander_1.Command();
|
|
14
14
|
program
|
|
15
|
-
.name('
|
|
16
|
-
.description('
|
|
15
|
+
.name('oprim')
|
|
16
|
+
.description('oprim — product decisions, sequencing, and KPI tracking')
|
|
17
17
|
.version(package_json_1.default.version);
|
|
18
18
|
program.addCommand((0, init_1.initCommand)());
|
|
19
19
|
program.addCommand((0, update_1.updateCommand)());
|
package/dist/commands/doctor.js
CHANGED
|
@@ -49,7 +49,7 @@ const AGENT_DIRS = {
|
|
|
49
49
|
};
|
|
50
50
|
function doctorCommand() {
|
|
51
51
|
return new commander_1.Command('doctor')
|
|
52
|
-
.description('Check
|
|
52
|
+
.description('Check oprim install health and integration readiness')
|
|
53
53
|
.action(() => {
|
|
54
54
|
const projectRoot = process.cwd();
|
|
55
55
|
const checks = [];
|
|
@@ -154,7 +154,7 @@ function doctorCommand() {
|
|
|
154
154
|
required: false,
|
|
155
155
|
});
|
|
156
156
|
}
|
|
157
|
-
console.log(chalk_1.default.bold('
|
|
157
|
+
console.log(chalk_1.default.bold('oprim') + ' — health check\n');
|
|
158
158
|
for (const check of checks) {
|
|
159
159
|
const icon = check.pass ? chalk_1.default.green('✓') : check.required ? chalk_1.default.red('✗') : chalk_1.default.yellow('○');
|
|
160
160
|
const label = check.pass ? chalk_1.default.white(check.name) : chalk_1.default.gray(check.name);
|
package/dist/commands/init.js
CHANGED
|
@@ -46,13 +46,13 @@ const install_agent_1 = require("../lib/install-agent");
|
|
|
46
46
|
const templates_1 = require("../lib/templates");
|
|
47
47
|
function initCommand() {
|
|
48
48
|
return new commander_1.Command('init')
|
|
49
|
-
.description('Initialize
|
|
49
|
+
.description('Initialize oprim in the current repository')
|
|
50
50
|
.option('--name <name>', 'project name (defaults to directory name)')
|
|
51
51
|
.option('--agent <name>', 'AI agent to install skills for (repeatable; supported: claude, cursor)', (val, prev) => [...prev, val], [])
|
|
52
52
|
.action(async (opts) => {
|
|
53
53
|
const projectRoot = process.cwd();
|
|
54
54
|
const projectName = opts.name ?? path.basename(projectRoot);
|
|
55
|
-
console.log(chalk_1.default.bold('
|
|
55
|
+
console.log(chalk_1.default.bold('oprim') + ' — initializing project workspace...\n');
|
|
56
56
|
const openspec = (0, detect_1.detectOpenSpec)(projectRoot);
|
|
57
57
|
const graphify = (0, detect_1.detectGraphify)(projectRoot);
|
|
58
58
|
if (openspec.detected)
|
|
@@ -414,12 +414,21 @@ Promote a prioritized bet to an OpenSpec change and link criteria contracts.
|
|
|
414
414
|
1. **Locate the bet** — read \`primer/bets/BET-XXX/bet-decision.md\`
|
|
415
415
|
2. **Validate status** — decision must be "Build now"
|
|
416
416
|
3. **Check authority boundary** — confirm primer artifact owns why/order/outcome only
|
|
417
|
-
4. **Create OpenSpec change** —
|
|
417
|
+
4. **Create OpenSpec change** — derive the change name as \`bet-NNN-<slug>\` where \`NNN\` is the zero-padded bet number (e.g. BET-004 → \`bet-004\`) and \`<slug>\` is a short kebab-case summary of the change. Then invoke the \`/openspec-propose\` skill (or \`/opsx:propose\`) with that name to create the change directory with **all required artifacts**: \`proposal.md\`, \`design.md\`, \`tasks.md\`, and \`specs/<capability>/spec.md\` for every capability listed under \`## Capabilities\`.
|
|
418
|
+
- Pass the bet decision content as context so the proposal reflects the bet's why/outcome
|
|
419
|
+
- **Do not manually create a partial change directory** — the propose skill ensures no artifact is omitted
|
|
420
|
+
- The spec file(s) are mandatory: each capability modified or added must have WHEN/THEN scenarios under \`## ADDED Requirements\` or \`## MODIFIED Requirements\`
|
|
418
421
|
5. **Link artifacts**:
|
|
419
422
|
- Add OpenSpec change path to bet-decision \`## Links\` section
|
|
420
|
-
- Add bet ID to OpenSpec proposal
|
|
423
|
+
- Add bet ID to OpenSpec proposal \`## Context\` section
|
|
421
424
|
6. **Copy criteria** — if \`primer/bets/BET-XXX/criteria.yaml\` exists, link it from OpenSpec proposal
|
|
422
|
-
7. **
|
|
425
|
+
7. **Verify completeness** — confirm the change directory contains:
|
|
426
|
+
- \`proposal.md\`
|
|
427
|
+
- \`design.md\`
|
|
428
|
+
- \`tasks.md\`
|
|
429
|
+
- \`specs/<capability>/spec.md\` for each capability in \`## Capabilities\`
|
|
430
|
+
If any artifact is missing, create it before reporting done.
|
|
431
|
+
8. **Report** — show what was linked and what remains for engineering
|
|
423
432
|
`;
|
|
424
433
|
}
|
|
425
434
|
function sequenceContent() {
|