@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 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('open-product-primer')
16
- .description('Open Product Primer — product decisions, sequencing, and KPI tracking')
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)());
@@ -49,7 +49,7 @@ const AGENT_DIRS = {
49
49
  };
50
50
  function doctorCommand() {
51
51
  return new commander_1.Command('doctor')
52
- .description('Check Open Product Primer install health and integration readiness')
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('Open Product Primer') + ' — health check\n');
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);
@@ -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 Open Product Primer in the current repository')
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('Open Product Primer') + ' — initializing project workspace...\n');
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** — run \`openspec propose <change-name>\` or create change directory
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 context
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. **Report** — show what was linked and what remains for engineering
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() {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@open-product-primer/cli",
3
- "version": "0.1.1",
3
+ "version": "0.1.2",
4
4
  "description": "Open Product Primer CLI — product decisions, sequencing, and KPI tracking for repositories",
5
5
  "keywords": [
6
6
  "product",