code-auditor-mcp 4.0.0 → 4.0.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 (279) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +80 -0
  3. package/dist/__tests__/fixtures/spec-52/item-04-storage-sql-exec-in-loop.d.ts.map +1 -1
  4. package/dist/__tests__/fixtures/spec-52/item-05-upsert-forms.d.ts +4 -4
  5. package/dist/__tests__/fixtures/spec-52/item-05-upsert-forms.d.ts.map +1 -1
  6. package/dist/analyzers/analyzerUtils.d.ts.map +1 -1
  7. package/dist/analyzers/analyzerUtils.js +2 -2
  8. package/dist/analyzers/analyzerUtils.js.map +1 -1
  9. package/dist/analyzers/applicability.d.ts +13 -0
  10. package/dist/analyzers/applicability.d.ts.map +1 -1
  11. package/dist/analyzers/applicability.js +1 -1
  12. package/dist/analyzers/applicability.js.map +1 -1
  13. package/dist/analyzers/cross-language/APIContractAnalyzer.d.ts.map +1 -1
  14. package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts +1 -1
  15. package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts.map +1 -1
  16. package/dist/analyzers/cross-language/DependencyGraphBuilder.js +3 -3
  17. package/dist/analyzers/cross-language/DependencyGraphBuilder.js.map +1 -1
  18. package/dist/analyzers/cross-language/SchemaValidator.d.ts.map +1 -1
  19. package/dist/analyzers/cross-language/SchemaValidator.js.map +1 -1
  20. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts +1 -1
  21. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts.map +1 -1
  22. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js +28 -7
  23. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js.map +1 -1
  24. package/dist/analyzers/documentationAnalyzer.js +5 -5
  25. package/dist/analyzers/documentationAnalyzer.js.map +1 -1
  26. package/dist/analyzers/orm/adapterRegistry.d.ts.map +1 -1
  27. package/dist/analyzers/orm/drizzleAdapter.d.ts.map +1 -1
  28. package/dist/analyzers/orm/prismaAdapter.d.ts.map +1 -1
  29. package/dist/analyzers/provenance.d.ts +10 -1
  30. package/dist/analyzers/provenance.d.ts.map +1 -1
  31. package/dist/analyzers/provenance.js +138 -1
  32. package/dist/analyzers/provenance.js.map +1 -1
  33. package/dist/analyzers/reactAnalyzer.js +8 -8
  34. package/dist/analyzers/reactAnalyzer.js.map +1 -1
  35. package/dist/analyzers/ruleRegistry.js +2 -2
  36. package/dist/analyzers/ruleRegistry.js.map +1 -1
  37. package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts +2 -2
  38. package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts.map +1 -1
  39. package/dist/analyzers/universal/UniversalConventionsAnalyzer.js +7 -7
  40. package/dist/analyzers/universal/UniversalConventionsAnalyzer.js.map +1 -1
  41. package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts +4 -4
  42. package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts.map +1 -1
  43. package/dist/analyzers/universal/UniversalDRYAnalyzer.js +10 -10
  44. package/dist/analyzers/universal/UniversalDRYAnalyzer.js.map +1 -1
  45. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
  46. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +283 -39
  47. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -1
  48. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.d.ts +1 -1
  49. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.d.ts.map +1 -1
  50. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js +7 -7
  51. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js.map +1 -1
  52. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts +18 -0
  53. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts.map +1 -1
  54. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js +57 -11
  55. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js.map +1 -1
  56. package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts.map +1 -1
  57. package/dist/analyzers/universal/UniversalSchemaAnalyzer.js +1 -0
  58. package/dist/analyzers/universal/UniversalSchemaAnalyzer.js.map +1 -1
  59. package/dist/analyzers/universal/UniversalSecretsAnalyzer.d.ts.map +1 -1
  60. package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts +1 -1
  61. package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts.map +1 -1
  62. package/dist/analyzers/universal/UniversalStylesAnalyzer.js +66 -31
  63. package/dist/analyzers/universal/UniversalStylesAnalyzer.js.map +1 -1
  64. package/dist/analyzers/universal/schema/codeAnalysis.d.ts +21 -21
  65. package/dist/analyzers/universal/schema/codeAnalysis.d.ts.map +1 -1
  66. package/dist/analyzers/universal/schema/codeAnalysis.js +199 -45
  67. package/dist/analyzers/universal/schema/codeAnalysis.js.map +1 -1
  68. package/dist/analyzers/universal/schema/config.d.ts +6 -6
  69. package/dist/analyzers/universal/schema/config.d.ts.map +1 -1
  70. package/dist/analyzers/universal/schema/jsonSchema.js +1 -1
  71. package/dist/analyzers/universal/schema/jsonSchema.js.map +1 -1
  72. package/dist/analyzers/universal/schema/types.d.ts +10 -0
  73. package/dist/analyzers/universal/schema/types.d.ts.map +1 -1
  74. package/dist/analyzers/universal/schema/violations.d.ts +1 -1
  75. package/dist/analyzers/universal/schema/violations.d.ts.map +1 -1
  76. package/dist/auditRouter.js +2 -2
  77. package/dist/auditRouter.js.map +1 -1
  78. package/dist/auditRunner.d.ts +1 -1
  79. package/dist/auditRunner.d.ts.map +1 -1
  80. package/dist/auditRunner.js +46 -13
  81. package/dist/auditRunner.js.map +1 -1
  82. package/dist/churn/churnExtractor.js.map +1 -1
  83. package/dist/cli.js +93 -28
  84. package/dist/cli.js.map +1 -1
  85. package/dist/codeIndexDB.d.ts.map +1 -1
  86. package/dist/codeIndexDB.js +19 -3
  87. package/dist/codeIndexDB.js.map +1 -1
  88. package/dist/codeIndexService.d.ts.map +1 -1
  89. package/dist/codeIndexService.js.map +1 -1
  90. package/dist/componentScanner.js.map +1 -1
  91. package/dist/config/configLoader.js +1 -1
  92. package/dist/config/configLoader.js.map +1 -1
  93. package/dist/config/defaults.d.ts +2 -2
  94. package/dist/config/defaults.d.ts.map +1 -1
  95. package/dist/config/defaults.js +10 -3
  96. package/dist/config/defaults.js.map +1 -1
  97. package/dist/constants.d.ts +1 -1
  98. package/dist/conventions/conventionMiner.js.map +1 -1
  99. package/dist/coverage/lcovParser.js.map +1 -1
  100. package/dist/daemon/args.js.map +1 -1
  101. package/dist/daemon/core.d.ts.map +1 -1
  102. package/dist/daemon/core.js +18 -9
  103. package/dist/daemon/core.js.map +1 -1
  104. package/dist/daemon/lspServer.d.ts.map +1 -1
  105. package/dist/daemon/lspServer.js +1 -1
  106. package/dist/daemon/lspServer.js.map +1 -1
  107. package/dist/daemon/main.js.map +1 -1
  108. package/dist/daemon/resolve.js.map +1 -1
  109. package/dist/daemon/socketServer.d.ts.map +1 -1
  110. package/dist/enforcement/gate.js +2 -2
  111. package/dist/functionScanner.d.ts.map +1 -1
  112. package/dist/generators/AWSQConfigGenerator.d.ts.map +1 -1
  113. package/dist/generators/AiderConfigGenerator.d.ts.map +1 -1
  114. package/dist/generators/BaseConfigGenerator.d.ts.map +1 -1
  115. package/dist/generators/BaseConfigGenerator.js.map +1 -1
  116. package/dist/generators/ClaudeConfigGenerator.d.ts.map +1 -1
  117. package/dist/generators/ClineConfigGenerator.d.ts.map +1 -1
  118. package/dist/generators/CodeiumConfigGenerator.d.ts.map +1 -1
  119. package/dist/generators/CodexConfigGenerator.d.ts.map +1 -1
  120. package/dist/generators/ConfigGeneratorFactory.d.ts.map +1 -1
  121. package/dist/generators/ConfigGeneratorFactory.js.map +1 -1
  122. package/dist/generators/ContinueConfigGenerator.d.ts.map +1 -1
  123. package/dist/generators/CopilotConfigGenerator.d.ts.map +1 -1
  124. package/dist/generators/CursorConfigGenerator.d.ts.map +1 -1
  125. package/dist/generators/GeminiConfigGenerator.d.ts.map +1 -1
  126. package/dist/generators/JetBrainsConfigGenerator.d.ts.map +1 -1
  127. package/dist/generators/VSCodeConfigGenerator.d.ts.map +1 -1
  128. package/dist/generators/ZCodeConfigGenerator.d.ts.map +1 -1
  129. package/dist/graph/importClassification.d.ts +46 -8
  130. package/dist/graph/importClassification.d.ts.map +1 -1
  131. package/dist/graph/importClassification.js +207 -35
  132. package/dist/graph/importClassification.js.map +1 -1
  133. package/dist/graph/outputFormatter.js.map +1 -1
  134. package/dist/hooks/codex.d.ts.map +1 -1
  135. package/dist/hooks/codex.js +1 -1
  136. package/dist/hooks/codex.js.map +1 -1
  137. package/dist/hooks/core.d.ts +1 -1
  138. package/dist/hooks/core.d.ts.map +1 -1
  139. package/dist/hooks/core.js +4 -4
  140. package/dist/hooks/core.js.map +1 -1
  141. package/dist/hooks/cursor.d.ts.map +1 -1
  142. package/dist/hooks/cursor.js +2 -2
  143. package/dist/hooks/cursor.js.map +1 -1
  144. package/dist/index.d.ts.map +1 -1
  145. package/dist/installer.js.map +1 -1
  146. package/dist/invariants/invariant-rules.schema.json +1 -1
  147. package/dist/invariants/ruleEngine.js.map +1 -1
  148. package/dist/invariants/ruleValidator.js +1 -1
  149. package/dist/invariants/ruleValidator.js.map +1 -1
  150. package/dist/invariants/types.d.ts +1 -1
  151. package/dist/invariants/types.d.ts.map +1 -1
  152. package/dist/languages/LanguageOrchestrator.d.ts +2 -2
  153. package/dist/languages/LanguageOrchestrator.d.ts.map +1 -1
  154. package/dist/languages/LanguageOrchestrator.js.map +1 -1
  155. package/dist/languages/LanguageRegistry.d.ts.map +1 -1
  156. package/dist/languages/RuntimeManager.d.ts.map +1 -1
  157. package/dist/languages/RuntimeManager.js +2 -2
  158. package/dist/languages/RuntimeManager.js.map +1 -1
  159. package/dist/languages/UniversalAnalyzer.d.ts.map +1 -1
  160. package/dist/languages/UniversalAnalyzer.js.map +1 -1
  161. package/dist/languages/adapterBridge.js.map +1 -1
  162. package/dist/languages/go/GoAdapter.d.ts.map +1 -1
  163. package/dist/languages/go/GoAdapter.js.map +1 -1
  164. package/dist/languages/go/analyzer +0 -0
  165. package/dist/languages/go/analyzer-src/analyzer.go +3 -3
  166. package/dist/languages/go/analyzer-src/solid.go +5 -5
  167. package/dist/languages/goBinary.js.map +1 -1
  168. package/dist/languages/tree-sitter/TreeSitterCssAdapter.d.ts.map +1 -1
  169. package/dist/languages/tree-sitter/TreeSitterCssAdapter.js.map +1 -1
  170. package/dist/languages/tree-sitter/converter.js.map +1 -1
  171. package/dist/languages/tree-sitter/parser.js.map +1 -1
  172. package/dist/languages/types.d.ts +15 -0
  173. package/dist/languages/types.d.ts.map +1 -1
  174. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts +11 -0
  175. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts.map +1 -1
  176. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js +34 -0
  177. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js.map +1 -1
  178. package/dist/ledger.js +1 -1
  179. package/dist/ledger.js.map +1 -1
  180. package/dist/mcp-tools/projectTasks.d.ts +37 -37
  181. package/dist/mcp-tools/projectTasks.js +2 -2
  182. package/dist/mcp-tools/projectTasks.js.map +1 -1
  183. package/dist/mcp-tools/whitelistTools.d.ts +17 -17
  184. package/dist/mcp-tools/whitelistTools.d.ts.map +1 -1
  185. package/dist/mcp-tools/workflowGuide.js +3 -3
  186. package/dist/mcp-tools/workflowGuide.js.map +1 -1
  187. package/dist/mcp-tools-shared.d.ts.map +1 -1
  188. package/dist/mcp-tools-shared.js +13 -13
  189. package/dist/mcp-tools-shared.js.map +1 -1
  190. package/dist/mcp-ui-simple.js +6 -6
  191. package/dist/mcp-ui-simple.js.map +1 -1
  192. package/dist/mcp.js +14 -14
  193. package/dist/mcp.js.map +1 -1
  194. package/dist/mcpAuditJobs.js +7 -7
  195. package/dist/mcpAuditJobs.js.map +1 -1
  196. package/dist/mcpAutoIndex.js +1 -1
  197. package/dist/mcpAutoIndex.js.map +1 -1
  198. package/dist/mcpToolErrors.d.ts.map +1 -1
  199. package/dist/mcpToolErrors.js.map +1 -1
  200. package/dist/native-bootstrap.js.map +1 -1
  201. package/dist/nextFile.d.ts +2 -2
  202. package/dist/nextFile.d.ts.map +1 -1
  203. package/dist/nextFile.js +3 -3
  204. package/dist/nextFile.js.map +1 -1
  205. package/dist/nextFileIncremental.d.ts +9 -2
  206. package/dist/nextFileIncremental.d.ts.map +1 -1
  207. package/dist/nextFileIncremental.js +41 -23
  208. package/dist/nextFileIncremental.js.map +1 -1
  209. package/dist/pipeline.d.ts +2 -2
  210. package/dist/pipeline.d.ts.map +1 -1
  211. package/dist/pipeline.js +45 -0
  212. package/dist/pipeline.js.map +1 -1
  213. package/dist/pipelineAdapters.d.ts +39 -2
  214. package/dist/pipelineAdapters.d.ts.map +1 -1
  215. package/dist/pipelineAdapters.js +230 -29
  216. package/dist/pipelineAdapters.js.map +1 -1
  217. package/dist/reporting/csvReportGenerator.d.ts.map +1 -1
  218. package/dist/reporting/csvReportGenerator.js +6 -6
  219. package/dist/reporting/csvReportGenerator.js.map +1 -1
  220. package/dist/reporting/htmlReportGenerator.d.ts.map +1 -1
  221. package/dist/reporting/htmlReportGenerator.js +11 -11
  222. package/dist/reporting/htmlReportGenerator.js.map +1 -1
  223. package/dist/reporting/jsonReportGenerator.d.ts.map +1 -1
  224. package/dist/reporting/jsonReportGenerator.js +1 -1
  225. package/dist/reporting/jsonReportGenerator.js.map +1 -1
  226. package/dist/reporting/reportGenerator.d.ts.map +1 -1
  227. package/dist/reporting/sarifReportGenerator.d.ts.map +1 -1
  228. package/dist/reporting/sarifReportGenerator.js +1 -1
  229. package/dist/reporting/sarifReportGenerator.js.map +1 -1
  230. package/dist/reporting/sizeDistribution.d.ts +17 -0
  231. package/dist/reporting/sizeDistribution.d.ts.map +1 -0
  232. package/dist/reporting/sizeDistribution.js +93 -0
  233. package/dist/reporting/sizeDistribution.js.map +1 -0
  234. package/dist/scripts/benchmarkWorkers.js +1 -1
  235. package/dist/scripts/benchmarkWorkers.js.map +1 -1
  236. package/dist/search/QueryParser.d.ts.map +1 -1
  237. package/dist/search/QueryParser.js.map +1 -1
  238. package/dist/services/CodeMapGenerator.d.ts.map +1 -1
  239. package/dist/services/CodeMapGenerator.js.map +1 -1
  240. package/dist/services/ProjectTaskRepository.d.ts.map +1 -1
  241. package/dist/services/ProjectTaskRepository.js.map +1 -1
  242. package/dist/services/auditJobService.js.map +1 -1
  243. package/dist/services/fileAccounting.d.ts.map +1 -1
  244. package/dist/services/projectTaskHelpers.js.map +1 -1
  245. package/dist/services/whitelistService.d.ts.map +1 -1
  246. package/dist/sqlite/betterSqlite3.d.ts.map +1 -1
  247. package/dist/sqlite/betterSqlite3.js.map +1 -1
  248. package/dist/sqlite/nodeSqlite.d.ts.map +1 -1
  249. package/dist/sqlite/nodeSqlite.js.map +1 -1
  250. package/dist/structuralSignature.js.map +1 -1
  251. package/dist/styles/styleExtractor.js.map +1 -1
  252. package/dist/styles/styleIndexer.js.map +1 -1
  253. package/dist/styles/tailwindConfigLoader.js.map +1 -1
  254. package/dist/styles/tailwindProbe.d.ts.map +1 -1
  255. package/dist/styles/tailwindUtilityExpander.d.ts.map +1 -1
  256. package/dist/styles/tailwindUtilityExpander.js.map +1 -1
  257. package/dist/telemetry.d.ts +1 -1
  258. package/dist/telemetry.d.ts.map +1 -1
  259. package/dist/telemetry.js.map +1 -1
  260. package/dist/tool-registry.d.ts.map +1 -1
  261. package/dist/types/crossLanguage.d.ts +1 -1
  262. package/dist/types/crossLanguage.d.ts.map +1 -1
  263. package/dist/types.d.ts +99 -5
  264. package/dist/types.d.ts.map +1 -1
  265. package/dist/types.js +3 -3
  266. package/dist/types.js.map +1 -1
  267. package/dist/ui/InteractivePrompts.d.ts.map +1 -1
  268. package/dist/ui/InteractivePrompts.js.map +1 -1
  269. package/dist/utils/componentPatterns.js.map +1 -1
  270. package/dist/utils/fileDiscovery.js.map +1 -1
  271. package/dist/utils/jsDocParser.js.map +1 -1
  272. package/dist/version.generated.d.ts +1 -1
  273. package/dist/version.generated.js +1 -1
  274. package/dist/workers/auditWorker.js.map +1 -1
  275. package/package.json +4 -3
  276. package/plugin/.claude-plugin/plugin.json +1 -1
  277. package/plugin/skills/code-auditor/SKILL-RULE-KINDS.md +7 -7
  278. package/plugin/skills/code-auditor/SKILL.md +9 -9
  279. package/server.json +2 -2
