interface ConsolidationCandidate { type: 'tag-cluster' | 'link-cluster' | 'supersede-chain'; project: string; tags?: string[]; experiments: string[]; existingPatterns: string[]; reason: string; } interface ContradictionCandidate { /** The K/PAT entry whose evidence is compromised */ entryId: string; entryFile: string; entryType: 'knowledge' | 'pattern'; project: string; /** Source experiments that are invalidated/superseded */ compromisedSources: { id: string; status: string; }[]; /** Source experiments still active */ remainingSources: string[]; /** How severe: 'all-compromised' (no remaining evidence) | 'partial' (some evidence remains) */ severity: 'all-compromised' | 'partial'; reason: string; } interface StaleCandidate { entryId: string; entryFile: string; entryType: 'experiment' | 'knowledge' | 'pattern'; project: string; ageDays: number; refs: number; reason: string; } interface AntiPatternCandidate { project: string; /** The recurring deficiency description (approximate) */ pattern: string; /** Experiments that share this deficiency */ experiments: string[]; reason: string; } export interface ProjectReport { project: string; experimentCount: number; knowledgeCount: number; patternCount: number; consolidation: ConsolidationCandidate[]; contradictions: ContradictionCandidate[]; stale: StaleCandidate[]; antiPatterns: AntiPatternCandidate[]; } export declare function consolidateAll(): ProjectReport[]; export declare function consolidateProject(projectName: string): ProjectReport; export {};