@x0rium/devkit-cli 0.4.0

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.
Files changed (65) hide show
  1. package/dist/advance.d.ts +9 -0
  2. package/dist/advance.d.ts.map +1 -0
  3. package/dist/advance.js +47 -0
  4. package/dist/advance.js.map +1 -0
  5. package/dist/constitution.d.ts +16 -0
  6. package/dist/constitution.d.ts.map +1 -0
  7. package/dist/constitution.js +186 -0
  8. package/dist/constitution.js.map +1 -0
  9. package/dist/coverage.d.ts +18 -0
  10. package/dist/coverage.d.ts.map +1 -0
  11. package/dist/coverage.js +167 -0
  12. package/dist/coverage.js.map +1 -0
  13. package/dist/dashboard.d.ts +2 -0
  14. package/dist/dashboard.d.ts.map +1 -0
  15. package/dist/dashboard.js +380 -0
  16. package/dist/dashboard.js.map +1 -0
  17. package/dist/detector.d.ts +3 -0
  18. package/dist/detector.d.ts.map +1 -0
  19. package/dist/detector.js +45 -0
  20. package/dist/detector.js.map +1 -0
  21. package/dist/escalate.d.ts +11 -0
  22. package/dist/escalate.d.ts.map +1 -0
  23. package/dist/escalate.js +133 -0
  24. package/dist/escalate.js.map +1 -0
  25. package/dist/gate.d.ts +15 -0
  26. package/dist/gate.d.ts.map +1 -0
  27. package/dist/gate.js +244 -0
  28. package/dist/gate.js.map +1 -0
  29. package/dist/impact.d.ts +17 -0
  30. package/dist/impact.d.ts.map +1 -0
  31. package/dist/impact.js +192 -0
  32. package/dist/impact.js.map +1 -0
  33. package/dist/index.d.ts +3 -0
  34. package/dist/index.d.ts.map +1 -0
  35. package/dist/index.js +494 -0
  36. package/dist/index.js.map +1 -0
  37. package/dist/investigate.d.ts +21 -0
  38. package/dist/investigate.d.ts.map +1 -0
  39. package/dist/investigate.js +200 -0
  40. package/dist/investigate.js.map +1 -0
  41. package/dist/rfc.d.ts +21 -0
  42. package/dist/rfc.d.ts.map +1 -0
  43. package/dist/rfc.js +152 -0
  44. package/dist/rfc.js.map +1 -0
  45. package/dist/scaffold.d.ts +7 -0
  46. package/dist/scaffold.d.ts.map +1 -0
  47. package/dist/scaffold.js +54 -0
  48. package/dist/scaffold.js.map +1 -0
  49. package/dist/schemas.d.ts +11 -0
  50. package/dist/schemas.d.ts.map +1 -0
  51. package/dist/schemas.js +103 -0
  52. package/dist/schemas.js.map +1 -0
  53. package/dist/status.d.ts +13 -0
  54. package/dist/status.d.ts.map +1 -0
  55. package/dist/status.js +112 -0
  56. package/dist/status.js.map +1 -0
  57. package/dist/validator.d.ts +16 -0
  58. package/dist/validator.d.ts.map +1 -0
  59. package/dist/validator.js +185 -0
  60. package/dist/validator.js.map +1 -0
  61. package/dist/watch.d.ts +2 -0
  62. package/dist/watch.d.ts.map +1 -0
  63. package/dist/watch.js +48 -0
  64. package/dist/watch.js.map +1 -0
  65. package/package.json +47 -0
