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.
Files changed (131) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +608 -0
  3. package/dist/src/index.d.ts +10 -0
  4. package/dist/src/index.d.ts.map +1 -0
  5. package/dist/src/index.js +1722 -0
  6. package/dist/src/index.js.map +1 -0
  7. package/dist/src/prompts/adr-suggestion-prompts.d.ts +24 -0
  8. package/dist/src/prompts/adr-suggestion-prompts.d.ts.map +1 -0
  9. package/dist/src/prompts/adr-suggestion-prompts.js +383 -0
  10. package/dist/src/prompts/adr-suggestion-prompts.js.map +1 -0
  11. package/dist/src/prompts/analysis-prompts.d.ts +24 -0
  12. package/dist/src/prompts/analysis-prompts.d.ts.map +1 -0
  13. package/dist/src/prompts/analysis-prompts.js +489 -0
  14. package/dist/src/prompts/analysis-prompts.js.map +1 -0
  15. package/dist/src/prompts/deployment-analysis-prompts.d.ts +54 -0
  16. package/dist/src/prompts/deployment-analysis-prompts.d.ts.map +1 -0
  17. package/dist/src/prompts/deployment-analysis-prompts.js +712 -0
  18. package/dist/src/prompts/deployment-analysis-prompts.js.map +1 -0
  19. package/dist/src/prompts/environment-analysis-prompts.d.ts +34 -0
  20. package/dist/src/prompts/environment-analysis-prompts.d.ts.map +1 -0
  21. package/dist/src/prompts/environment-analysis-prompts.js +724 -0
  22. package/dist/src/prompts/environment-analysis-prompts.js.map +1 -0
  23. package/dist/src/prompts/index.d.ts +43 -0
  24. package/dist/src/prompts/index.d.ts.map +1 -0
  25. package/dist/src/prompts/index.js +384 -0
  26. package/dist/src/prompts/index.js.map +1 -0
  27. package/dist/src/prompts/research-integration-prompts.d.ts +43 -0
  28. package/dist/src/prompts/research-integration-prompts.d.ts.map +1 -0
  29. package/dist/src/prompts/research-integration-prompts.js +398 -0
  30. package/dist/src/prompts/research-integration-prompts.js.map +1 -0
  31. package/dist/src/prompts/research-question-prompts.d.ts +75 -0
  32. package/dist/src/prompts/research-question-prompts.d.ts.map +1 -0
  33. package/dist/src/prompts/research-question-prompts.js +695 -0
  34. package/dist/src/prompts/research-question-prompts.js.map +1 -0
  35. package/dist/src/prompts/rule-generation-prompts.d.ts +63 -0
  36. package/dist/src/prompts/rule-generation-prompts.d.ts.map +1 -0
  37. package/dist/src/prompts/rule-generation-prompts.js +630 -0
  38. package/dist/src/prompts/rule-generation-prompts.js.map +1 -0
  39. package/dist/src/prompts/security-prompts.d.ts +23 -0
  40. package/dist/src/prompts/security-prompts.d.ts.map +1 -0
  41. package/dist/src/prompts/security-prompts.js +287 -0
  42. package/dist/src/prompts/security-prompts.js.map +1 -0
  43. package/dist/src/resources/index.d.ts +24 -0
  44. package/dist/src/resources/index.d.ts.map +1 -0
  45. package/dist/src/resources/index.js +458 -0
  46. package/dist/src/resources/index.js.map +1 -0
  47. package/dist/src/tools/adr-suggestion-tool.d.ts +40 -0
  48. package/dist/src/tools/adr-suggestion-tool.d.ts.map +1 -0
  49. package/dist/src/tools/adr-suggestion-tool.js +338 -0
  50. package/dist/src/tools/adr-suggestion-tool.js.map +1 -0
  51. package/dist/src/tools/content-masking-tool.d.ts +52 -0
  52. package/dist/src/tools/content-masking-tool.d.ts.map +1 -0
  53. package/dist/src/tools/content-masking-tool.js +206 -0
  54. package/dist/src/tools/content-masking-tool.js.map +1 -0
  55. package/dist/src/tools/deployment-analysis-tool.d.ts +39 -0
  56. package/dist/src/tools/deployment-analysis-tool.d.ts.map +1 -0
  57. package/dist/src/tools/deployment-analysis-tool.js +310 -0
  58. package/dist/src/tools/deployment-analysis-tool.js.map +1 -0
  59. package/dist/src/tools/environment-analysis-tool.d.ts +16 -0
  60. package/dist/src/tools/environment-analysis-tool.d.ts.map +1 -0
  61. package/dist/src/tools/environment-analysis-tool.js +298 -0
  62. package/dist/src/tools/environment-analysis-tool.js.map +1 -0
  63. package/dist/src/tools/research-integration-tool.d.ts +44 -0
  64. package/dist/src/tools/research-integration-tool.d.ts.map +1 -0
  65. package/dist/src/tools/research-integration-tool.js +429 -0
  66. package/dist/src/tools/research-integration-tool.js.map +1 -0
  67. package/dist/src/tools/research-question-tool.d.ts +55 -0
  68. package/dist/src/tools/research-question-tool.d.ts.map +1 -0
  69. package/dist/src/tools/research-question-tool.js +333 -0
  70. package/dist/src/tools/research-question-tool.js.map +1 -0
  71. package/dist/src/tools/rule-generation-tool.d.ts +49 -0
  72. package/dist/src/tools/rule-generation-tool.d.ts.map +1 -0
  73. package/dist/src/tools/rule-generation-tool.js +432 -0
  74. package/dist/src/tools/rule-generation-tool.js.map +1 -0
  75. package/dist/src/types/index.d.ts +531 -0
  76. package/dist/src/types/index.d.ts.map +1 -0
  77. package/dist/src/types/index.js +129 -0
  78. package/dist/src/types/index.js.map +1 -0
  79. package/dist/src/utils/adr-suggestions.d.ts +104 -0
  80. package/dist/src/utils/adr-suggestions.d.ts.map +1 -0
  81. package/dist/src/utils/adr-suggestions.js +228 -0
  82. package/dist/src/utils/adr-suggestions.js.map +1 -0
  83. package/dist/src/utils/cache.d.ts +51 -0
  84. package/dist/src/utils/cache.d.ts.map +1 -0
  85. package/dist/src/utils/cache.js +243 -0
  86. package/dist/src/utils/cache.js.map +1 -0
  87. package/dist/src/utils/config.d.ts +65 -0
  88. package/dist/src/utils/config.d.ts.map +1 -0
  89. package/dist/src/utils/config.js +118 -0
  90. package/dist/src/utils/config.js.map +1 -0
  91. package/dist/src/utils/content-masking.d.ts +79 -0
  92. package/dist/src/utils/content-masking.d.ts.map +1 -0
  93. package/dist/src/utils/content-masking.js +203 -0
  94. package/dist/src/utils/content-masking.js.map +1 -0
  95. package/dist/src/utils/deployment-analysis.d.ts +67 -0
  96. package/dist/src/utils/deployment-analysis.d.ts.map +1 -0
  97. package/dist/src/utils/deployment-analysis.js +263 -0
  98. package/dist/src/utils/deployment-analysis.js.map +1 -0
  99. package/dist/src/utils/environment-analysis.d.ts +76 -0
  100. package/dist/src/utils/environment-analysis.d.ts.map +1 -0
  101. package/dist/src/utils/environment-analysis.js +329 -0
  102. package/dist/src/utils/environment-analysis.js.map +1 -0
  103. package/dist/src/utils/file-system.d.ts +63 -0
  104. package/dist/src/utils/file-system.d.ts.map +1 -0
  105. package/dist/src/utils/file-system.js +189 -0
  106. package/dist/src/utils/file-system.js.map +1 -0
  107. package/dist/src/utils/output-masking.d.ts +45 -0
  108. package/dist/src/utils/output-masking.d.ts.map +1 -0
  109. package/dist/src/utils/output-masking.js +200 -0
  110. package/dist/src/utils/output-masking.js.map +1 -0
  111. package/dist/src/utils/research-documentation.d.ts +58 -0
  112. package/dist/src/utils/research-documentation.d.ts.map +1 -0
  113. package/dist/src/utils/research-documentation.js +438 -0
  114. package/dist/src/utils/research-documentation.js.map +1 -0
  115. package/dist/src/utils/research-integration.d.ts +89 -0
  116. package/dist/src/utils/research-integration.d.ts.map +1 -0
  117. package/dist/src/utils/research-integration.js +432 -0
  118. package/dist/src/utils/research-integration.js.map +1 -0
  119. package/dist/src/utils/research-questions.d.ts +97 -0
  120. package/dist/src/utils/research-questions.d.ts.map +1 -0
  121. package/dist/src/utils/research-questions.js +319 -0
  122. package/dist/src/utils/research-questions.js.map +1 -0
  123. package/dist/src/utils/rule-format.d.ts +76 -0
  124. package/dist/src/utils/rule-format.d.ts.map +1 -0
  125. package/dist/src/utils/rule-format.js +257 -0
  126. package/dist/src/utils/rule-format.js.map +1 -0
  127. package/dist/src/utils/rule-generation.d.ts +86 -0
  128. package/dist/src/utils/rule-generation.d.ts.map +1 -0
  129. package/dist/src/utils/rule-generation.js +330 -0
  130. package/dist/src/utils/rule-generation.js.map +1 -0
  131. 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
+ }