/** * Shared frontmatter validation logic * * Validates skill frontmatter (name format, description, reserved words, etc.) * Used by both validateSkill() and validateSkillForPackaging() to ensure * consistent validation regardless of entry point. * * @see https://code.claude.com/docs/en/skills — Official Claude Code skill frontmatter fields */ import { type ValidationIssue } from '@vibe-agent-toolkit/agent-schema'; /** * Validate frontmatter against the Agent Skill schema * * Checks name format (regex), description length, required fields, etc. * * @param frontmatter - Parsed frontmatter key-value pairs * @param isVATGenerated - Whether skill was generated by VAT (stricter schema) * @param location - Project-relative POSIX path of the SKILL.md these fields * came from. Required: an issue that can only say "frontmatter" is * unactionable in a multi-skill report. * @returns Array of validation issues found */ export declare function validateFrontmatterSchema(frontmatter: Record, isVATGenerated: boolean, location: string): ValidationIssue[]; /** * Validate additional frontmatter rules beyond schema * * Checks reserved words, XML tags, empty descriptions, etc. * * @param frontmatter - Parsed frontmatter key-value pairs * @param location - Project-relative POSIX path of the containing SKILL.md. * @returns Array of validation issues found */ export declare function validateFrontmatterRules(frontmatter: Record, location: string): ValidationIssue[]; /** * Detect frontmatter keys that sit outside the standard agentskills.io + Claude * Code allowed set. Emits one `SKILL_FRONTMATTER_EXTRA_FIELDS` warning per * non-standard key. * * Exported so CLI call sites can opt in explicitly — `validateFrontmatterRules` * wires it in by default so every validator entry point reports the smell. */ export declare function detectExtraFrontmatterFields(frontmatter: Record): ValidationIssue[]; //# sourceMappingURL=frontmatter-validation.d.ts.map