code-auditor-mcp 3.4.7 → 3.4.9

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 (107) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +108 -2
  3. package/dist/analyzers/cross-language/APIContractAnalyzer.d.ts +1 -0
  4. package/dist/analyzers/cross-language/APIContractAnalyzer.d.ts.map +1 -1
  5. package/dist/analyzers/cross-language/APIContractAnalyzer.js +5 -0
  6. package/dist/analyzers/cross-language/APIContractAnalyzer.js.map +1 -1
  7. package/dist/analyzers/cross-language/CrossLanguageSOLIDAnalyzer.d.ts +1 -0
  8. package/dist/analyzers/cross-language/CrossLanguageSOLIDAnalyzer.d.ts.map +1 -1
  9. package/dist/analyzers/cross-language/CrossLanguageSOLIDAnalyzer.js +8 -0
  10. package/dist/analyzers/cross-language/CrossLanguageSOLIDAnalyzer.js.map +1 -1
  11. package/dist/analyzers/cross-language/SchemaValidator.d.ts +1 -0
  12. package/dist/analyzers/cross-language/SchemaValidator.d.ts.map +1 -1
  13. package/dist/analyzers/cross-language/SchemaValidator.js +9 -0
  14. package/dist/analyzers/cross-language/SchemaValidator.js.map +1 -1
  15. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts +2 -0
  16. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts.map +1 -1
  17. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js +17 -6
  18. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js.map +1 -1
  19. package/dist/analyzers/documentationAnalyzer.d.ts.map +1 -1
  20. package/dist/analyzers/documentationAnalyzer.js +5 -0
  21. package/dist/analyzers/documentationAnalyzer.js.map +1 -1
  22. package/dist/analyzers/reactAnalyzer.d.ts.map +1 -1
  23. package/dist/analyzers/reactAnalyzer.js +28 -9
  24. package/dist/analyzers/reactAnalyzer.js.map +1 -1
  25. package/dist/analyzers/ruleRegistry.d.ts.map +1 -1
  26. package/dist/analyzers/ruleRegistry.js +27 -26
  27. package/dist/analyzers/ruleRegistry.js.map +1 -1
  28. package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts.map +1 -1
  29. package/dist/analyzers/universal/UniversalConventionsAnalyzer.js +13 -5
  30. package/dist/analyzers/universal/UniversalConventionsAnalyzer.js.map +1 -1
  31. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts +0 -1
  32. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
  33. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +0 -14
  34. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -1
  35. package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts +8 -5
  36. package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts.map +1 -1
  37. package/dist/analyzers/universal/UniversalSchemaAnalyzer.js +86 -92
  38. package/dist/analyzers/universal/UniversalSchemaAnalyzer.js.map +1 -1
  39. package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts.map +1 -1
  40. package/dist/analyzers/universal/UniversalStylesAnalyzer.js +6 -5
  41. package/dist/analyzers/universal/UniversalStylesAnalyzer.js.map +1 -1
  42. package/dist/auditRunner.d.ts +16 -1
  43. package/dist/auditRunner.d.ts.map +1 -1
  44. package/dist/auditRunner.js +67 -13
  45. package/dist/auditRunner.js.map +1 -1
  46. package/dist/cli.js +25 -0
  47. package/dist/cli.js.map +1 -1
  48. package/dist/codeIndexDB.d.ts +3 -1
  49. package/dist/codeIndexDB.d.ts.map +1 -1
  50. package/dist/codeIndexDB.js +42 -10
  51. package/dist/codeIndexDB.js.map +1 -1
  52. package/dist/componentScanner.d.ts.map +1 -1
  53. package/dist/componentScanner.js +73 -4
  54. package/dist/componentScanner.js.map +1 -1
  55. package/dist/config/defaults.d.ts +0 -1
  56. package/dist/config/defaults.d.ts.map +1 -1
  57. package/dist/config/defaults.js +1 -3
  58. package/dist/config/defaults.js.map +1 -1
  59. package/dist/dataPaths.d.ts +13 -7
  60. package/dist/dataPaths.d.ts.map +1 -1
  61. package/dist/dataPaths.js +22 -9
  62. package/dist/dataPaths.js.map +1 -1
  63. package/dist/fingerprint.d.ts +2 -11
  64. package/dist/fingerprint.d.ts.map +1 -1
  65. package/dist/fingerprint.js +3 -23
  66. package/dist/fingerprint.js.map +1 -1
  67. package/dist/languages/adapterBridge.d.ts.map +1 -1
  68. package/dist/languages/adapterBridge.js +3 -2
  69. package/dist/languages/adapterBridge.js.map +1 -1
  70. package/dist/reporting/jsonReportGenerator.d.ts.map +1 -1
  71. package/dist/reporting/jsonReportGenerator.js +30 -19
  72. package/dist/reporting/jsonReportGenerator.js.map +1 -1
  73. package/dist/reporting/sarifReportGenerator.d.ts.map +1 -1
  74. package/dist/reporting/sarifReportGenerator.js +8 -0
  75. package/dist/reporting/sarifReportGenerator.js.map +1 -1
  76. package/dist/scripts/runBench.d.ts.map +1 -1
  77. package/dist/scripts/runBench.js +10 -18
  78. package/dist/scripts/runBench.js.map +1 -1
  79. package/dist/services/SchemaParser.d.ts.map +1 -1
  80. package/dist/services/SchemaParser.js +9 -0
  81. package/dist/services/SchemaParser.js.map +1 -1
  82. package/dist/styles/styleIndexer.js +10 -1
  83. package/dist/styles/styleIndexer.js.map +1 -1
  84. package/dist/styles/tailwindConfigLoader.d.ts +6 -0
  85. package/dist/styles/tailwindConfigLoader.d.ts.map +1 -1
  86. package/dist/styles/tailwindConfigLoader.js +58 -16
  87. package/dist/styles/tailwindConfigLoader.js.map +1 -1
  88. package/dist/styles/tailwindProbe.d.ts +54 -7
  89. package/dist/styles/tailwindProbe.d.ts.map +1 -1
  90. package/dist/styles/tailwindProbe.js +188 -47
  91. package/dist/styles/tailwindProbe.js.map +1 -1
  92. package/dist/styles/tailwindUtilityExpander.d.ts +13 -0
  93. package/dist/styles/tailwindUtilityExpander.d.ts.map +1 -1
  94. package/dist/styles/tailwindUtilityExpander.js +59 -0
  95. package/dist/styles/tailwindUtilityExpander.js.map +1 -1
  96. package/dist/types.d.ts +9 -1
  97. package/dist/types.d.ts.map +1 -1
  98. package/dist/types.js.map +1 -1
  99. package/dist/utils/astParser.js +1 -1
  100. package/dist/utils/astParser.js.map +1 -1
  101. package/dist/utils/reactDetection.d.ts +12 -2
  102. package/dist/utils/reactDetection.d.ts.map +1 -1
  103. package/dist/utils/reactDetection.js +62 -15
  104. package/dist/utils/reactDetection.js.map +1 -1
  105. package/package.json +3 -2
  106. package/plugin/.claude-plugin/plugin.json +1 -1
  107. package/plugin/skills/code-auditor/SKILL.md +38 -0
