mcp-adr-analysis-server
Version:
MCP server for analyzing Architectural Decision Records and project architecture
76 lines • 2.25 kB
TypeScript
/**
* Machine-readable rule format utilities
* Implements JSON/YAML rule serialization and validation
*/
import { ArchitecturalRule, ValidationResult } from './rule-generation.js';
export interface RuleSet {
metadata: {
version: string;
name: string;
description: string;
created: string;
lastModified: string;
author: string;
tags: string[];
};
rules: ArchitecturalRule[];
categories: Array<{
name: string;
description: string;
priority: 'low' | 'medium' | 'high' | 'critical';
ruleCount: number;
}>;
dependencies: Array<{
ruleId: string;
dependsOn: string[];
conflictsWith: string[];
relationship: 'requires' | 'enhances' | 'conflicts' | 'supersedes';
}>;
}
export interface ComplianceReport {
metadata: {
reportId: string;
generatedAt: string;
projectName: string;
ruleSetVersion: string;
scope: string;
};
summary: {
overallCompliance: number;
totalFiles: number;
totalRules: number;
totalViolations: number;
riskLevel: 'low' | 'medium' | 'high' | 'critical';
};
results: ValidationResult[];
trends: Array<{
date: string;
compliance: number;
violations: number;
}>;
}
/**
* Create a new rule set with metadata
*/
export declare function createRuleSet(name: string, description: string, rules: ArchitecturalRule[], author?: string): RuleSet;
/**
* Serialize rule set to JSON
*/
export declare function serializeRuleSetToJson(ruleSet: RuleSet): string;
/**
* Serialize rule set to YAML
*/
export declare function serializeRuleSetToYaml(ruleSet: RuleSet): string;
/**
* Parse rule set from JSON
*/
export declare function parseRuleSetFromJson(jsonContent: string): RuleSet;
/**
* Create compliance report
*/
export declare function createComplianceReport(projectName: string, ruleSetVersion: string, validationResults: ValidationResult[], scope?: string): ComplianceReport;
/**
* Serialize compliance report to JSON
*/
export declare function serializeComplianceReportToJson(report: ComplianceReport): string;
//# sourceMappingURL=rule-format.d.ts.map