@vibecheckai/cli 3.5.0 → 3.5.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.
Files changed (224) hide show
  1. package/bin/registry.js +214 -237
  2. package/bin/runners/cli-utils.js +33 -2
  3. package/bin/runners/context/analyzer.js +52 -1
  4. package/bin/runners/context/generators/cursor.js +2 -49
  5. package/bin/runners/context/git-context.js +3 -1
  6. package/bin/runners/context/team-conventions.js +33 -7
  7. package/bin/runners/lib/analysis-core.js +25 -5
  8. package/bin/runners/lib/analyzers.js +431 -481
  9. package/bin/runners/lib/default-config.js +127 -0
  10. package/bin/runners/lib/doctor/modules/security.js +3 -1
  11. package/bin/runners/lib/engine/ast-cache.js +210 -0
  12. package/bin/runners/lib/engine/auth-extractor.js +211 -0
  13. package/bin/runners/lib/engine/billing-extractor.js +112 -0
  14. package/bin/runners/lib/engine/enforcement-extractor.js +100 -0
  15. package/bin/runners/lib/engine/env-extractor.js +207 -0
  16. package/bin/runners/lib/engine/express-extractor.js +208 -0
  17. package/bin/runners/lib/engine/extractors.js +849 -0
  18. package/bin/runners/lib/engine/index.js +207 -0
  19. package/bin/runners/lib/engine/repo-index.js +514 -0
  20. package/bin/runners/lib/engine/types.js +124 -0
  21. package/bin/runners/lib/engines/accessibility-engine.js +18 -218
  22. package/bin/runners/lib/engines/api-consistency-engine.js +30 -335
  23. package/bin/runners/lib/engines/cross-file-analysis-engine.js +27 -292
  24. package/bin/runners/lib/engines/empty-catch-engine.js +17 -127
  25. package/bin/runners/lib/engines/mock-data-engine.js +10 -53
  26. package/bin/runners/lib/engines/performance-issues-engine.js +36 -176
  27. package/bin/runners/lib/engines/security-vulnerabilities-engine.js +54 -382
  28. package/bin/runners/lib/engines/type-aware-engine.js +39 -263
  29. package/bin/runners/lib/engines/vibecheck-engines/index.js +13 -122
  30. package/bin/runners/lib/engines/vibecheck-engines/lib/ast-cache.js +164 -0
  31. package/bin/runners/lib/engines/vibecheck-engines/lib/code-quality-engine.js +291 -0
  32. package/bin/runners/lib/engines/vibecheck-engines/lib/console-logs-engine.js +83 -0
  33. package/bin/runners/lib/engines/vibecheck-engines/lib/dead-code-engine.js +198 -0
  34. package/bin/runners/lib/engines/vibecheck-engines/lib/deprecated-api-engine.js +275 -0
  35. package/bin/runners/lib/engines/vibecheck-engines/lib/empty-catch-engine.js +167 -0
  36. package/bin/runners/lib/engines/vibecheck-engines/lib/file-filter.js +217 -0
  37. package/bin/runners/lib/engines/vibecheck-engines/lib/hardcoded-secrets-engine.js +73 -373
  38. package/bin/runners/lib/engines/vibecheck-engines/lib/mock-data-engine.js +140 -0
  39. package/bin/runners/lib/engines/vibecheck-engines/lib/parallel-processor.js +164 -0
  40. package/bin/runners/lib/engines/vibecheck-engines/lib/performance-issues-engine.js +234 -0
  41. package/bin/runners/lib/engines/vibecheck-engines/lib/type-aware-engine.js +217 -0
  42. package/bin/runners/lib/engines/vibecheck-engines/lib/unsafe-regex-engine.js +78 -0
  43. package/bin/runners/lib/entitlements-v2.js +73 -97
  44. package/bin/runners/lib/error-handler.js +44 -3
  45. package/bin/runners/lib/error-messages.js +289 -0
  46. package/bin/runners/lib/evidence-pack.js +7 -1
  47. package/bin/runners/lib/finding-id.js +69 -0
  48. package/bin/runners/lib/finding-sorter.js +89 -0
  49. package/bin/runners/lib/html-proof-report.js +700 -350
  50. package/bin/runners/lib/missions/plan.js +6 -46
  51. package/bin/runners/lib/missions/templates.js +0 -232
  52. package/bin/runners/lib/next-action.js +560 -0
  53. package/bin/runners/lib/prerequisites.js +149 -0
  54. package/bin/runners/lib/route-detection.js +137 -68
  55. package/bin/runners/lib/scan-output.js +91 -76
  56. package/bin/runners/lib/scan-runner.js +135 -0
  57. package/bin/runners/lib/schemas/ajv-validator.js +464 -0
  58. package/bin/runners/lib/schemas/error-envelope.schema.json +105 -0
  59. package/bin/runners/lib/schemas/finding-v3.schema.json +151 -0
  60. package/bin/runners/lib/schemas/report-artifact.schema.json +120 -0
  61. package/bin/runners/lib/schemas/run-request.schema.json +108 -0
  62. package/bin/runners/lib/schemas/validator.js +27 -0
  63. package/bin/runners/lib/schemas/verdict.schema.json +140 -0
  64. package/bin/runners/lib/ship-output-enterprise.js +23 -23
  65. package/bin/runners/lib/ship-output.js +75 -31
  66. package/bin/runners/lib/terminal-ui.js +6 -113
  67. package/bin/runners/lib/truth.js +351 -10
  68. package/bin/runners/lib/unified-cli-output.js +430 -603
  69. package/bin/runners/lib/unified-output.js +13 -9
  70. package/bin/runners/runAIAgent.js +10 -5
  71. package/bin/runners/runAgent.js +0 -3
  72. package/bin/runners/runAllowlist.js +389 -0
  73. package/bin/runners/runApprove.js +0 -33
  74. package/bin/runners/runAuth.js +73 -45
  75. package/bin/runners/runCheckpoint.js +51 -11
  76. package/bin/runners/runClassify.js +85 -21
  77. package/bin/runners/runContext.js +0 -3
  78. package/bin/runners/runDoctor.js +41 -28
  79. package/bin/runners/runEvidencePack.js +362 -0
  80. package/bin/runners/runFirewall.js +0 -3
  81. package/bin/runners/runFirewallHook.js +0 -3
  82. package/bin/runners/runFix.js +66 -76
  83. package/bin/runners/runGuard.js +18 -411
  84. package/bin/runners/runInit.js +113 -30
  85. package/bin/runners/runLabs.js +424 -0
  86. package/bin/runners/runMcp.js +19 -25
  87. package/bin/runners/runPolish.js +64 -240
  88. package/bin/runners/runPromptFirewall.js +12 -5
  89. package/bin/runners/runProve.js +57 -22
  90. package/bin/runners/runQuickstart.js +531 -0
  91. package/bin/runners/runReality.js +59 -68
  92. package/bin/runners/runReport.js +38 -33
  93. package/bin/runners/runRuntime.js +8 -5
  94. package/bin/runners/runScan.js +1413 -190
  95. package/bin/runners/runShip.js +113 -719
  96. package/bin/runners/runTruth.js +0 -3
  97. package/bin/runners/runValidate.js +13 -9
  98. package/bin/runners/runWatch.js +23 -14
  99. package/bin/scan.js +6 -1
  100. package/bin/vibecheck.js +204 -185
  101. package/mcp-server/deprecation-middleware.js +282 -0
  102. package/mcp-server/handlers/index.ts +15 -0
  103. package/mcp-server/handlers/tool-handler.ts +554 -0
  104. package/mcp-server/index-v1.js +698 -0
  105. package/mcp-server/index.js +210 -238
  106. package/mcp-server/lib/cache-wrapper.cjs +383 -0
  107. package/mcp-server/lib/error-envelope.js +138 -0
  108. package/mcp-server/lib/executor.ts +499 -0
  109. package/mcp-server/lib/index.ts +19 -0
  110. package/mcp-server/lib/rate-limiter.js +166 -0
  111. package/mcp-server/lib/sandbox.test.ts +519 -0
  112. package/mcp-server/lib/sandbox.ts +395 -0
  113. package/mcp-server/lib/types.ts +267 -0
  114. package/mcp-server/package.json +12 -3
  115. package/mcp-server/registry/tool-registry.js +794 -0
  116. package/mcp-server/registry/tools.json +605 -0
  117. package/mcp-server/registry.test.ts +334 -0
  118. package/mcp-server/tests/tier-gating.test.js +297 -0
  119. package/mcp-server/tier-auth.js +378 -45
  120. package/mcp-server/tools-v3.js +353 -442
  121. package/mcp-server/tsconfig.json +37 -0
  122. package/mcp-server/vibecheck-2.0-tools.js +14 -1
  123. package/package.json +1 -1
  124. package/bin/runners/lib/agent-firewall/learning/learning-engine.js +0 -849
  125. package/bin/runners/lib/audit-logger.js +0 -532
  126. package/bin/runners/lib/authority/authorities/architecture.js +0 -364
  127. package/bin/runners/lib/authority/authorities/compliance.js +0 -341
  128. package/bin/runners/lib/authority/authorities/human.js +0 -343
  129. package/bin/runners/lib/authority/authorities/quality.js +0 -420
  130. package/bin/runners/lib/authority/authorities/security.js +0 -228
  131. package/bin/runners/lib/authority/index.js +0 -293
  132. package/bin/runners/lib/bundle/bundle-intelligence.js +0 -846
  133. package/bin/runners/lib/cli-charts.js +0 -368
  134. package/bin/runners/lib/cli-config-display.js +0 -405
  135. package/bin/runners/lib/cli-demo.js +0 -275
  136. package/bin/runners/lib/cli-errors.js +0 -438
  137. package/bin/runners/lib/cli-help-formatter.js +0 -439
  138. package/bin/runners/lib/cli-interactive-menu.js +0 -509
  139. package/bin/runners/lib/cli-prompts.js +0 -441
  140. package/bin/runners/lib/cli-scan-cards.js +0 -362
  141. package/bin/runners/lib/compliance-reporter.js +0 -710
  142. package/bin/runners/lib/conductor/index.js +0 -671
  143. package/bin/runners/lib/easy/README.md +0 -123
  144. package/bin/runners/lib/easy/index.js +0 -140
  145. package/bin/runners/lib/easy/interactive-wizard.js +0 -788
  146. package/bin/runners/lib/easy/one-click-firewall.js +0 -564
  147. package/bin/runners/lib/easy/zero-config-reality.js +0 -714
  148. package/bin/runners/lib/engines/async-patterns-engine.js +0 -444
  149. package/bin/runners/lib/engines/bundle-size-engine.js +0 -433
  150. package/bin/runners/lib/engines/confidence-scoring.js +0 -276
  151. package/bin/runners/lib/engines/context-detection.js +0 -264
  152. package/bin/runners/lib/engines/database-patterns-engine.js +0 -429
  153. package/bin/runners/lib/engines/duplicate-code-engine.js +0 -354
  154. package/bin/runners/lib/engines/env-variables-engine.js +0 -458
  155. package/bin/runners/lib/engines/error-handling-engine.js +0 -437
  156. package/bin/runners/lib/engines/false-positive-prevention.js +0 -630
  157. package/bin/runners/lib/engines/framework-adapters/index.js +0 -607
  158. package/bin/runners/lib/engines/framework-detection.js +0 -508
  159. package/bin/runners/lib/engines/import-order-engine.js +0 -429
  160. package/bin/runners/lib/engines/naming-conventions-engine.js +0 -544
  161. package/bin/runners/lib/engines/noise-reduction-engine.js +0 -452
  162. package/bin/runners/lib/engines/orchestrator.js +0 -334
  163. package/bin/runners/lib/engines/react-patterns-engine.js +0 -457
  164. package/bin/runners/lib/engines/vibecheck-engines/lib/ai-hallucination-engine.js +0 -806
  165. package/bin/runners/lib/engines/vibecheck-engines/lib/smart-fix-engine.js +0 -577
  166. package/bin/runners/lib/engines/vibecheck-engines/lib/vibe-score-engine.js +0 -543
  167. package/bin/runners/lib/engines/vibecheck-engines.js +0 -514
  168. package/bin/runners/lib/enhanced-features/index.js +0 -305
  169. package/bin/runners/lib/enhanced-output.js +0 -631
  170. package/bin/runners/lib/enterprise.js +0 -300
  171. package/bin/runners/lib/firewall/command-validator.js +0 -351
  172. package/bin/runners/lib/firewall/config.js +0 -341
  173. package/bin/runners/lib/firewall/content-validator.js +0 -519
  174. package/bin/runners/lib/firewall/index.js +0 -101
  175. package/bin/runners/lib/firewall/path-validator.js +0 -256
  176. package/bin/runners/lib/intelligence/cross-repo-intelligence.js +0 -817
  177. package/bin/runners/lib/mcp-utils.js +0 -425
  178. package/bin/runners/lib/output/index.js +0 -1022
  179. package/bin/runners/lib/policy-engine.js +0 -652
  180. package/bin/runners/lib/polish/autofix/accessibility-fixes.js +0 -333
  181. package/bin/runners/lib/polish/autofix/async-handlers.js +0 -273
  182. package/bin/runners/lib/polish/autofix/dead-code.js +0 -280
  183. package/bin/runners/lib/polish/autofix/imports-optimizer.js +0 -344
  184. package/bin/runners/lib/polish/autofix/index.js +0 -200
  185. package/bin/runners/lib/polish/autofix/remove-consoles.js +0 -209
  186. package/bin/runners/lib/polish/autofix/strengthen-types.js +0 -245
  187. package/bin/runners/lib/polish/backend-checks.js +0 -148
  188. package/bin/runners/lib/polish/documentation-checks.js +0 -111
  189. package/bin/runners/lib/polish/frontend-checks.js +0 -168
  190. package/bin/runners/lib/polish/index.js +0 -71
  191. package/bin/runners/lib/polish/infrastructure-checks.js +0 -131
  192. package/bin/runners/lib/polish/library-detection.js +0 -175
  193. package/bin/runners/lib/polish/performance-checks.js +0 -100
  194. package/bin/runners/lib/polish/security-checks.js +0 -148
  195. package/bin/runners/lib/polish/utils.js +0 -203
  196. package/bin/runners/lib/prompt-builder.js +0 -540
  197. package/bin/runners/lib/proof-certificate.js +0 -634
  198. package/bin/runners/lib/reality/accessibility-audit.js +0 -946
  199. package/bin/runners/lib/reality/api-contract-validator.js +0 -1012
  200. package/bin/runners/lib/reality/chaos-engineering.js +0 -1084
  201. package/bin/runners/lib/reality/performance-tracker.js +0 -1077
  202. package/bin/runners/lib/reality/scenario-generator.js +0 -1404
  203. package/bin/runners/lib/reality/visual-regression.js +0 -852
  204. package/bin/runners/lib/reality-profiler.js +0 -717
  205. package/bin/runners/lib/replay/flight-recorder-viewer.js +0 -1160
  206. package/bin/runners/lib/review/ai-code-review.js +0 -832
  207. package/bin/runners/lib/rules/custom-rule-engine.js +0 -985
  208. package/bin/runners/lib/sbom-generator.js +0 -641
  209. package/bin/runners/lib/scan-output-enhanced.js +0 -512
  210. package/bin/runners/lib/security/owasp-scanner.js +0 -939
  211. package/bin/runners/lib/validators/contract-validator.js +0 -283
  212. package/bin/runners/lib/validators/dead-export-detector.js +0 -279
  213. package/bin/runners/lib/validators/dep-audit.js +0 -245
  214. package/bin/runners/lib/validators/env-validator.js +0 -319
  215. package/bin/runners/lib/validators/index.js +0 -120
  216. package/bin/runners/lib/validators/license-checker.js +0 -252
  217. package/bin/runners/lib/validators/route-validator.js +0 -290
  218. package/bin/runners/runAuthority.js +0 -528
  219. package/bin/runners/runConductor.js +0 -772
  220. package/bin/runners/runContainer.js +0 -366
  221. package/bin/runners/runEasy.js +0 -410
  222. package/bin/runners/runIaC.js +0 -372
  223. package/bin/runners/runVibe.js +0 -791
  224. package/mcp-server/tools.js +0 -495
