mcp-adr-analysis-server 2.0.21 → 2.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 (263) hide show
  1. package/README.md +94 -839
  2. package/dist/.tsbuildinfo +1 -1
  3. package/dist/src/config/ai-config.d.ts.map +1 -1
  4. package/dist/src/config/ai-config.js +9 -9
  5. package/dist/src/config/ai-config.js.map +1 -1
  6. package/dist/src/index.d.ts +15 -0
  7. package/dist/src/index.d.ts.map +1 -1
  8. package/dist/src/index.js +1594 -837
  9. package/dist/src/index.js.map +1 -1
  10. package/dist/src/prompts/analysis-prompts.d.ts +4 -1
  11. package/dist/src/prompts/analysis-prompts.d.ts.map +1 -1
  12. package/dist/src/prompts/analysis-prompts.js +61 -30
  13. package/dist/src/prompts/analysis-prompts.js.map +1 -1
  14. package/dist/src/prompts/index.d.ts +17 -1
  15. package/dist/src/prompts/index.d.ts.map +1 -1
  16. package/dist/src/prompts/index.js +325 -1
  17. package/dist/src/prompts/index.js.map +1 -1
  18. package/dist/src/prompts/rule-generation-prompts.d.ts +5 -1
  19. package/dist/src/prompts/rule-generation-prompts.d.ts.map +1 -1
  20. package/dist/src/prompts/rule-generation-prompts.js +5 -1
  21. package/dist/src/prompts/rule-generation-prompts.js.map +1 -1
  22. package/dist/src/prompts/security-prompts.d.ts +6 -1
  23. package/dist/src/prompts/security-prompts.d.ts.map +1 -1
  24. package/dist/src/prompts/security-prompts.js +6 -1
  25. package/dist/src/prompts/security-prompts.js.map +1 -1
  26. package/dist/src/prompts/todo-prompts.d.ts +49 -0
  27. package/dist/src/prompts/todo-prompts.d.ts.map +1 -0
  28. package/dist/src/prompts/todo-prompts.js +824 -0
  29. package/dist/src/prompts/todo-prompts.js.map +1 -0
  30. package/dist/src/resources/index.d.ts.map +1 -1
  31. package/dist/src/resources/index.js +9 -7
  32. package/dist/src/resources/index.js.map +1 -1
  33. package/dist/src/tools/adr-bootstrap-validation-tool.d.ts +47 -0
  34. package/dist/src/tools/adr-bootstrap-validation-tool.d.ts.map +1 -0
  35. package/dist/src/tools/adr-bootstrap-validation-tool.js +979 -0
  36. package/dist/src/tools/adr-bootstrap-validation-tool.js.map +1 -0
  37. package/dist/src/tools/adr-suggestion-tool.d.ts +1 -0
  38. package/dist/src/tools/adr-suggestion-tool.d.ts.map +1 -1
  39. package/dist/src/tools/adr-suggestion-tool.js +330 -32
  40. package/dist/src/tools/adr-suggestion-tool.js.map +1 -1
  41. package/dist/src/tools/content-masking-tool.d.ts +5 -0
  42. package/dist/src/tools/content-masking-tool.d.ts.map +1 -1
  43. package/dist/src/tools/content-masking-tool.js +631 -28
  44. package/dist/src/tools/content-masking-tool.js.map +1 -1
  45. package/dist/src/tools/deployment-readiness-tool.d.ts +8 -5
  46. package/dist/src/tools/deployment-readiness-tool.d.ts.map +1 -1
  47. package/dist/src/tools/deployment-readiness-tool.js +1017 -93
  48. package/dist/src/tools/deployment-readiness-tool.js.map +1 -1
  49. package/dist/src/tools/environment-analysis-tool.d.ts +4 -0
  50. package/dist/src/tools/environment-analysis-tool.d.ts.map +1 -1
  51. package/dist/src/tools/environment-analysis-tool.js +568 -24
  52. package/dist/src/tools/environment-analysis-tool.js.map +1 -1
  53. package/dist/src/tools/interactive-adr-planning-tool.d.ts.map +1 -1
  54. package/dist/src/tools/interactive-adr-planning-tool.js +270 -108
  55. package/dist/src/tools/interactive-adr-planning-tool.js.map +1 -1
  56. package/dist/src/tools/mcp-planning-tool.d.ts.map +1 -1
  57. package/dist/src/tools/mcp-planning-tool.js +316 -183
  58. package/dist/src/tools/mcp-planning-tool.js.map +1 -1
  59. package/dist/src/tools/memory-loading-tool.d.ts +60 -0
  60. package/dist/src/tools/memory-loading-tool.d.ts.map +1 -0
  61. package/dist/src/tools/memory-loading-tool.js +457 -0
  62. package/dist/src/tools/memory-loading-tool.js.map +1 -0
  63. package/dist/src/tools/research-integration-tool.d.ts +4 -1
  64. package/dist/src/tools/research-integration-tool.d.ts.map +1 -1
  65. package/dist/src/tools/research-integration-tool.js +5 -1
  66. package/dist/src/tools/research-integration-tool.js.map +1 -1
  67. package/dist/src/tools/review-existing-adrs-tool.d.ts +19 -0
  68. package/dist/src/tools/review-existing-adrs-tool.d.ts.map +1 -0
  69. package/dist/src/tools/review-existing-adrs-tool.js +1204 -0
  70. package/dist/src/tools/review-existing-adrs-tool.js.map +1 -0
  71. package/dist/src/tools/rule-generation-tool.d.ts +2 -0
  72. package/dist/src/tools/rule-generation-tool.d.ts.map +1 -1
  73. package/dist/src/tools/rule-generation-tool.js +274 -33
  74. package/dist/src/tools/rule-generation-tool.js.map +1 -1
  75. package/dist/src/tools/smart-git-push-tool-v2.d.ts +4 -0
  76. package/dist/src/tools/smart-git-push-tool-v2.d.ts.map +1 -1
  77. package/dist/src/tools/smart-git-push-tool-v2.js +423 -229
  78. package/dist/src/tools/smart-git-push-tool-v2.js.map +1 -1
  79. package/dist/src/tools/smart-git-push-tool.d.ts +3 -0
  80. package/dist/src/tools/smart-git-push-tool.d.ts.map +1 -1
  81. package/dist/src/tools/smart-git-push-tool.js +241 -235
  82. package/dist/src/tools/smart-git-push-tool.js.map +1 -1
  83. package/dist/src/tools/tool-chain-orchestrator.d.ts +2 -2
  84. package/dist/src/tools/tool-chain-orchestrator.d.ts.map +1 -1
  85. package/dist/src/tools/tool-chain-orchestrator.js +152 -93
  86. package/dist/src/tools/tool-chain-orchestrator.js.map +1 -1
  87. package/dist/src/tools/troubleshoot-guided-workflow-tool.d.ts +22 -13
  88. package/dist/src/tools/troubleshoot-guided-workflow-tool.d.ts.map +1 -1
  89. package/dist/src/tools/troubleshoot-guided-workflow-tool.js +660 -28
  90. package/dist/src/tools/troubleshoot-guided-workflow-tool.js.map +1 -1
  91. package/dist/src/types/ape-framework.d.ts +93 -0
  92. package/dist/src/types/ape-framework.d.ts.map +1 -1
  93. package/dist/src/types/ape-framework.js +10 -10
  94. package/dist/src/types/ape-framework.js.map +1 -1
  95. package/dist/src/types/enhanced-errors.d.ts +173 -0
  96. package/dist/src/types/enhanced-errors.d.ts.map +1 -0
  97. package/dist/src/types/enhanced-errors.js +668 -0
  98. package/dist/src/types/enhanced-errors.js.map +1 -0
  99. package/dist/src/types/index.d.ts +129 -3
  100. package/dist/src/types/index.d.ts.map +1 -1
  101. package/dist/src/types/index.js +15 -0
  102. package/dist/src/types/index.js.map +1 -1
  103. package/dist/src/types/knowledge-generation.d.ts +78 -0
  104. package/dist/src/types/knowledge-generation.d.ts.map +1 -1
  105. package/dist/src/types/knowledge-generation.js +10 -6
  106. package/dist/src/types/knowledge-generation.js.map +1 -1
  107. package/dist/src/types/knowledge-graph-schemas.d.ts +92 -0
  108. package/dist/src/types/knowledge-graph-schemas.d.ts.map +1 -1
  109. package/dist/src/types/knowledge-graph-schemas.js +45 -17
  110. package/dist/src/types/knowledge-graph-schemas.js.map +1 -1
  111. package/dist/src/types/memory-entities.d.ts +7209 -0
  112. package/dist/src/types/memory-entities.d.ts.map +1 -0
  113. package/dist/src/types/memory-entities.js +395 -0
  114. package/dist/src/types/memory-entities.js.map +1 -0
  115. package/dist/src/types/reflexion-framework.d.ts +44 -0
  116. package/dist/src/types/reflexion-framework.d.ts.map +1 -1
  117. package/dist/src/types/reflexion-framework.js +7 -7
  118. package/dist/src/types/reflexion-framework.js.map +1 -1
  119. package/dist/src/types/todo-json-schemas.d.ts +7 -653
  120. package/dist/src/types/todo-json-schemas.d.ts.map +1 -1
  121. package/dist/src/types/todo-json-schemas.js +6 -110
  122. package/dist/src/types/todo-json-schemas.js.map +1 -1
  123. package/dist/src/types/tool-arguments.d.ts +224 -0
  124. package/dist/src/types/tool-arguments.d.ts.map +1 -0
  125. package/dist/src/types/tool-arguments.js +6 -0
  126. package/dist/src/types/tool-arguments.js.map +1 -0
  127. package/dist/src/utils/actual-file-operations.d.ts.map +1 -1
  128. package/dist/src/utils/actual-file-operations.js +25 -9
  129. package/dist/src/utils/actual-file-operations.js.map +1 -1
  130. package/dist/src/utils/adr-discovery.d.ts +33 -1
  131. package/dist/src/utils/adr-discovery.d.ts.map +1 -1
  132. package/dist/src/utils/adr-discovery.js +14 -9
  133. package/dist/src/utils/adr-discovery.js.map +1 -1
  134. package/dist/src/utils/adr-suggestions.d.ts +72 -0
  135. package/dist/src/utils/adr-suggestions.d.ts.map +1 -1
  136. package/dist/src/utils/adr-suggestions.js +6 -0
  137. package/dist/src/utils/adr-suggestions.js.map +1 -1
  138. package/dist/src/utils/cache.d.ts.map +1 -1
  139. package/dist/src/utils/cache.js +22 -19
  140. package/dist/src/utils/cache.js.map +1 -1
  141. package/dist/src/utils/chain-of-thought-template.d.ts +13 -1
  142. package/dist/src/utils/chain-of-thought-template.d.ts.map +1 -1
  143. package/dist/src/utils/chain-of-thought-template.js +31 -22
  144. package/dist/src/utils/chain-of-thought-template.js.map +1 -1
  145. package/dist/src/utils/config.d.ts.map +1 -1
  146. package/dist/src/utils/config.js +1 -0
  147. package/dist/src/utils/config.js.map +1 -1
  148. package/dist/src/utils/directory-compat.js +1 -1
  149. package/dist/src/utils/directory-compat.js.map +1 -1
  150. package/dist/src/utils/enhanced-logging.d.ts +195 -0
  151. package/dist/src/utils/enhanced-logging.d.ts.map +1 -0
  152. package/dist/src/utils/enhanced-logging.js +449 -0
  153. package/dist/src/utils/enhanced-logging.js.map +1 -0
  154. package/dist/src/utils/file-system.d.ts +182 -34
  155. package/dist/src/utils/file-system.d.ts.map +1 -1
  156. package/dist/src/utils/file-system.js +648 -774
  157. package/dist/src/utils/file-system.js.map +1 -1
  158. package/dist/src/utils/gitleaks-detector.d.ts +50 -0
  159. package/dist/src/utils/gitleaks-detector.d.ts.map +1 -0
  160. package/dist/src/utils/gitleaks-detector.js +334 -0
  161. package/dist/src/utils/gitleaks-detector.js.map +1 -0
  162. package/dist/src/utils/interactive-approval.d.ts +1 -1
  163. package/dist/src/utils/interactive-approval.d.ts.map +1 -1
  164. package/dist/src/utils/interactive-approval.js +22 -17
  165. package/dist/src/utils/interactive-approval.js.map +1 -1
  166. package/dist/src/utils/json-safe.d.ts.map +1 -1
  167. package/dist/src/utils/json-safe.js +9 -6
  168. package/dist/src/utils/json-safe.js.map +1 -1
  169. package/dist/src/utils/knowledge-graph-manager.d.ts +37 -1
  170. package/dist/src/utils/knowledge-graph-manager.d.ts.map +1 -1
  171. package/dist/src/utils/knowledge-graph-manager.js +315 -70
  172. package/dist/src/utils/knowledge-graph-manager.js.map +1 -1
  173. package/dist/src/utils/location-filter.d.ts +35 -10
  174. package/dist/src/utils/location-filter.d.ts.map +1 -1
  175. package/dist/src/utils/location-filter.js +360 -94
  176. package/dist/src/utils/location-filter.js.map +1 -1
  177. package/dist/src/utils/mcp-response-validator.d.ts.map +1 -1
  178. package/dist/src/utils/mcp-response-validator.js +34 -19
  179. package/dist/src/utils/mcp-response-validator.js.map +1 -1
  180. package/dist/src/utils/memory-entity-manager.d.ts +134 -0
  181. package/dist/src/utils/memory-entity-manager.d.ts.map +1 -0
  182. package/dist/src/utils/memory-entity-manager.js +851 -0
  183. package/dist/src/utils/memory-entity-manager.js.map +1 -0
  184. package/dist/src/utils/memory-health-scoring.d.ts +125 -0
  185. package/dist/src/utils/memory-health-scoring.d.ts.map +1 -0
  186. package/dist/src/utils/memory-health-scoring.js +277 -0
  187. package/dist/src/utils/memory-health-scoring.js.map +1 -0
  188. package/dist/src/utils/memory-migration-manager.d.ts +93 -0
  189. package/dist/src/utils/memory-migration-manager.d.ts.map +1 -0
  190. package/dist/src/utils/memory-migration-manager.js +842 -0
  191. package/dist/src/utils/memory-migration-manager.js.map +1 -0
  192. package/dist/src/utils/memory-relationship-mapper.d.ts +87 -0
  193. package/dist/src/utils/memory-relationship-mapper.d.ts.map +1 -0
  194. package/dist/src/utils/memory-relationship-mapper.js +482 -0
  195. package/dist/src/utils/memory-relationship-mapper.js.map +1 -0
  196. package/dist/src/utils/memory-rollback-manager.d.ts +105 -0
  197. package/dist/src/utils/memory-rollback-manager.d.ts.map +1 -0
  198. package/dist/src/utils/memory-rollback-manager.js +575 -0
  199. package/dist/src/utils/memory-rollback-manager.js.map +1 -0
  200. package/dist/src/utils/memory-transformation.d.ts +59 -0
  201. package/dist/src/utils/memory-transformation.d.ts.map +1 -0
  202. package/dist/src/utils/memory-transformation.js +742 -0
  203. package/dist/src/utils/memory-transformation.js.map +1 -0
  204. package/dist/src/utils/output-masking.d.ts +12 -0
  205. package/dist/src/utils/output-masking.d.ts.map +1 -1
  206. package/dist/src/utils/output-masking.js +5 -0
  207. package/dist/src/utils/output-masking.js.map +1 -1
  208. package/dist/src/utils/prompt-execution.d.ts.map +1 -1
  209. package/dist/src/utils/prompt-execution.js +72 -51
  210. package/dist/src/utils/prompt-execution.js.map +1 -1
  211. package/dist/src/utils/release-readiness-detector.d.ts.map +1 -1
  212. package/dist/src/utils/release-readiness-detector.js +43 -42
  213. package/dist/src/utils/release-readiness-detector.js.map +1 -1
  214. package/dist/src/utils/research-integration.d.ts.map +1 -1
  215. package/dist/src/utils/research-integration.js +73 -44
  216. package/dist/src/utils/research-integration.js.map +1 -1
  217. package/dist/src/utils/research-questions.d.ts.map +1 -1
  218. package/dist/src/utils/research-questions.js +40 -14
  219. package/dist/src/utils/research-questions.js.map +1 -1
  220. package/dist/src/utils/ripgrep-wrapper.d.ts +84 -0
  221. package/dist/src/utils/ripgrep-wrapper.d.ts.map +1 -0
  222. package/dist/src/utils/ripgrep-wrapper.js +255 -0
  223. package/dist/src/utils/ripgrep-wrapper.js.map +1 -0
  224. package/dist/src/utils/rule-generation.d.ts.map +1 -1
  225. package/dist/src/utils/rule-generation.js +26 -15
  226. package/dist/src/utils/rule-generation.js.map +1 -1
  227. package/dist/src/utils/todo-file-watcher.d.ts +11 -23
  228. package/dist/src/utils/todo-file-watcher.d.ts.map +1 -1
  229. package/dist/src/utils/todo-file-watcher.js +18 -156
  230. package/dist/src/utils/todo-file-watcher.js.map +1 -1
  231. package/dist/src/utils/tree-sitter-analyzer.d.ts +185 -0
  232. package/dist/src/utils/tree-sitter-analyzer.d.ts.map +1 -0
  233. package/dist/src/utils/tree-sitter-analyzer.js +885 -0
  234. package/dist/src/utils/tree-sitter-analyzer.js.map +1 -0
  235. package/package.json +51 -10
  236. package/dist/src/tools/smart-score-tool.d.ts +0 -173
  237. package/dist/src/tools/smart-score-tool.d.ts.map +0 -1
  238. package/dist/src/tools/smart-score-tool.js +0 -681
  239. package/dist/src/tools/smart-score-tool.js.map +0 -1
  240. package/dist/src/tools/todo-management-tool-v2.d.ts +0 -368
  241. package/dist/src/tools/todo-management-tool-v2.d.ts.map +0 -1
  242. package/dist/src/tools/todo-management-tool-v2.js +0 -922
  243. package/dist/src/tools/todo-management-tool-v2.js.map +0 -1
  244. package/dist/src/utils/enhanced-sensitive-detector.d.ts +0 -61
  245. package/dist/src/utils/enhanced-sensitive-detector.d.ts.map +0 -1
  246. package/dist/src/utils/enhanced-sensitive-detector.js +0 -437
  247. package/dist/src/utils/enhanced-sensitive-detector.js.map +0 -1
  248. package/dist/src/utils/project-health-scoring.d.ts +0 -177
  249. package/dist/src/utils/project-health-scoring.d.ts.map +0 -1
  250. package/dist/src/utils/project-health-scoring.js +0 -370
  251. package/dist/src/utils/project-health-scoring.js.map +0 -1
  252. package/dist/src/utils/todo-json-manager.d.ts +0 -71
  253. package/dist/src/utils/todo-json-manager.d.ts.map +0 -1
  254. package/dist/src/utils/todo-json-manager.js +0 -396
  255. package/dist/src/utils/todo-json-manager.js.map +0 -1
  256. package/dist/src/utils/todo-markdown-converter.d.ts +0 -16
  257. package/dist/src/utils/todo-markdown-converter.d.ts.map +0 -1
  258. package/dist/src/utils/todo-markdown-converter.js +0 -362
  259. package/dist/src/utils/todo-markdown-converter.js.map +0 -1
  260. package/dist/src/utils/todo-migration.d.ts +0 -47
  261. package/dist/src/utils/todo-migration.d.ts.map +0 -1
  262. package/dist/src/utils/todo-migration.js +0 -261
  263. package/dist/src/utils/todo-migration.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"review-existing-adrs-tool.js","sourceRoot":"","sources":["../../../src/tools/review-existing-adrs-tool.ts"],"names":[],"mappings":"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"}
