@vibecheckai/cli 3.1.2 → 3.1.4

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 (47) hide show
  1. package/README.md +60 -33
  2. package/bin/registry.js +319 -34
  3. package/bin/runners/CLI_REFACTOR_SUMMARY.md +229 -0
  4. package/bin/runners/REPORT_AUDIT.md +64 -0
  5. package/bin/runners/lib/entitlements-v2.js +97 -28
  6. package/bin/runners/lib/entitlements.js +3 -6
  7. package/bin/runners/lib/init-wizard.js +1 -1
  8. package/bin/runners/lib/report-engine.js +459 -280
  9. package/bin/runners/lib/report-html.js +1154 -1423
  10. package/bin/runners/lib/report-output.js +187 -0
  11. package/bin/runners/lib/report-templates.js +848 -850
  12. package/bin/runners/lib/scan-output.js +545 -0
  13. package/bin/runners/lib/server-usage.js +0 -12
  14. package/bin/runners/lib/ship-output.js +641 -0
  15. package/bin/runners/lib/status-output.js +253 -0
  16. package/bin/runners/lib/terminal-ui.js +853 -0
  17. package/bin/runners/runCheckpoint.js +502 -0
  18. package/bin/runners/runContracts.js +105 -0
  19. package/bin/runners/runExport.js +93 -0
  20. package/bin/runners/runFix.js +31 -24
  21. package/bin/runners/runInit.js +377 -112
  22. package/bin/runners/runInstall.js +1 -5
  23. package/bin/runners/runLabs.js +3 -3
  24. package/bin/runners/runPolish.js +2452 -0
  25. package/bin/runners/runProve.js +2 -2
  26. package/bin/runners/runReport.js +251 -200
  27. package/bin/runners/runRuntime.js +110 -0
  28. package/bin/runners/runScan.js +477 -379
  29. package/bin/runners/runSecurity.js +92 -0
  30. package/bin/runners/runShip.js +137 -207
  31. package/bin/runners/runStatus.js +16 -68
  32. package/bin/runners/utils.js +5 -5
  33. package/bin/vibecheck.js +25 -11
  34. package/mcp-server/index.js +150 -18
  35. package/mcp-server/package.json +2 -2
  36. package/mcp-server/premium-tools.js +13 -13
  37. package/mcp-server/tier-auth.js +292 -27
  38. package/mcp-server/vibecheck-tools.js +9 -9
  39. package/package.json +1 -1
  40. package/bin/runners/runClaimVerifier.js +0 -483
  41. package/bin/runners/runContextCompiler.js +0 -385
  42. package/bin/runners/runGate.js +0 -17
  43. package/bin/runners/runInitGha.js +0 -164
  44. package/bin/runners/runInteractive.js +0 -388
  45. package/bin/runners/runMdc.js +0 -204
  46. package/bin/runners/runMissionGenerator.js +0 -282
  47. package/bin/runners/runTruthpack.js +0 -636
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # vibecheck CLI v3.0.9 🚀
1
+ # vibecheck CLI v3.1.1
2
2
 
3
3
  **Ship with confidence. One verdict: SHIP | WARN | BLOCK**
4
4
 
@@ -26,48 +26,75 @@ vibecheck ctx
26
26
 
27
27
  # Environment diagnostics
28
28
  vibecheck doctor