package/bin/registry.js CHANGED
@@ -7,45 +7,41 @@
7
7
  * Simple 2-tier model:
8
8
  * - FREE ($0): Inspect & Observe
9
9
  * - PRO ($69/mo): Fix, Prove & Enforce
10
- *
11
- * SCAN = Quick lint (5 core engines, fast, FREE)
12
- * SHIP = Comprehensive verdict (all engines + proof cert, PRO)
13
10
  */
14
11
 
15
12
  "use strict";
16
13
 
17
14
  // ─────────────────────────────────────────────────────────────
18
- // CLI COMMANDS (22 total - 2-tier: FREE / PRO)
15
+ // CLI COMMANDS (2-tier: FREE / PRO)
19
16
  // ─────────────────────────────────────────────────────────────
20
17
  const ALLOWED_COMMANDS = new Set([
21
- // FREE (12) - Inspect & Observe
22
- "scan", // quick lint - 5 core engines
23
- "context", // generate truthpack + IDE rules
24
- "watch", // real-time file watching
25
- "doctor", // environment diagnostics
26
- "report", // generate HTML/SARIF reports
27
- "authority", // authority system main command
28
- "authority.list", // list available authorities
29
- "guard", // agent firewall (observe mode FREE, enforce mode PRO)
30
- "login", // authenticate
31
- "logout", // clear auth
32
- "whoami", // show current user
33
- "init", // one-time setup (legacy, redirects to context)
34
-
35
- // PRO (12) - Fix, Prove & Enforce
36
- "ship", // comprehensive - all engines, verdict, proof cert
37
- "fix", // AI-powered fixes with LLM
38
- "polish", // production hardening
39
- "reality", // playwright browser verification
40
- "prove", // full proof loop with evidence pack
41
- "gate", // CI/CD enforcement
42
- "ai-test", // AI agent for autonomous app testing
43
- "authority.approve", // get authority verdict
44
- "conductor.status", // multi-agent coordination status
45
- "conductor.register", // register AI agent
46
- "conductor.lock", // acquire file lock
47
- "conductor.unlock", // release file lock
48
- "conductor.propose", // submit change proposal
18
+ // FREE (14) - Inspect & Observe
19
+ "init", // one-time setup
20
+ "quickstart", // 2-minute onboarding (NEW)
21
+ "doctor", // health check
22
+ "watch", // continuous mode
23
+ "scan", // static analysis
24
+ "report", // generate reports
25
+ "context", // generate IDE rules
26
+ "classify", // Authority: inventory (read-only)
27
+ "login", // authenticate
28
+ "logout", // remove credentials
29
+ "whoami", // show current user
30
+ "allowlist", // manage finding allowlist
31
+ "evidence-pack", // bundle proof artifacts
32
+ "labs", // experimental features
33
+
34
+ // PRO (9) - Fix, Prove & Enforce
35
+ "ship", // verdict engine (GO/NO-GO)
36
+ "fix", // AI-powered fixes
37
+ "prove", // runtime proof
38
+ "reality", // browser verification
39
+ "gate", // CI/CD enforcement
40
+ "guard", // AI guardrails
41
+ "mcp", // MCP server
42
+ "checkpoint", // baseline comparison
43
+ "approve", // Authority: verdicts
44
+ "polish", // production polish
49
45
  ]);
