/** * Postmortem synthesis (Sprint 23). * * Deterministic, programmatic synthesizer. Reads ALL artifacts under * .bober/incidents// and assembles an evidence-cited postmortem.md. * Does NOT spawn an LLM subagent — postmortems must be reproducible from * disk artifacts alone for audit purposes (mirrors resolution-verify.ts). * * Citation format: per-sentence inline (artifact#L) references. The * synthesizer enforces a minimum citation floor; below it, a synthesis- * failure warning is appended to the document. * * Redaction: every quoted artifact snippet is scanned against the secret- * pattern regex set BEFORE inclusion. Matches are replaced with [REDACTED] * and counted; the count is emitted in the footer. * * Sprint 23 — src/incident/postmortem.ts */ import { type IncidentId } from "./types.js"; export interface PostmortemResult { /** Absolute path to the written postmortem.md */ path: string; /** The full markdown content (caller can stream to stdout for CLI show) */ content: string; /** Number of secret-like strings redacted from artifacts during synthesis */ redactionCount: number; /** True if 5-Whys synthesis produced fewer than 3 deterministic levels */ shallowWarning: boolean; /** Number of inline citations in the generated markdown */ citationCount: number; } /** * Synthesize a postmortem document from incident artifacts. * * Reads all artifact files under .bober/incidents// and assembles * a structured, evidence-cited postmortem.md. Pure offline — no LLM calls. * Every claim cites a specific artifact path (and line number where applicable). * * @param projectRoot Absolute path to the project root. * @param incidentId The incident ID (e.g. 'inc-20260524-500-errors-on'). * @returns PostmortemResult with path, content, redactionCount, shallowWarning, citationCount. */ export declare function generatePostmortem(projectRoot: string, incidentId: IncidentId): Promise; //# sourceMappingURL=postmortem.d.ts.map