/** * CLAUDE.md Generator * * Generates a structured CLAUDE.md file optimized for the Guidance Control Plane. * The output is designed so that when compiled by GuidanceCompiler, it produces * a clean constitution (always-loaded invariants) and well-tagged shards * (task-scoped rules retrievable by intent). * * Structure conventions: * - Lines 1-60: Constitution (always loaded into every task) * - Remaining: Tagged shards (retrieved by intent classification) * - Headings map to shard boundaries * - Keywords in headings drive intent tagging: "test", "build", "security", etc. * * @module @claude-flow/guidance/generators */ export interface ProjectProfile { /** Project name */ name: string; /** Short description */ description?: string; /** Primary language(s) */ languages: string[]; /** Frameworks in use */ frameworks?: string[]; /** Package manager */ packageManager?: 'npm' | 'pnpm' | 'yarn' | 'bun'; /** Monorepo? */ monorepo?: boolean; /** Build command */ buildCommand?: string; /** Test command */ testCommand?: string; /** Lint command */ lintCommand?: string; /** Source directory */ srcDir?: string; /** Test directory */ testDir?: string; /** Domain-specific rules */ domainRules?: string[]; /** Architecture notes */ architecture?: string; /** Team conventions */ conventions?: string[]; /** Forbidden patterns */ forbidden?: string[]; /** Required patterns */ required?: string[]; /** Import paths for personal instructions */ imports?: string[]; /** Enable guidance control plane integration */ guidanceControlPlane?: boolean; /** Enable WASM kernel for hot paths */ wasmKernel?: boolean; /** Agent swarm configuration */ swarm?: { topology?: 'hierarchical' | 'mesh' | 'adaptive'; maxAgents?: number; strategy?: 'specialized' | 'balanced'; }; } export interface LocalProfile { /** Developer name or identifier */ developer?: string; /** Local API URLs */ localUrls?: Record; /** Local database connection strings */ databases?: Record; /** Personal preferences */ preferences?: string[]; /** Machine-specific notes */ machineNotes?: string[]; /** Editor / IDE */ editor?: string; /** OS */ os?: string; /** Custom environment variables */ envVars?: Record; /** Debug settings */ debug?: string[]; } export interface SkillDefinition { /** Skill name (kebab-case) */ name: string; /** Version */ version?: string; /** Description */ description: string; /** Category */ category: 'core' | 'github' | 'testing' | 'security' | 'deployment' | 'analysis' | 'custom'; /** Tags */ tags?: string[]; /** Required tools */ requires?: string[]; /** Capabilities list */ capabilities?: string[]; /** Skill instructions (markdown body) */ instructions: string; } export interface AgentDefinition { /** Agent name (kebab-case) */ name: string; /** Agent type */ type: 'coordinator' | 'developer' | 'tester' | 'reviewer' | 'security-specialist' | 'researcher' | 'architect' | 'devops' | 'custom'; /** Description */ description: string; /** Category subdirectory */ category?: string; /** Color for UI */ color?: string; /** Capabilities */ capabilities?: string[]; /** Focus areas */ focus?: string[]; /** Temperature (0.0-1.0) */ temperature?: number; /** Priority */ priority?: 'high' | 'medium' | 'low'; /** System prompt */ systemPrompt?: string; /** Pre-execution hook */ preHook?: string; /** Post-execution hook */ postHook?: string; /** Detailed instructions (markdown body) */ instructions?: string; } export declare function generateClaudeMd(profile: ProjectProfile): string; export declare function generateClaudeLocalMd(local: LocalProfile): string; export declare function generateSkillMd(skill: SkillDefinition): string; export declare function generateAgentMd(agent: AgentDefinition): string; export declare function generateAgentIndex(agents: AgentDefinition[]): string; export interface ScaffoldOptions { /** Project profile for CLAUDE.md */ project: ProjectProfile; /** Local profile for CLAUDE.local.md (optional) */ local?: LocalProfile; /** Skills to generate */ skills?: SkillDefinition[]; /** Agents to generate */ agents?: AgentDefinition[]; /** Include default agents based on project profile */ includeDefaultAgents?: boolean; /** Include default skills based on project profile */ includeDefaultSkills?: boolean; } export interface ScaffoldResult { /** Map of relative file path → content */ files: Map; } export declare function scaffold(options: ScaffoldOptions): ScaffoldResult; //# sourceMappingURL=generators.d.ts.map