import type { MissionType, ScanType } from "./state.js"; /** Per-mission-type lifecycle pack: the strict structure, gates, and rules * that apply on top of the shared brainstorm trunk. Lives in Layer 0 so * both core/mission-brief.ts and brainstorm/* can read it (core may not * import from brainstorm). */ export interface MissionPack { /** Extra brief sections mandatory for this type (on top of the base 6). */ readonly extraBriefSections: readonly string[]; /** Extra coverage-check rows shown at [7] for this type. */ readonly extraCoverageRows: readonly string[]; /** Scan types that may be auto-added by pack questions (not defaults). */ readonly conditionalScans: readonly { scan: ScanType; trigger: string; }[]; /** Hard approve gates for this type (ids evaluated by guard.ts). */ readonly approveGates: readonly string[]; /** Implement-stage rule ids enforced for this type. */ readonly implementRules: readonly string[]; /** NEVER list shown in skills and implement prompt. */ readonly neverRules: readonly string[]; } /** Bugfix pack: the industry-standard bug-fix flow (reproduce -> root cause * -> failing regression test -> smallest fix -> related tests), enforced * with hard gates. STRICT — other types keep the shared trunk behavior. */ export declare const BUGFIX_PACK: MissionPack; /** No-op pack for mission types that keep the shared trunk behavior. */ export declare const EMPTY_PACK: MissionPack; export declare const MISSION_PACKS: Record; /** Pack lookup with a safe fallback: an undefined type (legacy session) * gets the empty pack so nothing changes for non-typed briefs. */ export declare function getMissionPack(type: MissionType | undefined): MissionPack;