mcp-adr-analysis-server
Version:
MCP server for analyzing Architectural Decision Records and project architecture
105 lines • 3.08 kB
TypeScript
/**
* 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