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.
- package/README.md +94 -839
- package/dist/.tsbuildinfo +1 -1
- package/dist/src/config/ai-config.d.ts.map +1 -1
- package/dist/src/config/ai-config.js +9 -9
- package/dist/src/config/ai-config.js.map +1 -1
- package/dist/src/index.d.ts +15 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1594 -837
- package/dist/src/index.js.map +1 -1
- package/dist/src/prompts/analysis-prompts.d.ts +4 -1
- package/dist/src/prompts/analysis-prompts.d.ts.map +1 -1
- package/dist/src/prompts/analysis-prompts.js +61 -30
- package/dist/src/prompts/analysis-prompts.js.map +1 -1
- package/dist/src/prompts/index.d.ts +17 -1
- package/dist/src/prompts/index.d.ts.map +1 -1
- package/dist/src/prompts/index.js +325 -1
- package/dist/src/prompts/index.js.map +1 -1
- package/dist/src/prompts/rule-generation-prompts.d.ts +5 -1
- package/dist/src/prompts/rule-generation-prompts.d.ts.map +1 -1
- package/dist/src/prompts/rule-generation-prompts.js +5 -1
- package/dist/src/prompts/rule-generation-prompts.js.map +1 -1
- package/dist/src/prompts/security-prompts.d.ts +6 -1
- package/dist/src/prompts/security-prompts.d.ts.map +1 -1
- package/dist/src/prompts/security-prompts.js +6 -1
- package/dist/src/prompts/security-prompts.js.map +1 -1
- package/dist/src/prompts/todo-prompts.d.ts +49 -0
- package/dist/src/prompts/todo-prompts.d.ts.map +1 -0
- package/dist/src/prompts/todo-prompts.js +824 -0
- package/dist/src/prompts/todo-prompts.js.map +1 -0
- package/dist/src/resources/index.d.ts.map +1 -1
- package/dist/src/resources/index.js +9 -7
- package/dist/src/resources/index.js.map +1 -1
- package/dist/src/tools/adr-bootstrap-validation-tool.d.ts +47 -0
- package/dist/src/tools/adr-bootstrap-validation-tool.d.ts.map +1 -0
- package/dist/src/tools/adr-bootstrap-validation-tool.js +979 -0
- package/dist/src/tools/adr-bootstrap-validation-tool.js.map +1 -0
- package/dist/src/tools/adr-suggestion-tool.d.ts +1 -0
- package/dist/src/tools/adr-suggestion-tool.d.ts.map +1 -1
- package/dist/src/tools/adr-suggestion-tool.js +330 -32
- package/dist/src/tools/adr-suggestion-tool.js.map +1 -1
- package/dist/src/tools/content-masking-tool.d.ts +5 -0
- package/dist/src/tools/content-masking-tool.d.ts.map +1 -1
- package/dist/src/tools/content-masking-tool.js +631 -28
- package/dist/src/tools/content-masking-tool.js.map +1 -1
- package/dist/src/tools/deployment-readiness-tool.d.ts +8 -5
- package/dist/src/tools/deployment-readiness-tool.d.ts.map +1 -1
- package/dist/src/tools/deployment-readiness-tool.js +1017 -93
- package/dist/src/tools/deployment-readiness-tool.js.map +1 -1
- package/dist/src/tools/environment-analysis-tool.d.ts +4 -0
- package/dist/src/tools/environment-analysis-tool.d.ts.map +1 -1
- package/dist/src/tools/environment-analysis-tool.js +568 -24
- package/dist/src/tools/environment-analysis-tool.js.map +1 -1
- package/dist/src/tools/interactive-adr-planning-tool.d.ts.map +1 -1
- package/dist/src/tools/interactive-adr-planning-tool.js +270 -108
- package/dist/src/tools/interactive-adr-planning-tool.js.map +1 -1
- package/dist/src/tools/mcp-planning-tool.d.ts.map +1 -1
- package/dist/src/tools/mcp-planning-tool.js +316 -183
- package/dist/src/tools/mcp-planning-tool.js.map +1 -1
- package/dist/src/tools/memory-loading-tool.d.ts +60 -0
- package/dist/src/tools/memory-loading-tool.d.ts.map +1 -0
- package/dist/src/tools/memory-loading-tool.js +457 -0
- package/dist/src/tools/memory-loading-tool.js.map +1 -0
- package/dist/src/tools/research-integration-tool.d.ts +4 -1
- package/dist/src/tools/research-integration-tool.d.ts.map +1 -1
- package/dist/src/tools/research-integration-tool.js +5 -1
- package/dist/src/tools/research-integration-tool.js.map +1 -1
- package/dist/src/tools/review-existing-adrs-tool.d.ts +19 -0
- package/dist/src/tools/review-existing-adrs-tool.d.ts.map +1 -0
- package/dist/src/tools/review-existing-adrs-tool.js +1204 -0
- package/dist/src/tools/review-existing-adrs-tool.js.map +1 -0
- package/dist/src/tools/rule-generation-tool.d.ts +2 -0
- package/dist/src/tools/rule-generation-tool.d.ts.map +1 -1
- package/dist/src/tools/rule-generation-tool.js +274 -33
- package/dist/src/tools/rule-generation-tool.js.map +1 -1
- package/dist/src/tools/smart-git-push-tool-v2.d.ts +4 -0
- package/dist/src/tools/smart-git-push-tool-v2.d.ts.map +1 -1
- package/dist/src/tools/smart-git-push-tool-v2.js +423 -229
- package/dist/src/tools/smart-git-push-tool-v2.js.map +1 -1
- package/dist/src/tools/smart-git-push-tool.d.ts +3 -0
- package/dist/src/tools/smart-git-push-tool.d.ts.map +1 -1
- package/dist/src/tools/smart-git-push-tool.js +241 -235
- package/dist/src/tools/smart-git-push-tool.js.map +1 -1
- package/dist/src/tools/tool-chain-orchestrator.d.ts +2 -2
- package/dist/src/tools/tool-chain-orchestrator.d.ts.map +1 -1
- package/dist/src/tools/tool-chain-orchestrator.js +152 -93
- package/dist/src/tools/tool-chain-orchestrator.js.map +1 -1
- package/dist/src/tools/troubleshoot-guided-workflow-tool.d.ts +22 -13
- package/dist/src/tools/troubleshoot-guided-workflow-tool.d.ts.map +1 -1
- package/dist/src/tools/troubleshoot-guided-workflow-tool.js +660 -28
- package/dist/src/tools/troubleshoot-guided-workflow-tool.js.map +1 -1
- package/dist/src/types/ape-framework.d.ts +93 -0
- package/dist/src/types/ape-framework.d.ts.map +1 -1
- package/dist/src/types/ape-framework.js +10 -10
- package/dist/src/types/ape-framework.js.map +1 -1
- package/dist/src/types/enhanced-errors.d.ts +173 -0
- package/dist/src/types/enhanced-errors.d.ts.map +1 -0
- package/dist/src/types/enhanced-errors.js +668 -0
- package/dist/src/types/enhanced-errors.js.map +1 -0
- package/dist/src/types/index.d.ts +129 -3
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/types/index.js +15 -0
- package/dist/src/types/index.js.map +1 -1
- package/dist/src/types/knowledge-generation.d.ts +78 -0
- package/dist/src/types/knowledge-generation.d.ts.map +1 -1
- package/dist/src/types/knowledge-generation.js +10 -6
- package/dist/src/types/knowledge-generation.js.map +1 -1
- package/dist/src/types/knowledge-graph-schemas.d.ts +92 -0
- package/dist/src/types/knowledge-graph-schemas.d.ts.map +1 -1
- package/dist/src/types/knowledge-graph-schemas.js +45 -17
- package/dist/src/types/knowledge-graph-schemas.js.map +1 -1
- package/dist/src/types/memory-entities.d.ts +7209 -0
- package/dist/src/types/memory-entities.d.ts.map +1 -0
- package/dist/src/types/memory-entities.js +395 -0
- package/dist/src/types/memory-entities.js.map +1 -0
- package/dist/src/types/reflexion-framework.d.ts +44 -0
- package/dist/src/types/reflexion-framework.d.ts.map +1 -1
- package/dist/src/types/reflexion-framework.js +7 -7
- package/dist/src/types/reflexion-framework.js.map +1 -1
- package/dist/src/types/todo-json-schemas.d.ts +7 -653
- package/dist/src/types/todo-json-schemas.d.ts.map +1 -1
- package/dist/src/types/todo-json-schemas.js +6 -110
- package/dist/src/types/todo-json-schemas.js.map +1 -1
- package/dist/src/types/tool-arguments.d.ts +224 -0
- package/dist/src/types/tool-arguments.d.ts.map +1 -0
- package/dist/src/types/tool-arguments.js +6 -0
- package/dist/src/types/tool-arguments.js.map +1 -0
- package/dist/src/utils/actual-file-operations.d.ts.map +1 -1
- package/dist/src/utils/actual-file-operations.js +25 -9
- package/dist/src/utils/actual-file-operations.js.map +1 -1
- package/dist/src/utils/adr-discovery.d.ts +33 -1
- package/dist/src/utils/adr-discovery.d.ts.map +1 -1
- package/dist/src/utils/adr-discovery.js +14 -9
- package/dist/src/utils/adr-discovery.js.map +1 -1
- package/dist/src/utils/adr-suggestions.d.ts +72 -0
- package/dist/src/utils/adr-suggestions.d.ts.map +1 -1
- package/dist/src/utils/adr-suggestions.js +6 -0
- package/dist/src/utils/adr-suggestions.js.map +1 -1
- package/dist/src/utils/cache.d.ts.map +1 -1
- package/dist/src/utils/cache.js +22 -19
- package/dist/src/utils/cache.js.map +1 -1
- package/dist/src/utils/chain-of-thought-template.d.ts +13 -1
- package/dist/src/utils/chain-of-thought-template.d.ts.map +1 -1
- package/dist/src/utils/chain-of-thought-template.js +31 -22
- package/dist/src/utils/chain-of-thought-template.js.map +1 -1
- package/dist/src/utils/config.d.ts.map +1 -1
- package/dist/src/utils/config.js +1 -0
- package/dist/src/utils/config.js.map +1 -1
- package/dist/src/utils/directory-compat.js +1 -1
- package/dist/src/utils/directory-compat.js.map +1 -1
- package/dist/src/utils/enhanced-logging.d.ts +195 -0
- package/dist/src/utils/enhanced-logging.d.ts.map +1 -0
- package/dist/src/utils/enhanced-logging.js +449 -0
- package/dist/src/utils/enhanced-logging.js.map +1 -0
- package/dist/src/utils/file-system.d.ts +182 -34
- package/dist/src/utils/file-system.d.ts.map +1 -1
- package/dist/src/utils/file-system.js +648 -774
- package/dist/src/utils/file-system.js.map +1 -1
- package/dist/src/utils/gitleaks-detector.d.ts +50 -0
- package/dist/src/utils/gitleaks-detector.d.ts.map +1 -0
- package/dist/src/utils/gitleaks-detector.js +334 -0
- package/dist/src/utils/gitleaks-detector.js.map +1 -0
- package/dist/src/utils/interactive-approval.d.ts +1 -1
- package/dist/src/utils/interactive-approval.d.ts.map +1 -1
- package/dist/src/utils/interactive-approval.js +22 -17
- package/dist/src/utils/interactive-approval.js.map +1 -1
- package/dist/src/utils/json-safe.d.ts.map +1 -1
- package/dist/src/utils/json-safe.js +9 -6
- package/dist/src/utils/json-safe.js.map +1 -1
- package/dist/src/utils/knowledge-graph-manager.d.ts +37 -1
- package/dist/src/utils/knowledge-graph-manager.d.ts.map +1 -1
- package/dist/src/utils/knowledge-graph-manager.js +315 -70
- package/dist/src/utils/knowledge-graph-manager.js.map +1 -1
- package/dist/src/utils/location-filter.d.ts +35 -10
- package/dist/src/utils/location-filter.d.ts.map +1 -1
- package/dist/src/utils/location-filter.js +360 -94
- package/dist/src/utils/location-filter.js.map +1 -1
- package/dist/src/utils/mcp-response-validator.d.ts.map +1 -1
- package/dist/src/utils/mcp-response-validator.js +34 -19
- package/dist/src/utils/mcp-response-validator.js.map +1 -1
- package/dist/src/utils/memory-entity-manager.d.ts +134 -0
- package/dist/src/utils/memory-entity-manager.d.ts.map +1 -0
- package/dist/src/utils/memory-entity-manager.js +851 -0
- package/dist/src/utils/memory-entity-manager.js.map +1 -0
- package/dist/src/utils/memory-health-scoring.d.ts +125 -0
- package/dist/src/utils/memory-health-scoring.d.ts.map +1 -0
- package/dist/src/utils/memory-health-scoring.js +277 -0
- package/dist/src/utils/memory-health-scoring.js.map +1 -0
- package/dist/src/utils/memory-migration-manager.d.ts +93 -0
- package/dist/src/utils/memory-migration-manager.d.ts.map +1 -0
- package/dist/src/utils/memory-migration-manager.js +842 -0
- package/dist/src/utils/memory-migration-manager.js.map +1 -0
- package/dist/src/utils/memory-relationship-mapper.d.ts +87 -0
- package/dist/src/utils/memory-relationship-mapper.d.ts.map +1 -0
- package/dist/src/utils/memory-relationship-mapper.js +482 -0
- package/dist/src/utils/memory-relationship-mapper.js.map +1 -0
- package/dist/src/utils/memory-rollback-manager.d.ts +105 -0
- package/dist/src/utils/memory-rollback-manager.d.ts.map +1 -0
- package/dist/src/utils/memory-rollback-manager.js +575 -0
- package/dist/src/utils/memory-rollback-manager.js.map +1 -0
- package/dist/src/utils/memory-transformation.d.ts +59 -0
- package/dist/src/utils/memory-transformation.d.ts.map +1 -0
- package/dist/src/utils/memory-transformation.js +742 -0
- package/dist/src/utils/memory-transformation.js.map +1 -0
- package/dist/src/utils/output-masking.d.ts +12 -0
- package/dist/src/utils/output-masking.d.ts.map +1 -1
- package/dist/src/utils/output-masking.js +5 -0
- package/dist/src/utils/output-masking.js.map +1 -1
- package/dist/src/utils/prompt-execution.d.ts.map +1 -1
- package/dist/src/utils/prompt-execution.js +72 -51
- package/dist/src/utils/prompt-execution.js.map +1 -1
- package/dist/src/utils/release-readiness-detector.d.ts.map +1 -1
- package/dist/src/utils/release-readiness-detector.js +43 -42
- package/dist/src/utils/release-readiness-detector.js.map +1 -1
- package/dist/src/utils/research-integration.d.ts.map +1 -1
- package/dist/src/utils/research-integration.js +73 -44
- package/dist/src/utils/research-integration.js.map +1 -1
- package/dist/src/utils/research-questions.d.ts.map +1 -1
- package/dist/src/utils/research-questions.js +40 -14
- package/dist/src/utils/research-questions.js.map +1 -1
- package/dist/src/utils/ripgrep-wrapper.d.ts +84 -0
- package/dist/src/utils/ripgrep-wrapper.d.ts.map +1 -0
- package/dist/src/utils/ripgrep-wrapper.js +255 -0
- package/dist/src/utils/ripgrep-wrapper.js.map +1 -0
- package/dist/src/utils/rule-generation.d.ts.map +1 -1
- package/dist/src/utils/rule-generation.js +26 -15
- package/dist/src/utils/rule-generation.js.map +1 -1
- package/dist/src/utils/todo-file-watcher.d.ts +11 -23
- package/dist/src/utils/todo-file-watcher.d.ts.map +1 -1
- package/dist/src/utils/todo-file-watcher.js +18 -156
- package/dist/src/utils/todo-file-watcher.js.map +1 -1
- package/dist/src/utils/tree-sitter-analyzer.d.ts +185 -0
- package/dist/src/utils/tree-sitter-analyzer.d.ts.map +1 -0
- package/dist/src/utils/tree-sitter-analyzer.js +885 -0
- package/dist/src/utils/tree-sitter-analyzer.js.map +1 -0
- package/package.json +51 -10
- package/dist/src/tools/smart-score-tool.d.ts +0 -173
- package/dist/src/tools/smart-score-tool.d.ts.map +0 -1
- package/dist/src/tools/smart-score-tool.js +0 -681
- package/dist/src/tools/smart-score-tool.js.map +0 -1
- package/dist/src/tools/todo-management-tool-v2.d.ts +0 -368
- package/dist/src/tools/todo-management-tool-v2.d.ts.map +0 -1
- package/dist/src/tools/todo-management-tool-v2.js +0 -922
- package/dist/src/tools/todo-management-tool-v2.js.map +0 -1
- package/dist/src/utils/enhanced-sensitive-detector.d.ts +0 -61
- package/dist/src/utils/enhanced-sensitive-detector.d.ts.map +0 -1
- package/dist/src/utils/enhanced-sensitive-detector.js +0 -437
- package/dist/src/utils/enhanced-sensitive-detector.js.map +0 -1
- package/dist/src/utils/project-health-scoring.d.ts +0 -177
- package/dist/src/utils/project-health-scoring.d.ts.map +0 -1
- package/dist/src/utils/project-health-scoring.js +0 -370
- package/dist/src/utils/project-health-scoring.js.map +0 -1
- package/dist/src/utils/todo-json-manager.d.ts +0 -71
- package/dist/src/utils/todo-json-manager.d.ts.map +0 -1
- package/dist/src/utils/todo-json-manager.js +0 -396
- package/dist/src/utils/todo-json-manager.js.map +0 -1
- package/dist/src/utils/todo-markdown-converter.d.ts +0 -16
- package/dist/src/utils/todo-markdown-converter.d.ts.map +0 -1
- package/dist/src/utils/todo-markdown-converter.js +0 -362
- package/dist/src/utils/todo-markdown-converter.js.map +0 -1
- package/dist/src/utils/todo-migration.d.ts +0 -47
- package/dist/src/utils/todo-migration.d.ts.map +0 -1
- package/dist/src/utils/todo-migration.js +0 -261
- 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;
|
|
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
|
|
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
|
|
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 (
|
|
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
|
-
${
|
|
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
|
-
${
|
|
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**
|
|
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 =
|
|
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
|
|
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
|
-
${
|
|
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
|
|