mcp-adr-analysis-server 1.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/LICENSE +21 -0
- package/README.md +608 -0
- package/dist/src/index.d.ts +10 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +1722 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/prompts/adr-suggestion-prompts.d.ts +24 -0
- package/dist/src/prompts/adr-suggestion-prompts.d.ts.map +1 -0
- package/dist/src/prompts/adr-suggestion-prompts.js +383 -0
- package/dist/src/prompts/adr-suggestion-prompts.js.map +1 -0
- package/dist/src/prompts/analysis-prompts.d.ts +24 -0
- package/dist/src/prompts/analysis-prompts.d.ts.map +1 -0
- package/dist/src/prompts/analysis-prompts.js +489 -0
- package/dist/src/prompts/analysis-prompts.js.map +1 -0
- package/dist/src/prompts/deployment-analysis-prompts.d.ts +54 -0
- package/dist/src/prompts/deployment-analysis-prompts.d.ts.map +1 -0
- package/dist/src/prompts/deployment-analysis-prompts.js +712 -0
- package/dist/src/prompts/deployment-analysis-prompts.js.map +1 -0
- package/dist/src/prompts/environment-analysis-prompts.d.ts +34 -0
- package/dist/src/prompts/environment-analysis-prompts.d.ts.map +1 -0
- package/dist/src/prompts/environment-analysis-prompts.js +724 -0
- package/dist/src/prompts/environment-analysis-prompts.js.map +1 -0
- package/dist/src/prompts/index.d.ts +43 -0
- package/dist/src/prompts/index.d.ts.map +1 -0
- package/dist/src/prompts/index.js +384 -0
- package/dist/src/prompts/index.js.map +1 -0
- package/dist/src/prompts/research-integration-prompts.d.ts +43 -0
- package/dist/src/prompts/research-integration-prompts.d.ts.map +1 -0
- package/dist/src/prompts/research-integration-prompts.js +398 -0
- package/dist/src/prompts/research-integration-prompts.js.map +1 -0
- package/dist/src/prompts/research-question-prompts.d.ts +75 -0
- package/dist/src/prompts/research-question-prompts.d.ts.map +1 -0
- package/dist/src/prompts/research-question-prompts.js +695 -0
- package/dist/src/prompts/research-question-prompts.js.map +1 -0
- package/dist/src/prompts/rule-generation-prompts.d.ts +63 -0
- package/dist/src/prompts/rule-generation-prompts.d.ts.map +1 -0
- package/dist/src/prompts/rule-generation-prompts.js +630 -0
- package/dist/src/prompts/rule-generation-prompts.js.map +1 -0
- package/dist/src/prompts/security-prompts.d.ts +23 -0
- package/dist/src/prompts/security-prompts.d.ts.map +1 -0
- package/dist/src/prompts/security-prompts.js +287 -0
- package/dist/src/prompts/security-prompts.js.map +1 -0
- package/dist/src/resources/index.d.ts +24 -0
- package/dist/src/resources/index.d.ts.map +1 -0
- package/dist/src/resources/index.js +458 -0
- package/dist/src/resources/index.js.map +1 -0
- package/dist/src/tools/adr-suggestion-tool.d.ts +40 -0
- package/dist/src/tools/adr-suggestion-tool.d.ts.map +1 -0
- package/dist/src/tools/adr-suggestion-tool.js +338 -0
- package/dist/src/tools/adr-suggestion-tool.js.map +1 -0
- package/dist/src/tools/content-masking-tool.d.ts +52 -0
- package/dist/src/tools/content-masking-tool.d.ts.map +1 -0
- package/dist/src/tools/content-masking-tool.js +206 -0
- package/dist/src/tools/content-masking-tool.js.map +1 -0
- package/dist/src/tools/deployment-analysis-tool.d.ts +39 -0
- package/dist/src/tools/deployment-analysis-tool.d.ts.map +1 -0
- package/dist/src/tools/deployment-analysis-tool.js +310 -0
- package/dist/src/tools/deployment-analysis-tool.js.map +1 -0
- package/dist/src/tools/environment-analysis-tool.d.ts +16 -0
- package/dist/src/tools/environment-analysis-tool.d.ts.map +1 -0
- package/dist/src/tools/environment-analysis-tool.js +298 -0
- package/dist/src/tools/environment-analysis-tool.js.map +1 -0
- package/dist/src/tools/research-integration-tool.d.ts +44 -0
- package/dist/src/tools/research-integration-tool.d.ts.map +1 -0
- package/dist/src/tools/research-integration-tool.js +429 -0
- package/dist/src/tools/research-integration-tool.js.map +1 -0
- package/dist/src/tools/research-question-tool.d.ts +55 -0
- package/dist/src/tools/research-question-tool.d.ts.map +1 -0
- package/dist/src/tools/research-question-tool.js +333 -0
- package/dist/src/tools/research-question-tool.js.map +1 -0
- package/dist/src/tools/rule-generation-tool.d.ts +49 -0
- package/dist/src/tools/rule-generation-tool.d.ts.map +1 -0
- package/dist/src/tools/rule-generation-tool.js +432 -0
- package/dist/src/tools/rule-generation-tool.js.map +1 -0
- package/dist/src/types/index.d.ts +531 -0
- package/dist/src/types/index.d.ts.map +1 -0
- package/dist/src/types/index.js +129 -0
- package/dist/src/types/index.js.map +1 -0
- package/dist/src/utils/adr-suggestions.d.ts +104 -0
- package/dist/src/utils/adr-suggestions.d.ts.map +1 -0
- package/dist/src/utils/adr-suggestions.js +228 -0
- package/dist/src/utils/adr-suggestions.js.map +1 -0
- package/dist/src/utils/cache.d.ts +51 -0
- package/dist/src/utils/cache.d.ts.map +1 -0
- package/dist/src/utils/cache.js +243 -0
- package/dist/src/utils/cache.js.map +1 -0
- package/dist/src/utils/config.d.ts +65 -0
- package/dist/src/utils/config.d.ts.map +1 -0
- package/dist/src/utils/config.js +118 -0
- package/dist/src/utils/config.js.map +1 -0
- package/dist/src/utils/content-masking.d.ts +79 -0
- package/dist/src/utils/content-masking.d.ts.map +1 -0
- package/dist/src/utils/content-masking.js +203 -0
- package/dist/src/utils/content-masking.js.map +1 -0
- package/dist/src/utils/deployment-analysis.d.ts +67 -0
- package/dist/src/utils/deployment-analysis.d.ts.map +1 -0
- package/dist/src/utils/deployment-analysis.js +263 -0
- package/dist/src/utils/deployment-analysis.js.map +1 -0
- package/dist/src/utils/environment-analysis.d.ts +76 -0
- package/dist/src/utils/environment-analysis.d.ts.map +1 -0
- package/dist/src/utils/environment-analysis.js +329 -0
- package/dist/src/utils/environment-analysis.js.map +1 -0
- package/dist/src/utils/file-system.d.ts +63 -0
- package/dist/src/utils/file-system.d.ts.map +1 -0
- package/dist/src/utils/file-system.js +189 -0
- package/dist/src/utils/file-system.js.map +1 -0
- package/dist/src/utils/output-masking.d.ts +45 -0
- package/dist/src/utils/output-masking.d.ts.map +1 -0
- package/dist/src/utils/output-masking.js +200 -0
- package/dist/src/utils/output-masking.js.map +1 -0
- package/dist/src/utils/research-documentation.d.ts +58 -0
- package/dist/src/utils/research-documentation.d.ts.map +1 -0
- package/dist/src/utils/research-documentation.js +438 -0
- package/dist/src/utils/research-documentation.js.map +1 -0
- package/dist/src/utils/research-integration.d.ts +89 -0
- package/dist/src/utils/research-integration.d.ts.map +1 -0
- package/dist/src/utils/research-integration.js +432 -0
- package/dist/src/utils/research-integration.js.map +1 -0
- package/dist/src/utils/research-questions.d.ts +97 -0
- package/dist/src/utils/research-questions.d.ts.map +1 -0
- package/dist/src/utils/research-questions.js +319 -0
- package/dist/src/utils/research-questions.js.map +1 -0
- package/dist/src/utils/rule-format.d.ts +76 -0
- package/dist/src/utils/rule-format.d.ts.map +1 -0
- package/dist/src/utils/rule-format.js +257 -0
- package/dist/src/utils/rule-format.js.map +1 -0
- package/dist/src/utils/rule-generation.d.ts +86 -0
- package/dist/src/utils/rule-generation.d.ts.map +1 -0
- package/dist/src/utils/rule-generation.js +330 -0
- package/dist/src/utils/rule-generation.js.map +1 -0
- package/package.json +71 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-format.js","sourceRoot":"","sources":["../../../src/utils/rule-format.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rule generation and validation utilities using prompt-driven AI analysis
|
|
3
|
+
* Implements intelligent architectural rule extraction and code validation
|
|
4
|
+
*/
|
|
5
|
+
export interface ArchitecturalRule {
|
|
6
|
+
id: string;
|
|
7
|
+
name: string;
|
|
8
|
+
description: string;
|
|
9
|
+
category: 'architectural' | 'technology' | 'coding' | 'process' | 'security' | 'performance';
|
|
10
|
+
type: 'must' | 'should' | 'may' | 'must_not' | 'should_not';
|
|
11
|
+
severity: 'info' | 'warning' | 'error' | 'critical';
|
|
12
|
+
scope: 'global' | 'module' | 'component' | 'function' | 'file';
|
|
13
|
+
pattern: string;
|
|
14
|
+
message: string;
|
|
15
|
+
examples: {
|
|
16
|
+
valid: string[];
|
|
17
|
+
invalid: string[];
|
|
18
|
+
};
|
|
19
|
+
sourceAdrs: string[];
|
|
20
|
+
evidence: string[];
|
|
21
|
+
automatable: boolean;
|
|
22
|
+
confidence: number;
|
|
23
|
+
tags: string[];
|
|
24
|
+
}
|
|
25
|
+
export interface RuleViolation {
|
|
26
|
+
ruleId: string;
|
|
27
|
+
ruleName: string;
|
|
28
|
+
severity: 'info' | 'warning' | 'error' | 'critical';
|
|
29
|
+
message: string;
|
|
30
|
+
location: {
|
|
31
|
+
line: number;
|
|
32
|
+
column: number;
|
|
33
|
+
endLine: number;
|
|
34
|
+
endColumn: number;
|
|
35
|
+
};
|
|
36
|
+
codeSnippet: string;
|
|
37
|
+
suggestion: string;
|
|
38
|
+
effort: 'low' | 'medium' | 'high';
|
|
39
|
+
priority: 'low' | 'medium' | 'high' | 'critical';
|
|
40
|
+
category: string;
|
|
41
|
+
}
|
|
42
|
+
export interface ValidationResult {
|
|
43
|
+
fileName: string;
|
|
44
|
+
validationType: string;
|
|
45
|
+
overallCompliance: number;
|
|
46
|
+
totalRulesChecked: number;
|
|
47
|
+
rulesViolated: number;
|
|
48
|
+
qualityScore: number;
|
|
49
|
+
violations: RuleViolation[];
|
|
50
|
+
compliance: Array<{
|
|
51
|
+
ruleId: string;
|
|
52
|
+
ruleName: string;
|
|
53
|
+
status: string;
|
|
54
|
+
evidence: string;
|
|
55
|
+
location: string;
|
|
56
|
+
}>;
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Extract architectural rules from ADRs
|
|
60
|
+
*/
|
|
61
|
+
export declare function extractRulesFromAdrs(adrDirectory?: string, existingRules?: ArchitecturalRule[]): Promise<{
|
|
62
|
+
extractionPrompt: string;
|
|
63
|
+
instructions: string;
|
|
64
|
+
}>;
|
|
65
|
+
/**
|
|
66
|
+
* Generate rules from code patterns
|
|
67
|
+
*/
|
|
68
|
+
export declare function generateRulesFromPatterns(projectPath: string, existingRules?: string[]): Promise<{
|
|
69
|
+
generationPrompt: string;
|
|
70
|
+
instructions: string;
|
|
71
|
+
}>;
|
|
72
|
+
/**
|
|
73
|
+
* Validate code against architectural rules
|
|
74
|
+
*/
|
|
75
|
+
export declare function validateCodeAgainstRules(filePath: string, rules: ArchitecturalRule[], validationType?: 'file' | 'function' | 'component' | 'module'): Promise<{
|
|
76
|
+
validationPrompt: string;
|
|
77
|
+
instructions: string;
|
|
78
|
+
}>;
|
|
79
|
+
/**
|
|
80
|
+
* Generate rule deviation report
|
|
81
|
+
*/
|
|
82
|
+
export declare function generateRuleDeviationReport(validationResults: ValidationResult[], rules: ArchitecturalRule[], reportType?: 'summary' | 'detailed' | 'trend' | 'compliance'): Promise<{
|
|
83
|
+
reportPrompt: string;
|
|
84
|
+
instructions: string;
|
|
85
|
+
}>;
|
|
86
|
+
//# sourceMappingURL=rule-generation.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-generation.d.ts","sourceRoot":"","sources":["../../../src/utils/rule-generation.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,330 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Rule generation and validation utilities using prompt-driven AI analysis
|
|
3
|
+
* Implements intelligent architectural rule extraction and code validation
|
|
4
|
+
*/
|
|
5
|
+
import { McpAdrError } from '../types/index.js';
|
|
6
|
+
/**
|
|
7
|
+
* Extract architectural rules from ADRs
|
|
8
|
+
*/
|
|
9
|
+
export async function extractRulesFromAdrs(adrDirectory = 'docs/adrs', existingRules) {
|
|
10
|
+
try {
|
|
11
|
+
const { findFiles } = await import('./file-system.js');
|
|
12
|
+
const { generateRuleExtractionPrompt } = await import('../prompts/rule-generation-prompts.js');
|
|
13
|
+
// Find all ADR files
|
|
14
|
+
const adrFiles = await findFiles(process.cwd(), [`${adrDirectory}/**/*.md`], {
|
|
15
|
+
includeContent: true,
|
|
16
|
+
});
|
|
17
|
+
if (adrFiles.length === 0) {
|
|
18
|
+
throw new McpAdrError(`No ADR files found in ${adrDirectory}`, 'NO_ADRS_FOUND');
|
|
19
|
+
}
|
|
20
|
+
// Prepare ADR data
|
|
21
|
+
const adrData = adrFiles.map(file => {
|
|
22
|
+
const titleMatch = file.content?.match(/^#\s+(.+)$/m);
|
|
23
|
+
const statusMatch = file.content?.match(/##\s+Status\s*\n\s*(.+)/i);
|
|
24
|
+
return {
|
|
25
|
+
id: file.name.replace(/\.md$/, ''),
|
|
26
|
+
title: titleMatch?.[1] || file.name.replace(/\.md$/, ''),
|
|
27
|
+
content: file.content || '',
|
|
28
|
+
status: statusMatch?.[1] || 'Unknown',
|
|
29
|
+
category: extractAdrCategory(file.content || ''),
|
|
30
|
+
};
|
|
31
|
+
});
|
|
32
|
+
// Prepare existing rules data
|
|
33
|
+
const existingRulesData = existingRules?.map(rule => ({
|
|
34
|
+
id: rule.id,
|
|
35
|
+
name: rule.name,
|
|
36
|
+
description: rule.description,
|
|
37
|
+
}));
|
|
38
|
+
const extractionPrompt = generateRuleExtractionPrompt(adrData, existingRulesData);
|
|
39
|
+
const instructions = `
|
|
40
|
+
# Rule Extraction Instructions
|
|
41
|
+
|
|
42
|
+
This analysis will extract actionable architectural rules from ADRs that can be used for code validation and compliance checking.
|
|
43
|
+
|
|
44
|
+
## Extraction Scope
|
|
45
|
+
- **ADR Directory**: ${adrDirectory}
|
|
46
|
+
- **ADRs Analyzed**: ${adrFiles.length} files
|
|
47
|
+
- **Existing Rules**: ${existingRules?.length || 0} rules
|
|
48
|
+
- **Rule Categories**: Architectural, Technology, Coding, Process, Security, Performance
|
|
49
|
+
|
|
50
|
+
## Next Steps
|
|
51
|
+
1. **Submit the extraction prompt** to an AI agent for comprehensive rule analysis
|
|
52
|
+
2. **Parse the JSON response** to get extracted rules and metadata
|
|
53
|
+
3. **Review the extracted rules** for accuracy and completeness
|
|
54
|
+
4. **Save rules** in machine-readable format (JSON/YAML)
|
|
55
|
+
5. **Integrate with validation tools** for automated compliance checking
|
|
56
|
+
|
|
57
|
+
## Expected AI Response Format
|
|
58
|
+
The AI will return a JSON object with:
|
|
59
|
+
- \`extractedRules\`: Array of actionable architectural rules
|
|
60
|
+
- \`ruleCategories\`: Rule organization and prioritization
|
|
61
|
+
- \`ruleDependencies\`: Relationships between rules
|
|
62
|
+
- \`validationStrategies\`: Approaches for rule validation
|
|
63
|
+
- \`implementationGuidance\`: Prioritized implementation plan
|
|
64
|
+
|
|
65
|
+
## Usage Example
|
|
66
|
+
\`\`\`typescript
|
|
67
|
+
const result = await extractRulesFromAdrs(adrDirectory, existingRules);
|
|
68
|
+
// Submit result.extractionPrompt to AI agent
|
|
69
|
+
// Parse AI response as rule extraction results
|
|
70
|
+
\`\`\`
|
|
71
|
+
`;
|
|
72
|
+
return {
|
|
73
|
+
extractionPrompt,
|
|
74
|
+
instructions,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
catch (error) {
|
|
78
|
+
throw new McpAdrError(`Failed to extract rules from ADRs: ${error instanceof Error ? error.message : String(error)}`, 'RULE_EXTRACTION_ERROR');
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Generate rules from code patterns
|
|
83
|
+
*/
|
|
84
|
+
export async function generateRulesFromPatterns(projectPath, existingRules) {
|
|
85
|
+
try {
|
|
86
|
+
const { analyzeProjectStructure } = await import('./file-system.js');
|
|
87
|
+
const { generateAnalysisContext } = await import('../prompts/analysis-prompts.js');
|
|
88
|
+
const { generatePatternBasedRulePrompt } = await import('../prompts/rule-generation-prompts.js');
|
|
89
|
+
// Analyze project structure
|
|
90
|
+
const projectStructure = await analyzeProjectStructure(projectPath);
|
|
91
|
+
const analysisContext = generateAnalysisContext(projectStructure);
|
|
92
|
+
// Extract code patterns
|
|
93
|
+
const codePatterns = extractCodePatterns(projectStructure);
|
|
94
|
+
const generationPrompt = generatePatternBasedRulePrompt(analysisContext, codePatterns, existingRules);
|
|
95
|
+
const instructions = `
|
|
96
|
+
# Pattern-Based Rule Generation Instructions
|
|
97
|
+
|
|
98
|
+
This analysis will generate architectural rules based on observed code patterns to enforce consistency and best practices.
|
|
99
|
+
|
|
100
|
+
## Pattern Analysis
|
|
101
|
+
- **Project Path**: ${projectPath}
|
|
102
|
+
- **Files Analyzed**: ${projectStructure.totalFiles} files
|
|
103
|
+
- **Code Patterns**: ${codePatterns.length} patterns detected
|
|
104
|
+
- **Existing Rules**: ${existingRules?.length || 0} rules
|
|
105
|
+
|
|
106
|
+
## Next Steps
|
|
107
|
+
1. **Submit the generation prompt** to an AI agent for pattern analysis
|
|
108
|
+
2. **Parse the JSON response** to get generated rules and metrics
|
|
109
|
+
3. **Review pattern-based rules** for relevance and accuracy
|
|
110
|
+
4. **Combine with ADR-extracted rules** for comprehensive rule set
|
|
111
|
+
5. **Implement validation** for high-confidence rules
|
|
112
|
+
|
|
113
|
+
## Expected AI Response Format
|
|
114
|
+
The AI will return a JSON object with:
|
|
115
|
+
- \`generatedRules\`: Rules based on observed code patterns
|
|
116
|
+
- \`patternAnalysis\`: Analysis of code consistency and quality
|
|
117
|
+
- \`ruleMetrics\`: Statistics about generated rules
|
|
118
|
+
- \`implementationPlan\`: Phased approach for rule implementation
|
|
119
|
+
|
|
120
|
+
## Usage Example
|
|
121
|
+
\`\`\`typescript
|
|
122
|
+
const result = await generateRulesFromPatterns(projectPath, existingRules);
|
|
123
|
+
// Submit result.generationPrompt to AI agent
|
|
124
|
+
// Parse AI response for pattern-based rules
|
|
125
|
+
\`\`\`
|
|
126
|
+
`;
|
|
127
|
+
return {
|
|
128
|
+
generationPrompt,
|
|
129
|
+
instructions,
|
|
130
|
+
};
|
|
131
|
+
}
|
|
132
|
+
catch (error) {
|
|
133
|
+
throw new McpAdrError(`Failed to generate rules from patterns: ${error instanceof Error ? error.message : String(error)}`, 'PATTERN_RULE_GENERATION_ERROR');
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
/**
|
|
137
|
+
* Validate code against architectural rules
|
|
138
|
+
*/
|
|
139
|
+
export async function validateCodeAgainstRules(filePath, rules, validationType = 'file') {
|
|
140
|
+
try {
|
|
141
|
+
const { promises: fs } = await import('fs');
|
|
142
|
+
const { generateCodeValidationPrompt } = await import('../prompts/rule-generation-prompts.js');
|
|
143
|
+
// Read the file to validate
|
|
144
|
+
const codeContent = await fs.readFile(filePath, 'utf-8');
|
|
145
|
+
const fileName = filePath.split('/').pop() || filePath;
|
|
146
|
+
// Prepare rules data for validation
|
|
147
|
+
const rulesData = rules.map(rule => ({
|
|
148
|
+
id: rule.id,
|
|
149
|
+
name: rule.name,
|
|
150
|
+
description: rule.description,
|
|
151
|
+
pattern: rule.pattern,
|
|
152
|
+
severity: rule.severity,
|
|
153
|
+
message: rule.message,
|
|
154
|
+
}));
|
|
155
|
+
const validationPrompt = generateCodeValidationPrompt(codeContent, fileName, rulesData, validationType);
|
|
156
|
+
const instructions = `
|
|
157
|
+
# Code Validation Instructions
|
|
158
|
+
|
|
159
|
+
This analysis will validate code against architectural rules and report violations with specific remediation suggestions.
|
|
160
|
+
|
|
161
|
+
## Validation Details
|
|
162
|
+
- **File**: ${fileName}
|
|
163
|
+
- **File Path**: ${filePath}
|
|
164
|
+
- **Validation Type**: ${validationType}
|
|
165
|
+
- **Rules Applied**: ${rules.length} rules
|
|
166
|
+
- **Code Length**: ${codeContent.length} characters
|
|
167
|
+
|
|
168
|
+
## Next Steps
|
|
169
|
+
1. **Submit the validation prompt** to an AI agent for comprehensive analysis
|
|
170
|
+
2. **Parse the JSON response** to get validation results and violations
|
|
171
|
+
3. **Review violations** and prioritize fixes based on severity
|
|
172
|
+
4. **Apply suggested fixes** to improve compliance
|
|
173
|
+
5. **Re-validate** to confirm improvements
|
|
174
|
+
|
|
175
|
+
## Expected AI Response Format
|
|
176
|
+
The AI will return a JSON object with:
|
|
177
|
+
- \`validationResults\`: Overall validation metadata and scores
|
|
178
|
+
- \`violations\`: Specific rule violations with locations and suggestions
|
|
179
|
+
- \`compliance\`: Rules that were successfully followed
|
|
180
|
+
- \`metrics\`: Quality and compliance metrics
|
|
181
|
+
- \`recommendations\`: Prioritized improvement recommendations
|
|
182
|
+
- \`summary\`: Executive summary of validation results
|
|
183
|
+
|
|
184
|
+
## Usage Example
|
|
185
|
+
\`\`\`typescript
|
|
186
|
+
const result = await validateCodeAgainstRules(filePath, rules, validationType);
|
|
187
|
+
// Submit result.validationPrompt to AI agent
|
|
188
|
+
// Parse AI response as ValidationResult
|
|
189
|
+
\`\`\`
|
|
190
|
+
`;
|
|
191
|
+
return {
|
|
192
|
+
validationPrompt,
|
|
193
|
+
instructions,
|
|
194
|
+
};
|
|
195
|
+
}
|
|
196
|
+
catch (error) {
|
|
197
|
+
throw new McpAdrError(`Failed to validate code against rules: ${error instanceof Error ? error.message : String(error)}`, 'CODE_VALIDATION_ERROR');
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Generate rule deviation report
|
|
202
|
+
*/
|
|
203
|
+
export async function generateRuleDeviationReport(validationResults, rules, reportType = 'summary') {
|
|
204
|
+
try {
|
|
205
|
+
const { generateRuleDeviationReportPrompt } = await import('../prompts/rule-generation-prompts.js');
|
|
206
|
+
// Prepare rules data for reporting
|
|
207
|
+
const rulesData = rules.map(rule => ({
|
|
208
|
+
id: rule.id,
|
|
209
|
+
name: rule.name,
|
|
210
|
+
category: rule.category,
|
|
211
|
+
severity: rule.severity,
|
|
212
|
+
}));
|
|
213
|
+
const reportPrompt = generateRuleDeviationReportPrompt(validationResults, rulesData, reportType);
|
|
214
|
+
const instructions = `
|
|
215
|
+
# Rule Deviation Report Instructions
|
|
216
|
+
|
|
217
|
+
This analysis will generate a comprehensive compliance report with actionable insights and improvement recommendations.
|
|
218
|
+
|
|
219
|
+
## Report Details
|
|
220
|
+
- **Report Type**: ${reportType.toUpperCase()}
|
|
221
|
+
- **Files Analyzed**: ${validationResults.length} files
|
|
222
|
+
- **Rules Evaluated**: ${rules.length} rules
|
|
223
|
+
- **Total Violations**: ${validationResults.reduce((sum, r) => sum + r.violations.length, 0)}
|
|
224
|
+
- **Average Compliance**: ${((validationResults.reduce((sum, r) => sum + r.overallCompliance, 0) / validationResults.length) * 100).toFixed(1)}%
|
|
225
|
+
|
|
226
|
+
## Next Steps
|
|
227
|
+
1. **Submit the report prompt** to an AI agent for comprehensive analysis
|
|
228
|
+
2. **Parse the JSON response** to get detailed compliance report
|
|
229
|
+
3. **Review executive summary** for key findings and recommendations
|
|
230
|
+
4. **Implement priority fixes** based on actionable insights
|
|
231
|
+
5. **Track progress** using suggested success metrics
|
|
232
|
+
|
|
233
|
+
## Expected AI Response Format
|
|
234
|
+
The AI will return a JSON object with:
|
|
235
|
+
- \`reportMetadata\`: Report generation details and scope
|
|
236
|
+
- \`executiveSummary\`: High-level findings and recommendations
|
|
237
|
+
- \`detailedAnalysis\`: Rule-by-rule and file-by-file breakdown
|
|
238
|
+
- \`actionableInsights\`: Priority fixes, quick wins, and systemic issues
|
|
239
|
+
- \`implementationRoadmap\`: Phased improvement plan with timelines
|
|
240
|
+
- \`successMetrics\`: Measurable targets for improvement tracking
|
|
241
|
+
|
|
242
|
+
## Usage Example
|
|
243
|
+
\`\`\`typescript
|
|
244
|
+
const result = await generateRuleDeviationReport(validationResults, rules, reportType);
|
|
245
|
+
// Submit result.reportPrompt to AI agent
|
|
246
|
+
// Parse AI response for comprehensive compliance report
|
|
247
|
+
\`\`\`
|
|
248
|
+
`;
|
|
249
|
+
return {
|
|
250
|
+
reportPrompt,
|
|
251
|
+
instructions,
|
|
252
|
+
};
|
|
253
|
+
}
|
|
254
|
+
catch (error) {
|
|
255
|
+
throw new McpAdrError(`Failed to generate rule deviation report: ${error instanceof Error ? error.message : String(error)}`, 'REPORT_GENERATION_ERROR');
|
|
256
|
+
}
|
|
257
|
+
}
|
|
258
|
+
/**
|
|
259
|
+
* Extract code patterns from project structure
|
|
260
|
+
*/
|
|
261
|
+
function extractCodePatterns(projectStructure) {
|
|
262
|
+
const patterns = [];
|
|
263
|
+
try {
|
|
264
|
+
// Extract patterns from file types
|
|
265
|
+
if (projectStructure.filesByType) {
|
|
266
|
+
Object.entries(projectStructure.filesByType).forEach(([type, files]) => {
|
|
267
|
+
if (Array.isArray(files) && files.length > 0) {
|
|
268
|
+
patterns.push({
|
|
269
|
+
pattern: `${type} file organization`,
|
|
270
|
+
frequency: files.length,
|
|
271
|
+
examples: files.slice(0, 3).map((f) => f.name || f),
|
|
272
|
+
category: 'structure',
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
// Extract patterns from directory structure
|
|
278
|
+
if (projectStructure.directories) {
|
|
279
|
+
patterns.push({
|
|
280
|
+
pattern: 'Directory organization',
|
|
281
|
+
frequency: projectStructure.directories.length,
|
|
282
|
+
examples: projectStructure.directories.slice(0, 3),
|
|
283
|
+
category: 'structure',
|
|
284
|
+
});
|
|
285
|
+
}
|
|
286
|
+
// Extract patterns from detected technologies
|
|
287
|
+
if (projectStructure.detectedTechnologies) {
|
|
288
|
+
patterns.push({
|
|
289
|
+
pattern: 'Technology stack',
|
|
290
|
+
frequency: projectStructure.detectedTechnologies.length,
|
|
291
|
+
examples: projectStructure.detectedTechnologies.slice(0, 3),
|
|
292
|
+
category: 'technology',
|
|
293
|
+
});
|
|
294
|
+
}
|
|
295
|
+
return patterns;
|
|
296
|
+
}
|
|
297
|
+
catch (error) {
|
|
298
|
+
console.warn('Failed to extract code patterns:', error);
|
|
299
|
+
return [
|
|
300
|
+
{
|
|
301
|
+
pattern: 'Basic project structure',
|
|
302
|
+
frequency: 1,
|
|
303
|
+
examples: ['Unable to extract specific patterns'],
|
|
304
|
+
category: 'general',
|
|
305
|
+
},
|
|
306
|
+
];
|
|
307
|
+
}
|
|
308
|
+
}
|
|
309
|
+
/**
|
|
310
|
+
* Extract ADR category from content
|
|
311
|
+
*/
|
|
312
|
+
function extractAdrCategory(content) {
|
|
313
|
+
const categoryPatterns = [
|
|
314
|
+
{ pattern: /framework|library|dependency/i, category: 'technology' },
|
|
315
|
+
{ pattern: /database|storage|persistence/i, category: 'database' },
|
|
316
|
+
{ pattern: /api|rest|graphql|endpoint/i, category: 'api' },
|
|
317
|
+
{ pattern: /security|authentication|authorization/i, category: 'security' },
|
|
318
|
+
{ pattern: /deployment|infrastructure|cloud/i, category: 'deployment' },
|
|
319
|
+
{ pattern: /test|testing|quality/i, category: 'testing' },
|
|
320
|
+
{ pattern: /architecture|pattern|design/i, category: 'architecture' },
|
|
321
|
+
{ pattern: /process|workflow|methodology/i, category: 'process' },
|
|
322
|
+
];
|
|
323
|
+
for (const { pattern, category } of categoryPatterns) {
|
|
324
|
+
if (pattern.test(content)) {
|
|
325
|
+
return category;
|
|
326
|
+
}
|
|
327
|
+
}
|
|
328
|
+
return 'general';
|
|
329
|
+
}
|
|
330
|
+
//# sourceMappingURL=rule-generation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rule-generation.js","sourceRoot":"","sources":["../../../src/utils/rule-generation.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "mcp-adr-analysis-server",
|
|
3
|
+
"version": "1.1.0",
|
|
4
|
+
"description": "MCP server for analyzing Architectural Decision Records and project architecture",
|
|
5
|
+
"main": "dist/src/index.js",
|
|
6
|
+
"type": "module",
|
|
7
|
+
"engines": {
|
|
8
|
+
"node": ">=20.0.0",
|
|
9
|
+
"npm": ">=9.0.0"
|
|
10
|
+
},
|
|
11
|
+
"scripts": {
|
|
12
|
+
"build": "tsc",
|
|
13
|
+
"dev": "tsx src/index.ts",
|
|
14
|
+
"test": "jest",
|
|
15
|
+
"test:watch": "jest --watch",
|
|
16
|
+
"test:coverage": "jest --coverage",
|
|
17
|
+
"lint": "npm run typecheck",
|
|
18
|
+
"lint:fix": "npm run typecheck",
|
|
19
|
+
"clean": "rm -rf dist coverage .mcp-adr-cache",
|
|
20
|
+
"prepare": "test -d src && npm run build || echo 'Skipping build - no src directory (likely packaging)'",
|
|
21
|
+
"prepublishOnly": "npm run build && npm test && npm run lint",
|
|
22
|
+
"start": "node dist/src/index.js",
|
|
23
|
+
"health": "node dist/src/index.js --test",
|
|
24
|
+
"format": "prettier --write src/**/*.ts tests/**/*.ts",
|
|
25
|
+
"format:check": "prettier --check src/**/*.ts tests/**/*.ts",
|
|
26
|
+
"typecheck": "tsc --noEmit",
|
|
27
|
+
"prebuild": "npm run clean",
|
|
28
|
+
"test:package": "./scripts/test-npm-package.sh"
|
|
29
|
+
},
|
|
30
|
+
"dependencies": {
|
|
31
|
+
"@modelcontextprotocol/sdk": "^1.13.3",
|
|
32
|
+
"fast-glob": "^3.3.2",
|
|
33
|
+
"tslib": "^2.8.1",
|
|
34
|
+
"zod": "^3.22.4"
|
|
35
|
+
},
|
|
36
|
+
"devDependencies": {
|
|
37
|
+
"@types/jest": "^29.5.8",
|
|
38
|
+
"@types/node": "^20.9.0",
|
|
39
|
+
"jest": "^29.7.0",
|
|
40
|
+
"prettier": "^3.1.0",
|
|
41
|
+
"ts-jest": "^29.1.1",
|
|
42
|
+
"tsx": "^4.6.0",
|
|
43
|
+
"typescript": "^5.3.2"
|
|
44
|
+
},
|
|
45
|
+
"keywords": [
|
|
46
|
+
"mcp",
|
|
47
|
+
"architectural-decision-records",
|
|
48
|
+
"adr",
|
|
49
|
+
"architecture",
|
|
50
|
+
"analysis",
|
|
51
|
+
"typescript",
|
|
52
|
+
"model-context-protocol"
|
|
53
|
+
],
|
|
54
|
+
"author": "Tosin Akinosho <tosin@example.com>",
|
|
55
|
+
"license": "MIT",
|
|
56
|
+
"repository": {
|
|
57
|
+
"type": "git",
|
|
58
|
+
"url": "git+https://github.com/tosin2013/mcp-adr-analysis-server.git"
|
|
59
|
+
},
|
|
60
|
+
"bin": {
|
|
61
|
+
"mcp-adr-analysis-server": "./dist/src/index.js"
|
|
62
|
+
},
|
|
63
|
+
"files": [
|
|
64
|
+
"dist/src/",
|
|
65
|
+
"README.md",
|
|
66
|
+
"LICENSE"
|
|
67
|
+
],
|
|
68
|
+
"publishConfig": {
|
|
69
|
+
"access": "public"
|
|
70
|
+
}
|
|
71
|
+
}
|