@@ -37,6 +37,8 @@ export declare function validateRules(args: {
37
37
  }>;
38
38
  validationType?: 'file' | 'function' | 'component' | 'module';
39
39
  reportFormat?: 'summary' | 'detailed' | 'json';
40
+ projectPath?: string;
41
+ findRelatedFiles?: boolean;
40
42
  }): Promise<any>;
41
43
  /**
42
44
  * Create machine-readable rule set
@@ -1 +1 @@
1
- {"version":3,"file":"rule-generation-tool.d.ts","sourceRoot":"","sources":["../../../src/tools/rule-generation-tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;GAGG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE;IACxC,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,KAAK,CAAC;QACpB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACxC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,GAAG,OAAO,CAAC,GAAG,CAAC,CA2ff;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC9D,YAAY,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;CAChD,GAAG,OAAO,CAAC,GAAG,CAAC,CA4Jf;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;IACjB,YAAY,CAAC,EAAE,GAAG,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,GAAG,CAAC,CAqIf"}
1
+ {"version":3,"file":"rule-generation-tool.d.ts","sourceRoot":"","sources":["../../../src/tools/rule-generation-tool.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAKH;;;GAGG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE;IACxC,MAAM,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,MAAM,CAAC;IACtC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,KAAK,CAAC;QACpB,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;KACrB,CAAC,CAAC;IACH,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACxC,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB,GAAG,OAAO,CAAC,GAAG,CAAC,CAkwBf;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE;IACxC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,KAAK,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,OAAO,EAAE,MAAM,CAAC;KACjB,CAAC,CAAC;IACH,cAAc,CAAC,EAAE,MAAM,GAAG,UAAU,GAAG,WAAW,GAAG,QAAQ,CAAC;IAC9D,YAAY,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,MAAM,CAAC;IAC/C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B,GAAG,OAAO,CAAC,GAAG,CAAC,CA4Nf;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAC,IAAI,EAAE;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,GAAG,EAAE,CAAC;IACjB,YAAY,CAAC,EAAE,GAAG,EAAE,CAAC;IACrB,KAAK,CAAC,EAAE,GAAG,EAAE,CAAC;IACd,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,GAAG,OAAO,CAAC,GAAG,CAAC,CAqIf"}
@@ -4,6 +4,7 @@
4
4
  * Enhanced with Generated Knowledge Prompting (GKP) for architectural governance expertise
5
5
  */
