/** * Front-matter de skills + Progressive Disclosure em camadas para prompts. * * Política (Wave 7 / ADR memória W7-C): * - Skills v2 (.skills//SKILL.md, geradas pelo skill-migrator): o prompt * recebe SEMPRE os metadados leves do front-matter (name/description/gatilhos) * e o corpo entra seletivo por prioridade de seção: Step-by-Step Workflow e * Red Flags primeiro (essenciais), Verification Steps e Common Rationalizations * depois, até esgotar o orçamento de linhas. Seções fora da prioridade * (ex.: "Legacy Reference (v1)", duplicata integral do conteúdo antigo) nunca * entram; tudo que foi omitido/truncado é declarado num comentário final que * aponta para o arquivo completo. * - Skills legadas (sem front-matter v2): comportamento compatível de truncamento * pelas primeiras maxLines linhas com comentário final (byte-a-byte igual ao anterior). * * Parser YAML mínimo determinístico (scalars, listas inline e block lists, * mapas aninhados consumidos sem valor). Zero dependências. */ export interface FrontmatterData { /** Chaves top-level: scalars (string) ou listas (string[]). Mapas aninhados são ignorados. */ data: Record; /** Corpo integral do arquivo após o fechamento do front-matter. */ body: string; } /** * Faz parse do front-matter `--- ... ---`. Nunca lança: retorna null quando * não há front-matter válido (skill legada sem cabeçalho). */ export declare function parseFrontmatter(source: string): FrontmatterData | null; export interface SkillSection { title: string; lines: string[]; } /** Divide o corpo em seções de heading `## ` (exato; `###` fica dentro da pai). */ export declare function splitTopLevelSections(body: string): SkillSection[]; /** Reconhece skill v2: front-matter presente + seção canônica Step-by-Step Workflow. */ export declare function isV2Skill(content: string): boolean; /** Gatilhos leves: bullets "- **Ativar quando:** ..." da seção Triggering Criteria. */ export declare function extractActivationTriggers(body: string): string[]; /** * Resumo em camadas de uma skill v2 dentro do orçamento de linhas. * O cabeçalho de metadados NUNCA é cortado pelo budget (objetivo 1b). */ export declare function buildV2Summary(data: Record, body: string, fullPath: string, maxLines: number): string; /** * Truncamento legado (compat): mantido byte-a-byte igual ao comportamento * anterior do run para skills/documentos fora do formato v2. */ export declare function legacySummary(content: string, fullPath: string, maxLines: number): string; /** * Ponto de entrada: lê a skill e aplica a política em camadas. * v2 (front-matter + seções canônicas) → progressive disclosure; * legada → truncamento compatível. */ export declare function layeredSkillSummary(fullPath: string, maxLines: number): string; /** * Contraparte v2 de uma skill resolvida no catálogo .skills/: * `/skills//SKILL.md` → `/.skills//SKILL.md`. * Procura em cwd e baseDir; null quando não há catálogo v2 (instalação legada). */ export declare function findV2Counterpart(cwd: string, baseDir: string, resolvedPath: string): string | null; //# sourceMappingURL=frontmatter.d.ts.map