code-auditor-mcp 3.0.6 → 3.1.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 (197) hide show
  1. package/.claude-plugin/marketplace.json +1 -1
  2. package/CHANGELOG.md +245 -0
  3. package/README.md +55 -1
  4. package/dist/analyzers/__tests__/fixtures/spec-17/anonymous-callback-map.d.ts +21 -0
  5. package/dist/analyzers/__tests__/fixtures/spec-17/anonymous-callback-map.d.ts.map +1 -0
  6. package/dist/analyzers/__tests__/fixtures/spec-17/anonymous-callback-map.js +21 -0
  7. package/dist/analyzers/__tests__/fixtures/spec-17/anonymous-callback-map.js.map +1 -0
  8. package/dist/analyzers/__tests__/fixtures/spec-17/barrel-test-migration.d.ts +13 -0
  9. package/dist/analyzers/__tests__/fixtures/spec-17/barrel-test-migration.d.ts.map +1 -0
  10. package/dist/analyzers/__tests__/fixtures/spec-17/barrel-test-migration.js +12 -0
  11. package/dist/analyzers/__tests__/fixtures/spec-17/barrel-test-migration.js.map +1 -0
  12. package/dist/analyzers/__tests__/fixtures/spec-17/direct-access-allow-config.d.ts +11 -0
  13. package/dist/analyzers/__tests__/fixtures/spec-17/direct-access-allow-config.d.ts.map +1 -0
  14. package/dist/analyzers/__tests__/fixtures/spec-17/direct-access-allow-config.js +22 -0
  15. package/dist/analyzers/__tests__/fixtures/spec-17/direct-access-allow-config.js.map +1 -0
  16. package/dist/analyzers/__tests__/fixtures/spec-17/exported-undocumented.d.ts +9 -0
  17. package/dist/analyzers/__tests__/fixtures/spec-17/exported-undocumented.d.ts.map +1 -0
  18. package/dist/analyzers/__tests__/fixtures/spec-17/exported-undocumented.js +13 -0
  19. package/dist/analyzers/__tests__/fixtures/spec-17/exported-undocumented.js.map +1 -0
  20. package/dist/analyzers/__tests__/fixtures/spec-17/for-loop-query.d.ts +13 -0
  21. package/dist/analyzers/__tests__/fixtures/spec-17/for-loop-query.d.ts.map +1 -0
  22. package/dist/analyzers/__tests__/fixtures/spec-17/for-loop-query.js +18 -0
  23. package/dist/analyzers/__tests__/fixtures/spec-17/for-loop-query.js.map +1 -0
  24. package/dist/analyzers/__tests__/fixtures/spec-17/import-node-builtin.d.ts +10 -0
  25. package/dist/analyzers/__tests__/fixtures/spec-17/import-node-builtin.d.ts.map +1 -0
  26. package/dist/analyzers/__tests__/fixtures/spec-17/import-node-builtin.js +16 -0
  27. package/dist/analyzers/__tests__/fixtures/spec-17/import-node-builtin.js.map +1 -0
  28. package/dist/analyzers/__tests__/fixtures/spec-17/jsx-event-handler.d.ts +14 -0
  29. package/dist/analyzers/__tests__/fixtures/spec-17/jsx-event-handler.d.ts.map +1 -0
  30. package/dist/analyzers/__tests__/fixtures/spec-17/jsx-event-handler.js +18 -0
  31. package/dist/analyzers/__tests__/fixtures/spec-17/jsx-event-handler.js.map +1 -0
  32. package/dist/analyzers/__tests__/fixtures/spec-17/nested-loops-query.d.ts +13 -0
  33. package/dist/analyzers/__tests__/fixtures/spec-17/nested-loops-query.d.ts.map +1 -0
  34. package/dist/analyzers/__tests__/fixtures/spec-17/nested-loops-query.js +22 -0
  35. package/dist/analyzers/__tests__/fixtures/spec-17/nested-loops-query.js.map +1 -0
  36. package/dist/analyzers/__tests__/fixtures/spec-17/nine-line-repeated.d.ts +10 -0
  37. package/dist/analyzers/__tests__/fixtures/spec-17/nine-line-repeated.d.ts.map +1 -0
  38. package/dist/analyzers/__tests__/fixtures/spec-17/nine-line-repeated.js +20 -0
  39. package/dist/analyzers/__tests__/fixtures/spec-17/nine-line-repeated.js.map +1 -0
  40. package/dist/analyzers/__tests__/fixtures/spec-17/private-methods.d.ts +18 -0
  41. package/dist/analyzers/__tests__/fixtures/spec-17/private-methods.d.ts.map +1 -0
  42. package/dist/analyzers/__tests__/fixtures/spec-17/private-methods.js +28 -0
  43. package/dist/analyzers/__tests__/fixtures/spec-17/private-methods.js.map +1 -0
  44. package/dist/analyzers/__tests__/fixtures/spec-17/scope-all-config.d.ts +11 -0
  45. package/dist/analyzers/__tests__/fixtures/spec-17/scope-all-config.d.ts.map +1 -0
  46. package/dist/analyzers/__tests__/fixtures/spec-17/scope-all-config.js +31 -0
  47. package/dist/analyzers/__tests__/fixtures/spec-17/scope-all-config.js.map +1 -0
  48. package/dist/analyzers/__tests__/fixtures/spec-17/sql-tagged-template.d.ts +11 -0
  49. package/dist/analyzers/__tests__/fixtures/spec-17/sql-tagged-template.d.ts.map +1 -0
  50. package/dist/analyzers/__tests__/fixtures/spec-17/sql-tagged-template.js +18 -0
  51. package/dist/analyzers/__tests__/fixtures/spec-17/sql-tagged-template.js.map +1 -0
  52. package/dist/analyzers/__tests__/fixtures/spec-17/structural-similar-methods.d.ts +13 -0
  53. package/dist/analyzers/__tests__/fixtures/spec-17/structural-similar-methods.d.ts.map +1 -0
  54. package/dist/analyzers/__tests__/fixtures/spec-17/structural-similar-methods.js +61 -0
  55. package/dist/analyzers/__tests__/fixtures/spec-17/structural-similar-methods.js.map +1 -0
  56. package/dist/analyzers/__tests__/fixtures/spec-17/template-prefix-table.d.ts +10 -0
  57. package/dist/analyzers/__tests__/fixtures/spec-17/template-prefix-table.d.ts.map +1 -0
  58. package/dist/analyzers/__tests__/fixtures/spec-17/template-prefix-table.js +15 -0
  59. package/dist/analyzers/__tests__/fixtures/spec-17/template-prefix-table.js.map +1 -0
  60. package/dist/analyzers/__tests__/fixtures/spec-17/token-identical-20-lines.d.ts +11 -0
  61. package/dist/analyzers/__tests__/fixtures/spec-17/token-identical-20-lines.d.ts.map +1 -0
  62. package/dist/analyzers/__tests__/fixtures/spec-17/token-identical-20-lines.js +49 -0
  63. package/dist/analyzers/__tests__/fixtures/spec-17/token-identical-20-lines.js.map +1 -0
  64. package/dist/analyzers/__tests__/fixtures/spec-17/tsx-no-db-usage.d.ts +10 -0
  65. package/dist/analyzers/__tests__/fixtures/spec-17/tsx-no-db-usage.d.ts.map +1 -0
  66. package/dist/analyzers/__tests__/fixtures/spec-17/tsx-no-db-usage.js +19 -0
  67. package/dist/analyzers/__tests__/fixtures/spec-17/tsx-no-db-usage.js.map +1 -0
  68. package/dist/analyzers/__tests__/fixtures/spec-17/twenty-methods-vs-complex.d.ts +37 -0
  69. package/dist/analyzers/__tests__/fixtures/spec-17/twenty-methods-vs-complex.d.ts.map +1 -0
  70. package/dist/analyzers/__tests__/fixtures/spec-17/twenty-methods-vs-complex.js +73 -0
  71. package/dist/analyzers/__tests__/fixtures/spec-17/twenty-methods-vs-complex.js.map +1 -0
  72. package/dist/analyzers/__tests__/fixtures/spec-17/unique-method-74-lines.d.ts +12 -0
  73. package/dist/analyzers/__tests__/fixtures/spec-17/unique-method-74-lines.d.ts.map +1 -0
  74. package/dist/analyzers/__tests__/fixtures/spec-17/unique-method-74-lines.js +82 -0
  75. package/dist/analyzers/__tests__/fixtures/spec-17/unique-method-74-lines.js.map +1 -0
  76. package/dist/analyzers/__tests__/fixtures/spec-17/word-the-in-comment.d.ts +10 -0
  77. package/dist/analyzers/__tests__/fixtures/spec-17/word-the-in-comment.d.ts.map +1 -0
  78. package/dist/analyzers/__tests__/fixtures/spec-17/word-the-in-comment.js +15 -0
  79. package/dist/analyzers/__tests__/fixtures/spec-17/word-the-in-comment.js.map +1 -0
  80. package/dist/analyzers/cross-language/APIContractAnalyzer.js +3 -3
  81. package/dist/analyzers/cross-language/APIContractAnalyzer.js.map +1 -1
  82. package/dist/analyzers/cross-language/CrossLanguageSOLIDAnalyzer.js +1 -1
  83. package/dist/analyzers/cross-language/CrossLanguageSOLIDAnalyzer.js.map +1 -1
  84. package/dist/analyzers/cross-language/DependencyGraphBuilder.js +2 -2
  85. package/dist/analyzers/cross-language/DependencyGraphBuilder.js.map +1 -1
  86. package/dist/analyzers/cross-language/SchemaValidator.js +2 -2
  87. package/dist/analyzers/cross-language/SchemaValidator.js.map +1 -1
  88. package/dist/analyzers/reactAnalyzer.js +7 -22
  89. package/dist/analyzers/reactAnalyzer.js.map +1 -1
  90. package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts +40 -2
  91. package/dist/analyzers/universal/UniversalDRYAnalyzer.d.ts.map +1 -1
  92. package/dist/analyzers/universal/UniversalDRYAnalyzer.js +186 -29
  93. package/dist/analyzers/universal/UniversalDRYAnalyzer.js.map +1 -1
  94. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts +30 -0
  95. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.d.ts.map +1 -1
  96. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js +164 -11
  97. package/dist/analyzers/universal/UniversalDataAccessAnalyzer.js.map +1 -1
  98. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.d.ts +51 -7
  99. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.d.ts.map +1 -1
  100. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js +354 -48
  101. package/dist/analyzers/universal/UniversalDocumentationAnalyzer.js.map +1 -1
  102. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts +8 -4
  103. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.d.ts.map +1 -1
  104. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js +51 -38
  105. package/dist/analyzers/universal/UniversalSOLIDAnalyzer.js.map +1 -1
  106. package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts +59 -39
  107. package/dist/analyzers/universal/UniversalSchemaAnalyzer.d.ts.map +1 -1
  108. package/dist/analyzers/universal/UniversalSchemaAnalyzer.js +412 -153
  109. package/dist/analyzers/universal/UniversalSchemaAnalyzer.js.map +1 -1
  110. package/dist/auditRunner.d.ts.map +1 -1
  111. package/dist/auditRunner.js +26 -2
  112. package/dist/auditRunner.js.map +1 -1
  113. package/dist/cli.js +51 -0
  114. package/dist/cli.js.map +1 -1
  115. package/dist/config/defaults.d.ts +32 -0
  116. package/dist/config/defaults.d.ts.map +1 -1
  117. package/dist/config/defaults.js +62 -4
  118. package/dist/config/defaults.js.map +1 -1
  119. package/dist/generators/AWSQConfigGenerator.d.ts +20 -0
  120. package/dist/generators/AWSQConfigGenerator.d.ts.map +1 -1
  121. package/dist/generators/AWSQConfigGenerator.js +48 -19
  122. package/dist/generators/AWSQConfigGenerator.js.map +1 -1
  123. package/dist/generators/AiderConfigGenerator.d.ts +18 -0
  124. package/dist/generators/AiderConfigGenerator.d.ts.map +1 -1
  125. package/dist/generators/AiderConfigGenerator.js +48 -10
  126. package/dist/generators/AiderConfigGenerator.js.map +1 -1
  127. package/dist/generators/ClaudeConfigGenerator.d.ts +9 -3
  128. package/dist/generators/ClaudeConfigGenerator.d.ts.map +1 -1
  129. package/dist/generators/ClaudeConfigGenerator.js +30 -42
  130. package/dist/generators/ClaudeConfigGenerator.js.map +1 -1
  131. package/dist/generators/ClineConfigGenerator.d.ts +13 -0
  132. package/dist/generators/ClineConfigGenerator.d.ts.map +1 -1
  133. package/dist/generators/ClineConfigGenerator.js +44 -11
  134. package/dist/generators/ClineConfigGenerator.js.map +1 -1
  135. package/dist/generators/CodeiumConfigGenerator.d.ts +15 -0
  136. package/dist/generators/CodeiumConfigGenerator.d.ts.map +1 -1
  137. package/dist/generators/CodeiumConfigGenerator.js +45 -15
  138. package/dist/generators/CodeiumConfigGenerator.js.map +1 -1
  139. package/dist/generators/CodexConfigGenerator.d.ts +29 -0
  140. package/dist/generators/CodexConfigGenerator.d.ts.map +1 -0
  141. package/dist/generators/CodexConfigGenerator.js +80 -0
  142. package/dist/generators/CodexConfigGenerator.js.map +1 -0
  143. package/dist/generators/ConfigGeneratorFactory.d.ts +10 -1
  144. package/dist/generators/ConfigGeneratorFactory.d.ts.map +1 -1
  145. package/dist/generators/ConfigGeneratorFactory.js +22 -8
  146. package/dist/generators/ConfigGeneratorFactory.js.map +1 -1
  147. package/dist/generators/ContinueConfigGenerator.d.ts +16 -1
  148. package/dist/generators/ContinueConfigGenerator.d.ts.map +1 -1
  149. package/dist/generators/ContinueConfigGenerator.js +41 -73
  150. package/dist/generators/ContinueConfigGenerator.js.map +1 -1
  151. package/dist/generators/CopilotConfigGenerator.d.ts +13 -2
  152. package/dist/generators/CopilotConfigGenerator.d.ts.map +1 -1
  153. package/dist/generators/CopilotConfigGenerator.js +31 -51
  154. package/dist/generators/CopilotConfigGenerator.js.map +1 -1
  155. package/dist/generators/CursorConfigGenerator.d.ts +8 -1
  156. package/dist/generators/CursorConfigGenerator.d.ts.map +1 -1
  157. package/dist/generators/CursorConfigGenerator.js +27 -51
  158. package/dist/generators/CursorConfigGenerator.js.map +1 -1
  159. package/dist/generators/GeminiConfigGenerator.d.ts +23 -0
  160. package/dist/generators/GeminiConfigGenerator.d.ts.map +1 -0
  161. package/dist/generators/GeminiConfigGenerator.js +59 -0
  162. package/dist/generators/GeminiConfigGenerator.js.map +1 -0
  163. package/dist/generators/JetBrainsConfigGenerator.d.ts +11 -0
  164. package/dist/generators/JetBrainsConfigGenerator.d.ts.map +1 -1
  165. package/dist/generators/JetBrainsConfigGenerator.js +39 -21
  166. package/dist/generators/JetBrainsConfigGenerator.js.map +1 -1
  167. package/dist/generators/VSCodeConfigGenerator.d.ts +14 -0
  168. package/dist/generators/VSCodeConfigGenerator.d.ts.map +1 -1
  169. package/dist/generators/VSCodeConfigGenerator.js +43 -15
  170. package/dist/generators/VSCodeConfigGenerator.js.map +1 -1
  171. package/dist/hooks/codex.d.ts +20 -0
  172. package/dist/hooks/codex.d.ts.map +1 -0
  173. package/dist/hooks/codex.js +91 -0
  174. package/dist/hooks/codex.js.map +1 -0
  175. package/dist/hooks/core.d.ts +62 -0
  176. package/dist/hooks/core.d.ts.map +1 -0
  177. package/dist/hooks/core.js +119 -0
  178. package/dist/hooks/core.js.map +1 -0
  179. package/dist/hooks/cursor.d.ts +72 -0
  180. package/dist/hooks/cursor.d.ts.map +1 -0
  181. package/dist/hooks/cursor.js +163 -0
  182. package/dist/hooks/cursor.js.map +1 -0
  183. package/dist/index.d.ts +0 -3
  184. package/dist/index.d.ts.map +1 -1
  185. package/dist/index.js +2 -4
  186. package/dist/index.js.map +1 -1
  187. package/dist/installer.d.ts +30 -0
  188. package/dist/installer.d.ts.map +1 -0
  189. package/dist/installer.js +355 -0
  190. package/dist/installer.js.map +1 -0
  191. package/dist/languages/UniversalAnalyzer.d.ts +7 -0
  192. package/dist/languages/UniversalAnalyzer.d.ts.map +1 -1
  193. package/dist/languages/UniversalAnalyzer.js +16 -1
  194. package/dist/languages/UniversalAnalyzer.js.map +1 -1
  195. package/package.json +4 -2
  196. package/plugin/.claude-plugin/plugin.json +1 -1
  197. package/plugin/skills/code-auditor/SKILL.md +13 -5