6
6
  import { McpAdrError } from '../types/index.js';
7
+ import { findFiles, findRelatedCode } from '../utils/file-system.js';
7
8
  /**
8
9
  * Generate architectural rules from ADRs and code patterns
9
10
  * Enhanced with Generated Knowledge Prompting for architectural governance expertise
@@ -26,11 +27,11 @@ export async function generateRules(args) {
26
27
  projectPath,
27
28
  technologies: [],
28
29
  patterns: [],
29
- projectType: 'architectural-governance'
30
+ projectType: 'architectural-governance',
30
31
  }, {
31
32
  domains: ['api-design', 'security-patterns'],
32
33
  depth: 'intermediate',
33
- cacheEnabled: true
34
+ cacheEnabled: true,
34
35
  });
35
36
  knowledgeContext = `\n## Architectural Governance Knowledge Enhancement\n\n${knowledgeResult.prompt}\n\n---\n`;
36
37
  }
@@ -52,7 +53,7 @@ Leverage the provided architectural governance knowledge to create comprehensive
52
53
  Focus on creating specific, measurable rules that can be validated automatically.
53
54
  Provide clear reasoning for each rule and practical implementation guidance.
54
55
  Consider compliance standards, governance frameworks, and architectural best practices.`,
55
- responseFormat: 'text'
56
+ responseFormat: 'text',
56
57
  });
57
58
  if (executionResult.isAIGenerated) {
58
59
  // AI execution successful - return actual rule extraction results
@@ -70,10 +71,12 @@ Consider compliance standards, governance frameworks, and architectural best pra
70
71
  - **Existing Rules**: ${existingRules?.length || 0} rules
71
72
  - **Output Format**: ${outputFormat.toUpperCase()}
72
73
 
73
- ${knowledgeContext ? `## Applied Governance Knowledge
74
+ ${knowledgeContext
75
+ ? `## Applied Governance Knowledge
74
76
 
75
77
  ${knowledgeContext}
76
- ` : ''}
78
+ `
79
+ : ''}
77
80
 
78
81
  ## AI Rule Extraction Results
79
82
 
@@ -128,10 +131,12 @@ To create a machine-readable rule set:
128
131
  - **Generated Knowledge Prompting**: ${knowledgeEnhancement ? '✅ Applied' : '❌ Disabled'}
129
132
  - **Enhanced Mode**: ${enhancedMode ? '✅ Applied' : '❌ Disabled'}
130
133
 
131
- ${knowledgeContext ? `## Governance Knowledge Context
134
+ ${knowledgeContext
135
+ ? `## Governance Knowledge Context
132
136
 
133
137
  ${knowledgeContext}
134
- ` : ''}
138
+ `
139
+ : ''}
135
140
 
136
141
  ${result.instructions}
137
142
 
@@ -155,6 +160,73 @@ ${enhancedPrompt}
155
160
  case 'patterns': {
156
161
  let enhancedPrompt = '';
157
162
  let knowledgeContext = '';
163
+ let patternImplementationContext = '';
164
+ // Smart Code Linking - discover pattern implementations in the codebase
165
+ try {
166
+ // Find code files for pattern analysis
167
+ const findResult = await findFiles(projectPath, [
168
+ '**/*.{ts,js,jsx,tsx,py,java,cs,go,rs,rb,php,swift,kt,scala,c,cpp}',
169
+ '!**/node_modules/**',
170
+ '!**/dist/**',
171
+ '!**/build/**',
172
+ '!**/target/**',
173
+ ]);
174
+ if (findResult.files.length > 0) {
175
+ // Use Smart Code Linking to find examples of architectural patterns
176
+ const patternContext = [
177
+ 'architectural patterns',
178
+ 'design patterns',
179
+ 'factory pattern',
180
+ 'singleton pattern',
181
+ 'observer pattern',
182
+ 'repository pattern',
183
+ 'service layer',
184
+ 'dependency injection',
185
+ 'model view controller',
186
+ 'layered architecture',
187
+ 'microservices',
188
+ 'event driven',
189
+ 'command query separation',
190
+ ].join(' ');
191
+ const relatedCodeResult = await findRelatedCode('pattern-implementation-analysis', patternContext, projectPath, {
192
+ useAI: true,
193
+ useRipgrep: true,
194
+ maxFiles: 20,
195
+ includeContent: false,
196
+ });
197
+ if (relatedCodeResult.relatedFiles.length > 0) {
198
+ patternImplementationContext = [
199
+ '',
200
+ '## 🔗 Pattern Implementation Discovery',
201
+ '',
202
+ `Found **${relatedCodeResult.relatedFiles.length}** files with potential pattern implementations:`,
203
+ '',
204
+ ...relatedCodeResult.relatedFiles
205
+ .slice(0, 15)
206
+ .map((file, index) => `${index + 1}. **${file.path}**`),
207
+ relatedCodeResult.relatedFiles.length > 15
208
+ ? `*Showing top 15 of ${relatedCodeResult.relatedFiles.length} pattern-related files*`
209
+ : '',
210
+ '',
211
+ `**Pattern Detection Confidence**: ${(relatedCodeResult.confidence * 100).toFixed(0)}%`,
212
+ `**Pattern Keywords**: ${relatedCodeResult.keywords?.slice(0, 10).join(', ') || 'N/A'}`,
213
+ '',
214
+ '## File Type Distribution',
215
+ ...Object.entries(relatedCodeResult.relatedFiles.reduce((acc, file) => {
216
+ const ext = file.extension || 'unknown';
217
+ acc[ext] = (acc[ext] || 0) + 1;
218
+ return acc;
219
+ }, {})).map(([ext, count]) => `- **${ext.toUpperCase()}**: ${count} files`),
220
+ '',
221
+ ]
222
+ .filter(Boolean)
223
+ .join('\n');
224
+ }
225
+ }
226
+ }
227
+ catch (error) {
228
+ console.warn('Smart Code Linking failed for pattern analysis:', error);
229
+ }
158
230
  // Generate domain-specific knowledge for pattern analysis if enabled