29
+
30
+ # Production polish check
31
+ vibecheck polish
29
32
  ```
30
33
 
31
34
  ## Commands
32
35
 
33
- ### Core Proof Loop
36
+ ### Setup Commands
37
+
38
+ | Command | Tier | Description |
39
+ |---------|------|-------------|
40
+ | `vibecheck init` | FREE | Project setup wizard (`--local` or `--connect`) |
41
+ | `vibecheck install` | FREE | Zero-friction onboarding |
42
+ | `vibecheck doctor` | FREE | Environment diagnostics |
43
+ | `vibecheck status` | FREE | Project health dashboard |
44
+ | `vibecheck watch` | FREE | Continuous mode - re-runs on changes |
34
45
 
35
- | Command | Description |
36
- |---------|-------------|
37
- | `vibecheck scan` | Static analysis - routes, secrets, contracts |
38
- | `vibecheck ship` | Verdict engine - SHIP / WARN / BLOCK |
39
- | `vibecheck reality` | Runtime proof with Playwright |
40
- | `vibecheck prove` | Full loop: ctx → reality → ship → fix |
41
- | `vibecheck fix` | AI-powered auto-fix (Pro) |
42
- | `vibecheck report` | Generate HTML/MD/SARIF reports |
46
+ ### Proof Loop
43
47
 
44
- ### Setup & Diagnostics
48
+ | Command | Tier | Description |
49
+ |---------|------|-------------|
50
+ | `vibecheck scan` | FREE | Static analysis - routes, secrets, contracts |
51
+ | `vibecheck ship` | FREE | Verdict engine - SHIP / WARN / BLOCK |
52
+ | `vibecheck runtime` | FREE* | Browser-based runtime verification |
53
+ | `vibecheck prove` | PRO | Full loop: ctx → reality → ship → fix |
54
+ | `vibecheck fix` | FREE* | AI-powered auto-fix (plan-only on FREE) |
55
+ | `vibecheck security` | PRO | AuthZ matrix & IDOR detection |
45
56
 
46
- | Command | Description |
47
- |---------|-------------|
48
- | `vibecheck init` | Project setup wizard |
49
- | `vibecheck install` | Zero-friction onboarding |
50
- | `vibecheck doctor` | Environment diagnostics |
51
- | `vibecheck status` | Project health dashboard |
52
- | `vibecheck watch` | Continuous mode |
57
+ ### Quality & Checkpoints
58
+
59
+ | Command | Tier | Description |
60
+ |---------|------|-------------|
61
+ | `vibecheck polish` | FREE | Production polish analyzer (0-100 score) |
62
+ | `vibecheck checkpoint` | FREE* | Compare baseline vs current, hallucination scoring |
53
63
 
54
64
  ### Truth System (AI Guardrails)
55
65
 
56
- | Command | Description |
57
- |---------|-------------|
58
- | `vibecheck ctx` | Generate truthpack for AI agents |
59
- | `vibecheck guard` | Validate AI claims against truth |
60
- | `vibecheck context` | Generate .cursorrules, .windsurf/rules |
61
- | `vibecheck mdc` | Generate MDC specifications |
66
+ | Command | Tier | Description |
67
+ |---------|------|-------------|
68
+ | `vibecheck ctx` | FREE | Generate truthpack for AI agents |
69
+ | `vibecheck guard` | FREE | Validate AI claims against truth |
70
+ | `vibecheck context` | FREE | Generate .cursorrules, .windsurf/rules |
71
+ | `vibecheck contracts` | FREE | CI gate for contract drift |
72
+
73
+ ### Output & Export
74
+
75
+ | Command | Tier | Description |
76
+ |---------|------|-------------|
77
+ | `vibecheck report` | FREE | Generate HTML/MD/SARIF reports |
78
+ | `vibecheck export` | FREE | Generate collaboration outputs (pr, badge, bundle) |
79
+
80
+ ### CI/CD & Automation
81
+
82
+ | Command | Tier | Description |
83
+ |---------|------|-------------|
84
+ | `vibecheck gate` | STARTER | CI/CD gate |
85
+ | `vibecheck pr` | STARTER | Generate PR comment |
86
+ | `vibecheck badge` | STARTER | Generate README badge |
87
+ | `vibecheck mcp` | STARTER | Start MCP server for AI IDEs |
88
+
89
+ *Commands marked with * have limited functionality on FREE tier
62
90
 
63
- ### CI/CD & Extras
91
+ ## Pricing
64
92
 
65
- | Command | Description |
66
- |---------|-------------|
67
- | `vibecheck gate` | CI/CD gate (Starter) |
68
- | `vibecheck pr` | Generate PR comment |
69
- | `vibecheck badge` | Generate README badge |
70
- | `vibecheck mcp` | Start MCP server for AI IDEs |
93
+ | Tier | Price | Features |
94
+ |------|-------|----------|
95
+ | FREE | $0 | scan, ship (static), doctor, polish, report (HTML/MD), ctx, guard |
96
+ | STARTER | $39/mo | + init --connect, gate, pr, badge, mcp, report (SARIF/CSV) |
97
+ | PRO | $99/mo | + prove, fix --apply, security, checkpoint (hallucination), runtime (full) |
71
98
 
72
99
  ## What It Catches
73
100
 
@@ -87,7 +114,7 @@ vibecheck doctor
87
114
  ╚═════════════════════════════════════════════════════════════════╝
88
115
  ```
