/** * Strategy Auto-Detection Analyzer * * Pure function that determines the optimal Agent Teams strategy * based on a specification's structure: epic count, ticket distribution, * and cross-epic dependency density. * * Decision matrix (from design doc): * - 1 epic, ≤3 tickets → single-session * - 1 epic, >3 tickets → spec-as-team * - N epics, 0 cross-deps → epic-as-team * - N epics, >50% cross-deps → spec-as-team * - N epics, moderate cross-deps → epic-as-team with merged pairs */ /** Tickets with cross-epic deps / total tickets. Above this → spec-as-team. */ export declare const CROSS_DEP_THRESHOLD = 0.5; /** Max tickets for a single-session recommendation (single epic only). */ export declare const SINGLE_SESSION_MAX_TICKETS = 3; export interface SpecSummary { id: string; title: string; epicCount: number; } export interface EpicSummary { id: string; title: string; ticketCount: number; } export interface TicketSummary { id: string; epicId: string; dependencies: string[]; } /** * A dependency edge between two tickets in different epics. */ export interface DependencyEdge { fromEpicId: string; toEpicId: string; fromTicketId: string; toTicketId: string; } export type Strategy = 'single-session' | 'spec-as-team' | 'epic-as-team'; export interface StrategyRecommendation { strategy: Strategy; reasoning: string; /** Epic ID groups that should be merged into a single team (for moderate cross-deps). */ mergedEpics?: string[][]; } /** * Analyze a specification's structure and recommend an Agent Teams strategy. * * This is a **pure function** — no side effects, no API calls. * All data must be pre-fetched and passed in. * * @throws {Error} If the specification has no epics or no tickets. */ export declare function analyzeStrategy(spec: SpecSummary, epics: EpicSummary[], ticketsByEpic: Map, dependencyEdges: DependencyEdge[]): StrategyRecommendation; //# sourceMappingURL=strategy-analyzer.d.ts.map