@@ -12,6 +12,12 @@ export class UniversalAnalyzer {
12
12
  const violations = [];
13
13
  const errors = [];
14
14
  const startTime = Date.now();
15
+ // Extract severityOverrides from config before passing to analyzers.
16
+ // This is a base-class feature — individual analyzers don't need to
17
+ // know about it. Overrides are applied after analyzeAST returns.
18
+ const severityOverrides = config.severityOverrides ?? {};
19
+ const configWithoutOverrides = { ...config };
20
+ delete configWithoutOverrides.severityOverrides;
15
21
  // Group files by language
16
22
  const filesByAdapter = this.groupFilesByAdapter(files);
17
23
  let filesProcessed = 0;
@@ -48,7 +54,7 @@ export class UniversalAnalyzer {
48
54
  if (IS_DEV_MODE) {
49
55
  console.error(`[DEBUG] ${this.name}: About to call analyzeAST for:`, file);
50
56
  }
51
- const fileViolations = await this.analyzeAST(ast, adapter, config, content);
57
+ const fileViolations = await this.analyzeAST(ast, adapter, configWithoutOverrides, content);
52
58
  if (IS_DEV_MODE) {
53
59
  console.error(`[DEBUG] ${this.name}: analyzeAST returned ${fileViolations.length} violations for:`, file);
54
60
  }
@@ -67,6 +73,15 @@ export class UniversalAnalyzer {
67
73
  }
68
74
  }
69
75
  }
