code-auditor-mcp 3.4.17 → 3.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (186) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +94 -0
  3. package/README.md +5 -5
  4. package/dist/analyzers/applicability.d.ts +13 -0
  5. package/dist/analyzers/applicability.d.ts.map +1 -1
  6. package/dist/analyzers/applicability.js +37 -0
  7. package/dist/analyzers/applicability.js.map +1 -1
  8. package/dist/analyzers/cross-language/APIContractAnalyzer.d.ts.map +1 -1
  9. package/dist/analyzers/cross-language/APIContractAnalyzer.js +23 -2
  10. package/dist/analyzers/cross-language/APIContractAnalyzer.js.map +1 -1
  11. package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts +52 -9
  12. package/dist/analyzers/cross-language/DependencyGraphBuilder.d.ts.map +1 -1
  13. package/dist/analyzers/cross-language/DependencyGraphBuilder.js +228 -55
  14. package/dist/analyzers/cross-language/DependencyGraphBuilder.js.map +1 -1
  15. package/dist/analyzers/cross-language/SchemaValidator.d.ts +19 -12
  16. package/dist/analyzers/cross-language/SchemaValidator.d.ts.map +1 -1
  17. package/dist/analyzers/cross-language/SchemaValidator.js +78 -111
  18. package/dist/analyzers/cross-language/SchemaValidator.js.map +1 -1
  19. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts +0 -6
  20. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.d.ts.map +1 -1
  21. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js +85 -73
  22. package/dist/analyzers/crossDomain/CrossDomainAnalyzer.js.map +1 -1
  23. package/dist/analyzers/documentationAnalyzer.js +5 -5
  24. package/dist/analyzers/documentationAnalyzer.js.map +1 -1
  25. package/dist/analyzers/invariantsAnalyzer.d.ts.map +1 -1
  26. package/dist/analyzers/invariantsAnalyzer.js +1 -0
  27. package/dist/analyzers/invariantsAnalyzer.js.map +1 -1
  28. package/dist/analyzers/provenance.d.ts +7 -9
  29. package/dist/analyzers/provenance.d.ts.map +1 -1
  30. package/dist/analyzers/provenance.js +88 -124
  31. package/dist/analyzers/provenance.js.map +1 -1
  32. package/dist/analyzers/reactAnalyzer.d.ts.map +1 -1
  33. package/dist/analyzers/reactAnalyzer.js +120 -21
  34. package/dist/analyzers/reactAnalyzer.js.map +1 -1
  35. package/dist/analyzers/ruleRegistry.d.ts +21 -0
  36. package/dist/analyzers/ruleRegistry.d.ts.map +1 -1
  37. package/dist/analyzers/ruleRegistry.js +61 -12
  38. package/dist/analyzers/ruleRegistry.js.map +1 -1
  39. package/dist/analyzers/universal/UniversalConventionsAnalyzer.d.ts.map +1 -1
  40. package/dist/analyzers/universal/UniversalConventionsAnalyzer.js +60 -24
  41. package/dist/analyzers/universal/UniversalConventionsAnalyzer.js.map +1 -1
  42. package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts.map +1 -1
  43. package/dist/analyzers/universal/UniversalDRYAnalyzer.js +5 -2
  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 +173 -56
  47. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -1
  48. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.d.ts +2 -1
  49. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.d.ts.map +1 -1
  50. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js +23 -12
  51. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js.map +1 -1
  52. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts +11 -1
  53. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts.map +1 -1
  54. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js +60 -22
  55. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js.map +1 -1
  56. package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts +2 -3
  57. package/dist/analyzers/universal/UniversalStylesAnalyzer.d.ts.map +1 -1
  58. package/dist/analyzers/universal/UniversalStylesAnalyzer.js +258 -87
  59. package/dist/analyzers/universal/UniversalStylesAnalyzer.js.map +1 -1
  60. package/dist/analyzers/universal/schema/codeAnalysis.d.ts.map +1 -1
  61. package/dist/analyzers/universal/schema/codeAnalysis.js +7 -1
  62. package/dist/analyzers/universal/schema/codeAnalysis.js.map +1 -1
  63. package/dist/analyzers/universal/schema/jsonSchema.js +7 -11
  64. package/dist/analyzers/universal/schema/jsonSchema.js.map +1 -1
  65. package/dist/applyDataDirEnv.js +1 -1
  66. package/dist/applyDataDirEnv.js.map +1 -1
  67. package/dist/auditRouter.d.ts +41 -0
  68. package/dist/auditRouter.d.ts.map +1 -0
  69. package/dist/auditRouter.js +185 -0
  70. package/dist/auditRouter.js.map +1 -0
  71. package/dist/auditRunner.d.ts.map +1 -1
  72. package/dist/auditRunner.js +97 -58
  73. package/dist/auditRunner.js.map +1 -1
  74. package/dist/cli.js +247 -23
  75. package/dist/cli.js.map +1 -1
  76. package/dist/codeIndexDB.d.ts.map +1 -1
  77. package/dist/codeIndexDB.js +36 -2
  78. package/dist/codeIndexDB.js.map +1 -1
  79. package/dist/componentScanner.d.ts.map +1 -1
  80. package/dist/componentScanner.js +7 -2
  81. package/dist/componentScanner.js.map +1 -1
  82. package/dist/config/configLoader.d.ts +9 -0
  83. package/dist/config/configLoader.d.ts.map +1 -1
  84. package/dist/config/configLoader.js +30 -2
  85. package/dist/config/configLoader.js.map +1 -1
  86. package/dist/config/defaults.d.ts.map +1 -1
  87. package/dist/config/defaults.js +10 -3
  88. package/dist/config/defaults.js.map +1 -1
  89. package/dist/dataPaths.d.ts +8 -1
  90. package/dist/dataPaths.d.ts.map +1 -1
  91. package/dist/dataPaths.js +57 -5
  92. package/dist/dataPaths.js.map +1 -1
  93. package/dist/functionScanner.d.ts.map +1 -1
  94. package/dist/functionScanner.js +1 -17
  95. package/dist/functionScanner.js.map +1 -1
  96. package/dist/grammars/tree-sitter-scss.wasm +0 -0
  97. package/dist/invariants/ruleEngine.d.ts +8 -0
  98. package/dist/invariants/ruleEngine.d.ts.map +1 -1
  99. package/dist/invariants/ruleEngine.js +35 -16
  100. package/dist/invariants/ruleEngine.js.map +1 -1
  101. package/dist/languages/LanguageOrchestrator.d.ts +10 -11
  102. package/dist/languages/LanguageOrchestrator.d.ts.map +1 -1
  103. package/dist/languages/LanguageOrchestrator.js +135 -101
  104. package/dist/languages/LanguageOrchestrator.js.map +1 -1
  105. package/dist/languages/RuntimeManager.d.ts +28 -1
  106. package/dist/languages/RuntimeManager.d.ts.map +1 -1
  107. package/dist/languages/RuntimeManager.js +160 -49
  108. package/dist/languages/RuntimeManager.js.map +1 -1
  109. package/dist/languages/go/GoAdapter.d.ts +2 -0
  110. package/dist/languages/go/GoAdapter.d.ts.map +1 -1
  111. package/dist/languages/go/GoAdapter.js +15 -22
  112. package/dist/languages/go/GoAdapter.js.map +1 -1
  113. package/dist/languages/go/analyzer +0 -0
  114. package/dist/languages/go/analyzer-src/analyzer.go +510 -0
  115. package/dist/languages/go/analyzer-src/go.mod +3 -0
  116. package/dist/languages/go/analyzer-src/indexer.go +268 -0
  117. package/dist/languages/go/analyzer-src/parser.go +461 -0
  118. package/dist/languages/go/analyzer-src/solid.go +395 -0
  119. package/dist/languages/go/analyzer-src/testconventions.go +25 -0
  120. package/dist/languages/go/analyzer-src/types.go +148 -0
  121. package/dist/languages/go/go.mod +7 -0
  122. package/dist/languages/go/main.go +203 -0
  123. package/dist/languages/testConventions.d.ts +35 -0
  124. package/dist/languages/testConventions.d.ts.map +1 -0
  125. package/dist/languages/testConventions.js +51 -0
  126. package/dist/languages/testConventions.js.map +1 -0
  127. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts +3 -0
  128. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.d.ts.map +1 -1
  129. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js +25 -18
  130. package/dist/languages/typescript/TreeSitterTypeScriptAdapter.js.map +1 -1
  131. package/dist/mcp-tools/whitelistTools.d.ts +1 -1
  132. package/dist/mcp-tools/workflowGuide.js +3 -3
  133. package/dist/mcp-tools/workflowGuide.js.map +1 -1
  134. package/dist/mcp-tools-shared.d.ts +0 -3
  135. package/dist/mcp-tools-shared.d.ts.map +1 -1
  136. package/dist/mcp-tools-shared.js +24 -128
  137. package/dist/mcp-tools-shared.js.map +1 -1
  138. package/dist/mcp.js +18 -12
  139. package/dist/mcp.js.map +1 -1
  140. package/dist/mcpAuditJobs.d.ts.map +1 -1
  141. package/dist/mcpAuditJobs.js +13 -0
  142. package/dist/mcpAuditJobs.js.map +1 -1
  143. package/dist/mcpAutoIndex.js +1 -1
  144. package/dist/mcpAutoIndex.js.map +1 -1
  145. package/dist/nextFile.d.ts +21 -0
  146. package/dist/nextFile.d.ts.map +1 -0
  147. package/dist/nextFile.js +51 -0
  148. package/dist/nextFile.js.map +1 -0
  149. package/dist/nextFileIncremental.d.ts +141 -0
  150. package/dist/nextFileIncremental.d.ts.map +1 -0
  151. package/dist/nextFileIncremental.js +314 -0
  152. package/dist/nextFileIncremental.js.map +1 -0
  153. package/dist/pipeline.d.ts.map +1 -1
  154. package/dist/pipeline.js +22 -0
  155. package/dist/pipeline.js.map +1 -1
  156. package/dist/pipelineAdapters.d.ts +17 -0
  157. package/dist/pipelineAdapters.d.ts.map +1 -1
  158. package/dist/pipelineAdapters.js +800 -44
  159. package/dist/pipelineAdapters.js.map +1 -1
  160. package/dist/reporting/jsonReportGenerator.d.ts.map +1 -1
  161. package/dist/reporting/jsonReportGenerator.js +11 -30
  162. package/dist/reporting/jsonReportGenerator.js.map +1 -1
  163. package/dist/styles/styleIndexer.d.ts +7 -0
  164. package/dist/styles/styleIndexer.d.ts.map +1 -1
  165. package/dist/styles/styleIndexer.js +44 -61
  166. package/dist/styles/styleIndexer.js.map +1 -1
  167. package/dist/types/crossLanguage.d.ts +1 -0
  168. package/dist/types/crossLanguage.d.ts.map +1 -1
  169. package/dist/types.d.ts +27 -4
  170. package/dist/types.d.ts.map +1 -1
  171. package/dist/types.js.map +1 -1
  172. package/dist/utils/fileDiscovery.d.ts +11 -2
  173. package/dist/utils/fileDiscovery.d.ts.map +1 -1
  174. package/dist/utils/fileDiscovery.js +23 -5
  175. package/dist/utils/fileDiscovery.js.map +1 -1
  176. package/dist/utils/reactDetection.d.ts.map +1 -1
  177. package/dist/utils/reactDetection.js +59 -44
  178. package/dist/utils/reactDetection.js.map +1 -1
  179. package/package.json +31 -27
  180. package/plugin/.claude-plugin/plugin.json +1 -1
  181. package/plugin/README.md +6 -6
  182. package/plugin/hooks/hooks.json +4 -0
  183. package/plugin/scripts/hook-audit.sh +0 -0
  184. package/plugin/scripts/hook-self-audit.sh +107 -0
  185. package/plugin/skills/code-auditor/SKILL-RULE-KINDS.md +55 -7
  186. package/plugin/skills/code-auditor/SKILL.md +22 -23