159
231
  if (enhancedMode && knowledgeEnhancement) {
160
232
  try {
@@ -163,11 +235,11 @@ ${enhancedPrompt}
163
235
  projectPath,
164
236
  technologies: [],
165
237
  patterns: [],
166
- projectType: 'code-pattern-analysis'
238
+ projectType: 'code-pattern-analysis',
167
239
  }, {
168
240
  domains: ['api-design', 'performance-optimization'],
169
241
  depth: 'intermediate',
170
- cacheEnabled: true
242
+ cacheEnabled: true,
171
243
  });
172
244
  knowledgeContext = `\n## Code Pattern Analysis Knowledge Enhancement\n\n${knowledgeResult.prompt}\n\n---\n`;
173
245
  }
@@ -178,7 +250,7 @@ ${enhancedPrompt}
178
250
  }
179
251
  const existingRuleNames = existingRules?.map(r => r.name);
180
252
  const result = await generateRulesFromPatterns(projectPath, existingRuleNames);
181
- enhancedPrompt = knowledgeContext + result.generationPrompt;
253
+ enhancedPrompt = knowledgeContext + patternImplementationContext + result.generationPrompt;
182
254
  // Execute the pattern-based rule generation with AI if enabled, otherwise return prompt
183
255
  const { executePromptWithFallback, formatMCPResponse } = await import('../utils/prompt-execution.js');