89
116
 
90
- Exit codes: `0` = SHIP, `1` = WARN, `2` = BLOCK
117
+ Exit codes: `0` = SHIP, `1` = WARN, `2` = BLOCK, `3` = Feature not allowed
91
118
 
92
119
  ## MCP Server
93
120
 
@@ -122,4 +149,4 @@ MIT © Vibecheck AI
122
149
 
123
150
  ---
124
151
 
125
- **[Documentation](https://vibecheckai.dev/docs)** · **[Discord](https://discord.gg/vibecheck)** · **[GitHub](https://github.com/vibecheck-Official/vibecheck)**
152
+ **[Documentation](https://vibecheckai.dev/docs)** · **[Discord](https://discord.gg/vibecheck)** · **[GitHub](https://github.com/vibecheck-oss/vibecheck)**
package/bin/registry.js CHANGED
@@ -10,45 +10,330 @@
10
10
  "use strict";
11
11
 
12
12
  // ═══════════════════════════════════════════════════════════════════════════════
13
- // COMMAND REGISTRY - Tiers match entitlements-v2.js EXACTLY
13
+ // COMMAND REGISTRY - The 14-Command Vibecheck CLI
14
+ // Tiers match entitlements-v2.js EXACTLY
14
15
  // ═══════════════════════════════════════════════════════════════════════════════
15
16
  const COMMANDS = {
16
- // PROOF LOOP
17
- scan: { description: "Static analysis - routes, secrets, contracts", tier: "free", category: "proof", aliases: ["s", "check"], runner: () => require("./runners/runScan").runScan },
18
- ship: { description: "Verdict engine - SHIP / WARN / BLOCK", tier: "free", category: "proof", aliases: ["verdict"], caps: "static-only on FREE", runner: () => require("./runners/runShip").runShip },
19
- reality: { description: "Runtime proof - Playwright clicks every button", tier: "free", category: "proof", aliases: ["r", "test", "e2e"], caps: "preview mode on FREE (5 pages, no auth)", runner: () => { try { return require("./runners/runReality").runReality; } catch (e) { return async () => { console.error("Reality runner unavailable:", e.message); return 1; }; } } },
20
- prove: { description: "Full proof loop - ctx reality ship → fix", tier: "pro", category: "proof", aliases: ["p", "full", "all"], runner: () => require("./runners/runProve").runProve },
21
- fix: { description: "AI-powered auto-fix", tier: "free", category: "proof", caps: "--plan-only on FREE/PRO", aliases: ["f", "repair"], runner: () => require("./runners/runFix").runFix },
22
- report: { description: "Generate HTML/MD/SARIF reports", tier: "free", category: "proof", caps: "HTML/MD only on FREE", aliases: ["html", "artifact"], runner: () => require("./runners/runReport").runReport },
23
- replay: { description: "Record and replay user sessions", tier: "pro", category: "proof", aliases: ["record", "playback"], runner: () => async (args) => { try { const { runReplay } = require("./runners/runReplay"); return await runReplay(args); } catch (e) { if (args && (args.includes("--help") || args.includes("-h") || args.length === 0)) { console.log("\n vibecheck replay - Record and replay user sessions\n\n Subcommands:\n record <url> Record a user session\n play <capsule> Replay a recorded session\n list List available replay capsules\n show <id> Show details of a replay capsule\n delete <id> Delete a replay capsule\n export <id> Export a replay capsule\n import <file> Import a replay capsule\n\n Note: Requires 'chalk' and 'playwright' dependencies.\n Install: npm install chalk playwright\n"); return 0; } console.error("Replay runner error:", e.message); return 1; } } },
24
- permissions: { description: "AuthZ matrix & IDOR detection", tier: "complete", category: "proof", aliases: ["authz", "idor"], runner: () => require("./runners/runPermissions").runPermissions },
25
- graph: { description: "Reality proof graph visualization", tier: "complete", category: "proof", aliases: ["graphviz", "causal"], runner: () => require("./runners/runGraph").runGraph },
26
-
27
- // SETUP & DX
28
- install: { description: "Zero-friction onboarding", tier: "free", category: "setup", aliases: ["i", "bootstrap"], runner: () => require("./runners/runInstall").runInstall },
29
- init: { description: "Project setup wizard", tier: "free", category: "setup", aliases: ["setup", "configure"], runner: () => require("./runners/runInit").runInit },
30
- doctor: { description: "Environment diagnostics", tier: "free", category: "setup", aliases: ["health", "diag"], runner: () => require("./runners/runDoctor").runDoctor },
17
+ // ═══════════════════════════════════════════════════════════════════════════════
18
+ // SETUP COMMANDS (2)
19
+ // ═══════════════════════════════════════════════════════════════════════════════
20
+
21
+ // 1) init - One-time setup (config + contracts + scripts)
22
+ init: {
23
+ description: "One-time setup (config + contracts + scripts)",
24
+ tier: "free",
25
+ category: "setup",
26
+ aliases: ["setup", "configure"],
27
+ runner: () => require("./runners/runInit").runInit
28
+ },
29
+
30
+ // 2) doctor - Environment + dependency + config health check
31
+ doctor: {
32
+ description: "Environment + dependency + config health check",
33
+ tier: "free",
34
+ category: "setup",
35
+ aliases: ["health", "diag"],
36
+ runner: () => require("./runners/runDoctor").runDoctor
37
+ },
38
+
39
+ // ═══════════════════════════════════════════════════════════════════════════════
40
+ // AI TRUTH LANE (4) - Context engine, guardrails, MDC
41
+ // ═══════════════════════════════════════════════════════════════════════════════
42
+
43
+ // 3) ctx - Generate/update truthpack (core truth engine)
44
+ ctx: {
45
+ description: "Truthpack generation - core truth engine",
46
+ tier: "free",
47
+ category: "truth",
48
+ aliases: ["truthpack", "tp"],
49
+ subcommands: ["build", "diff", "sync", "search"],
50
+ runner: () => require("./runners/runCtx").runCtx
51
+ },
52
+
53
+ // 4) context - MDC + IDE rules + memory engine outputs
54
+ context: {
55
+ description: "Generate IDE rules (.cursorrules, MDC, Windsurf, Copilot)",
56
+ tier: "free",
57
+ category: "truth",
58
+ aliases: ["rules", "ai-rules", "mdc"],
59
+ runner: () => require("./runners/runContext").runContext
60
+ },
61
+
62
+ // 5) guard - AI guardrails (prompt firewall, hallucination checking)
63
+ guard: {
64
+ description: "AI guardrails - prompt firewall & hallucination checking",
65
+ tier: "free",
66
+ category: "truth",
67
+ aliases: ["ai-guard", "firewall", "validate"],
68
+ runner: () => require("./runners/runGuard").runGuard
69
+ },
70
+
71
+ // 6) contracts - CI gate for contract drift / invariants
72
+ contracts: {
73
+ description: "CI gate for contract drift / invariants",
74
+ tier: "free",
75
+ category: "truth",
76
+ aliases: ["drift"],
77
+ runner: () => require("./runners/runContracts").runContracts
78
+ },
79
+
80
+ // ═══════════════════════════════════════════════════════════════════════════════
81
+ // PROOF LOOP (5) - The main verification commands
82
+ // ═══════════════════════════════════════════════════════════════════════════════
83
+
84
+ // 7) ship - The only verdict command. Static + (optional) runtime merge
85
+ ship: {
86
+ description: "Verdict engine - SHIP / WARN / BLOCK",
87
+ tier: "free",
88
+ category: "proof",
89
+ aliases: ["verdict"],
90
+ caps: "static-only on FREE",
91
+ runner: () => require("./runners/runShip").runShip
92
+ },
93
+
94
+ // 8) runtime - Everything Playwright / browser-based
95
+ runtime: {
96
+ description: "Browser-based runtime verification",
97
+ tier: "free",
98
+ category: "proof",
99
+ aliases: [],
100
+ subcommands: ["crawl", "agent", "record", "play"],
101
+ caps: "preview mode on FREE (5 pages, no auth)",
102
+ runner: () => require("./runners/runRuntime").runRuntime
103
+ },
104
+
105
+ // 9) fix - Mission planning + patching
106
+ fix: {
107
+ description: "AI-powered auto-fix",
108
+ tier: "free",
109
+ category: "proof",
110
+ caps: "--plan-only on FREE",
111
+ aliases: ["f", "repair"],
112
+ runner: () => require("./runners/runFix").runFix
113
+ },
114
+
115
+ // 10) prove - The one command users actually run before launch
116
+ prove: {
117
+ description: "Full proof loop - ctx → runtime → ship → fix",
118
+ tier: "pro",
119
+ category: "proof",
120
+ aliases: ["p", "full", "all"],
121
+ runner: () => require("./runners/runProve").runProve
122
+ },
123
+
124
+ // 11) security - AuthZ + IDOR + sensitive security proofs
125
+ security: {
126
+ description: "AuthZ matrix & IDOR detection",
127
+ tier: "pro",
128
+ category: "proof",
129
+ aliases: [],
130
+ subcommands: ["model", "matrix", "idor", "prove"],
131
+ runner: () => require("./runners/runSecurity").runSecurity
132
+ },
133
+
134
+ // ═══════════════════════════════════════════════════════════════════════════════
135
+ // OUTPUT & AUTOMATION (3)
136
+ // ═══════════════════════════════════════════════════════════════════════════════
137
+
138
+ // 12) report - Render artifacts (HTML/MD/SARIF/CSV/etc)
139
+ report: {
140
+ description: "Generate HTML/MD/SARIF reports",
141
+ tier: "free",
142
+ category: "output",
143
+ caps: "HTML/MD only on FREE",
144
+ aliases: ["html", "artifact"],
145
+ runner: () => require("./runners/runReport").runReport
146
+ },
147
+
148
+ // 13) export - Lightweight collab outputs from latest results
149
+ export: {
150
+ description: "Generate collaboration outputs",
151
+ tier: "free",
152
+ category: "output",
153
+ aliases: [],
154
+ subcommands: ["pr", "badge", "bundle"],
155
+ runner: () => require("./runners/runExport").runExport
156
+ },
157
+
158
+ // 14) mcp - Start MCP server for AI IDEs
159
+ mcp: {
160
+ description: "Start MCP server for AI IDEs",
161
+ tier: "starter",
162
+ category: "automation",
163
+ aliases: [],
164
+ runner: () => require("./runners/runMcp").runMcp
165
+ },
166
+
167
+ // ═══════════════════════════════════════════════════════════════════════════════
168
+ // BACKWARD COMPATIBILITY ALIASES (old commands still work)
169
+ // ═══════════════════════════════════════════════════════════════════════════════
170
+
171
+ // install → init --quick
172
+ install: {
173
+ description: "Zero-friction onboarding (alias: init --quick)",
174
+ tier: "free",
175
+ category: "setup",
176
+ aliases: ["i", "bootstrap"],
177
+ runner: () => async (args) => {
178
+ const { runInit } = require("./runners/runInit");
179
+ return await runInit(["--quick", ...args]);
180
+ }
181
+ },
182
+
183
+ // scan - Enhanced route integrity scanner with terminal UI
184
+ scan: {
185
+ description: "Route integrity & code analysis scanner",
186
+ tier: "free",
187
+ category: "proof",
188
+ aliases: ["s", "check"],
189
+ runner: () => require("./runners/runScan").runScan
190
+ },
191
+
192
+ // gate → ship --ci
193
+ gate: {
194
+ description: "CI/CD gate (alias: ship --ci)",
195
+ tier: "starter",
196
+ category: "ci",
197
+ aliases: ["ci", "block"],
198
+ runner: () => async (args) => {
199
+ const { runShip } = require("./runners/runShip");
200
+ return await runShip(["--ci", ...args]);
201
+ }
202
+ },
203
+
204
+ // reality → runtime crawl
205
+ reality: {
206
+ description: "Runtime proof (alias: runtime crawl)",
207
+ tier: "free",
208
+ category: "proof",
209
+ aliases: ["r", "test", "e2e"],
210
+ caps: "preview mode on FREE (5 pages, no auth)",
211
+ runner: () => async (args) => {
212
+ const { runRuntime } = require("./runners/runRuntime");
213
+ return await runRuntime(["crawl", ...args]);
214
+ }
215
+ },
216
+
217
+ // ai-test → runtime agent
218
+ "ai-test": {
219
+ description: "AI autonomous test (alias: runtime agent)",
220
+ tier: "pro",
221
+ category: "automation",
222
+ aliases: ["ai", "agent"],
223
+ runner: () => async (args) => {
224
+ const { runRuntime } = require("./runners/runRuntime");
225
+ return await runRuntime(["agent", ...args]);
226
+ }
227
+ },
228
+
229
+ // replay → runtime record/play
230
+ replay: {
231
+ description: "Record/replay sessions (alias: runtime record/play)",
232
+ tier: "pro",
233
+ category: "proof",
234
+ aliases: ["record", "playback"],
235
+ runner: () => async (args) => {
236
+ // If first arg is record or play, delegate to runtime
237
+ if (args[0] === "record" || args[0] === "play") {
238
+ const { runRuntime } = require("./runners/runRuntime");
239
+ return await runRuntime(args);
240
+ }
241
+ // Otherwise delegate to original replay handler
242
+ try {
243
+ const { runReplay } = require("./runners/runReplay");
244
+ return await runReplay(args);
245
+ } catch (e) {
246
+ if (args && (args.includes("--help") || args.includes("-h") || args.length === 0)) {
247
+ console.log("\n vibecheck replay - Record and replay user sessions\n\n Subcommands:\n record <url> Record a user session\n play <capsule> Replay a recorded session\n list List available replay capsules\n show <id> Show details of a replay capsule\n delete <id> Delete a replay capsule\n export <id> Export a replay capsule\n import <file> Import a replay capsule\n\n Note: Requires 'chalk' and 'playwright' dependencies.\n Install: npm install chalk playwright\n");
248
+ return 0;
249
+ }
250
+ console.error("Replay runner error:", e.message);
251
+ return 1;
252
+ }
253
+ }
254
+ },
255
+
256
+ // pr → export pr
257
+ pr: {
258
+ description: "Generate PR comment (alias: export pr)",
259
+ tier: "starter",
260
+ category: "ci",
261
+ aliases: ["pull-request"],
262
+ runner: () => async (args) => {
263
+ const { runExport } = require("./runners/runExport");
264
+ return await runExport(["pr", ...args]);
265
+ }
266
+ },
267
+
268
+ // badge → export badge
269
+ badge: {
270
+ description: "Generate ship badge (alias: export badge)",
271
+ tier: "starter",
272
+ category: "ci",
273
+ aliases: ["b"],
274
+ runner: () => async (args) => {
275
+ const { runExport } = require("./runners/runExport");
276
+ return await runExport(["badge", ...args]);
277
+ }
278
+ },
279
+
280
+ // share → export bundle
281
+ share: {
282
+ description: "Generate share pack (alias: export bundle)",
283
+ tier: "pro",
284
+ category: "automation",
285
+ aliases: [],
286
+ runner: () => async (args) => {
287
+ const { runExport } = require("./runners/runExport");
288
+ return await runExport(["bundle", ...args]);
289
+ }
290
+ },
291
+
292
+ // permissions → security model
293
+ permissions: {
294
+ description: "AuthZ & IDOR (alias: security model)",
295
+ tier: "pro",
296
+ category: "proof",
297
+ aliases: ["authz", "idor"],
298
+ runner: () => async (args) => {
299
+ const { runSecurity } = require("./runners/runSecurity");
300
+ // If no subcommand, default to "model"
301
+ if (!args[0] || args[0].startsWith("--")) {
302
+ return await runSecurity(["model", ...args]);
303
+ }
304
+ return await runSecurity(args);
305
+ }
306
+ },
307
+
308
+ // ═══════════════════════════════════════════════════════════════════════════════
309
+ // QUALITY & CHECKPOINT COMMANDS
310
+ // ═══════════════════════════════════════════════════════════════════════════════
311
+
312
+ // 15) polish - Production polish analyzer
313
+ polish: {
314
+ description: "Production polish analyzer - finds missing essentials",
315
+ tier: "free",
316
+ category: "quality",
317
+ aliases: ["quality", "finalize", "ready"],
318
+ runner: () => require("./runners/runPolish").runPolish
319
+ },
320
+
321
+ // 16) checkpoint - Compare baseline vs current
322
+ checkpoint: {
323
+ description: "Compare baseline vs current, hallucination scoring",
324
+ tier: "free",
325
+ category: "analysis",
326
+ aliases: ["cp", "compare", "diff"],
327
+ caps: "basic on FREE, hallucination scoring on PRO",
328
+ runner: () => require("./runners/runCheckpoint").runCheckpoint
329
+ },
330
+
31
331
  status: { description: "Project health dashboard", tier: "free", category: "setup", aliases: ["st"], runner: () => require("./runners/runStatus").runStatus },
32
332
  watch: { description: "Continuous mode - re-runs on changes", tier: "free", category: "setup", aliases: ["w", "dev"], runner: () => require("./runners/runWatch").runWatch },
33
- launch: { description: "Pre-launch checklist wizard", tier: "starter", category: "setup", aliases: ["checklist", "preflight"], runner: () => require("./runners/runLaunch").runLaunch },
34
- preflight: { description: "Deployment validation checks", tier: "free", category: "setup", aliases: ["validate", "check"], runner: () => require("./runners/runPreflight").runPreflight },
35
-
36
- // AI TRUTH
37
- ctx: { description: "Generate truthpack for AI agents", tier: "free", category: "truth", aliases: ["truthpack", "tp"], subcommands: ["build", "diff", "guard", "sync", "search"], runner: () => require("./runners/runCtx").runCtx },
38
- guard: { description: "Validate AI claims against truth", tier: "free", category: "truth", aliases: ["validate", "trust"], runner: () => require("./runners/runGuard").runGuard },
333
+ launch: { description: "Pre-launch checklist wizard", tier: "starter", category: "setup", aliases: ["checklist"], runner: () => require("./runners/runLaunch").runLaunch },
334
+ preflight: { description: "Deployment validation checks", tier: "free", category: "setup", aliases: ["deploy-check"], runner: () => require("./runners/runPreflight").runPreflight },
39
335
  verify: { description: "Verify AI-generated code output", tier: "free", category: "truth", aliases: ["v", "check-output"], runner: () => require("./runners/runVerify").main },
40
- context: { description: "Generate .cursorrules, .windsurf/rules", tier: "free", category: "truth", aliases: ["rules", "ai-rules"], runner: () => require("./runners/runContext").runContext },
41
- mdc: { description: "Generate MDC specifications", tier: "free", category: "truth", aliases: [], runner: () => require("./runners/runMdc").runMdc },
42
-
43
- // CI & COLLABORATION (STARTER+)
44
- gate: { description: "CI/CD gate - blocks deploys on failures", tier: "starter", category: "ci", aliases: ["ci", "block"], runner: () => require("./runners/runGate").runGate },
45
- pr: { description: "Generate PR comment with findings", tier: "starter", category: "ci", aliases: ["pull-request"], runner: () => require("./runners/runPR").runPR },
46
- badge: { description: "Generate ship badge for README", tier: "starter", category: "ci", aliases: ["b"], runner: () => require("./runners/runBadge").runBadge },
47
-
48
- // AUTOMATION (STARTER+/PRO)
49
- mcp: { description: "Start MCP server for AI IDEs", tier: "starter", category: "automation", aliases: [], runner: () => require("./runners/runMcp").runMcp },
50
- share: { description: "Generate share pack for PR/docs", tier: "pro", category: "automation", aliases: [], runner: () => require("./runners/runShare").runShare },
51
- "ai-test": { description: "AI autonomous test generation", tier: "pro", category: "automation", aliases: ["ai", "agent"], runner: () => require("./runners/runAIAgent").runAIAgent },
336
+ graph: { description: "Reality proof graph visualization", tier: "pro", category: "proof", aliases: ["graphviz", "causal"], runner: () => require("./runners/runGraph").runGraph },
52
337
 
53
338
  // ACCOUNT (always free)
54
339
  login: { description: "Authenticate with API key", tier: "free", category: "account", aliases: ["auth", "signin"], runner: () => require("./runners/runAuth").runLogin, skipAuth: true },