@@ -115,42 +115,56 @@ export function returnsJSX(node) {
115
115
  export function isClassComponent(node) {
116
116
  if (node.type !== 'class_declaration')
117
117
  return false;
118
- // Check heritage clauses for extends React.Component / PureComponent
118
+ // Check heritage clauses for extends React.Component / PureComponent.
119
+ // tree-sitter-typescript nests heritage as `class_heritage` → `extends_clause`;
120
+ // older grammars used a flat `heritage_clause` — handle both. `implements_clause`
121
+ // must NOT count as a React base (implementing an interface is not extending).
119
122
  for (const child of node.children ?? []) {
120
- if (child.type !== 'heritage_clause')
123
+ if (child.type !== 'class_heritage' && child.type !== 'heritage_clause')
121
124
  continue;
122
- // Check if this is an 'extends' clause (not 'implements')
123
- const raw = child.raw;
124
- if (!raw?.children)
125
- continue;
126
- const isExtends = raw.children.some(c => !c.isNamed && c.type === 'extends');
127
- if (!isExtends)
128
- continue;
129
- // Check each type in the extends clause
130
- for (const typeNode of child.children ?? []) {
131
- if (typeNode.type === 'member_expression') {
132
- // React.Component or React.PureComponent
133
- const parts = typeNode.children ?? [];
134
- if (parts.length >= 2) {
135
- const obj = parts[0];
136
- const prop = parts[parts.length - 1];
137
- if (obj.type === 'identifier' && rawText(obj) === 'React' &&
138
- prop.type === 'property_identifier' &&
139
- (rawText(prop) === 'Component' || rawText(prop) === 'PureComponent')) {
140
- return true;
141
- }
142
- }
143
- }
144
- if (typeNode.type === 'identifier') {
145
- const name = rawText(typeNode);
146
- if (name === 'Component' || name === 'PureComponent') {
125
+ for (const clause of child.children ?? []) {
126
+ if (clause.type !== 'extends_clause')
127
+ continue;
128
+ for (const typeNode of clause.children ?? []) {
129
+ if (isReactComponentBaseType(typeNode))
147
130
  return true;
148
- }
149
131
  }
150
132
  }
151
133
  }
152
134
  return false;
153
135
  }
136
+ /**
137
+ * True when a heritage-clause type names `Component`/`PureComponent`, with or
138
+ * without a `React.` qualifier and with or without generic type arguments
139
+ * (e.g. `Component`, `React.Component`, `Component<Props>`,
140
+ * `React.Component<Props, State>`). `generic_type` (type + `type_arguments`)
141
+ * is otherwise missed — `extends Component<{ children }, State>` was not
142
+ * recognised as a class component, so error boundaries that extend
143
+ * `Component<Props>` were dropped from `detectComponentType`.
144
+ */
145
+ function isReactComponentBaseType(typeNode) {
146
+ // identifier: `Component` / `PureComponent`
147
+ if (typeNode.type === 'identifier') {
148
+ const name = rawText(typeNode);
149
+ return name === 'Component' || name === 'PureComponent';
150
+ }
151
+ // member_expression: `React.Component` / `React.PureComponent`
152
+ if (typeNode.type === 'member_expression') {
153
+ const parts = typeNode.children ?? [];
154
+ const obj = parts[0];
155
+ const prop = parts[parts.length - 1];
156
+ return obj?.type === 'identifier' && rawText(obj) === 'React' &&
157
+ prop?.type === 'property_identifier' &&
158
+ (rawText(prop) === 'Component' || rawText(prop) === 'PureComponent');
159
+ }
160
+ // generic_type: `Component<Props>` / `React.Component<Props>` — the base
161
+ // type name is the first named child, before the `type_arguments`.
162
+ if (typeNode.type === 'generic_type') {
163
+ const name = typeNode.children?.[0];
164
+ return name ? isReactComponentBaseType(name) : false;
165
+ }
166
+ return false;
167
+ }
154
168
  // ---------------------------------------------------------------------------
155
169
  // Hook extraction
156
170
  // ---------------------------------------------------------------------------
@@ -340,21 +354,21 @@ export function extractPropTypes(node) {
340
354
  // For class components, check Props in extends clause
341
355
  if (node.type === 'class_declaration') {
342
356
  for (const child of node.children ?? []) {
343
- if (child.type !== 'heritage_clause')
344
- continue;
345
- const raw = child.raw;
346
- const isExtends = raw?.children?.some(c => !c.isNamed && c.type === 'extends') ?? false;
347
- if (!isExtends)
357
+ if (child.type !== 'class_heritage' && child.type !== 'heritage_clause')
348
358
  continue;
349
- for (const typeNode of child.children ?? []) {
350
- if (typeNode.type === 'generic_type') {
351
- // React.Component<Props> — type_arguments contain the props type
352
- const typeArgs = findChildOfType(typeNode, 'type_arguments');
353
- if (typeArgs?.children) {
354
- const firstArg = typeArgs.children[0];
355
- if (firstArg?.type === 'object_type' || firstArg?.type === 'type_literal') {
356
- props.push(...extractPropsFromTypeLiteral(firstArg));
357
- }
359
+ for (const clause of child.children ?? []) {
360
+ if (clause.type !== 'extends_clause')
361
+ continue;
362
+ // `extends Component<Props>` tree-sitter-typescript puts the base type
363
+ // (`identifier`/`member_expression`) and its `type_arguments` as siblings,
364
+ // not wrapped in a `generic_type`. Only inline object literals are
365
+ // recoverable; `Component<Props>` (a type reference) cannot be resolved
366
+ // without TypeChecker (documented tree-sitter limitation).
367
+ const typeArgs = findChildOfType(clause, 'type_arguments');
368
+ if (typeArgs?.children) {
369
+ const firstArg = typeArgs.children[0];
370
+ if (firstArg?.type === 'object_type' || firstArg?.type === 'type_literal') {
371
+ props.push(...extractPropsFromTypeLiteral(firstArg));
358
372
  }
359
373
  }
360
374
  }
@@ -465,9 +479,10 @@ export function getComponentName(node) {
465
479
  if (nameNode)
466
480
  return rawText(nameNode);
467
481
  }
468
- // Class declaration
482
+ // Class declaration — tree-sitter-typescript names classes with a
483
+ // `type_identifier`, not a plain `identifier`.
469
484
  if (node.type === 'class_declaration') {
470
- const nameNode = findChildOfType(node, 'identifier');
485
+ const nameNode = findChildOfType(node, 'identifier') ?? findChildOfType(node, 'type_identifier');
471
486
  if (nameNode)
472
487
  return rawText(nameNode);
473
488
  }
@@ -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.17",
3
+ "version": "3.5.0",
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",
@@ -10,6 +10,33 @@
10
10
  "code-audit": "dist/cli.js",
11
11
  "code-auditor-mcp": "dist/mcp.js"
12
12
  },
13
+ "scripts": {
14
+ "build": "tsc && pnpm run build:go && pnpm run build:grammars && pnpm run download:natives && pnpm run build:skills",
15
+ "download:natives": "bash scripts/download-natives.sh",
16
+ "build:grammars": "cp node_modules/tree-sitter-typescript/tree-sitter-typescript.wasm node_modules/tree-sitter-typescript/tree-sitter-tsx.wasm node_modules/tree-sitter-javascript/tree-sitter-javascript.wasm node_modules/tree-sitter-go/tree-sitter-go.wasm node_modules/tree-sitter-css/tree-sitter-css.wasm node_modules/tree-sitter-scss/tree-sitter-scss.wasm dist/grammars/",
17
+ "build:skills": "cp -r plugin/skills/* ../skills/",
18
+ "watch": "tsc --watch",
19
+ "dev": "tsx src/cli.ts",
20
+ "dev:server": "tsx --watch src/cli.ts start --rest-api",
21
+ "dev:mcp": "tsx src/mcp.ts",
22
+ "dev:mcp:ui": "tsx src/mcp.ts --ui",
23
+ "audit": "node dist/cli.js",
24
+ "start": "node dist/mcp.js",
25
+ "start:ui": "node dist/mcp.js --ui",
26
+ "start:stdio": "node dist/mcp.js --stdio",
27
+ "start:rest": "node dist/cli.js start --rest-api",
28
+ "generate": "node dist/cli.js generate-config",
29
+ "prepublishOnly": "pnpm run build",
30
+ "test": "vitest run",
31
+ "test:integration": "vitest run --config vitest.integration.config.ts",
32
+ "test:watch": "vitest watch",
33
+ "verify:dist": "npm pack --silent && bash scripts/verify-dist.sh && rm -f code-auditor-mcp-*.tgz",
34
+ "verify:self": "node scripts/verify-self.mjs && node scripts/verify-languages.mjs",
35
+ "verify:languages": "node scripts/verify-languages.mjs",
36
+ "verify:gate-budget": "node scripts/verify-gate-budget.mjs",
37
+ "verify:close": "npm run test && npm run test:integration && npm run verify:gate-budget && npm run verify:dist && npm run verify:self",
38
+ "build:go": "bash scripts/build-go.sh"
39
+ },
13
40
  "keywords": [
14
41
  "mcp",
15
42
  "code-quality",
@@ -27,6 +54,7 @@
27
54
  ],
28
55
  "author": "benahammond",
29
56
  "license": "MIT",
57
+ "packageManager": "pnpm@10.12.1",
30
58
  "engines": {
31
59
  "node": ">=18.0.0"
32
60
  },
@@ -90,29 +118,5 @@
90
118
  "bugs": {
91
119
  "url": "https://github.com/BenAHammond/code-auditor-mcp/issues"
92
120
  },
93
- "homepage": "https://www.codeauditormcp.com/",
94
- "scripts": {
95
- "build": "tsc && pnpm run build:grammars && pnpm run download:natives && pnpm run build:skills",
96
- "download:natives": "bash scripts/download-natives.sh",
97
- "build:grammars": "cp node_modules/tree-sitter-typescript/tree-sitter-typescript.wasm node_modules/tree-sitter-typescript/tree-sitter-tsx.wasm node_modules/tree-sitter-javascript/tree-sitter-javascript.wasm node_modules/tree-sitter-go/tree-sitter-go.wasm node_modules/tree-sitter-css/tree-sitter-css.wasm node_modules/tree-sitter-scss/tree-sitter-scss.wasm dist/grammars/",
98
- "build:skills": "cp -r plugin/skills/* ../skills/",
99
- "watch": "tsc --watch",
100
- "dev": "tsx src/cli.ts",
101
- "dev:server": "tsx --watch src/cli.ts start --rest-api",
102
- "dev:mcp": "tsx src/mcp.ts",
103
- "dev:mcp:ui": "tsx src/mcp.ts --ui",
104
- "audit": "node dist/cli.js",
105
- "start": "node dist/mcp.js",
106
- "start:ui": "node dist/mcp.js --ui",
107
- "start:stdio": "node dist/mcp.js --stdio",
108
- "start:rest": "node dist/cli.js start --rest-api",
109
- "generate": "node dist/cli.js generate-config",
110
- "test": "vitest run",
111
- "test:integration": "vitest run --config vitest.integration.config.ts",
112
- "test:watch": "vitest watch",
113
- "verify:dist": "npm pack --silent && bash scripts/verify-dist.sh && rm -f code-auditor-mcp-*.tgz",
114
- "verify:self": "node scripts/verify-self.mjs",
115
- "verify:gate-budget": "node scripts/verify-gate-budget.mjs",
116
- "verify:close": "npm run test && npm run test:integration && npm run verify:gate-budget && npm run verify:dist && npm run verify:self"
117
- }
118
- }
121
+ "homepage": "https://www.codeauditormcp.com/"
122
+ }
@@ -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.17",
4
+ "version": "3.5.0",
5
5
  "author": {
6
6
  "name": "Ben Hammond",
7
7
  "email": "ben@benhammond.tech"
package/plugin/README.md CHANGED
@@ -17,20 +17,20 @@ If the plugin format iterates in a future Claude Code release, update the manife
17
17
 
18
18
  | Component | Purpose |
19
19
  |-----------|---------|
20
- | `hooks/hooks.json` | `PostToolUse` on `Write\|Edit` → runs `code-audit changed --stdin --json --fail-on critical` |
21
- | `skills/code-auditor/SKILL.md` | Teaches the agent when to use `search`, `definition`, `audit`, `config`, `tasks`, and how to interpret hook feedback |
20
+ | `hooks/hooks.json` | `PostToolUse` on `Write\|Edit` → runs `code-audit changed --stdin --json` |
21
+ | `skills/code-auditor/SKILL.md` | Teaches the agent when to use `search`, `definition`, `audit`, `next-file`, `config`, and how to interpret hook feedback |
22
22
  | `scripts/hook-audit.sh` | Hook script: extracts file path from event JSON, pipes to `code-audit changed`, degrades cleanly when the package isn't installed |
23
23
 
24
24
  **No bundled `.mcp.json`.** The hook calls `code-audit` via the CLI, which resolves through the user's `PATH` (global install or `npx`). We deliberately chose not to bundle an MCP server in the plugin manifest: the skill + CLI path is cheaper — no standing tool-schema token cost on every context window — and equivalent to the MCP surface wherever a shell exists. The standalone MCP server (`npx code-auditor-mcp`) remains available for shell-less hosts or users who prefer the MCP transport.
25
25
 
26
26
  ## The hook
27
27
 
28
- After every Write or Edit, the hook runs `code-audit changed` on the edited file with `--fail-on critical`. The flow:
28
+ After every Write or Edit, the hook runs `code-audit changed` on the edited file. The flow:
29
29
 
30
30
  1. **File edited** → hook fires with the event JSON on stdin
31
- 2. **Hook extracts the file path** and pipes it to `code-audit changed --stdin --json --fail-on critical`
32
- 3. **No critical violations** → exit 0, agent continues
33
- 4. **Critical violation found** → exit 2, violation JSON is fed back to the agent, agent reads the invariant's `message` and fixes the violation
31
+ 2. **Hook extracts the file path** and pipes it to `code-audit changed --stdin --json`
32
+ 3. **No gating violations** → exit 0, agent continues
33
+ 4. **Gating violation found** → exit 2, violation JSON is fed back to the agent, agent reads the invariant's `message` and fixes the violation
34
34
  5. **code-audit not installed** → exit 0 with one-line notice, agent continues uninterrupted
35
35
 
36
36
  ### Disabling the hook
@@ -7,6 +7,10 @@
7
7
  {
8
8
  "type": "command",
9
9
  "command": "if [ -z \"${CLAUDE_PLUGIN_ROOT}\" ]; then echo '[code-auditor] CLAUDE_PLUGIN_ROOT is unset; audit hook did not run' >&2; exit 1; fi; \"${CLAUDE_PLUGIN_ROOT}\"/scripts/hook-audit.sh"
10
+ },
11
+ {
12
+ "type": "command",
13
+ "command": "if [ -z \"${CLAUDE_PLUGIN_ROOT}\" ]; then echo '[code-auditor] CLAUDE_PLUGIN_ROOT is unset; self-audit hook did not run' >&2; exit 1; fi; \"${CLAUDE_PLUGIN_ROOT}\"/scripts/hook-self-audit.sh"
10
14
  }
11
15
  ]
12
16
  }
File without changes
@@ -0,0 +1,107 @@
1
+ #!/usr/bin/env bash
2
+ # code-auditor PostToolUse self-audit hook — enforce the self-audit scope
3
+ # (analyzers/ + languages/) at edit time, not just at release (Spec 33 Item 15).
4
+ #
5
+ # Reads the PostToolUse event JSON from stdin, extracts the edited file path,
6
+ # and — only when that file is production source in the self-audit scope — runs
7
+ # `code-audit self-audit --stdin --json` against it. Exit code 2 blocks the edit
8
+ # and feeds the finding JSON back to the agent.
9
+ #
10
+ # This hook is a no-op for every edit outside the self-audit scope (consumer
11
+ # projects, tests, fixtures, and the declarative ruleRegistry table), so it adds
12
+ # no latency to ordinary edits. It runs *in addition to* hook-audit.sh, whose
13
+ # diff-gate enforces invariant rules on every edit.
14
+ set -euo pipefail
15
+
16
+ # Read event JSON from stdin
17
+ event="$(cat)"
18
+
19
+ # Extract the file path from the tool input (Write and Edit both use file_path)
20
+ file="$(node -e "
21
+ try {
22
+ var d = JSON.parse(require('fs').readFileSync('/dev/stdin','utf8'));
23
+ process.stdout.write(d.tool_input?.file_path || d.tool_input?.path || '');
24
+ } catch(e) { process.stdout.write(''); }
25
+ " <<< "${event}")"
26
+
27
+ # No file path in the event — nothing to audit
28
+ if [ -z "${file}" ]; then
29
+ exit 0
30
+ fi
31
+
32
+ # Normalize the edited file to an absolute path (absolute paths pass through;
33
+ # relative paths resolve against the current working directory).
34
+ case "${file}" in
35
+ /*) file_abs="${file}" ;;
36
+ *) file_abs="$(cd "$(dirname "${file}")" 2>/dev/null && pwd)/$(basename "${file}")" ;;
37
+ esac
38
+
39
+ # Out-of-repo edit no-op (Spec 35 item 9): an edit outside the audited project
40
+ # must not error the hook.
41
+ if [ -n "${CLAUDE_PROJECT_DIR:-}" ]; then
42
+ project_abs="$(cd "${CLAUDE_PROJECT_DIR}" 2>/dev/null && pwd)" || project_abs="${CLAUDE_PROJECT_DIR%/}"
43
+ case "${file_abs}" in
44
+ "${project_abs}"/*) : ;; # inside the project — continue
45
+ *) exit 0 ;; # outside — nothing to self-audit
46
+ esac
47
+ fi
48
+
49
+ # Self-audit scope gate: only production files under src/analyzers/ or
50
+ # src/languages/ are self-audit targets. Everything else — every file in a
51
+ # consumer repo, plus this repo's tests, specs, fixtures, and the declarative
52
+ # ruleRegistry.ts data table — is a no-op. The `self-audit` command re-checks
53
+ # this scope on the reported finding paths, so this is only a cheap pre-filter
54
+ # to keep the hook off the hot path for ordinary edits.
55
+ case "${file_abs}" in
56
+ *"/src/analyzers/"*|*"/src/languages/"*) : ;;
57
+ *) exit 0 ;;
58
+ esac
59
+ case "${file_abs}" in
60
+ *"__tests__"*|*".test."*|*".spec."*|*"fixtures"*|*"ruleRegistry.ts"*) exit 0 ;;
61
+ esac
62
+
63
+ # Resolve the code-audit binary. The `self-audit` command is new in 3.5.0, so a
64
+ # stale PATH/global binary would silently lack it — prefer the plugin's own
65
+ # bundled CLI first (guaranteed to be the version that ships with this hook),
66
+ # then fall back to project-local → PATH → npx auto-install.
67
+ resolve_code_audit() {
68
+ # 1. The plugin's own bundled CLI (ships alongside this script in the package;
69
+ # dist/cli.js is the `code-audit` bin target, so npm marks it executable).
70
+ if [ -n "${CLAUDE_PLUGIN_ROOT:-}" ] && [ -f "${CLAUDE_PLUGIN_ROOT}/../dist/cli.js" ]; then
71
+ echo "${CLAUDE_PLUGIN_ROOT}/../dist/cli.js"
72
+ return
73
+ fi
74
+ # 2. Project-local install (consumer project's own node_modules).
75
+ if [ -n "${CLAUDE_PROJECT_DIR:-}" ] && [ -x "${CLAUDE_PROJECT_DIR}/node_modules/.bin/code-audit" ]; then
76
+ echo "${CLAUDE_PROJECT_DIR}/node_modules/.bin/code-audit"
77
+ return
78
+ fi
79
+ # 3. Global install or PATH.
80
+ if command -v code-audit &>/dev/null; then
81
+ echo "code-audit"
82
+ return
83
+ fi
84
+ # 4. npx auto-install (first use downloads the package; subsequent runs use the npx cache).
85
+ echo "npx -y -p code-auditor-mcp@^3.0.0 code-audit"
86
+ }
87
+ CODE_AUDIT_BIN="$(resolve_code_audit)"
88
+
89
+ # Run the self-audit on the edited file. stdout/stderr are fed back to the agent.
90
+ set +e
91
+ if [ -n "${CLAUDE_PROJECT_DIR:-}" ]; then
92
+ echo "${file_abs}" | ${CODE_AUDIT_BIN} self-audit --stdin --json -p "${CLAUDE_PROJECT_DIR}"
93
+ else
94
+ echo "${file_abs}" | ${CODE_AUDIT_BIN} self-audit --stdin --json
95
+ fi
96
+ exit_code=$?
97
+ set -e
98
+
99
+ # Exit code 2 = a blocking self-audit finding; let it propagate so Claude Code
100
+ # feeds the finding back to the agent.
101
+ if [ ${exit_code} -eq 2 ]; then
102
+ exit 2
103
+ fi
104
+
105
+ # Non-zero exit (npx auto-install failure, network issue, etc.) degrades
106
+ # gracefully — never wedge the agent loop.
107
+ exit 0
@@ -1,6 +1,6 @@
1
1
  # Invariant Rule Kinds
2
2
 
3
- Five rule kinds are available in `.codeauditor.json`. Rules are validated at startup — bad configs fail the audit, not silently skipped.
3
+ Seven rule kinds are available in `.codeauditor.json`. Rules are validated at startup — bad configs fail the audit, not silently skipped.
4
4
 
5
5
  ## Rule Kinds
6
6
 
@@ -139,13 +139,61 @@ With language and path constraints:
139
139
 
140
140
  `$$$` matches zero or more nodes (like `...` in rest patterns). `$$$ARGS` is a named meta-variable. See the [ast-grep pattern guide](https://ast-grep.github.io/guide/pattern-syntax.html) for full syntax.
141
141
 
142
+ ### `style-mechanism`
143
+
144
+ Enforce which styling mechanisms are allowed in files matching an optional `path` glob. A style declaration using an unapproved mechanism is flagged.
145
+
146
+ ```json
147
+ {
148
+ "id": "tailwind-only-in-components",
149
+ "kind": "style-mechanism",
150
+ "severity": "warning",
151
+ "allow": ["tailwind"],
152
+ "path": "src/components/**",
153
+ "message": "Only Tailwind utilities in src/components/ — use the project's CSS modules elsewhere"
154
+ }
155
+ ```
156
+
157
+ `allow` lists the permitted mechanisms (`tailwind`, `css-modules`, `styled-components`, `inline`, `css`). `path` is optional — omit it to apply the rule to every file.
158
+
159
+ ### `no-raw-values`
160
+
161
+ Require designated CSS properties to reference a design token instead of a raw value. A declaration whose normalized value has no token reference (and is not in `allowValues`) is flagged.
162
+
163
+ ```json
164
+ {
165
+ "id": "no-raw-colors-in-pages",
166
+ "kind": "no-raw-values",
167
+ "severity": "warning",
168
+ "properties": ["color", "background-color"],
169
+ "allowValues": ["inherit", "transparent"],
170
+ "path": "src/pages/**",
171
+ "message": "No raw colors in src/pages/ — use design tokens"
172
+ }
173
+ ```
174
+
175
+ `properties` lists the CSS properties to check. `allowValues` names values that are always permitted without a token reference. `path` is optional.
176
+
142
177
  ## Severity Levels
143
178
 
144
- | Severity | Meaning | Hook behavior |
145
- |----------|---------|---------------|
146
- | `critical` | Security vulnerabilities, data loss risks | Blocks the edit (`--fail-on critical`) |
147
- | `warning` | Architecture violations, tech debt | Non-blocking; still reported |
148
- | `suggestion` | Style issues, minor improvements | Non-blocking; informational |
179
+ Severity ranks how urgent a finding is to fix. It never decides whether a
180
+ finding is real, and it never licenses leaving one unresolved. Whether an edit
181
+ is *blocked* is a separate axis: the edit hook gates on invariant rules that
182
+ declare `gating: true` (a binary, per-rule flag), not on severity.
183
+
184
+ | Severity | What it means |
185
+ |----------|---------------|
186
+ | `critical` | Security vulnerabilities, data-loss risks |
187
+ | `warning` | Architecture violations, tech debt, missing documentation |
188
+ | `suggestion` | Smaller defects — naming, conventions, minor correctness |
189
+
190
+ > **Severity ranks urgency, never whether a finding is real.** There is no
191
+ > "noise" tier — every finding is a defect to resolve. A finding that does not
192
+ > block the edit still fails the review unless it is fixed, or the rule that
193
+ > produces it is edited in `.codeauditor.json`. There is no "waive" — a finding
194
+ > leaves the queue only by being resolved or by changing the rule that fires it.
195
+ > Documentation findings are not stylistic: missing
196
+ > JSDoc is a maintainability defect, not a nicety.
149
197
 
150
198
  ## Validation
151
199
 
@@ -153,7 +201,7 @@ Rules are validated against `invariant-rules.schema.json` on startup. Common err
153
201
 
154
202
  - **Missing required field**: each kind has required fields (e.g., `import-ban` requires `module`)
155
203
  - **Invalid severity**: must be one of `critical`, `warning`, `suggestion`
156
- - **Invalid kind**: must be one of the five kinds above
204
+ - **Invalid kind**: must be one of the seven kinds above
157
205
  - **Both allowFrom and denyFrom**: `call-constraint` requires exactly one
158
206
  - **Empty pattern**: `ast-pattern` requires a non-empty `pattern` string
159
207
  - **Invalid language**: `ast-pattern` language must be `typescript`, `javascript`, or `go`
@@ -38,12 +38,25 @@ Run an audit before declaring a task complete:
38
38
 
39
39
  ```bash
40
40
  code-audit audit --path . # Full audit
41
- code-audit changed --json --fail-on critical # Diff-scoped audit (hook contract)
41
+ code-audit changed --json # Diff-scoped audit (hook contract)
42
42
  ```
43
43
 
44
- Use `code-audit changed` after edits to confirm you haven't introduced violations. If the hook is active it already runs `code-audit changed --fail-on critical` automatically on Write/Edit — pay attention to its output.
44
+ Use `code-audit changed` after edits to confirm you haven't introduced violations. If the hook is active it already runs `code-audit changed` automatically on Write/Edit — pay attention to its output.
45
45
 
46
- Expected output: JSON violation list (with `--json`) or colored terminal summary. Non-zero exit code means violations at or above `--fail-on` severity were found.
46
+ **Every finding is a defect to resolve, not a suggestion to weigh.** After a full audit, work the violations in severity order — criticals first, then warnings, then suggestions — and fix them all. Severity ranks urgency, never whether a finding is real; there is no "noise" tier. Documentation findings (missing JSDoc) are maintainability defects, not stylistic niceties. If you choose not to fix one, record why before moving on never silently dismiss it.
47
+
48
+ Expected output: JSON violation list (with `--json`) or colored terminal summary. The full `audit` command exits non-zero when violations at or above `--fail-on` severity exist; the diff-scoped `changed` hook gates on per-rule `gating: true` flags, not severity.
49
+
50
+ ### `code-audit next-file` — fix violations one file at a time
51
+
52
+ ```bash
53
+ code-audit next-file --path . # Highest-priority file + all its findings
54
+ code-audit next-file --path . --json # Machine-readable
55
+ ```
56
+
57
+ This is the refactoring loop. `next-file` audits the project and returns the single highest-priority file — ranked by highest-severity finding, then total finding count — with every finding on it, ordered critical → warning → suggestion. Fix that file, then run it again: a still-broken file comes back, otherwise the next-worst file surfaces. `{done:true}` means the tree is clean.
58
+
59
+ There is **no skip or decline affordance**. A finding leaves the queue only by being fixed, or by editing the rule that produces it in `.codeauditor.json` (your rules editor). If a rule keeps firing on something you judge correct, change the rule — never work around it.
47
60
 
48
61
  ### `code-audit config` — know the project's laws
49
62
 
@@ -77,20 +90,6 @@ A **built-in** `scripts-and-tests` profile ships with every install — it exclu
77
90
 
78
91
  Invariant violations are **immune** to path profile gate exclusion — invariants enforce declared laws and always block.
79
92
 
80
- ### `code-audit tasks` — queue remediation work
81
-
82
- ```bash
83
- code-audit tasks list # List all tasks
84
- code-audit tasks create --title "Fix SQL injection" --priority high
85
- code-audit tasks get <taskId> # Get task details
86
- code-audit tasks update <taskId> --status in_progress
87
- code-audit tasks complete <taskId> # Mark task done
88
- code-audit tasks delete <taskId> # Delete a task
89
- code-audit tasks from-audit # Create tasks from audit violations
90
- ```
91
-
92
- Use `tasks from-audit` to convert audit violations into a tracked task list. This lets you triage findings: fix criticals now, file warnings for later, dismiss suggestions. Tasks carry fingerprints so duplicates are automatically deduplicated across audit runs.
93
-
94
93
  ### `code-audit index` — refresh the index after structural changes
95
94
 
96
95
  ```bash
@@ -139,7 +138,7 @@ code-audit conventions propose --json # JSON proposal array
139
138
 
140
139
  **Usage:** Run a full audit or `code-audit index sync` to mine conventions from the codebase index. Then `code-audit conventions list` to see what was found, and `code-audit conventions propose` to get the rules. Paste the proposals into the `rules` array in `.codeauditor.json`.
141
140
 
142
- All convention violations ship at `suggestion` severity by default. Promote them with `severityOverrides` if your team treats them as blocking.
141
+ Convention violations ship at `suggestion` severity by default. Severity ranks how a finding blocks the edit gate, not whether it matters — resolve suggestions the same way you resolve warnings, and promote them with `severityOverrides` if your team wants them to block edits too.
143
142
 
144
143
  ### `code-audit hotspots` — identify churn-prone code
145
144
 
@@ -181,14 +180,14 @@ When an edit hook blocks your edit with a violation message:
181
180
  1. **Read the violation** — it includes the invariant rule's `message` field explaining *why* the edit was blocked
182
181
  2. **Fix the violation** — change your approach to comply with the invariant
183
182
  3. **Do NOT retry the same edit** — the hook will block it again
184
- 4. The hook runs `code-audit changed --fail-on critical`, so only critical-severity invariant violations block edits. Warnings and suggestions pass through as non-blocking outputstill worth fixing.
183
+ 4. The hook runs `code-audit changed`, and its gate is binary and per-rule: an invariant rule blocks the edit only if it declares `gating: true` (regardless of severity). Warnings and suggestions are still violations and must be fixed they pass the gate, they are not resolved.
185
184
 
186
185
  The hook auto-installs the package via npx on first use — no manual npm step needed. If the hook reports `[code-auditor] code-audit could not run`, the npx auto-install failed (network, unsupported platform). The agent should try again; if it persists, `npm install code-auditor-mcp` is the manual fix.
187
186
 
188
187
  ## Host-specific notes
189
188
 
190
- - **Claude Code**: This skill is bundled in the `code-auditor` plugin (`claude plugin install code-auditor`). The plugin also ships a `PostToolUse` hook on `Write|Edit` that runs `code-audit changed --fail-on critical` automatically — the hook feedback section above describes that behavior. The MCP server is available as `mcp__code-auditor__*` tools for shell-less use.
191
- - **Cursor**: Skill install via `code-audit install --agent cursor`. Cursor's `afterFileEdit` hook is advisory (fires after the edit; cannot block retroactively) violations are reported through the strongest available feedback channel.
189
+ - **Claude Code**: This skill is bundled in the `code-auditor` plugin (`claude plugin install code-auditor`). The plugin also ships a `PostToolUse` hook on `Write|Edit` that runs `code-audit changed` automatically — the hook feedback section above describes that behavior. The MCP server is available as `mcp__code-auditor__*` tools for shell-less use.
190
+ - **Cursor**: Skill install via `code-audit install --agent cursor`. Cursor's `afterFileEdit` hook fires after the edit and cannot block retroactively, so violations are reported through the strongest available feedback channel — fix them even though the edit already landed.
192
191
  - **Codex**: Skill install via `code-audit install --agent codex`. Codex's `PostToolUse` hook provides blocking feedback via exit code 2, replacing the tool result with violation messages.
193
192
  - **Gemini CLI**: Skill install only (`code-audit install --agent gemini`). No hook system exists; MCP covers shell-less use.
194
193
  - **Other SKILL.md-compliant tools**: Install via `code-audit install --agent agents`. The skill teaches the `code-audit` CLI, which is identical everywhere. The MCP server is the shell-less side door.
@@ -201,11 +200,11 @@ The hook auto-installs the package via npx on first use — no manual npm step n
201
200
  | Find by import | `code-audit search "dep:<module>"` |
202
201
  | Complex functions | `code-audit search "lang:go complexity:>10"` |
203
202
  | Look up symbol | `code-audit search --definition "<name>"` |
204
- | Diff-scoped audit | `code-audit changed --json --fail-on critical` |
203
+ | Diff-scoped audit | `code-audit changed --json` |
205
204
  | List invariant rules | `code-audit config rules-list` |
206
205
  | Inspect path profiles | `code-audit config profiles` |
207
206
  | Resolve file profiles | `code-audit config profiles --file <path>` |
208
- | Triage violations | `code-audit tasks from-audit` |
207
+ | Next file to fix | `code-audit next-file` |
209
208
  | Sync index | `code-audit index sync --path .` |
210
209
  | Codebase map | `code-audit map -p .` |
211
210
  | Mine conventions | `code-audit conventions list` |