import type { PhaseId } from '../../domain/sdlc/phase-id'; import type { Verdict, VerdictReason } from '../../domain/verdict/verdict'; import type { EvidenceSignal } from './quality-evidence'; import type { StructuralFactsSummary } from './repo-facts'; import type { DriftConformanceDelta, DriftSignalReport } from './drift-signals'; import type { RepositoryRevisionContext, RequesterContext } from './evaluation-context'; export declare const EVALUATION_RESULT_SCHEMA_VERSION = "2.0.0"; export type FindingSeverity = 'error' | 'warning' | 'info'; export type RiskLevel = 'low' | 'medium' | 'high' | 'critical'; export declare const KNOWN_RULE_ENGINES: readonly ["native", "opa", "enforcer"]; export type RuleEngine = (typeof KNOWN_RULE_ENGINES)[number]; export type EvaluationOutcome = 'approved' | 'rejected' | 'conditional' | 'pending' | 'requires_manual_review'; export interface RiskFinding { readonly id: string; readonly level: RiskLevel; readonly category: string; readonly message: string; readonly location?: string; readonly ruleRef?: string; } export interface GapFinding { readonly id: string; readonly requirementRef: string; readonly severity: FindingSeverity; readonly message: string; readonly location?: string; } export interface RequiredAction { readonly id: string; readonly gapId?: string; readonly description: string; readonly blocking: boolean; readonly remediation: string; } export interface Recommendation { readonly id: string; readonly kind: 'architecture' | 'topology' | 'process' | 'remediation' | 'next-step'; readonly message: string; readonly rationale?: string; readonly references?: readonly string[]; } export interface DecisionRecommendation { readonly subjectType: 'gate' | 'phase' | 'initiative' | 'product'; readonly subjectRef: string; readonly recommendedVerdict: Verdict; readonly reason?: VerdictReason; readonly binding: false; readonly recommendedBy: 'evolith-core'; } export interface RuleExecutionRef { readonly ruleId: string; readonly rulesetRef?: string; readonly engine: RuleEngine; readonly verdict: Verdict; } export interface ArtifactEvaluationResult { readonly artifactId: string; readonly verdict: Verdict; readonly present: boolean; readonly ruleRefs: readonly string[]; readonly gaps: readonly GapFinding[]; } export interface GateEvaluationResult { readonly gateId: string; readonly phaseId?: PhaseId; readonly verdict: Verdict; readonly artifactResults: readonly ArtifactEvaluationResult[]; readonly risks: readonly RiskFinding[]; readonly gaps: readonly GapFinding[]; readonly requiredActions: readonly RequiredAction[]; } export interface EvidenceEvaluationResult { readonly evidenceId: string; readonly verdict: Verdict; readonly sufficient: boolean; readonly integrityVerified: boolean; readonly gaps: readonly GapFinding[]; } export interface ArchitectureEvaluationResult { readonly verdict: Verdict; readonly definitionRef?: string; readonly risks: readonly RiskFinding[]; readonly gaps: readonly GapFinding[]; readonly recommendations: readonly Recommendation[]; readonly structuralFacts?: StructuralFactsSummary; readonly driftSignals?: DriftSignalReport; readonly driftSignalDelta?: DriftConformanceDelta; } export interface BlueprintEvaluationResult { readonly blueprintRef: string; readonly verdict: Verdict; readonly gaps: readonly GapFinding[]; readonly requiredActions: readonly RequiredAction[]; } export interface TopologyEvaluationResult { readonly topologyRef: string; readonly verdict: Verdict; readonly conformant: boolean; readonly gaps: readonly GapFinding[]; readonly recommendations: readonly Recommendation[]; } export interface CheckpointEvaluationResult { readonly checkpointId: string; readonly phaseId?: PhaseId; readonly verdict: Verdict; readonly gaps: readonly GapFinding[]; } export interface DeploymentEvaluationResult { readonly environment: string; readonly releaseRef: string; readonly verdict: Verdict; readonly gaps: readonly GapFinding[]; readonly risks: readonly RiskFinding[]; } export interface ComplianceResult { readonly verdict: Verdict; readonly score?: number; readonly totalChecks: number; readonly passedChecks: number; readonly failedChecks: number; readonly skippedChecks: number; } export interface ConcernMaturity { readonly concern: string; readonly maturity: number; readonly gaps: readonly GapFinding[]; } export interface DesignArtifactStatus { readonly artifactKind: string; readonly required: boolean; readonly present: boolean; readonly verdict: Verdict; } export interface DesignEvaluationResult { readonly verdict: Verdict; readonly technicalMaturity: number; readonly perConcernMaturity: readonly ConcernMaturity[]; readonly artifactStatus: readonly DesignArtifactStatus[]; readonly missingArtifacts: readonly string[]; readonly deviationsRequiringAdr: readonly string[]; readonly gaps: readonly GapFinding[]; readonly recommendations: readonly Recommendation[]; readonly downstreamCriteria?: readonly Recommendation[]; } export interface PhaseArtifactEvaluationResult { readonly verdict: Verdict; readonly phase: 'construction' | 'quality' | 'deployment'; readonly completeness: number; readonly requiredArtifacts: readonly string[]; readonly presentArtifacts: readonly string[]; readonly missingArtifacts: readonly string[]; readonly conditionalArtifacts: readonly string[]; readonly gaps: readonly GapFinding[]; readonly recommendations: readonly Recommendation[]; } export interface EvaluationResult { readonly overallVerdict: Verdict; readonly outcome: EvaluationOutcome; readonly results: { readonly gate?: readonly GateEvaluationResult[]; readonly artifact?: readonly ArtifactEvaluationResult[]; readonly evidence?: readonly EvidenceEvaluationResult[]; readonly architecture?: ArchitectureEvaluationResult; readonly blueprint?: BlueprintEvaluationResult; readonly topology?: readonly TopologyEvaluationResult[]; readonly checkpoint?: readonly CheckpointEvaluationResult[]; readonly deployment?: DeploymentEvaluationResult; readonly compliance?: ComplianceResult; readonly design?: DesignEvaluationResult; readonly phaseArtifacts?: PhaseArtifactEvaluationResult; }; readonly rulesExecuted: readonly RuleExecutionRef[]; readonly policiesApplied: readonly RuleExecutionRef[]; readonly gaps: readonly GapFinding[]; readonly risks: readonly RiskFinding[]; readonly missingEvidence: readonly string[]; readonly incompleteArtifacts: readonly string[]; readonly recommendations: readonly Recommendation[]; readonly requiredActions: readonly RequiredAction[]; readonly decisionRecommendation?: DecisionRecommendation; readonly qualitySignals?: readonly EvidenceSignal[]; readonly confidence: number; readonly rationale: string; readonly versions: { readonly core: string; readonly ruleset?: string; readonly rulesetVersion?: string; readonly policy?: string; readonly blueprint?: string; }; readonly requester?: RequesterContext; readonly repositoryRevision?: RepositoryRevisionContext; readonly evaluatedAt: string; readonly correlationId?: string; readonly schemaVersion: string; }