/** * Guidance Compiler * * Parses root CLAUDE.md and optional CLAUDE.local.md into a compiled policy bundle: * 1. A small always-loaded constitution (first 30-60 lines of invariants) * 2. A set of task-scoped rule shards tagged by intent, risk, domain, repo path, tool class * 3. A machine-readable manifest with rule IDs, triggers, and verifiers * * @module @claude-flow/guidance/compiler */ import type { GuidanceRule, PolicyBundle, RiskClass } from './types.js'; export interface CompilerConfig { /** Maximum lines for constitution */ maxConstitutionLines: number; /** Default risk class */ defaultRiskClass: RiskClass; /** Default priority */ defaultPriority: number; /** Auto-generate rule IDs for untagged rules */ autoGenerateIds: boolean; } export declare class GuidanceCompiler { private config; private nextAutoId; constructor(config?: Partial); /** * Compile guidance files into a policy bundle */ compile(rootContent: string, localContent?: string): PolicyBundle; /** * Parse a guidance markdown file into rules */ parseGuidanceFile(content: string, source: 'root' | 'local'): GuidanceRule[]; /** * Extract rules from a content block */ private extractRulesFromBlock; /** * Extract implicit rules from bullet points and paragraphs */ private extractImplicitRules; /** * Check if text represents an actionable rule */ private isActionableRule; /** * Parse a single rule from its text content */ private parseRule; /** * Infer intents from rule text */ private inferIntents; /** * Infer domains from rule text */ private inferDomains; /** * Merge root and local rules, local overrides root for same ID */ private mergeRules; /** * Build the constitution from constitution-class rules */ private buildConstitution; /** * Build shards from non-constitution rules */ private buildShards; /** * Build compact text for a shard */ private buildCompactShardText; /** * Build the manifest */ private buildManifest; /** * Hash content for change detection */ private hashContent; } /** * Create a compiler instance */ export declare function createCompiler(config?: Partial): GuidanceCompiler; //# sourceMappingURL=compiler.d.ts.map