76
+ // Apply severity overrides to all violations
77
+ if (Object.keys(severityOverrides).length > 0) {
78
+ for (const v of violations) {
79
+ const override = severityOverrides[v.rule];
80
+ if (override) {
81
+ v.severity = override;
82
+ }
83
+ }
84
+ }
70
85
  return {
71
86
  violations,
72
87
  errors,
@@ -1 +1 @@
1
- {"version":3,"file":"UniversalAnalyzer.js","sourceRoot":"","sources":["../../src/languages/UniversalAnalyzer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"UniversalAnalyzer.js","sourceRoot":"","sources":["../../src/languages/UniversalAnalyzer.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,QAAQ,IAAI,EAAE,EAAE,MAAM,IAAI,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAe9C,MAAM,OAAgB,iBAAiB;IAKrC;;OAEG;IACH,KAAK,CAAC,OAAO,CACX,KAAe,EACf,MAAM,GAAQ,EAAE,EAChB,OAAO,GAA6B,EAAE;QAEtC,MAAM,UAAU,GAAgB,EAAE,CAAC;QACnC,MAAM,MAAM,GAA2C,EAAE,CAAC;QAC1D,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAE7B,qEAAqE;QACrE,oEAAoE;QACpE,iEAAiE;QACjE,MAAM,iBAAiB,GAAsB,MAAM,CAAC,iBAAiB,IAAI,EAAE,CAAC;QAC5E,MAAM,sBAAsB,GAAG,EAAE,GAAG,MAAM,EAAE,CAAC;QAC7C,OAAO,sBAAsB,CAAC,iBAAiB,CAAC;QAEhD,0BAA0B;QAC1B,MAAM,cAAc,GAAG,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;QAEvD,IAAI,cAAc,GAAG,CAAC,CAAC;QACvB,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC;QAEhC,8BAA8B;QAC9B,KAAK,MAAM,CAAC,OAAO,EAAE,YAAY,CAAC,IAAI,cAAc,EAAE,CAAC;YACrD,IAAI,WAAW,EAAE,CAAC;gBAChB,OAAO,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,gBAAgB,YAAY,CAAC,MAAM,sBAAsB,EAAE,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;YACzH,CAAC;YACD,KAAK,MAAM,IAAI,IAAI,YAAY,EAAE,CAAC;gBAChC,IAAI,WAAW,EAAE,CAAC;oBAChB,OAAO,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,oBAAoB,EAAE,IAAI,CAAC,CAAC;gBAChE,CAAC;gBACD,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;oBAChD,IAAI,WAAW,EAAE,CAAC;wBAChB,OAAO,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,8BAA8B,EAAE,OAAO,CAAC,MAAM,CAAC,CAAC;oBACpF,CAAC;oBACD,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;oBAC/C,IAAI,WAAW,EAAE,CAAC;wBAChB,OAAO,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,uBAAuB,EAAE,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;oBAChF,CAAC;oBAED,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;wBAC1B,mCAAmC;wBACnC,IAAI,WAAW,EAAE,CAAC;4BAChB,OAAO,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,iBAAiB,EAAE,GAAG,CAAC,MAAM,CAAC,CAAC;wBACnE,CAAC;wBACD,MAAM,CAAC,IAAI,CAAC,GAAG,GAAG,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;4BAClC,IAAI;4BACJ,KAAK,EAAE,gBAAgB,CAAC,CAAC,OAAO,EAAE;yBACnC,CAAC,CAAC,CAAC,CAAC;oBACP,CAAC;oBAED,iCAAiC;oBACjC,IAAI,WAAW,EAAE,CAAC;wBAChB,OAAO,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,iCAAiC,EAAE,IAAI,CAAC,CAAC;oBAC7E,CAAC;oBACD,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,UAAU,CAC1C,GAAG,EACH,OAAO,EACP,sBAAsB,EACtB,OAAO,CACR,CAAC;oBACF,IAAI,WAAW,EAAE,CAAC;wBAChB,OAAO,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,IAAI,yBAAyB,cAAc,CAAC,MAAM,kBAAkB,EAAE,IAAI,CAAC,CAAC;oBAC5G,CAAC;oBAED,UAAU,CAAC,IAAI,CAAC,GAAG,cAAc,CAAC,CAAC;oBAEnC,cAAc,EAAE,CAAC;oBACjB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;wBAC7B,OAAO,CAAC,gBAAgB,CAAC,cAAc,GAAG,UAAU,CAAC,CAAC;oBACxD,CAAC;gBACH,CAAC;gBAAC,OAAO,KAAK,EAAE,CAAC;oBACf,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,IAAI,2BAA2B,IAAI,GAAG,EAAE,KAAK,CAAC,CAAC;oBACtE,MAAM,CAAC,IAAI,CAAC;wBACV,IAAI;wBACJ,KAAK,EAAE,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC;qBAC9D,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,6CAA6C;QAC7C,IAAI,MAAM,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC9C,KAAK,MAAM,CAAC,IAAI,UAAU,EAAE,CAAC;gBAC3B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;gBAC3C,IAAI,QAAQ,EAAE,CAAC;oBACb,CAAC,CAAC,QAAQ,GAAG,QAAQ,CAAC;gBACxB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO;YACL,UAAU;YACV,MAAM;YACN,cAAc;YACd,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;YACrC,OAAO,EAAE;gBACP,aAAa,EAAE,cAAc;gBAC7B,eAAe,EAAE,UAAU,CAAC,MAAM;gBAClC,aAAa,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;aACtC;SACF,CAAC;IACJ,CAAC;IAYD;;OAEG;IACK,mBAAmB,CAAC,KAAe;QACzC,MAAM,QAAQ,GAAG,gBAAgB,CAAC,WAAW,EAAE,CAAC;QAChD,MAAM,MAAM,GAAG,IAAI,GAAG,EAA6B,CAAC;QAEpD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,QAAQ,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACjD,IAAI,OAAO,EAAE,CAAC;gBACZ,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;gBAC/C,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACxB,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC;YACpC,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACO,eAAe,CACvB,IAAY,EACZ,QAA0C,EAC1C,OAAe,EACf,QAA+C,EAC/C,IAAY,EACZ,GAA0C;QAE1C,OAAO;YACL,IAAI;YACJ,IAAI,EAAE,QAAQ,CAAC,IAAI;YACnB,MAAM,EAAE,QAAQ,CAAC,MAAM;YACvB,QAAQ;YACR,OAAO;YACP,IAAI;YACJ,QAAQ,EAAE,IAAI,CAAC,IAAI;YACnB,GAAG;SACJ,CAAC;IACJ,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "code-auditor-mcp",
3
- "version": "3.0.6",
3
+ "version": "3.1.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",
@@ -11,9 +11,10 @@
11
11
  "code-auditor-mcp": "dist/mcp.js"
12
12
  },
13
13
  "scripts": {
14
- "build": "tsc && pnpm run build:grammars && pnpm run download:natives",
14
+ "build": "tsc && pnpm run build:grammars && pnpm run download:natives && pnpm run build:skills",
15
15
  "download:natives": "bash scripts/download-natives.sh",
16
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 dist/grammars/",
17
+ "build:skills": "cp -r plugin/skills/* ../skills/",
17
18
  "watch": "tsc --watch",
18
19
  "dev": "tsx src/cli.ts",
19
20
  "dev:server": "tsx --watch src/cli.ts start --rest-api",
@@ -99,6 +100,7 @@
99
100
  "configs/**/*",
100
101
  "server.json",
101
102
  "README.md",
103
+ "CHANGELOG.md",
102
104
  "LICENSE"
103
105
  ],
104
106
  "repository": {
@@ -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.0.6",
4
+ "version": "3.1.0",
5
5
  "author": {
6
6
  "name": "Ben Hammond",
7
7
  "email": "ben@benhammond.tech"
@@ -1,4 +1,5 @@
1
1
  ---
2
+ name: code-auditor
2
3
  description: Audit code quality, search the codebase semantically, enforce invariants, and fix violations inline.
3
4
  ---
4
5
 
@@ -82,18 +83,17 @@ code-audit map -p . # Generate a codebase map
82
83
 
83
84
  Use this for a high-level architecture overview. Useful when orienting in an unfamiliar codebase.
84
85
 
85
- ### `code-audit generate-config` — generate AI tool integration configs
86
+ ### `code-audit generate-config` — create a default config
86
87
 
87
88
  ```bash
88
- code-audit generate-config # Generate MCP configs for AI coding tools
89
- code-audit generate-config --tool claude # Claude-specific MCP config
89
+ code-audit generate-config # Create .codeauditor.json from defaults
90
90
  ```
91
91
 
92
- Creates MCP server configuration files for AI coding assistants (Claude, Cursor, Continue, Copilot, etc.) so they can connect to code-auditor as an MCP server.
92
+ Creates a `.codeauditor.json` configuration file with invariant rules for your project. Use the interactive mode (`--interactive`) to build rules step-by-step, or generate a scaffold with sensible defaults.
93
93
 
94
94
  ## Interpreting hook feedback
95
95
 
96
- When the PostToolUse hook blocks your edit with a violation message:
96
+ When an edit hook blocks your edit with a violation message:
97
97
 
98
98
  1. **Read the violation** — it includes the invariant rule's `message` field explaining *why* the edit was blocked
99
99
  2. **Fix the violation** — change your approach to comply with the invariant
@@ -102,6 +102,14 @@ When the PostToolUse hook blocks your edit with a violation message:
102
102
 
103
103
  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.
104
104
 
105
+ ## Host-specific notes
106
+
107
+ - **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.
108
+ - **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.
109
+ - **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.
110
+ - **Gemini CLI**: Skill install only (`code-audit install --agent gemini`). No hook system exists; MCP covers shell-less use.
111
+ - **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.
112
+
105
113
  ## Quick reference
106
114
 
107
115
  | Task | Command |