export type ValidationSeverity = "error" | "warning" | "info"; export interface ValidationFinding { severity: ValidationSeverity; changeId: string; message: string; detail?: string; } export interface ValidationResult { findings: ValidationFinding[]; hasError: boolean; } /** * Validate change directory consistency. * * Scans all change directories under `.aiws/changes/` and checks: * * - R1 (error): change directory exists but lacks `.ws-change.json` * - R2 (error): `.ws-change.json` exists but corresponding git branch * `change/` does not exist on the filesystem * - R3 (warning): change has `finish_done` event in metrics but is still * in the active changes directory (not archived) * - R4 (info): change has had no activity for more than 7 days * * Only directories that look like change IDs (kebab-case, no leading dot) * are inspected. The special dirs `archive` and `templates` are skipped. */ export declare function validateChanges(workspaceRoot: string): Promise; /** * Check that review files (spec-review.md, quality-review.md) have meaningful content * beyond just "PASS" or empty. Flags review gate bypass attempts. */ export declare function validateReviewQuality(workspaceRoot: string): Promise; /** * Format validation findings as a human-readable string. */ export declare function formatValidationFindings(findings: ValidationFinding[]): string;