/** * `roadmap-item-summary` (report tier): an `inbox/` item nobody can triage from the top * of the file (inbox-intake-bar/AC-3 … inbox-intake-bar/AC-6). * * Two write paths reach `inbox/` and, until this shipped, only one of them was described. * The capture flow in `aidlc-roadmap` requires the six-line executive summary; items * written by an instance mid-phase went through one paragraph in `aidlc-overview` that * required nothing. On 2026-09-23, 13 of the 18 items in one external project's `inbox/` * had no summary, so triaging it meant re-deriving thirteen cases from scratch. The prose * on both paths is the fix; this is the detector for what is already on disk and for any * writer that ignores the instruction — the same division of labour as * `roadmap-item-titles`. * * **Why `report` and not `confirm`.** The only remedy is writing six labelled lines of * judgement about somebody else's idea, and a confirm-tier migration applies unprompted * under `--yes`. An invented case is worse than an absent one because the next reader * cannot tell which it is — the whole reason the skills say `Not yet decided.` beats a * plausible guess. A no-op `apply` at confirm tier was the other option and is worse * still: `aidlc doctor` exits 1 on pending confirm work, so one thin item would make the * health check permanently red, which is how people learn to ignore doctor. Precedent: * `knowledge-stale-sources` and `roadmap-sync-gh-missing`. * * **`inbox/` only (AC-5).** The other four statuses have already been decided about. An * item in `done/` with no summary is history, not a pending decision, and the roadmap item * that asked for this put retroactive cleanup out of scope explicitly. * * **Unparseable items are skipped in silence (AC-6).** `listStatus` already drops them, * and `roadmap-item-titles` already reports them by name. One condition, one voice — * reporting the same file from two migrations is how a report stops being read. * * Like every migration here, `check` is the single source of pending-ness (`../types.ts`), * so a dry run and a real run cannot disagree. */ import { type SummaryGap } from '../../roadmap/summary.js'; import type { DoctorContext, Migration } from '../types.js'; /** One `inbox/` item whose executive summary is absent or incomplete. */ export interface SummaryReport { /** Absolute path on disk. */ file: string; /** `.aidlc/roadmap/inbox/` — what the report prints. */ label: string; gap: SummaryGap; } /** * Every `inbox/` item missing a complete executive summary. * * Read from the **primary checkout**, not `ctx.projectRoot`: items live there by design * (an inbox stranded on a feature branch is indistinguishable from a lost one), so that * is the tree whose inbox is the inbox. `roadmap-sync-gh-missing` and the other roadmap * migrations resolve the same way. * * Sorted by `listStatus`, which reads filenames in sorted order, so the report never * depends on directory read order. */ export declare function inboxSummaryGaps(ctx: DoctorContext): SummaryReport[]; export declare const roadmapItemSummary: Migration; //# sourceMappingURL=roadmap-item-summary.d.ts.map