import { type Finding } from "./findings.js"; export { FINDING_CATEGORIES, countBySeverity, fingerprint, sortBySeverity, type Evidence, type Finding, type FindingCategory, type Severity, } from "./findings.js"; /** * The deterministic workstream-spec contract. The authoring and validation * skills describe this format in prose; this validator owns it. Keep the two * aligned by treating these values as canonical. */ export declare const SPEC_CONTRACT: { readonly sections: { readonly traceability: "Traceability"; readonly checkpointSafety: "Checkpoint Safety"; readonly filesTouched: "Files Touched"; readonly tests: "Tests"; readonly acceptanceCriteria: "Acceptance Criteria"; }; readonly successCriterionIdPattern: "SC-\\d{2,}"; readonly workstreamIdPattern: "WS-\\d{2,}"; /** A short note may follow the keyword and wrap across markdown lines. */ readonly fileAnnotationPattern: "\\((?:NEW|MODIFY|DELETE)\\b"; readonly newFileAnnotationPattern: "\\(NEW\\b[^)]*\\)"; /** Only list items count as file entries; other lines are commentary. */ readonly fileEntryPattern: "^\\s*(?:[-*]|\\d+\\.)\\s"; }; export interface CoverageEntry { successCriterionId: string; workstreamIds: string[]; } export interface ValidationReport { programId: string; result: "PASSED" | "FAILED"; strict: boolean; findings: Finding[]; coverage: CoverageEntry[]; } /** Extract a level-2 section's content from a workstream spec. */ export declare function specSection(markdown: string, heading: string): string | undefined; export declare function validateWorkstreams(rootInput: string, programId: string, strict?: boolean): Promise; //# sourceMappingURL=validate.d.ts.map