package/dist/index.js ADDED
@@ -0,0 +1,494 @@
1
+ #!/usr/bin/env node
2
+ import { Command } from 'commander';
3
+ import chalk from 'chalk';
4
+ import { detectProjectState } from './detector.js';
5
+ import { scaffoldDevkit } from './scaffold.js';
6
+ import { getStatus, formatStatus } from './status.js';
7
+ import { validateArtifacts, formatValidation } from './validator.js';
8
+ import { checkGate, formatGate } from './gate.js';
9
+ import { generateConstitution, syncConstitution } from './constitution.js';
10
+ import { analyzeImpact, formatImpact } from './impact.js';
11
+ import { advancePhase } from './advance.js';
12
+ import { createRfc, listRfcs, resolveRfc } from './rfc.js';
13
+ import { createInvestigation, listInvestigations, resolveInvestigation } from './investigate.js';
14
+ import { createEscalation } from './escalate.js';
15
+ import { analyzeCoverage, formatCoverage } from './coverage.js';
16
+ import { watchValidate } from './watch.js';
17
+ import { startDashboard } from './dashboard.js';
18
+ const program = new Command();
19
+ program
20
+ .name('devkit')
21
+ .description('DevKit CLI — AI-Native Development Methodology')
22
+ .version('0.4.0');
23
+ // ────────────────────────────── INIT ──────────────────────────────
24
+ program
25
+ .command('init')
26
+ .description('Initialize DevKit in the current project')
27
+ .option('-d, --dir <path>', 'Project directory', process.cwd())
28
+ .action((opts) => {
29
+ const cwd = opts.dir;
30
+ console.log(chalk.bold('\n🚀 DevKit Init\n'));
31
+ const state = detectProjectState(cwd);
32
+ console.log(` Detected: ${chalk.cyan(state)} project\n`);
33
+ if (state === 'initialized') {
34
+ console.log(chalk.yellow(' ⚠ .devkit/ already exists. Use "devkit status" to check progress.'));
35
+ return;
36
+ }
37
+ const result = scaffoldDevkit(cwd, state);
38
+ if (result.created.length > 0) {
39
+ console.log(chalk.green(' Created:'));
40
+ for (const path of result.created) {
41
+ console.log(` + ${path}`);
42
+ }
43
+ }
44
+ if (result.skipped.length > 0) {
45
+ console.log(chalk.dim(' Skipped (already exist):'));
46
+ for (const path of result.skipped) {
47
+ console.log(chalk.dim(` - ${path}`));
48
+ }
49
+ }
50
+ console.log('');
51
+ console.log(chalk.bold(' Next steps:'));
52
+ switch (state) {
53
+ case 'greenfield':
54
+ console.log(' Start with: /research-kit');
55
+ console.log(' Describe your idea and explore feasibility.');
56
+ break;
57
+ case 'brownfield':
58
+ console.log(' Review: .devkit/arch/invariants.md');
59
+ console.log(' Then: /arch-kit to fill gaps.');
60
+ break;
61
+ case 'upgrade':
62
+ console.log(' Extracting spec-kit artifacts into DevKit structure...');
63
+ console.log(' Review: .devkit/arch/invariants.md');
64
+ break;
65
+ }
66
+ console.log('');
67
+ });
68
+ // ────────────────────────────── STATUS ──────────────────────────────
69
+ program
70
+ .command('status')
71
+ .description('Show current DevKit phase, progress, and next step')
72
+ .option('-d, --dir <path>', 'Project directory', process.cwd())
73
+ .action((opts) => {
74
+ const cwd = opts.dir;
75
+ const status = getStatus(cwd);
76
+ if (!status) {
77
+ console.log(chalk.red('\n ❌ .devkit/ not found. Run "devkit init" first.\n'));
78
+ return;
79
+ }
80
+ console.log('\n' + formatStatus(status));
81
+ // Show open RFCs/INVs/ESCs
82
+ const rfcs = listRfcs(cwd).filter(r => r.status === 'open');
83
+ const invs = listInvestigations(cwd).filter(i => i.status === 'open');
84
+ if (rfcs.length > 0 || invs.length > 0) {
85
+ console.log(chalk.yellow(' ⚡ Open escalations:'));
86
+ for (const r of rfcs) {
87
+ console.log(chalk.yellow(` 📋 ${r.id}: ${r.title.replace(`${r.id}: `, '')} (RFC)`));
88
+ }
89
+ for (const i of invs) {
90
+ console.log(chalk.yellow(` 🔬 ${i.id}: ${i.title.replace(`${i.id}: `, '')} (Investigation)`));
91
+ }
92
+ console.log('');
93
+ }
94
+ // Progressive disclosure (U5): show phase-relevant commands
95
+ const phaseCommands = getPhaseCommands(status.phase);
96
+ if (phaseCommands.length > 0) {
97
+ console.log(chalk.dim(' Available commands for this phase:'));
98
+ for (const cmd of phaseCommands) {
99
+ console.log(chalk.dim(` devkit ${cmd}`));
100
+ }
101
+ console.log('');
102
+ }
103
+ });
104
+ // ────────────────────────────── VALIDATE ──────────────────────────────
105
+ program
106
+ .command('validate')
107
+ .description('Validate all .devkit/ artifacts against schemas')
108
+ .option('-d, --dir <path>', 'Project directory', process.cwd())
109
+ .action((opts) => {
110
+ const cwd = opts.dir;
111
+ console.log(chalk.bold('\n🔍 DevKit Validate\n'));
112
+ const result = validateArtifacts(cwd);
113
+ console.log(formatValidation(result));
114
+ console.log('');
115
+ if (result.errors.length > 0) {
116
+ process.exitCode = 1;
117
+ }
118
+ });
119
+ // ────────────────────────────── GATE ──────────────────────────────
120
+ program
121
+ .command('gate')
122
+ .description('Check if transition to next phase is allowed')
123
+ .option('-d, --dir <path>', 'Project directory', process.cwd())
124
+ .option('-p, --phase <phase>', 'Phase to check (default: current from STATUS.md)')
125
+ .action((opts) => {
126
+ const cwd = opts.dir;
127
+ console.log(chalk.bold('\n🚧 DevKit Gate Check\n'));
128
+ let phase;
129
+ if (opts.phase) {
130
+ phase = opts.phase;
131
+ }
132
+ else {
133
+ const status = getStatus(cwd);
134
+ if (!status) {
135
+ console.log(chalk.red(' ❌ .devkit/ not found. Run "devkit init" first.\n'));
136
+ return;
137
+ }
138
+ phase = status.phase;
139
+ }
140
+ const result = checkGate(cwd, phase);
141
+ console.log(formatGate(result));
142
+ console.log('');
143
+ if (!result.allowed) {
144
+ process.exitCode = 1;
145
+ }
146
+ });
147
+ // ────────────────────────────── GENERATE-CONSTITUTION ──────────────────────────────
148
+ program
149
+ .command('generate-constitution')
150
+ .description('Generate constitution.md from invariants + decisions')
151
+ .option('-d, --dir <path>', 'Project directory', process.cwd())
152
+ .action((opts) => {
153
+ const cwd = opts.dir;
154
+ console.log(chalk.bold('\n📜 Generate Constitution\n'));
155
+ const result = generateConstitution(cwd);
156
+ if (!result.generated) {
157
+ console.log(chalk.red(` ❌ ${result.error}\n`));
158
+ process.exitCode = 1;
159
+ return;
160
+ }
161
+ console.log(chalk.green(' ✅ Constitution generated!'));
162
+ console.log(` Technical invariants: ${result.invariantsCount}`);
163
+ console.log(` UX invariants: ${result.uxInvariantsCount}`);
164
+ console.log(` ADR decisions: ${result.decisionsCount}`);
165
+ console.log(` Output: .devkit/arch/constitution.md`);
166
+ console.log('');
167
+ console.log(chalk.dim(' Run "devkit sync" to copy to .specify/constitution.md'));
168
+ console.log('');
169
+ });
170
+ // ────────────────────────────── SYNC ──────────────────────────────
171
+ program
172
+ .command('sync')
173
+ .description('Sync constitution.md → .specify/constitution.md')
174
+ .option('-d, --dir <path>', 'Project directory', process.cwd())
175
+ .action((opts) => {
176
+ const cwd = opts.dir;
177
+ console.log(chalk.bold('\n🔄 Sync Constitution\n'));
178
+ const result = syncConstitution(cwd);
179
+ if (!result.synced) {
180
+ console.log(chalk.red(` ❌ ${result.error}\n`));
181
+ process.exitCode = 1;
182
+ return;
183
+ }
184
+ console.log(chalk.green(' ✅ Synced!'));
185
+ console.log(` ${result.from} → ${result.to}`);
186
+ console.log('');
187
+ });
188
+ // ────────────────────────────── IMPACT ──────────────────────────────
189
+ program
190
+ .command('impact <description>')
191
+ .description('Analyze impact of a proposed change on invariants and components')
192
+ .option('-d, --dir <path>', 'Project directory', process.cwd())
193
+ .action((description, opts) => {
194
+ const cwd = opts.dir;
195
+ console.log(chalk.bold('\n💥 Impact Analysis\n'));
196
+ const result = analyzeImpact(cwd, description);
197
+ console.log(formatImpact(result));
198
+ console.log('');
199
+ if (result.riskLevel === 'high') {
200
+ process.exitCode = 1;
201
+ }
202
+ });
203
+ // ────────────────────────────── ADVANCE ──────────────────────────────
204
+ program
205
+ .command('advance')
206
+ .description('Advance to the next DevKit phase (requires passing gate)')
207
+ .option('-d, --dir <path>', 'Project directory', process.cwd())
208
+ .option('--force', 'Skip gate check (not recommended)', false)
209
+ .action((opts) => {
210
+ const cwd = opts.dir;
211
+ console.log(chalk.bold('\n⏩ Advance Phase\n'));
212
+ const status = getStatus(cwd);
213
+ if (!status) {
214
+ console.log(chalk.red(' ❌ .devkit/ not found. Run "devkit init" first.\n'));
215
+ return;
216
+ }
217
+ if (!opts.force) {
218
+ const gateResult = checkGate(cwd, status.phase);
219
+ if (!gateResult.allowed) {
220
+ console.log(chalk.red(' ❌ Gate check failed. Cannot advance.\n'));
221
+ console.log(formatGate(gateResult));
222
+ console.log('');
223
+ console.log(chalk.dim(' Use --force to skip gate check (not recommended)'));
224
+ console.log('');
225
+ process.exitCode = 1;
226
+ return;
227
+ }
228
+ }
229
+ const result = advancePhase(cwd, status.phase);
230
+ if (!result.advanced) {
231
+ console.log(chalk.red(` ❌ ${result.error}\n`));
232
+ process.exitCode = 1;
233
+ return;
234
+ }
235
+ const LABELS = {
236
+ research: 'ResearchKit', product: 'ProductKit', arch: 'ArchKit',
237
+ spec: 'SpecKit', qa: 'QAKit',
238
+ };
239
+ console.log(chalk.green(` ✅ Advanced: ${LABELS[result.from]} → ${LABELS[result.to]}`));
240
+ console.log('');
241
+ const newStatus = getStatus(cwd);
242
+ if (newStatus) {
243
+ console.log(formatStatus(newStatus));
244
+ }
245
+ });
246
+ // ────────────────────────────── RFC ──────────────────────────────
247
+ program
248
+ .command('rfc <description>')
249
+ .description('Create RFC with automatic impact analysis')
250
+ .option('-d, --dir <path>', 'Project directory', process.cwd())
251
+ .action((description, opts) => {
252
+ const cwd = opts.dir;
253
+ console.log(chalk.bold('\n📋 Create RFC\n'));
254
+ const result = createRfc(cwd, description);
255
+ if (!result.created) {
256
+ console.log(chalk.red(` ❌ ${result.error}\n`));
257
+ process.exitCode = 1;
258
+ return;
259
+ }
260
+ const riskEmoji = result.riskLevel === 'high' ? '🔴' :
261
+ result.riskLevel === 'medium' ? '🟡' : '🟢';
262
+ console.log(chalk.green(` ✅ Created: ${result.id}`));
263
+ console.log(` Path: .devkit/${result.path}`);
264
+ console.log(` Risk: ${riskEmoji} ${result.riskLevel}`);
265
+ console.log('');
266
+ if (result.affectedInvariants.length > 0) {
267
+ console.log(' Affected invariants:');
268
+ for (const inv of result.affectedInvariants) {
269
+ console.log(` ⚡ ${inv}`);
270
+ }
271
+ console.log('');
272
+ }
273
+ if (result.affectedSpecs.length > 0) {
274
+ console.log(' Affected specs:');
275
+ for (const spec of result.affectedSpecs) {
276
+ console.log(` 📄 ${spec}`);
277
+ }
278
+ console.log('');
279
+ }
280
+ console.log(chalk.dim(' Next: Fill Options and Decision in the RFC file.'));
281
+ console.log(chalk.dim(` Then: devkit resolve-rfc ${result.id} "Option A" "rationale"`));
282
+ console.log('');
283
+ });
284
+ // ────────────────────────────── RFC LIST ──────────────────────────────
285
+ program
286
+ .command('rfc-list')
287
+ .description('List all RFCs')
288
+ .option('-d, --dir <path>', 'Project directory', process.cwd())
289
+ .action((opts) => {
290
+ const cwd = opts.dir;
291
+ console.log(chalk.bold('\n📋 RFCs\n'));
292
+ const rfcs = listRfcs(cwd);
293
+ if (rfcs.length === 0) {
294
+ console.log(' No RFCs found.');
295
+ console.log(chalk.dim(' Create one: devkit rfc "description"'));
296
+ console.log('');
297
+ return;
298
+ }
299
+ for (const rfc of rfcs) {
300
+ const icon = rfc.status === 'open' ? '🟡' : rfc.status === 'accepted' ? '✅' : '⛔';
301
+ console.log(` ${icon} ${rfc.id}: ${rfc.title.replace(`${rfc.id}: `, '')} [${rfc.status}]`);
302
+ }
303
+ console.log('');
304
+ });
305
+ // ────────────────────────────── RESOLVE RFC ──────────────────────────────
306
+ program
307
+ .command('resolve-rfc <id> <option> <rationale>')
308
+ .description('Resolve an RFC with chosen option and rationale')
309
+ .option('-d, --dir <path>', 'Project directory', process.cwd())
310
+ .action((id, option, rationale, opts) => {
311
+ const cwd = opts.dir;
312
+ console.log(chalk.bold('\n📋 Resolve RFC\n'));
313
+ const result = resolveRfc(cwd, id, option, rationale);
314
+ if (!result.resolved) {
315
+ console.log(chalk.red(` ❌ ${result.error}\n`));
316
+ process.exitCode = 1;
317
+ return;
318
+ }
319
+ console.log(chalk.green(` ✅ ${id} resolved!`));
320
+ console.log(` Chosen: ${option}`);
321
+ console.log(` Rationale: ${rationale}`);
322
+ console.log('');
323
+ console.log(chalk.dim(' Don\'t forget post-decision actions:'));
324
+ console.log(chalk.dim(' devkit generate-constitution'));
325
+ console.log(chalk.dim(' devkit sync'));
326
+ console.log('');
327
+ });
328
+ // ────────────────────────────── INVESTIGATE ──────────────────────────────
329
+ program
330
+ .command('investigate <description>')
331
+ .description('Create Investigation for a technical blocker or broken assumption')
332
+ .option('-d, --dir <path>', 'Project directory', process.cwd())
333
+ .action((description, opts) => {
334
+ const cwd = opts.dir;
335
+ console.log(chalk.bold('\n🔬 Create Investigation\n'));
336
+ const result = createInvestigation(cwd, description);
337
+ if (!result.created) {
338
+ console.log(chalk.red(` ❌ ${result.error}\n`));
339
+ process.exitCode = 1;
340
+ return;
341
+ }
342
+ console.log(chalk.green(` ✅ Created: ${result.id}`));
343
+ console.log(` Path: .devkit/${result.path}`);
344
+ console.log('');
345
+ if (result.adrSource) {
346
+ console.log(` 🔗 Linked ADR: ${result.adrSource}`);
347
+ console.log(` Broken assumption: ${result.brokenAssumption}`);
348
+ console.log('');
349
+ }
350
+ else {
351
+ console.log(chalk.dim(' No ADR auto-linked. Check decisions/ manually.'));
352
+ console.log('');
353
+ }
354
+ if (result.invariantsAtRisk.length > 0) {
355
+ console.log(' Invariants at risk:');
356
+ for (const inv of result.invariantsAtRisk) {
357
+ console.log(` ⚠️ ${inv}`);
358
+ }
359
+ console.log('');
360
+ }
361
+ console.log(chalk.dim(' Next: Fill Options and Decision in the Investigation file.'));
362
+ console.log(chalk.dim(` Then: devkit resolve-inv ${result.id} "Option A" "rationale"`));
363
+ console.log('');
364
+ });
365
+ // ────────────────────────────── INVESTIGATE LIST ──────────────────────────────
366
+ program
367
+ .command('inv-list')
368
+ .description('List all Investigations')
369
+ .option('-d, --dir <path>', 'Project directory', process.cwd())
370
+ .action((opts) => {
371
+ const cwd = opts.dir;
372
+ console.log(chalk.bold('\n🔬 Investigations\n'));
373
+ const invs = listInvestigations(cwd);
374
+ if (invs.length === 0) {
375
+ console.log(' No Investigations found.');
376
+ console.log(chalk.dim(' Create one: devkit investigate "description"'));
377
+ console.log('');
378
+ return;
379
+ }
380
+ for (const inv of invs) {
381
+ const icon = inv.status === 'open' ? '🟡' : '✅';
382
+ console.log(` ${icon} ${inv.id}: ${inv.title.replace(`${inv.id}: `, '')} [${inv.status}]`);
383
+ }
384
+ console.log('');
385
+ });
386
+ // ────────────────────────────── RESOLVE INVESTIGATION ──────────────────────────────
387
+ program
388
+ .command('resolve-inv <id> <option> <rationale>')
389
+ .description('Resolve an Investigation with chosen option and rationale')
390
+ .option('-d, --dir <path>', 'Project directory', process.cwd())
391
+ .action((id, option, rationale, opts) => {
392
+ const cwd = opts.dir;
393
+ console.log(chalk.bold('\n🔬 Resolve Investigation\n'));
394
+ const result = resolveInvestigation(cwd, id, option, rationale);
395
+ if (!result.resolved) {
396
+ console.log(chalk.red(` ❌ ${result.error}\n`));
397
+ process.exitCode = 1;
398
+ return;
399
+ }
400
+ console.log(chalk.green(` ✅ ${id} resolved!`));
401
+ console.log(` Chosen: ${option}`);
402
+ console.log(` Rationale: ${rationale}`);
403
+ console.log('');
404
+ console.log(chalk.dim(' Don\'t forget post-decision actions:'));
405
+ console.log(chalk.dim(' devkit generate-constitution'));
406
+ console.log(chalk.dim(' devkit sync'));
407
+ console.log('');
408
+ });
409
+ // ────────────────────────────── ESCALATE ──────────────────────────────
410
+ program
411
+ .command('escalate <description>')
412
+ .description('Create QA escalation with auto-level detection')
413
+ .option('-d, --dir <path>', 'Project directory', process.cwd())
414
+ .option('-l, --level <level>', 'Force escalation level (speckit, archkit, productkit, researchkit)')
415
+ .action((description, opts) => {
416
+ const cwd = opts.dir;
417
+ console.log(chalk.bold('\n🚨 QA Escalation\n'));
418
+ const forceLevel = opts.level;
419
+ const result = createEscalation(cwd, description, forceLevel);
420
+ if (!result.created) {
421
+ console.log(chalk.red(` ❌ ${result.error}\n`));
422
+ process.exitCode = 1;
423
+ return;
424
+ }
425
+ const levelEmoji = {
426
+ speckit: '🔧', archkit: '🏛️', productkit: '👤', researchkit: '🔬',
427
+ };
428
+ console.log(chalk.green(` ✅ Created: ${result.id}`));
429
+ console.log(` Path: .devkit/${result.path}`);
430
+ console.log(` Level: ${levelEmoji[result.level] ?? '?'} ${result.level}`);
431
+ console.log(` Why: ${result.reason}`);
432
+ console.log('');
433
+ // Suggest next action based on level
434
+ switch (result.level) {
435
+ case 'speckit':
436
+ console.log(chalk.dim(' Action: Fix the code to match the spec.'));
437
+ break;
438
+ case 'archkit':
439
+ console.log(chalk.dim(` Action: devkit investigate "${description}"`));
440
+ break;
441
+ case 'productkit':
442
+ console.log(chalk.dim(' Action: Review .devkit/product/ux_invariants.md'));
443
+ break;
444
+ case 'researchkit':
445
+ console.log(chalk.dim(' Action: Review .devkit/research/assumptions.md'));
446
+ break;
447
+ }
448
+ console.log('');
449
+ });
450
+ // ────────────────────────────── COVERAGE ──────────────────────────────
451
+ program
452
+ .command('coverage')
453
+ .description('Show invariant ↔ test coverage map')
454
+ .option('-d, --dir <path>', 'Project directory', process.cwd())
455
+ .action((opts) => {
456
+ const cwd = opts.dir;
457
+ console.log(chalk.bold('\n📊 Coverage Map\n'));
458
+ const result = analyzeCoverage(cwd);
459
+ console.log(formatCoverage(result));
460
+ });
461
+ // ────────────────────────────── VALIDATE --WATCH ──────────────────────────────
462
+ program
463
+ .command('watch')
464
+ .description('Watch .devkit/ and re-validate on changes')
465
+ .option('-d, --dir <path>', 'Project directory', process.cwd())
466
+ .action((opts) => {
467
+ const cwd = opts.dir;
468
+ watchValidate(cwd);
469
+ });
470
+ // ────────────────────────────── DASHBOARD ──────────────────────────────
471
+ program
472
+ .command('dashboard')
473
+ .description('Open web dashboard with status, coverage, and escalations')
474
+ .option('-d, --dir <path>', 'Project directory', process.cwd())
475
+ .option('-p, --port <port>', 'Port number', '3141')
476
+ .action((opts) => {
477
+ const cwd = opts.dir;
478
+ const port = parseInt(opts.port, 10);
479
+ startDashboard(cwd, port);
480
+ });
481
+ // ────────────────────────────── HELP (progressive disclosure) ──────────────────────────────
482
+ function getPhaseCommands(phase) {
483
+ const always = ['status', 'validate', 'gate', 'advance', 'coverage', 'dashboard'];
484
+ const phaseSpecific = {
485
+ research: [],
486
+ product: [],
487
+ arch: ['generate-constitution', 'impact "..."', 'rfc "..."', 'investigate "..."'],
488
+ spec: ['sync', 'impact "..."', 'rfc "..."', 'investigate "..."'],
489
+ qa: ['escalate "..."', 'rfc-list', 'inv-list'],
490
+ };
491
+ return [...always, ...phaseSpecific[phase]];
492
+ }
493
+ program.parse();
494
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,21 @@
1
+ export interface InvestigationResult {
2
+ created: boolean;
3
+ id: string;
4
+ path: string;
5
+ brokenAssumption: string | null;
6
+ adrSource: string | null;
7
+ invariantsAtRisk: string[];
8
+ error?: string;
9
+ }
10
+ export declare function createInvestigation(cwd: string, description: string): InvestigationResult;
11
+ export declare function listInvestigations(cwd: string): {
12
+ id: string;
13
+ title: string;
14
+ status: string;
15
+ date: string;
16
+ }[];
17
+ export declare function resolveInvestigation(cwd: string, invId: string, option: string, rationale: string): {
18
+ resolved: boolean;
19
+ error?: string;
20
+ };
21
+ //# sourceMappingURL=investigate.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"investigate.d.ts","sourceRoot":"","sources":["../src/investigate.ts"],"names":[],"mappings":"AAGA,MAAM,WAAW,mBAAmB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,gBAAgB,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,gBAAgB,EAAE,MAAM,EAAE,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AA6ED,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,mBAAmB,CAuGzF;AAED,wBAAgB,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,EAAE,CAmB7G;AAED,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG;IAAE,QAAQ,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAuBzI"}