import type { Classification } from "./classifier.js"; /** * v0.5 §6.3 — deterministic cover-rate calculator. Given a list of * classifications, score how well each of the 4 SoloSquad templates is * "covered" by the skills present. * * The mapping below is keyword-driven (per-template signal words originally * derived from the v0.5 `prd-*.md` scaffolds — since removed in v1.3.1 §9 — * plus the AGENTS.md §"Workflow Types" stage descriptions; the keyword lists * are now self-contained in TEMPLATES below). cover_rate = (skills whose * classification label *and* keyword signal both align with a template) / * (total classifications considered — i.e. excluding `codebase-fact` since * those are tied to a repo, not a workflow). * * `no_match` is emitted when the best template scores below 0.5 — the * §6.3 threshold for recommending a custom workflow. */ export interface TemplateMatch { template: string; cover_rate: number; matched_paths: string[]; } export interface WorkflowMatchResult { matches: TemplateMatch[]; no_match: boolean; /** Highest-scoring template (or null when all are 0). */ best?: TemplateMatch; } /** * Compute cover_rate per template. Total = classifications eligible for * workflow matching (role / workflow / domain — codebase-fact is excluded * because it lives in the repo). When `total === 0` every cover_rate is 0 * and no_match is true. */ export declare function matchWorkflow(classifications: Classification[], bodies: Map): WorkflowMatchResult; export declare function listTemplates(): string[];