UNPKG

mcp-adr-analysis-server

Version:

MCP server for analyzing Architectural Decision Records and project architecture

105 lines 3.08 kB
/** * ADR suggestion utilities using prompt-driven AI analysis * Implements intelligent ADR recommendations based on code analysis */ import { ConversationContext } from '../types/conversation-context.js'; export interface ImplicitDecision { id: string; title: string; category: string; confidence: number; evidence: string[]; filePaths: string[]; description: string; context: string; consequences: string; alternatives: string[]; priority: 'low' | 'medium' | 'high' | 'critical'; complexity: 'low' | 'medium' | 'high'; riskLevel: 'low' | 'medium' | 'high' | 'critical'; suggestedAdrTitle: string; relatedPatterns: string[]; } export interface DecisionCluster { theme: string; decisions: string[]; suggestedCombinedAdr: string; } export interface ImplicitDecisionAnalysis { implicitDecisions: ImplicitDecision[]; decisionClusters: DecisionCluster[]; recommendations: string[]; gaps: Array<{ area: string; description: string; suggestedInvestigation: string; }>; } export interface CodeChangeDecision { id: string; title: string; category: string; confidence: number; evidence: string[]; context: string; decision: string; consequences: string; alternatives: string[]; changeMotivation: string; futureImplications: string; suggestedAdrTitle: string; priority: 'low' | 'medium' | 'high' | 'critical'; } export interface GeneratedAdr { id: string; title: string; status: string; date: string; format: string; content: string; filename: string; metadata: { category: string; tags: string[]; complexity: string; impact: string; stakeholders: string[]; }; } /** * Generate prompt for AI to analyze project for implicit architectural decisions */ export declare function analyzeImplicitDecisions(projectPath: string, existingAdrs?: string[], conversationContext?: ConversationContext): Promise<{ analysisPrompt: string; instructions: string; }>; /** * Analyze code changes for architectural decisions */ export declare function analyzeCodeChanges(beforeCode: string, afterCode: string, changeDescription: string, commitMessages?: string[]): Promise<{ analysisPrompt: string; instructions: string; }>; /** * Generate ADR from decision data */ export declare function generateAdrFromDecision(decisionData: { title: string; context: string; decision: string; consequences: string; alternatives?: string[]; evidence?: string[]; }, templateFormat?: 'nygard' | 'madr' | 'custom', existingAdrs?: string[]): Promise<{ generationPrompt: string; instructions: string; }>; /** * Generate next ADR number based on existing ADRs */ export declare function generateNextAdrNumber(existingAdrs: string[]): string; /** * Suggest ADR filename based on title and number */ export declare function suggestAdrFilename(title: string, adrNumber?: string): string; //# sourceMappingURL=adr-suggestions.d.ts.map