@@ -37,7 +37,7 @@ function isComponentName(name) {
37
37
  /**
38
38
  * Check if a hook name is a built-in React hook
39
39
  */
40
- function isBuiltInHook(hookName) {
40
+ export function isBuiltInHook(hookName) {
41
41
  const builtInHooks = [
42
42
  'useState', 'useEffect', 'useContext', 'useReducer', 'useCallback',
43
43
  'useMemo', 'useRef', 'useImperativeHandle', 'useLayoutEffect',
@@ -155,9 +155,15 @@ export function isClassComponent(node) {
155
155
  // Hook extraction
156
156
  // ---------------------------------------------------------------------------
157
157
  /**
158
- * Extract hooks usage from a component node
158
+ * Extract hooks usage from a component node.
159
+ *
160
+ * @param node The component AST node to scan for hook calls.
161
+ * @param hookUsingFns Optional set of function names declared in the file
162
+ * that call built-in hooks but don't start with 'use'.
163
+ * These are captured so checkHooksRules can flag the
164
+ * naming violation at the call site.
159
165
  */
160
- export function extractHooks(node) {
166
+ export function extractHooks(node, hookUsingFns) {
161
167
  const hooks = [];
162
168
  // Find all call expressions in the component
163
169
  const callExprs = findNodes(node, n => n.type === 'call_expression');
@@ -176,6 +182,34 @@ export function extractHooks(node) {
176
182
  customHook: !isBuiltInHook(name)
177
183
  });
178
184
  }
185
+ else if (hookUsingFns && hookUsingFns.has(name)) {
186
+ // Capture calls to functions that use hooks internally but
187
+ // don't start with 'use' — these are hooks-naming violations.
188
+ const { line } = getLineAndColumn(callee);
189
+ hooks.push({
190
+ name,
191
+ line,
192
+ customHook: true
193
+ });
194
+ }
195
+ }
196
+ else if (callee.type === 'member_expression') {
197
+ // React.useState, React.useEffect, etc.
198
+ // tree-sitter: member_expression = [identifier, '.', property_identifier]
199
+ const object = callee.children?.[0];
200
+ const property = callee.children?.find(c => c.type === 'property_identifier');
201
+ if (object && property &&
202
+ object.type === 'identifier' && rawText(object) === 'React') {
203
+ const name = rawText(property);
204
+ if (name.startsWith('use')) {
205
+ const { line } = getLineAndColumn(callee);
206
+ hooks.push({
207
+ name,
208
+ line,
209
+ customHook: !isBuiltInHook(name)
210
+ });
211
+ }
212
+ }
179
213
  }
180
214
  }
181
215
  return hooks;
@@ -228,13 +262,19 @@ export function extractPropTypes(node) {
228
262
  if (params) {
229
263
  const firstParam = params.children?.[0];
230
264
  if (firstParam) {
231
- // Check for destructured parameter (object pattern)
232
- if (firstParam.type === 'object_pattern' || firstParam.type === 'object_binding_pattern') {
233
- for (const element of firstParam.children ?? []) {
265
+ // Check for destructured parameter (object pattern) — treesitter wraps
266
+ // destructured params in required_parameter, so look inside it.
267
+ const pattern = findChildOfType(firstParam, 'object_pattern') ??
268
+ findChildOfType(firstParam, 'object_binding_pattern');
269
+ if (pattern) {
270
+ for (const element of pattern.children ?? []) {
234
271
  if (element.type !== 'binding_element' && element.type !== 'pair_pattern' &&
235
272
  element.type !== 'shorthand_property_identifier_pattern')
236
273
  continue;
237
- const nameNode = element.children?.find(c => c.type === 'identifier' || c.type === 'property_identifier');
274
+ // shorthand_property_identifier_pattern has no children the name IS the node
275
+ const nameNode = element.type === 'shorthand_property_identifier_pattern'
276
+ ? element
277
+ : element.children?.find(c => c.type === 'identifier' || c.type === 'property_identifier');
238
278
  if (!nameNode)
239
279
  continue;
240
280
  const raw = element.raw;
@@ -258,12 +298,17 @@ export function extractPropTypes(node) {
258
298
  if (params) {
259
299
  const firstParam = params.children?.[0];
260
300
  if (firstParam) {
261
- // Check if parameter is destructured
262
- if (firstParam.type === 'object_pattern' || firstParam.type === 'object_binding_pattern') {
263
- for (const element of firstParam.children ?? []) {
301
+ // Check if parameter is destructured — tree-sitter wraps in required_parameter
302
+ const pattern = findChildOfType(firstParam, 'object_pattern') ??
303
+ findChildOfType(firstParam, 'object_binding_pattern');
304
+ if (pattern) {
305
+ for (const element of pattern.children ?? []) {
264
306
  if (element.type !== 'binding_element' && element.type !== 'shorthand_property_identifier_pattern')
265
307
  continue;
266
- const nameNode = element.children?.find(c => c.type === 'identifier' || c.type === 'property_identifier');
308
+ // shorthand_property_identifier_pattern has no children the name IS the node
309
+ const nameNode = element.type === 'shorthand_property_identifier_pattern'
310
+ ? element
311
+ : element.children?.find(c => c.type === 'identifier' || c.type === 'property_identifier');
267
312
  if (!nameNode)
268
313
  continue;
269
314
  const raw = element.raw;
@@ -277,11 +322,13 @@ export function extractPropTypes(node) {
277
322
  });
278
323
  }
279
324
  }
280
- // Extract props from type annotation on parameter
325
+ // Extract props from type annotation on parameter.
326
+ // tree-sitter wraps type annotations as: ':' (anonymous) + the actual type node.
327
+ // children[0] is the ':' separator, not the type — find object_type specifically.
281
328
  const typeAnnot = findChildOfType(firstParam, 'type_annotation');
282
- if (typeAnnot && typeAnnot.children?.[0]) {
283
- const typeNode = typeAnnot.children[0];
284
- if (typeNode.type === 'object_type' || typeNode.type === 'type_literal') {
329
+ if (typeAnnot) {
330
+ const typeNode = typeAnnot.children?.find(c => c.type === 'object_type' || c.type === 'type_literal');
331
+ if (typeNode) {
285
332
  props.push(...extractPropsFromTypeLiteral(typeNode));
286
333
  }
287
334
  // NOTE: type_reference (interface references) can't be resolved
@@ -1 +1 @@
1
- {"version":3,"file":"reactDetection.js","sourceRoot":"","sources":["../../src/utils/reactDetection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"reactDetection.js","sourceRoot":"","sources":["../../src/utils/reactDetection.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "code-auditor-mcp",
3
- "version": "3.4.7",
3
+ "version": "3.4.9",
4
4
  "description": "Architectural invariants and code quality analysis, enforced inside your AI agent's edit loop. MCP server + CLI + Claude Code plugin. TypeScript, JavaScript, Go.",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -28,9 +28,10 @@
28
28
  "generate": "node dist/cli.js generate-config",
29
29
  "prepublishOnly": "pnpm run build",
30
30
  "test": "vitest run",
31
+ "test:integration": "vitest run --config vitest.integration.config.ts",
31
32
  "test:watch": "vitest watch",
32
33
  "verify:dist": "bash scripts/verify-dist.sh",
33
- "verify:close": "npm run test && npm run verify:dist",
34
+ "verify:close": "npm run test && npm run test:integration && npm run verify:dist",
34
35
  "bench:workers": "tsx src/scripts/benchmarkWorkers.ts",
35
36
  "bench": "node dist/scripts/runBench.js"
36
37
  },
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "code-auditor",
3
3
  "description": "Diff-scoped code quality auditing on every edit. Indexes your codebase, enforces invariants, and feeds violations back to the agent so fixes happen inline.",
4
- "version": "3.4.7",
4
+ "version": "3.4.9",
5
5
  "author": {
6
6
  "name": "Ben Hammond",
7
7
  "email": "ben@benhammond.tech"
@@ -5,6 +5,9 @@ description: Audit code quality, search the codebase semantically, enforce invar
5
5
 
6
6
  # Code Auditor Skill
7
7
 
8
+ > **Version 3.4.8** • Run `code-audit --version` to check your installed version.
9
+ > If versions differ, the CLI is authoritative — use `code-audit <command> --help` to see what your install actually supports.
10
+
8
11
  You have the `code-audit` CLI available. It indexes every function, component, and struct in the codebase for semantic search and invariant enforcement. Use these commands instead of raw grep/find whenever possible.
9
12
 
10
13
  ## When to use which command
@@ -138,6 +141,39 @@ code-audit conventions propose --json # JSON proposal array
138
141
 
139
142
  All convention violations ship at `suggestion` severity by default. Promote them with `severityOverrides` if your team treats them as blocking.
140
143
 
144
+ ### `code-audit hotspots` — identify churn-prone code
145
+
146
+ Hotspots combine version-control churn with code complexity to identify files and functions that have changed frequently and are structurally complex — the strongest predictor of defect density.
147
+
148
+ ```bash
149
+ code-audit hotspots # Rank files and functions by hotspot score
150
+ code-audit hotspots --limit 10 # Top 10 hotspots only
151
+ code-audit hotspots --path . # Trigger on-demand churn extraction if index is empty
152
+ code-audit hotspots --json # Machine-readable JSON output
153
+ ```
154
+
155
+ On first use, run with `--path <dir>` to trigger on-demand churn extraction from git history. If no git repository is available, hotspots gracefully fall back with a warning. Hotspot data persists in the code index across sessions — subsequent runs don't need `--path` unless the git history has changed.
156
+
157
+ Terminal output shows each hotspot's type (file/function), score bar, commit count, author count, and a bus-factor warning when one author owns most changes. JSON output fields: `target`, `type`, `score`, `churnPercentile`, `complexityPercentile`, `commitCount`, `distinctAuthors`, `dominantAuthor`, `dominantAuthorShare`, `busFactorRisk`, `complexity`.
158
+
159
+ ### `code-audit risk` — rank functions by architectural risk
160
+
161
+ Computes a composite risk score from call-graph centrality (PageRank and betweenness), code complexity, and test coverage status. High-risk functions sit at the intersection of "many things depend on this" and "this is complex" — they carry high blast radius when changed.
162
+
163
+ ```bash
164
+ code-audit risk # Rank top 20 functions by architectural risk
165
+ code-audit risk --limit 50 # Top 50 functions
166
+ code-audit risk --path . # Target project directory
167
+ code-audit risk --json # Machine-readable JSON output
168
+ code-audit risk --format dot # Emit DOT call-graph for top functions
169
+ ```
170
+
171
+ Use `--format dot` to generate a directed call-graph diagram (Graphviz DOT format) of the neighborhood around the top-risk functions. Pipe to `dot -Tsvg > graph.svg` for visualization.
172
+
173
+ Terminal output shows rank, function name, file path, PageRank percentile, betweenness percentile, complexity percentile, untested status, and composite risk score. JSON output fields: `functionName`, `filePath`, `pageRankPercentile`, `betweennessPercentile`, `complexityPercentile`, `untested`, `riskScore`.
174
+
175
+ > **Release checklist**: When bumping the version on a release, update the version stamp on line 8 of all three canonical SKILL.md copies. `npm run verify:close` gates on test + integration + dist verification — the tag cannot move without all three green.
176
+
141
177
  ## Interpreting hook feedback
142
178
 
143
179
  When an edit hook blocks your edit with a violation message:
@@ -174,5 +210,7 @@ The hook auto-installs the package via npx on first use — no manual npm step n
174
210
  | Codebase map | `code-audit map -p .` |
175
211
  | Mine conventions | `code-audit conventions list` |
176
212
  | Propose convention rules | `code-audit conventions propose` |
213
+ | Identify hotspots | `code-audit hotspots` |
214
+ | Architectural risk | `code-audit risk` |
177
215
  | Rule reference | See `SKILL-RULE-KINDS.md` |
178
216
  | Search reference | See `SKILL-SEARCH.md` |