184
256
  const executionResult = await executePromptWithFallback(enhancedPrompt, result.instructions, {
@@ -190,15 +262,16 @@ Leverage the provided design pattern and code quality knowledge to create compre
190
262
  Focus on creating rules that enforce consistency, quality, and maintainability based on observed patterns.
191
263
  Consider established design patterns, code quality metrics, and architectural best practices.
192
264
  Provide confidence scores and practical implementation guidance for each rule.`,
193
- responseFormat: 'text'
265
+ responseFormat: 'text',
194
266
  });
195
267
  if (executionResult.isAIGenerated) {
196
268
  // AI execution successful - return actual pattern-based rule generation results
197
269
  return formatMCPResponse({
198
270
  ...executionResult,
199
- content: `# Pattern-Based Rule Generation Results (GKP Enhanced)
271
+ content: `# Pattern-Based Rule Generation Results (Enhanced with Smart Code Linking)
200
272
 
201
273
  ## Enhancement Features
274
+ - **Smart Code Linking**: ${patternImplementationContext ? '✅ Active' : '❌ No patterns found'}
202
275
  - **Generated Knowledge Prompting**: ${knowledgeEnhancement ? '✅ Enabled' : '❌ Disabled'}
203
276
  - **Enhanced Mode**: ${enhancedMode ? '✅ Enabled' : '❌ Disabled'}
204
277
  - **Knowledge Domains**: Design patterns, code quality, software architecture
@@ -208,10 +281,14 @@ Provide confidence scores and practical implementation guidance for each rule.`,
208
281
  - **Existing Rules**: ${existingRules?.length || 0} rules
209
282
  - **Output Format**: ${outputFormat.toUpperCase()}
210
283
 
211
- ${knowledgeContext ? `## Applied Pattern Knowledge
284
+ ${patternImplementationContext ? `${patternImplementationContext}` : ''}
285
+
286
+ ${knowledgeContext
287
+ ? `## Applied Pattern Knowledge
212
288
 
213
289
  ${knowledgeContext}
214
- ` : ''}
290
+ `
291
+ : ''}
215
292
 
216
293
  ## AI Pattern Analysis Results
217
294
 
@@ -258,21 +335,45 @@ To create a comprehensive rule set combining patterns and ADRs:
258
335
  content: [
259
336
  {
260
337
  type: 'text',
261
- text: `# Rule Generation: Pattern-Based Rules
338
+ text: `# Rule Generation: Pattern-Based Rules (Enhanced with Smart Code Linking)
339
+
340
+ ## Enhancement Status
341
+ - **Smart Code Linking**: ${patternImplementationContext ? '✅ Pattern implementations discovered' : '❌ No patterns found'}
342
+ - **Generated Knowledge Prompting**: ${knowledgeEnhancement ? '✅ Applied' : '❌ Disabled'}
343
+ - **Enhanced Mode**: ${enhancedMode ? '✅ Applied' : '❌ Disabled'}
344
+
345
+ ${patternImplementationContext
346
+ ? `${patternImplementationContext}
347
+
348
+ `
349
+ : ''}${knowledgeContext
350
+ ? `## Governance Knowledge Context
351
+
352
+ ${knowledgeContext}
353
+ `
354
+ : ''}
262
355
 
263
356
  ${result.instructions}
264
357
 
265
- ## AI Analysis Prompt
358
+ ## Enhanced AI Analysis Prompt
266
359
 
267
- ${result.generationPrompt}
360
+ ${enhancedPrompt}
268
361
 
269
362
  ## Next Steps
270
363
 
271
- 1. **Submit the prompt** to an AI agent for pattern analysis
272
- 2. **Parse the JSON response** to get generated rules and metrics
273
- 3. **Review pattern-based rules** for relevance and accuracy
364
+ 1. **Submit the enhanced prompt** to an AI agent for comprehensive pattern analysis
365
+ 2. **Parse the JSON response** to get generated rules and pattern metrics
366
+ 3. **Review pattern-based rules** using the discovered implementation context
274
367
  4. **Combine with ADR-extracted rules** for comprehensive rule set
275
- 5. **Implement validation** for high-confidence rules
368
+ 5. **Implement validation** for high-confidence pattern rules
369
+
370
+ ## Pattern Implementation Benefits
371
+
372
+ The Smart Code Linking enhancement provides:
373
+ - **Real Examples**: Rules based on actual pattern implementations found in your codebase
374
+ - **Context-Aware**: Better understanding of how patterns are actually used
375
+ - **Higher Confidence**: Rules validated against existing code patterns
376
+ - **Team Alignment**: Rules that reflect current team practices and implementations
276
377
  `,
277
378
  },
278
379
  ],
@@ -281,6 +382,90 @@ ${result.generationPrompt}
281
382
  }
282
383
  case 'both': {
283
384
  let comprehensiveKnowledgeContext = '';
385
+ let comprehensivePatternContext = '';
386
+ // Smart Code Linking - comprehensive pattern and ADR implementation discovery
387
+ try {
388
+ // Find all code and documentation files
389
+ const findResult = await findFiles(projectPath, [
390
+ '**/*.{ts,js,jsx,tsx,py,java,cs,go,rs,rb,php,swift,kt,scala,c,cpp}',
391
+ '**/*.{md,adoc,rst}',
392
+ '!**/node_modules/**',
393
+ '!**/dist/**',
394
+ '!**/build/**',
395
+ '!**/target/**',
396
+ ]);
397
+ if (findResult.files.length > 0) {
398
+ // Use Smart Code Linking to find comprehensive architectural patterns and ADR implementations
399
+ const comprehensiveContext = [
400
+ 'architectural decisions',
401
+ 'design patterns',
402
+ 'architectural patterns',
403
+ 'software architecture',
404
+ 'architectural governance',
405
+ 'code standards',
406
+ 'best practices',
407
+ 'quality attributes',
408
+ 'security patterns',
409
+ 'performance patterns',
410
+ 'scalability patterns',
411
+ 'maintainability',
412
+ 'testability',
413
+ 'deployment patterns',
414
+ 'integration patterns',
415
+ ].join(' ');
416
+ const relatedCodeResult = await findRelatedCode('comprehensive-architecture-analysis', comprehensiveContext, projectPath, {
417
+ useAI: true,
418
+ useRipgrep: true,
419
+ maxFiles: 30,
420
+ includeContent: false,
421
+ });
422
+ if (relatedCodeResult.relatedFiles.length > 0) {
423
+ // Categorize files by type for better analysis
424
+ const codeFiles = relatedCodeResult.relatedFiles.filter(f => f.extension?.match(/\.(ts|js|jsx|tsx|py|java|cs|go|rs|rb|php|swift|kt|scala|c|cpp)$/));
425
+ const docFiles = relatedCodeResult.relatedFiles.filter(f => f.extension?.match(/\.(md|adoc|rst)$/));
426
+ comprehensivePatternContext = [
427
+ '',
428
+ '## 🔗 Comprehensive Architecture Discovery',
429
+ '',
430
+ `Found **${relatedCodeResult.relatedFiles.length}** files relevant to architectural rule generation:`,
431
+ '',
432
+ `### Code Implementation Files (${codeFiles.length})`,
433
+ ...codeFiles.slice(0, 12).map((file, index) => `${index + 1}. **${file.path}**`),
434
+ codeFiles.length > 12 ? `*Showing top 12 of ${codeFiles.length} code files*` : '',
435
+ '',
436
+ docFiles.length > 0
437
+ ? [
438
+ `### Documentation Files (${docFiles.length})`,
439
+ ...docFiles
440
+ .slice(0, 8)
441
+ .map((file, index) => `${index + 1}. **${file.path}**`),
442
+ docFiles.length > 8
443
+ ? `*Showing top 8 of ${docFiles.length} documentation files*`
444
+ : '',
445
+ '',
446
+ ].join('\n')
447
+ : '',
448
+ `**Overall Analysis Confidence**: ${(relatedCodeResult.confidence * 100).toFixed(0)}%`,
449
+ `**Architectural Keywords**: ${relatedCodeResult.keywords?.slice(0, 12).join(', ') || 'N/A'}`,
450
+ '',
451
+ '## Technology Stack Analysis',
452
+ ...Object.entries(relatedCodeResult.relatedFiles.reduce((acc, file) => {
453
+ const ext = file.extension || 'unknown';
454
+ acc[ext] = (acc[ext] || 0) + 1;
455
+ return acc;
456
+ }, {}))
457
+ .slice(0, 8)
458
+ .map(([ext, count]) => `- **${ext.toUpperCase()}**: ${count} files`),
459
+ '',
460
+ ]
461
+ .filter(Boolean)
462
+ .join('\n');
463
+ }
464
+ }
465
+ }
466
+ catch (error) {
467
+ console.warn('Smart Code Linking failed for comprehensive analysis:', error);
468
+ }
284
469
  // Generate comprehensive domain knowledge if enabled