50
46
 
51
47
  function assertAllowedOnly(obj) {
@@ -63,39 +59,54 @@ const COMMANDS = {
63
59
  // FREE TIER - Inspect & Observe
64
60
  // ══════════════════════════════════════════════════════════════
65
61
 
66
- scan: {
67
- description: "Quick lint - 5 core engines, fast feedback",
68
- longDescription: "Fast static analysis using 5 core engines: secrets, mock data, console logs, type issues, and security vulnerabilities. Use for rapid feedback during development.",
62
+ init: {
63
+ description: "One-time setup (config + contracts + scripts)",
64
+ longDescription: "Initialize vibecheck in your project. Creates configuration files, sets up IDE rules, and optionally connects to the dashboard.",
69
65
  tier: "free",
70
- category: "analysis",
71
- aliases: ["s", "check", "lint"],
72
- runner: () => require("./runners/runScan").runScan,
66
+ category: "setup",
67
+ aliases: ["setup", "configure"],
68
+ runner: () => require("./runners/runInit").runInit,
73
69
  examples: [
74
- { command: "vibecheck scan", description: "Quick scan with 5 core engines" },
75
- { command: "vibecheck scan --json", description: "JSON output for CI" },
76
- { command: "vibecheck scan --allowlist list", description: "View suppressed findings" },
70
+ { command: "vibecheck init", description: "Interactive setup wizard" },
71
+ { command: "vibecheck init --local", description: "Quick local-only setup" },
72
+ { command: "vibecheck init --quick", description: "Non-interactive defaults" },
77
73
  ],
78
- related: ["ship", "fix", "report"],
74
+ related: ["quickstart", "doctor", "scan"],
79
75
  },
80
76
 
81
- context: {
82
- description: "Generate truthpack + IDE rules (.cursorrules, MDC, Copilot)",
83
- longDescription: "Generate project-aware AI coding rules and truthpack for your IDE. Creates .cursorrules, MDC files, and other IDE configurations.",
77
+ quickstart: {
78
+ description: "2-minute onboarding: doctor ctx scan → ship → report",
79
+ longDescription: "Get your first proof in under 2 minutes. Runs the complete verification pipeline with sensible defaults.",
84
80
  tier: "free",
85
81
  category: "setup",
86
- aliases: ["rules", "ai-rules", "mdc", "ctx", "init"],
87
- runner: () => require("./runners/runContext").runContext,
82
+ aliases: ["qs", "start", "onboard"],
83
+ runner: () => require("./runners/runQuickstart").runQuickstart,
88
84
  examples: [
89
- { command: "vibecheck context", description: "Generate all IDE rules + truthpack" },
90
- { command: "vibecheck context --format cursor", description: ".cursorrules only" },
91
- { command: "vibecheck context --format mdc", description: "MDC files only" },
85
+ { command: "vibecheck quickstart", description: "Run full 2-minute onboarding" },
86
+ { command: "vibecheck quickstart --fast", description: "Skip optional checks" },
87
+ { command: "vibecheck quickstart --no-open", description: "Don't open report in browser" },
92
88
  ],
93
- related: ["scan", "guard"],
89
+ related: ["init", "scan", "ship"],
90
+ },
91
+
92
+ doctor: {
93
+ description: "Environment + dependency + config health check",
94
+ longDescription: "Comprehensive diagnostics for your development environment.",
95
+ tier: "free",
96
+ category: "setup",
97
+ aliases: ["health", "diag"],
98
+ runner: () => require("./runners/runDoctor").runDoctor,
99
+ examples: [
100
+ { command: "vibecheck doctor", description: "Run all health checks" },
101
+ { command: "vibecheck doctor --fix", description: "Auto-fix detected issues" },
102
+ { command: "vibecheck doctor --json", description: "Output as JSON" },
103
+ ],
104
+ related: ["init", "scan"],
94
105
  },
95
106
 
96
107
  watch: {
97
- description: "Real-time file watching - re-runs scan on changes",
98
- longDescription: "File watcher that automatically re-runs quick scan when your code changes.",
108
+ description: "Continuous mode - re-runs on changes",
109
+ longDescription: "File watcher that automatically re-runs scans when your code changes.",
99
110
  tier: "free",
100
111
  category: "setup",
101
112
  aliases: ["w", "dev"],
@@ -107,24 +118,24 @@ const COMMANDS = {
107
118
  related: ["scan"],
108
119
  },
109
120
 
110
- doctor: {
111
- description: "Environment diagnostics - config and dependency health check",
112
- longDescription: "Comprehensive diagnostics for your development environment, configuration, and dependencies.",
121
+ scan: {
122
+ description: "Static code analysis; use --allowlist for false positives",
123
+ longDescription: "Scan your codebase for route integrity issues, security vulnerabilities, and code quality problems.",
113
124
  tier: "free",
114
- category: "setup",
115
- aliases: ["health", "diag"],
116
- runner: () => require("./runners/runDoctor").runDoctor,
125
+ category: "proof",
126
+ aliases: ["s", "check"],
127
+ runner: () => require("./runners/runScan").runScan,
117
128
  examples: [
118
- { command: "vibecheck doctor", description: "Run all health checks" },
119
- { command: "vibecheck doctor --fix", description: "Auto-fix detected issues" },
120
- { command: "vibecheck doctor --json", description: "Output as JSON" },
129
+ { command: "vibecheck scan", description: "Quick scan" },
130
+ { command: "vibecheck scan --profile full", description: "Full scan" },
131
+ { command: "vibecheck scan --allowlist list", description: "View suppressed findings" },
121
132
  ],
122
- related: ["context", "scan"],
133
+ related: ["ship", "fix", "report"],
123
134
  },
124
135
 
125
136
  report: {
126
- description: "Generate HTML/SARIF reports from scan results",
127
- longDescription: "Create shareable reports from scan results in HTML, Markdown, or SARIF format.",
137
+ description: "Generate HTML/MD/SARIF reports",
138
+ longDescription: "Create shareable reports from scan results.",
128
139
  tier: "free",
129
140
  category: "output",
130
141
  aliases: ["html", "artifact"],
@@ -134,42 +145,42 @@ const COMMANDS = {
134
145
  { command: "vibecheck report --format md", description: "Markdown report" },
135
146
  { command: "vibecheck report --format sarif", description: "SARIF for GitHub" },
136
147
  ],
137
- related: ["scan", "ship"],
148
+ related: ["scan"],
138
149
  },
139
150
 
140
- "authority": {
141
- description: "Authority System - automated and human approvals",
142
- longDescription: "Request approval from built-in authorities (security, architecture, compliance, quality) or human reviewers. Use 'authority list' to see available authorities and 'authority approve' to request approval.",
151
+ context: {
152
+ description: "Generate IDE rules (.cursorrules, MDC, Copilot)",
153
+ longDescription: "Generate project-aware AI coding rules for your IDE.",
143
154
  tier: "free",
144
- category: "authority",
145
- aliases: ["auth"],
146
- runner: () => require("./runners/runAuthority").runAuthority,
155
+ category: "truth",
156
+ aliases: ["rules", "ai-rules", "mdc", "ctx"],
157
+ runner: () => require("./runners/runContext").runContext,
147
158
  examples: [
148
- { command: "vibecheck authority list", description: "List all authorities" },
149
- { command: "vibecheck authority approve --authority security", description: "Security review" },
150
- { command: "vibecheck authority approve -a quality -a security", description: "Multi-authority" },
159
+ { command: "vibecheck context", description: "Generate all IDE rules" },
160
+ { command: "vibecheck context --format cursor", description: ".cursorrules only" },
151
161
  ],
152
- related: ["authority.list", "authority.approve", "ship"],
162
+ related: ["scan", "guard"],
153
163
  },
154
164
 
155
- "authority.list": {
156
- description: "List available authorities",
157
- longDescription: "List all available authorities for code analysis and approval workflows.",
165
+ classify: {
166
+ description: "Inventory authority - duplication & legacy code maps",
167
+ longDescription: "Read-only inventory of your codebase including duplication maps and legacy code detection.",
158
168
  tier: "free",
159
169
  category: "authority",
160
- aliases: ["authorities", "auth-list"],
161
- runner: () => require("./runners/runAuthority").runAuthority,
170
+ aliases: ["inventory", "audit"],
171
+ runner: () => require("./runners/runClassify").runClassify,
162
172
  examples: [
163
- { command: "vibecheck authority list", description: "List all authorities" },
173
+ { command: "vibecheck classify", description: "Quick inventory" },
174
+ { command: "vibecheck classify --json", description: "JSON output" },
164
175
  ],
165
- related: ["authority", "authority.approve"],
176
+ related: ["approve", "scan"],
166
177
  },
167
178
 
168
179
  login: {
169
180
  description: "Authenticate with API key",
170
- longDescription: "Connect your CLI to the vibecheck API with your API key.",
181
+ longDescription: "Connect your CLI to the vibecheck API.",
171
182
  tier: "free",
172
- category: "auth",
183
+ category: "account",
173
184
  aliases: ["auth", "signin"],
174
185
  runner: () => require("./runners/runAuth").runLogin,
175
186
  skipAuth: true,
@@ -181,10 +192,9 @@ const COMMANDS = {
181
192
  },
182
193
 
183
194
  logout: {
184
- description: "Clear stored credentials",
185
- longDescription: "Remove stored authentication credentials from your system.",
195
+ description: "Remove stored credentials",
186
196
  tier: "free",
187
- category: "auth",
197
+ category: "account",
188
198
  aliases: ["signout"],
189
199
  runner: () => require("./runners/runAuth").runLogout,
190
200
  skipAuth: true,
@@ -196,9 +206,8 @@ const COMMANDS = {
196
206
 
197
207
  whoami: {
198
208
  description: "Show current user and plan",
199
- longDescription: "Display information about the currently authenticated user and their subscription plan.",
200
209
  tier: "free",
201
- category: "auth",
210
+ category: "account",
202
211
  aliases: ["me", "user"],
203
212
  runner: () => require("./runners/runAuth").runWhoami,
204
213
  skipAuth: true,
@@ -208,17 +217,53 @@ const COMMANDS = {
208
217
  related: ["login", "logout"],
209
218
  },
210
219
 
211
- init: {
212
- description: "One-time setup (alias for context)",
213
- longDescription: "Initialize vibecheck in your project. Alias for 'vibecheck context'.",
220
+ allowlist: {
221
+ description: "Manage finding allowlist for false positives",
222
+ longDescription: "Add, remove, or view allowlist entries to suppress known false positives. Supports patterns, file scopes, and expiration.",
214
223
  tier: "free",
215
224
  category: "setup",
216
- aliases: ["setup", "configure"],
217
- runner: () => require("./runners/runContext").runContext,
225
+ aliases: ["al", "suppress"],
226
+ runner: () => require("./runners/runAllowlist").runAllowlist,
227
+ examples: [
228
+ { command: "vibecheck allowlist", description: "List allowlist entries" },
229
+ { command: "vibecheck allowlist add --id MOCK_DATA_xyz --reason 'Test fixture'", description: "Add by ID" },
230
+ { command: "vibecheck allowlist add --pattern 'lorem' --reason 'Placeholder'", description: "Add pattern" },
231
+ { command: "vibecheck allowlist remove --id AL_abc123", description: "Remove entry" },
232
+ ],
233
+ related: ["scan", "ship"],
234
+ },
235
+
236
+ "evidence-pack": {
237
+ description: "Bundle proof artifacts into shareable packs",
238
+ longDescription: "Creates shareable evidence packs from proof runs. Bundles videos, traces, screenshots, and findings.",
239
+ tier: "free",
240
+ category: "output",
241
+ aliases: ["pack", "bundle"],
242
+ runner: () => require("./runners/runEvidencePack").runEvidencePack,
218
243
  examples: [
219
- { command: "vibecheck init", description: "Initialize project" },
244
+ { command: "vibecheck evidence-pack", description: "Bundle latest run" },
245
+ { command: "vibecheck evidence-pack --run-id abc123", description: "Bundle specific run" },
246
+ { command: "vibecheck evidence-pack --markdown", description: "Markdown report" },
247
+ { command: "vibecheck evidence-pack --no-videos", description: "Exclude large files" },
220
248
  ],
221
- related: ["context", "doctor"],
249
+ related: ["prove", "reality"],
250
+ },
251
+
252
+ labs: {
253
+ description: "Experimental & beta features",
254
+ longDescription: "Access experimental features that are in development. Features may change or be removed without notice.",
255
+ tier: "free",
256
+ category: "setup",
257
+ aliases: ["experimental", "beta"],
258
+ runner: () => require("./runners/runLabs").runLabs,
259
+ skipAuth: true,
260
+ examples: [
261
+ { command: "vibecheck labs", description: "List available features" },
262
+ { command: "vibecheck labs ai-agent --url http://localhost:3000", description: "AI agent" },
263
+ { command: "vibecheck labs security-audit", description: "Security audit" },
264
+ { command: "vibecheck labs smart-fix", description: "AI-powered fixes" },
265
+ ],
266
+ related: ["scan", "fix"],
222
267
  },
223
268
 
224
269
  // ══════════════════════════════════════════════════════════════
@@ -226,11 +271,11 @@ const COMMANDS = {
226
271
  // ══════════════════════════════════════════════════════════════
227
272
 
228
273
  ship: {
229
- description: "Comprehensive verdict - ALL engines + route validation + proof cert",
230
- longDescription: "The final word on whether your code is ready to ship. Runs ALL 15+ analysis engines, validates routes and contracts, generates proof certificate. SHIP/WARN/BLOCK verdict.",
274
+ description: "Verdict engine - SHIP / WARN / BLOCK",
275
+ longDescription: "The final word on whether your code is ready to ship. Combines all scan results and generates a clear verdict.",
231
276
  tier: "pro",
232
- category: "analysis",
233
- aliases: ["verdict", "go", "full"],
277
+ category: "proof",
278
+ aliases: ["verdict", "go"],
234
279
  runner: () => require("./runners/runShip").runShip,
235
280
  examples: [
236
281
  { command: "vibecheck ship", description: "Get shipping verdict" },
@@ -241,199 +286,131 @@ const COMMANDS = {
241
286
  },
242
287
 
243
288
  fix: {
244
- description: "AI-powered auto-fix with LLM",
245
- longDescription: "Generate AI-powered fixes for detected issues. Uses LLM to analyze and fix problems automatically.",
289
+ description: "AI-powered auto-fix for findings",
290
+ longDescription: "Generate AI prompts to fix detected issues. Use --apply to let AI make changes directly.",
246
291
  tier: "pro",
247
- category: "repair",
248
- aliases: ["f", "repair", "autofix"],
292
+ category: "proof",
293
+ aliases: ["f", "repair"],
249
294
  runner: () => require("./runners/runFix").runFix,
250
295
  examples: [
251
296
  { command: "vibecheck fix", description: "Generate fix missions" },
252
297
  { command: "vibecheck fix --apply", description: "Apply AI fixes" },
253
298
  { command: "vibecheck fix --loop", description: "Fix loop until clean" },
254
299
  ],
255
- related: ["scan", "ship", "polish"],
300
+ related: ["scan", "ship"],
256
301
  },
257
302
 
258
- polish: {
259
- description: "Production hardening - console removal, dead code, type strengthening",
260
- longDescription: "Automated code transformations for production readiness. Removes console statements, unused imports, strengthens types, and more - all without requiring an LLM.",
303
+ prove: {
304
+ description: "Full proof loop with runtime verification",
305
+ longDescription: "Complete verification cycle with runtime testing and evidence generation.",
261
306
  tier: "pro",
262
- category: "repair",
263
- aliases: ["prod", "final", "harden"],
264
- runner: () => require("./runners/runPolish").runPolish,
307
+ category: "proof",
308
+ aliases: ["p", "verify"],
309
+ runner: () => require("./runners/runProve").runProve,
265
310
  examples: [
266
- { command: "vibecheck polish", description: "Dry-run - preview changes" },
267
- { command: "vibecheck polish --apply", description: "Apply all auto-fixes" },
268
- { command: "vibecheck polish --passes remove-consoles,dead-code", description: "Run specific passes" },
269
- { command: "vibecheck polish --safe-only --apply", description: "Apply only safe fixes" },
270
- { command: "vibecheck polish --list-passes", description: "List available passes" },
311
+ { command: "vibecheck prove", description: "Run full proof loop" },
312
+ { command: "vibecheck prove --url http://localhost:3000", description: "With runtime testing" },
313
+ { command: "vibecheck prove --bundle", description: "Generate evidence pack" },
271
314
  ],
272
- related: ["ship", "fix", "scan"],
315
+ related: ["ship", "reality"],
273
316
  },
274
317
 
275
318
  reality: {
276
- description: "Playwright browser verification - test runtime behavior",
277
- longDescription: "Verify your app's runtime behavior with Playwright-powered browser testing. Tests actual API responses, UI behavior, and auth flows.",
319
+ description: "Browser-based runtime verification",
320
+ longDescription: "Verify your app's runtime behavior with Playwright-powered browser testing.",
278
321
  tier: "pro",
279
- category: "verification",
280
- aliases: ["browser", "e2e", "playwright"],
322
+ category: "proof",
323
+ aliases: ["browser", "e2e"],
281
324
  runner: () => require("./runners/runReality").runReality,
282
325
  examples: [
283
326
  { command: "vibecheck reality --url http://localhost:3000", description: "Test localhost" },
284
327
  { command: "vibecheck reality --auth email:pass", description: "With authentication" },
285
- { command: "vibecheck reality --record", description: "Record video evidence" },
286
- ],
287
- related: ["prove", "ship", "ai-test"],
288
- },
289
-
290
- "ai-test": {
291
- description: "AI agent for autonomous app testing",
292
- longDescription: "AI-powered autonomous testing that explores your app like a real user. Supports common scenarios like login, checkout, and signup flows.",
293
- tier: "pro",
294
- category: "verification",
295
- aliases: ["agent", "autonomous"],
296
- runner: () => require("./runners/runAIAgent").runAIAgent,
297
- examples: [
298
- { command: "vibecheck ai-test --url http://localhost:3000", description: "Explore app autonomously" },
299
- { command: "vibecheck ai-test --url http://localhost:3000 --scenario login", description: "Test login flow" },
300
- { command: "vibecheck ai-test --url http://localhost:3000 --headed", description: "Watch the AI test" },
301
- ],
302
- related: ["reality", "prove"],
303
- },
304
-
305
- prove: {
306
- description: "Full proof loop with evidence pack",
307
- longDescription: "Complete verification cycle: scan + reality check + evidence generation. Creates cryptographically signed proof pack.",
308
- tier: "pro",
309
- category: "verification",
310
- aliases: ["p", "verify", "evidence"],
311
- runner: () => require("./runners/runProve").runProve,
312
- examples: [
313
- { command: "vibecheck prove", description: "Run full proof loop" },
314
- { command: "vibecheck prove --url http://localhost:3000", description: "With runtime testing" },
315
- { command: "vibecheck prove --bundle", description: "Generate evidence pack" },
328
+ { command: "vibecheck reality --agent", description: "AI agent testing" },
316
329
  ],
317
- related: ["ship", "reality"],
330
+ related: ["prove", "ship"],
318
331
  },
319
332
 
320
333
  gate: {
321
- description: "CI/CD enforcement - blocks deploys on issues",
322
- longDescription: "Enforce quality gates in your CI/CD pipeline. Returns exit code 1 on failures to block deployments.",
334
+ description: "CI/CD enforcement - fail builds on issues",
335
+ longDescription: "Enforce quality gates in your CI/CD pipeline.",
323
336
  tier: "pro",
324
337
  category: "automation",
325
- aliases: ["ci", "enforce", "block"],
338
+ aliases: ["ci", "enforce"],
326
339
  runner: () => require("./runners/runGuard").runGate,
327
340
  examples: [
328
341
  { command: "vibecheck gate", description: "Run CI gate check" },
329
- { command: "vibecheck gate --strict", description: "Strict mode (fail on warnings)" },
330
- { command: "vibecheck gate --threshold 80", description: "Custom score threshold" },
342
+ { command: "vibecheck gate --strict", description: "Strict mode" },
331
343
  ],
332
344
  related: ["ship", "scan"],
333
345
  },
334
346
 
335
347
  guard: {
336
- description: "Agent firewall - monitors/blocks AI agent actions",
337
- longDescription: "AI agent firewall that validates file writes, command execution, and content. Observe mode (FREE) logs violations. Enforce mode (PRO) blocks violations. Protects against forbidden paths, dangerous commands, and hallucination patterns.",
338
- tier: "free",
339
- category: "firewall",
340
- skipAuth: true, // Allow observe mode without authentication
341
- aliases: ["firewall", "ai-guard"],
342
- runner: () => require("./runners/runGuard").runGuard,
343
- examples: [
344
- { command: "vibecheck guard --init", description: "Initialize firewall config" },
345
- { command: "vibecheck guard --mode observe --action write --path .env", description: "Check path (observe)" },
346
- { command: "vibecheck guard --mode enforce --action write --path .env", description: "Block write (PRO)" },
347
- { command: "vibecheck guard --action execute --command \"rm -rf /\"", description: "Validate command" },
348
- { command: "vibecheck guard --claims", description: "Verify AI claims (legacy)" },
349
- ],
350
- related: ["context", "fix", "scan"],
351
- },
352
-
353
- "authority.approve": {
354
- description: "Get authority verdict - APPROVED/REJECTED/PENDING with proofs",
355
- longDescription: "Request approval from an authority for a specific action. Returns structured verdict with evidence and findings.",
356
- tier: "pro",
357
- category: "authority",
358
- aliases: ["auth-verdict"],
359
- runner: () => {
360
- const { runAuthority } = require("./runners/runAuthority");
361
- return (args, context) => runAuthority(['approve', ...args], context);
362
- },
363
- examples: [
364
- { command: "vibecheck authority approve --authority security", description: "Security review" },
365
- { command: "vibecheck authority approve -a security -a quality", description: "Multi-authority" },
366
- { command: "vibecheck authority approve -a security --json", description: "JSON output" },
367
- ],
368
- related: ["authority", "authority.list", "ship"],
369
- },
370
-
371
- "conductor.status": {
372
- description: "Multi-agent coordination status",
373
- longDescription: "View status of registered AI agents, active locks, and pending proposals.",
348
+ description: "AI guardrails - prompt firewall & hallucination checking",
349
+ longDescription: "Validate AI-generated code and prompts. Detects prompt injection and verifies claims.",
374
350
  tier: "pro",
375
- category: "coordination",
376
- aliases: ["cstatus"],
377
- runner: () => require("./runners/runConductor").runConductorStatus,
351
+ category: "truth",
352
+ aliases: ["ai-guard", "firewall", "validate"],
353
+ runner: () => require("./runners/runGuard").runGuard,
378
354
  examples: [
379
- { command: "vibecheck conductor.status", description: "View coordination status" },
380
- { command: "vibecheck conductor.status --json", description: "JSON output" },
355
+ { command: "vibecheck guard", description: "Run all guardrail checks" },
356
+ { command: "vibecheck guard --claims", description: "Verify AI claims" },
381
357
  ],
382
- related: ["conductor.register", "conductor.lock"],
358
+ related: ["context", "fix"],
383
359
  },
384
360
 
385
- "conductor.register": {
386
- description: "Register AI agent for coordination",
387
- longDescription: "Register an AI agent with the conductor for multi-agent coordination.",
361
+ mcp: {
362
+ description: "Start MCP server for AI IDEs",
363
+ longDescription: "Launch an MCP server for AI IDE integration.",
388
364
  tier: "pro",
389
- category: "coordination",
390
- aliases: ["cregister"],
391
- runner: () => require("./runners/runConductor").runConductorRegister,
365
+ category: "automation",
366
+ aliases: [],
367
+ runner: () => require("./runners/runMcp").runMcp,
392
368
  examples: [
393
- { command: "vibecheck conductor.register --name cursor", description: "Register agent" },
369
+ { command: "vibecheck mcp", description: "Start MCP server" },
370
+ { command: "vibecheck mcp --port 3099", description: "Custom port" },
394
371
  ],
395
- related: ["conductor.status", "conductor.lock"],
372
+ related: ["context"],
396
373
  },
397
374
 
398
- "conductor.lock": {
399
- description: "Acquire file lock for exclusive editing",
400
- longDescription: "Acquire a lock on files for exclusive editing by an AI agent.",
375
+ checkpoint: {
376
+ description: "Compare baseline vs current, hallucination scoring",
377
+ longDescription: "Track changes between scan runs. Detects new issues, resolved issues, and regressions.",
401
378
  tier: "pro",
402
- category: "coordination",
403
- aliases: ["clock"],
404
- runner: () => require("./runners/runConductor").runConductorLock,
379
+ category: "analysis",
380
+ aliases: ["cp", "compare", "diff"],
381
+ runner: () => require("./runners/runCheckpoint").runCheckpoint,
405
382
  examples: [
406
- { command: "vibecheck conductor.lock src/file.ts", description: "Lock file" },
407
- { command: "vibecheck conductor.lock --agent cursor src/", description: "Lock directory" },
383
+ { command: "vibecheck checkpoint", description: "Compare against baseline" },
384
+ { command: "vibecheck checkpoint --set", description: "Save new baseline" },
408
385
  ],
409
- related: ["conductor.unlock", "conductor.status"],
386
+ related: ["scan", "fix"],
410
387
  },
411
388
 
412
- "conductor.unlock": {
413
- description: "Release file lock",
414
- longDescription: "Release a previously acquired lock on files.",
389
+ approve: {
390
+ description: "Authority verdicts - PROCEED/STOP/DEFER with proofs",
391
+ longDescription: "Execute authorities to get structured verdicts with proofs.",
415
392
  tier: "pro",
416
- category: "coordination",
417
- aliases: ["cunlock"],
418
- runner: () => require("./runners/runConductor").runConductorUnlock,
393
+ category: "authority",
394
+ aliases: ["auth-verdict", "authority"],
395
+ runner: () => require("./runners/runApprove").runApprove,
419
396
  examples: [
420
- { command: "vibecheck conductor.unlock src/file.ts", description: "Unlock file" },
421
- { command: "vibecheck conductor.unlock --all", description: "Release all locks" },
397
+ { command: "vibecheck approve safe-consolidation", description: "Run authority" },
398
+ { command: "vibecheck approve --list", description: "List authorities" },
422
399
  ],
423
- related: ["conductor.lock", "conductor.status"],
400
+ related: ["classify", "ship"],
424
401
  },
425
402
 
426
- "conductor.propose": {
427
- description: "Submit change proposal for review",
428
- longDescription: "Submit a proposed change for review by the conductor before applying.",
403
+ polish: {
404
+ description: "Production polish - final cleanup before deploy",
405
+ longDescription: "Final production readiness checks and cleanup.",
429
406
  tier: "pro",
430
- category: "coordination",
431
- aliases: ["cpropose"],
432
- runner: () => require("./runners/runConductor").runConductorPropose,
407
+ category: "proof",
408
+ aliases: ["prod", "final"],
409
+ runner: () => require("./runners/runPolish").runPolish,
433
410
  examples: [
434
- { command: "vibecheck conductor.propose --diff changes.patch", description: "Submit proposal" },
411
+ { command: "vibecheck polish", description: "Run polish checks" },
435
412
  ],
436
- related: ["conductor.status", "authority.approve"],
413
+ related: ["ship", "prove"],
437
414
  },
438
415
  };
439
416