import type { ReportData, AnalyzerOutput, TodoItem, SkillFile, FrictionCategory, ClaudeMdItem, PatternCard, HookConfig, McpRecommendation } from './types.js'; export type FrictionDomain = 'css-styling' | 'testing' | 'debugging' | 'data-sql' | 'imports-dependencies' | 'architecture-scope' | 'general'; /** Classify a friction into a domain based on title + description keywords. * Title matches are checked first (stronger signal) before falling back to description. */ export declare function classifyFrictionDomain(friction: FrictionCategory): FrictionDomain; export declare function analyze(data: ReportData): AnalyzerOutput; /** Derive a short kebab-case skill name, stripping filler adjectives */ export declare function toSkillName(title: string): string; export declare function buildTodos(data: ReportData, skills: SkillFile[]): TodoItem[]; export declare function buildClaudeMdAdditions(data: ReportData): string; export declare function mapFrictionToHooks(friction: FrictionCategory): HookConfig[]; export declare function buildSettings(data: ReportData): Record; export declare function buildSkills(data: ReportData): SkillFile[]; /** Build a three-part description: [What it does] + [When to use it] + [Do NOT use for] */ export declare function buildTriggerDescription(friction: FrictionCategory): string; /** Generate negative trigger phrases to prevent skill over-triggering */ export declare function buildNegativeTriggers(friction: FrictionCategory): string[]; /** Extract a short scenario phrase from a friction example */ export declare function extractScenarioPhrase(example: string): string | null; /** Extract technical/domain-specific trigger terms, filtering generic verbs */ export declare function extractTriggerTerms(friction: FrictionCategory): string[]; export type SkillPattern = 'sequential-workflow' | 'iterative-refinement' | 'domain-specific-intelligence'; /** Map a friction domain to the appropriate skill pattern from the guide */ export declare function mapDomainToPattern(domain: FrictionDomain): SkillPattern; /** Build domain-specific steps based on friction classification and skill pattern */ export declare function buildSkillSteps(friction: FrictionCategory, pattern: PatternCard | undefined): string; /** Build a positive workflow example showing how the skill is used successfully */ export declare function buildPositiveExamples(friction: FrictionCategory): string; /** Parse a CLAUDE.md rule into bullet points, with fallback rules from friction context */ export declare function buildSkillRules(rule: ClaudeMdItem | undefined, friction: FrictionCategory): string; /** Split a rule string into individual bullet-point items */ export declare function parseRuleIntoBullets(code: string): string[]; /** Format friction examples with bolded technical terms */ export declare function buildSkillExamples(examples: string[]): string; /** Bold key technical terms in example text for scanability */ export declare function boldTechTerms(text: string): string; /** Build a verification checklist from friction examples */ export declare function buildVerificationChecklist(friction: FrictionCategory): string; /** Auto-generate "When to Use" triggers from friction title + examples */ export declare function buildWhenToUse(friction: FrictionCategory): string; /** Find the best matching item by checking for shared significant words */ export declare function findBestMatch(title: string, candidates: { text: string; item: T; }[]): T | undefined; /** Extract significant words (skip common stop words) */ export declare function significantWords(text: string): string[]; export declare function buildMcpRecommendations(data: ReportData): McpRecommendation[]; export declare function buildReadme(skills: SkillFile[], mcpRecommendations?: McpRecommendation[]): string;