285
470
  if (enhancedMode && knowledgeEnhancement) {
286
471
  try {
@@ -289,27 +474,28 @@ ${result.generationPrompt}
289
474
  projectPath,
290
475
  technologies: [],
291
476
  patterns: [],
292
- projectType: 'comprehensive-rule-generation'
477
+ projectType: 'comprehensive-rule-generation',
293
478
  }, {
294
479
  domains: ['api-design', 'security-patterns', 'performance-optimization'],
295
480
  depth: 'advanced',
296
- cacheEnabled: true
481
+ cacheEnabled: true,
297
482
  });
298
483
  comprehensiveKnowledgeContext = `\n## Comprehensive Architectural Knowledge Enhancement\n\n${knowledgeResult.prompt}\n\n---\n`;
299
484
  }
300
485
  catch (error) {
301
486
  console.error('[WARNING] GKP knowledge generation failed for comprehensive analysis:', error);
302
- comprehensiveKnowledgeContext = '<!-- Comprehensive knowledge generation unavailable -->\n';
487
+ comprehensiveKnowledgeContext =
488
+ '<!-- Comprehensive knowledge generation unavailable -->\n';
303
489
  }
304
490
  }
305
491
  const adrResult = await extractRulesFromAdrs(adrDirectory, existingRules, projectPath);