@@ -1 +1 @@
1
- {"version":3,"file":"churnExtractor.js","sourceRoot":"","sources":["../../src/churn/churnExtractor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"churnExtractor.js","sourceRoot":"","sources":["../../src/churn/churnExtractor.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -30,10 +30,12 @@ import { rankFilesByPriority, orderFindingsWithinFile } from './nextFile.js';
30
30
  import { runNextFile } from './nextFileIncremental.js';
31
31
  import { describeSqliteBackend } from './sqlite/driver.js';
32
32
  const program = new Command();
33
- // Legacy severity names that were renamed in Spec-54 (severity as urgency).
34
- // `--fail-on high` must fail loudly and name the new tier, not emit a generic
35
- // "must be one of" list that leaves the user guessing what `high` became.
36
- const LEGACY_SEVERITY_NAMES = { high: 'advisory' };
33
+ // Legacy severity names that were renamed off Spec-54's "advisory" back to "high"
34
+ // (Spec-54's third tier rendered as "advisory", which read as optional — the very
35
+ // word shape the rename was meant to eliminate — so it is now "high").
36
+ // `--fail-on advisory` must fail loudly and name the new tier, not emit a generic
37
+ // "must be one of" list that leaves the user guessing what `advisory` became.
38
+ const LEGACY_SEVERITY_NAMES = { advisory: 'high' };
37
39
  // Spec 44 R4 — file accounting summary line + `--explain-skipped` breakdown.
38
40
  // The full per-reason file lists live in the JSON report (`metadata.fileAccounting`);
39
41
  // the CLI preview is bounded to the first ~20 files per reason.
@@ -97,7 +99,7 @@ program
97
99
  .option('--fail-on <severity>', 'Exit code 2 when violations at or above this severity exist')
98
100
  .option('--full', 'Show full violation inventory (overrides default delta view when baseline exists)')
99
101
  .option('--include-baseline', 'Evaluate baseline-known violations in --fail-on checks')
100
- .option('--fail-on-regression', 'Exit code 2 when total advisory debt exceeds the baseline snapshot')
102
+ .option('--fail-on-regression', 'Exit code 2 when total high debt exceeds the baseline snapshot')
101
103
  .option('--preset <id>', 'Apply a shareable preset (repeatable)', (v, prev) => prev.concat([v]), [])
102
104
  .option('--detach', 'Run the audit in a detached background process and print the job ID')
103
105
  .option('--partition-strategy <strategy>', 'Partition strategy for detached runs: none, auto, or top-level')
@@ -116,7 +118,7 @@ program
116
118
  try {
117
119
  await initParsers();
118
120
  // Validate --fail-on severity
119
- const validSeverities = ['critical', 'severe', 'advisory'];
121
+ const validSeverities = ['critical', 'severe', 'high'];
120
122
  const failOnSeverity = options.failOn;
121
123
  if (failOnSeverity && !validSeverities.includes(failOnSeverity)) {
122
124
  const renamed = LEGACY_SEVERITY_NAMES[failOnSeverity];
@@ -147,6 +149,18 @@ program
147
149
  // subtracted from it ("43 findings, 3 dismissed").
148
150
  const dismissedCount = result.summary.dismissed ?? 0;
149
151
  const dismissedSuffix = dismissedCount > 0 ? `, ${dismissedCount} dismissed` : '';
152
+ // Spec 36 R4 — a path-profile-excluded finding reports at its real
153
+ // severity but never gates. When any finding is gate-excluded, surface
154
+ // the gating count next to the total so a clean exit doesn't read as
155
+ // "0 findings" beside a non-zero critical count (e.g. knex: 38 critical,
156
+ // all test-dir, exit 0). The excluded total still reads in full — the
157
+ // distinction is gating vs. reporting, never subtraction.
158
+ const gateExcludedCount = violations.filter((v) => v.gateExcluded).length;
159
+ const gatingCount = (severity) => violations.filter((v) => v.severity === severity && !v.gateExcluded && !v.dismissed).length;
160
+ const findingsSuffix = `${dismissedSuffix}${gateExcludedCount > 0 ? ` (${gateExcludedCount.toLocaleString()} excluded from gate)` : ''}`;
161
+ const summaryLine = (label, total, severity) => gateExcludedCount > 0
162
+ ? `${label}: ${total} (${gatingCount(severity)} gating)`
163
+ : `${label}: ${total}`;
150
164
  // ── Coverage panel leads the report (Spec 47 R2) ─────────────
151
165
  // A diagnostic report opens with what was measured before it lists any
152
166
  // readings, so a zero-reading report can't be mistaken for a clean tree.
@@ -166,7 +180,7 @@ program
166
180
  // not "the code is wrong". They lead with counts, then per-occurrence
167
181
  // file:line — visible and counted, never blocking (they never reach the
168
182
  // gate). Rendered alongside the coverage panel that leads the report.
169
- const coverageDiagnostics = (result.metadata?.diagnostics ?? []).filter((d) => d.kind === 'unresolved-query' || d.kind === 'unresolved-dynamic-import');
183
+ const coverageDiagnostics = (result.metadata?.diagnostics ?? []).filter((d) => d.kind === 'unresolved-query' || d.kind === 'unresolved-dynamic-import' || d.kind === 'undefined-class-not-found');
170
184
  if (coverageDiagnostics.length > 0) {
171
185
  const byKind = {};
172
186
  for (const d of coverageDiagnostics)
@@ -183,6 +197,47 @@ program
183
197
  console.log(chalk.gray(` … and ${coverageDiagnostics.length - 20} more`));
184
198
  }
185
199
  }
200
+ // ── Spec 60 R1 — test coverage (reporting, not detection) ─────
201
+ // Classifies every non-test module as tested / untested-live /
202
+ // untested-dead off the file-level import edges. The dead count is
203
+ // post-entry-point-exception, with the drop attributed.
204
+ const testCoverage = result.metadata?.testCoverage;
205
+ if (testCoverage) {
206
+ const pct = testCoverage.total > 0
207
+ ? ((testCoverage.tested / testCoverage.total) * 100).toFixed(1)
208
+ : '0.0';
209
+ let line = `tested ${testCoverage.tested}/${testCoverage.total} (${pct}%)` +
210
+ ` Ā· untested-live ${testCoverage.untestedLive}` +
211
+ ` Ā· untested-dead ${testCoverage.untestedDead}`;
212
+ if (testCoverage.deadDrop > 0) {
213
+ line += ` (was ${testCoverage.deadPreException} pre-exception; āˆ’${testCoverage.deadDrop} entry points exempted)`;
214
+ }
215
+ console.log(chalk.gray(`── Test coverage ── ${line}`));
216
+ }
217
+ // ── Spec 60 R2 — size distributions (median / p95 / max) ──────
218
+ const sizeDistributions = result.metadata?.sizeDistributions;
219
+ if (sizeDistributions && sizeDistributions.length > 0) {
220
+ console.log(chalk.gray(`── Size distributions ──`));
221
+ for (const d of sizeDistributions) {
222
+ const fmt = (n) => Number.isInteger(n) ? String(n) : n.toFixed(1);
223
+ const tail = d.maxEntry
224
+ ? ` (${d.maxEntry.name}${d.maxEntry.fileType ? ` Ā· ${d.maxEntry.fileType}` : ''} Ā· ${d.maxEntry.entityType})`
225
+ : '';
226
+ const pop = d.population ? `${d.population}, n=${d.count}` : `n=${d.count}`;
227
+ console.log(chalk.gray(` ${d.measure} [${pop}]: median ${fmt(d.median)} Ā· p95 ${fmt(d.p95)} Ā· max ${fmt(d.max)}${tail}`));
228
+ }
229
+ }
230
+ // ── Spec 60 R3 — dead-and-duplicated clusters ─────────────────
231
+ const deadClusters = result.metadata?.deadClusters;
232
+ if (deadClusters && deadClusters.length > 0) {
233
+ console.log(chalk.gray(`── Dead-and-duplicated ── ${deadClusters.length} clusters`));
234
+ for (const c of deadClusters.slice(0, 10)) {
235
+ console.log(chalk.gray(` ${c.count} Ɨ ${c.basename}`));
236
+ }
237
+ if (deadClusters.length > 10) {
238
+ console.log(chalk.gray(` … and ${deadClusters.length - 10} more clusters`));
239
+ }
240
+ }
186
241
  // ── Delta output (Spec 18 R2) ─────────────────────────────────
187
242
  if (baseline && !options.full) {
188
243
  const newViolations = violations.filter((v) => v.new === true);
@@ -245,19 +300,19 @@ program
245
300
  }
246
301
  else if (!baseline) {
247
302
  // No baseline: current behavior + hint
248
- console.log(`\nFound ${result.summary.totalViolations} findings${dismissedSuffix}`);
249
- console.log(`Critical: ${result.summary.criticalIssues}`);
250
- console.log(`Severe: ${result.summary.severe}`);
251
- console.log(`Advisory: ${result.summary.advisory}`);
303
+ console.log(`\nFound ${result.summary.totalViolations} findings${findingsSuffix}`);
304
+ console.log(summaryLine('Critical', result.summary.criticalIssues, 'critical'));
305
+ console.log(summaryLine('Severe', result.summary.severe, 'severe'));
306
+ console.log(summaryLine('High', result.summary.high, 'high'));
252
307
  console.log(chalk.gray(`\nEvery reading is a defect — severity is urgency, the order to act.`));
253
308
  console.log(chalk.gray(`\nšŸ’” Run ${chalk.cyan('code-audit baseline')} to adopt the ratchet and track changes over time.`));
254
309
  }
255
310
  else {
256
311
  // --full with baseline: full itemized inventory (current behavior)
257
- console.log(`\nFound ${result.summary.totalViolations} findings${dismissedSuffix}`);
258
- console.log(`Critical: ${result.summary.criticalIssues}`);
259
- console.log(`Severe: ${result.summary.severe}`);
260
- console.log(`Advisory: ${result.summary.advisory}`);
312
+ console.log(`\nFound ${result.summary.totalViolations} findings${findingsSuffix}`);
313
+ console.log(summaryLine('Critical', result.summary.criticalIssues, 'critical'));
314
+ console.log(summaryLine('Severe', result.summary.severe, 'severe'));
315
+ console.log(summaryLine('High', result.summary.high, 'high'));
261
316
  console.log(chalk.gray(`\nEvery reading is a defect — severity is urgency, the order to act.`));
262
317
  }
263
318
  // Spec 44 R4 — file accounting: analyzed/dropped totals + optional breakdown.
@@ -373,7 +428,7 @@ program
373
428
  console.log(chalk.green(`\nReport written to ${reportPath}`));
374
429
  }
375
430
  // ── Fail-on logic (Spec 18 R3) ───────────────────────────────
376
- // --fail-on-regression: compare total advisory debt to baseline snapshot
431
+ // --fail-on-regression: compare total high debt to baseline snapshot
377
432
  if (baseline && options.failOnRegression) {
378
433
  const currentDebt = violations.filter((v) => v.new || v.new === false).length;
379
434
  const snapshotDebt = baseline.previousKnownCount ?? 0;
@@ -408,12 +463,18 @@ program
408
463
  const evaluableViolations = (baseline && !options.includeBaseline)
409
464
  ? violations.filter((v) => v.new || v.analyzer === 'invariants')
410
465
  : violations;
411
- const severityOrder = ['critical', 'severe', 'advisory'];
466
+ const severityOrder = ['critical', 'severe', 'high'];
412
467
  const failIndex = severityOrder.indexOf(failOnSeverity);
413
468
  const hasAtOrAbove = evaluableViolations.some((v) => {
414
469
  // Spec 57 — a dismissed finding never blocks the gate.
415
470
  if (v.dismissed)
416
471
  return false;
472
+ // Spec 36 R4 — a finding from a path-profile-excluded file (e.g. a
473
+ // test/script under "scripts-and-tests") never blocks the gate,
474
+ // whatever its severity. The file is doing its job; a hardcoded
475
+ // connection string in a stress-test script is not a defect to block on.
476
+ if (v.gateExcluded)
477
+ return false;
417
478
  const vIndex = severityOrder.indexOf(v.severity);
418
479
  return vIndex >= 0 && vIndex <= failIndex;
419
480
  });
@@ -507,7 +568,7 @@ program
507
568
  // agent-facing before/after count (Spec 45 A2) and the exit code agree on
508
569
  // the same number. Every registered rule participates (R1); enforcement is
509
570
  // not diff-scoped (R4). Spec 54: the blocking set is the fixed all-three
510
- // {critical, severe, advisory} — every finding is a defect and every finding
571
+ // {critical, severe, high} — every finding is a defect and every finding
511
572
  // blocks; there is no configurable gate.
512
573
  const { blocking, resolutionGaps } = computeGatingDecision(violations, BLOCKING_SEVERITIES);
513
574
  // JSON output
@@ -698,7 +759,7 @@ async function buildChangedResultFromDiagnostics(violations, projectRoot) {
698
759
  }
699
760
  // Self-audit gate (Spec 33 Item 15 + Spec 44 remediation). Runs the full
700
761
  // analyzer pipeline over the tool's own production source and asserts zero
701
- // *blocking* (critical/severe/advisory) findings in the self-audit scope — the same
762
+ // *blocking* (critical/severe/high) findings in the self-audit scope — the same
702
763
  // scope + severity contract as scripts/verify-self.mjs, but callable from the
703
764
  // shipped CLI so the edit-time plugin hook can enforce it. `verify:self` (the
704
765
  // release gate) stays authoritative; this command is its per-edit sibling.
@@ -731,11 +792,11 @@ program
731
792
  .option('--json', 'Output violations as machine-readable JSON to stdout')
732
793
  .option('--stdin', 'Read file paths from stdin (one per line)')
733
794
  .option('-p, --path <projectPath>', 'Project root path', process.cwd())
734
- .option('--fail-on <severity>', 'Blocking severity floor: critical, severe, or advisory', 'advisory')
795
+ .option('--fail-on <severity>', 'Blocking severity floor: critical, severe, or high', 'high')
735
796
  .action(async (paths, options) => {
736
797
  try {
737
798
  await initParsers();
738
- const validSeverities = ['critical', 'severe', 'advisory'];
799
+ const validSeverities = ['critical', 'severe', 'high'];
739
800
  const failOnSeverity = options.failOn;
740
801
  if (!validSeverities.includes(failOnSeverity)) {
741
802
  const renamed = LEGACY_SEVERITY_NAMES[failOnSeverity];
@@ -773,7 +834,7 @@ program
773
834
  });
774
835
  const result = await runner.run();
775
836
  const violations = Object.values(result.analyzerResults).flatMap((r) => r.violations || []);
776
- const severityOrder = ['critical', 'severe', 'advisory'];
837
+ const severityOrder = ['critical', 'severe', 'high'];
777
838
  const failIndex = severityOrder.indexOf(failOnSeverity);
778
839
  const blocking = violations.filter((v) => {
779
840
  if (!isSelfAuditInScope(v.file ?? ''))
@@ -890,7 +951,7 @@ function printNextFile(violations, summary, projectDir, json) {
890
951
  return;
891
952
  }
892
953
  const top = ranked[0];
893
- // Every issue on the file, ordered critical → severe → advisory.
954
+ // Every issue on the file, ordered critical → severe → high.
894
955
  const ordered = orderFindingsWithinFile(top.violations);
895
956
  const relativize = (filePath) => {
896
957
  if (!filePath)
@@ -922,6 +983,10 @@ function printNextFile(violations, summary, projectDir, json) {
922
983
  enclosingSymbol: v.symbol || v.enclosingFunction || '',
923
984
  suggestion: v.suggestion || '',
924
985
  details: v.details || '',
986
+ // Structured next action — the full report (`audit --json`) carries this
987
+ // as `resolution`; next-file was dropping it, leaving an agent with an
988
+ // empty `suggestion`/`details` and no actionable guidance (defect #49).
989
+ resolution: v.resolution ?? null,
925
990
  ...(v.new !== undefined && { new: v.new }),
926
991
  })),
927
992
  };
@@ -1946,7 +2011,7 @@ tasksCmd
1946
2011
  .command('from-audit')
1947
2012
  .description('Populate tasks from audit violations')
1948
2013
  .option('--auditJobId <id>', 'Specific audit result ID')
1949
- .option('--severities <severities>', 'Comma-separated severities (critical,severe,advisory)', 'critical,severe,advisory')
2014
+ .option('--severities <severities>', 'Comma-separated severities (critical,severe,high)', 'critical,severe,high')
1950
2015
  .option('--json', 'Output as JSON')
1951
2016
  .action(async (options) => {
1952
2017
  try {
@@ -2376,7 +2441,7 @@ async function runDetachedAudit(options) {
2376
2441
  });
2377
2442
  const defaultsJson = JSON.stringify({
2378
2443
  defaultAnalyzers: DETACHED_DEFAULT_ANALYZERS,
2379
- defaultMinSeverity: 'advisory',
2444
+ defaultMinSeverity: 'high',
2380
2445
  defaultGenerateCodeMap: false,
2381
2446
  });
2382
2447
  patchLedgerRun(db.rawDb, job.jobId, { stderrLog: logPath });
@@ -2457,7 +2522,7 @@ program
2457
2522
  .option('--rule <rule>', 'Filter by rule id')
2458
2523
  .option('--analyzer <analyzer>', 'Filter by analyzer')
2459
2524
  .option('--file <file>', 'Filter by file path (substring match)')
2460
- .option('--severity <severity>', 'Filter by severity (critical|severe|advisory)')
2525
+ .option('--severity <severity>', 'Filter by severity (critical|severe|high)')
2461
2526
  .option('--state [state]', 'Query coverage by state (fired|clean|notApplicable|cannot-fire|unassessed); omit value for all')
2462
2527
  .option('--count', 'Group findings by analyzer/rule with counts')
2463
2528
  .option('--limit <n>', 'Max findings to return (0 = unbounded)', '50')
@@ -3553,9 +3618,9 @@ async function buildRulesInteractively() {
3553
3618
  choices: [
3554
3619
  { name: chalk.red('Critical — exploitable or broken now'), value: 'critical' },
3555
3620
  { name: chalk.yellow('Severe — wrong, and it will surface'), value: 'severe' },
3556
- { name: chalk.blue('Advisory — correct but off-convention'), value: 'advisory' },
3621
+ { name: chalk.blue('High — correct but off-convention'), value: 'high' },
3557
3622
  ],
3558
- default: 'advisory',
3623
+ default: 'high',
3559
3624
  },
3560
3625
  message: {
3561
3626
  type: 'input',