306
492
  const existingRuleNames = existingRules?.map(r => r.name);
307
493
  const patternResult = await generateRulesFromPatterns(projectPath, existingRuleNames);
308
494
  // Create comprehensive prompt combining both ADR and pattern analysis with knowledge enhancement
309
- const comprehensivePrompt = `${comprehensiveKnowledgeContext}
495
+ const comprehensivePrompt = `${comprehensiveKnowledgeContext}${comprehensivePatternContext}
310
496
  # Comprehensive Architectural Rule Generation
311
497
 
312
- Generate a complete set of architectural rules by analyzing both ADRs and code patterns.
498
+ Generate a complete set of architectural rules by analyzing both ADRs and code patterns with Smart Code Linking context.
313
499
 
314
500
  ## ADR-Based Rule Extraction
315
501
 
@@ -350,15 +536,16 @@ Leverage the provided comprehensive architectural knowledge including governance
350
536
  Focus on creating rules that are specific, measurable, and can be validated automatically.
351
537
  Prioritize explicit architectural decisions (ADRs) over implicit patterns when conflicts arise.
352
538
  Consider industry best practices, compliance requirements, and established architectural principles.`,
353
- responseFormat: 'text'
539
+ responseFormat: 'text',
354
540
  });
355
541
  if (executionResult.isAIGenerated) {
356
542
  // AI execution successful - return actual comprehensive rule generation results
357
543
  return formatMCPResponse({
358
544
  ...executionResult,
359
- content: `# Comprehensive Rule Generation Results (GKP Enhanced)
545
+ content: `# Comprehensive Rule Generation Results (Enhanced with Smart Code Linking & GKP)
360
546
 
361
547
  ## Enhancement Features
548
+ - **Smart Code Linking**: ${comprehensivePatternContext ? '✅ Active' : '❌ No patterns found'}
362
549
  - **Generated Knowledge Prompting**: ${knowledgeEnhancement ? '✅ Enabled' : '❌ Disabled'}
363
550
  - **Enhanced Mode**: ${enhancedMode ? '✅ Enabled' : '❌ Disabled'}
364
551
  - **Knowledge Domains**: Governance frameworks, software architecture, design patterns, compliance standards, code quality
@@ -370,10 +557,14 @@ Consider industry best practices, compliance requirements, and established archi
370
557
  - **Existing Rules**: ${existingRules?.length || 0} rules
371
558
  - **Output Format**: ${outputFormat.toUpperCase()}
372
559
 
373
- ${comprehensiveKnowledgeContext ? `## Applied Comprehensive Knowledge
560
+ ${comprehensivePatternContext ? `${comprehensivePatternContext}` : ''}
561
+
562
+ ${comprehensiveKnowledgeContext
563
+ ? `## Applied Comprehensive Knowledge
374
564
 
375
565
  ${comprehensiveKnowledgeContext}
376
- ` : ''}
566
+ `
567
+ : ''}
377
568
 
378
569
  ## AI Comprehensive Analysis Results
379
570
 
@@ -483,7 +674,7 @@ Submit the pattern analysis prompt to generate rules from code patterns
483
674
  * Validate code against architectural rules
484
675
  */
485
676
  export async function validateRules(args) {
486
- const { filePath, fileContent, fileName, rules, validationType = 'file', reportFormat = 'detailed', } = args;
677
+ const { filePath, fileContent, fileName, rules, validationType = 'file', reportFormat = 'detailed', projectPath = process.cwd(), findRelatedFiles = false, } = args;
487
678
  try {
488
679
  const { validateCodeAgainstRules } = await import('../utils/rule-generation.js');
489
680
  if (!filePath && !fileContent) {
@@ -492,6 +683,53 @@ export async function validateRules(args) {
492
683
  if (!rules || rules.length === 0) {
493
684
  throw new McpAdrError('Rules array is required and cannot be empty', 'INVALID_INPUT');
494
685
  }
686
+ // Smart Code Linking - find related files for comprehensive validation context
687
+ let relatedFilesContext = '';
688
+ if (findRelatedFiles && filePath) {
689
+ try {
690
+ // Create context from the file being validated and the rules
691
+ const validationContext = [
692
+ `File being validated: ${filePath}`,
693
+ 'Architectural rules validation',
694
+ ...rules.slice(0, 5).map(rule => `Rule: ${rule.name} - ${rule.description}`),
695
+ ].join('\n');
696
+ const relatedCodeResult = await findRelatedCode('rule-validation-context', validationContext, projectPath, {
697
+ useAI: true,
698
+ useRipgrep: true,
699
+ maxFiles: 12,
700
+ includeContent: false,
701
+ });
702
+ if (relatedCodeResult.relatedFiles.length > 0) {
703
+ // Filter out the file being validated itself
704
+ const otherRelatedFiles = relatedCodeResult.relatedFiles.filter(f => f.path !== filePath && !filePath.endsWith(f.path));
705
+ if (otherRelatedFiles.length > 0) {
706
+ relatedFilesContext = [
707
+ '',
708
+ '## 🔗 Related Files for Validation Context',
709
+ '',
710
+ `Found **${otherRelatedFiles.length}** related files that may need similar validation:`,
711
+ '',
712
+ ...otherRelatedFiles
713
+ .slice(0, 8)
714
+ .map((file, index) => `${index + 1}. **${file.path}**`),
715
+ otherRelatedFiles.length > 8
716
+ ? `*Showing top 8 of ${otherRelatedFiles.length} related files*`
717
+ : '',
718
+ '',
719
+ `**Context Confidence**: ${(relatedCodeResult.confidence * 100).toFixed(0)}%`,
720
+ '',
721
+ '💡 **Recommendation**: Consider validating these related files against the same rules for comprehensive compliance.',
722
+ '',
723
+ ]
724
+ .filter(Boolean)
725
+ .join('\n');
726
+ }
727
+ }
728
+ }
729
+ catch (error) {
730
+ console.warn('Smart Code Linking failed for validation context:', error);
731
+ }
732
+ }
495
733
  // Convert rules to ArchitecturalRule format
496
734
  const architecturalRules = rules.map(rule => ({
497
735
  id: rule.id,
@@ -531,19 +769,22 @@ export async function validateRules(args) {
531
769
  Analyze the provided code against architectural rules to identify violations and provide improvement recommendations.
532
770
  Focus on providing specific, actionable feedback with clear explanations and fix suggestions.
533
771
  Prioritize violations by severity and impact on system architecture.`,
534
- responseFormat: 'text'
772
+ responseFormat: 'text',
535
773
  });
536
774
  if (executionResult.isAIGenerated) {
537
775
  // AI execution successful - return actual rule validation results
538
776
  return formatMCPResponse({
539
777
  ...executionResult,
540
- content: `# Code Validation Results
778
+ content: `# Code Validation Results (Enhanced with Smart Code Linking)
541
779
 
542
780
  ## Validation Information
543
781
  - **File**: ${fileName || filePath || 'Content provided'}
544
782
  - **Validation Type**: ${validationType}
545
783
  - **Rules Applied**: ${rules.length} rules
546
784
  - **Report Format**: ${reportFormat}
785
+ - **Smart Code Linking**: ${relatedFilesContext ? '✅ Related files discovered' : findRelatedFiles ? '❌ No related files found' : '⚪ Not requested'}
786
+
787
+ ${relatedFilesContext ? `${relatedFilesContext}` : ''}
547
788
 
548
789
  ## AI Validation Results
549
790