@felixgeelhaar/cclint
Version:
Catch CLAUDE.md drift before Claude misbehaves. Lints CLAUDE.md, skills, subagents, and hooks for Claude Code projects.
98 lines • 2.72 kB
TypeScript
import type { DetectionResult } from './ProjectDetector.js';
/**
* Available template names
*/
export type TemplateName = 'minimal' | 'typescript' | 'python' | 'go' | 'monorepo' | 'library' | 'api';
/**
* Options for scaffolding a CLAUDE.md file
*/
export interface ScaffoldOptions {
/** Template to use */
template: TemplateName;
/** Project name (used in template) */
projectName?: string;
/** Project description */
projectDescription?: string;
/** Overwrite existing file */
overwrite?: boolean;
/** Output file path */
outputPath?: string;
/** Detection result for smart defaults */
detection?: DetectionResult | undefined;
}
/**
* Result of scaffolding operation
*/
export interface ScaffoldResult {
/** Path where file was written */
path: string;
/** Content that was written */
content: string;
/** Whether an existing file was overwritten */
wasOverwritten: boolean;
}
/**
* Template variable values
*/
interface TemplateVariables {
projectName: string;
projectDescription: string;
packageManager: string;
testFramework: string;
installCommand: string;
testCommand: string;
buildCommand: string;
devCommand: string;
lintCommand: string;
typecheckCommand: string;
formatCommand: string;
language: string;
modulePath: string;
registry: string;
packageInstallCommand: string;
publishCommand: string;
license: string;
docsCommand: string;
apiType: string;
framework: string;
database: string;
authMethod: string;
resource: string;
startCommand: string;
testCoverageCommand: string;
testFileCommand: string;
migrationCreateCommand: string;
migrationRunCommand: string;
migrationRollbackCommand: string;
seedCommand: string;
workspaceConfig: string;
runPackageCommand: string;
}
/**
* Scaffolds CLAUDE.md files from templates with variable substitution.
*/
export declare class Scaffolder {
private templatesDir;
constructor(templatesDir?: string);
/**
* List all available template names
*/
listTemplates(): TemplateName[];
/**
* Scaffold a CLAUDE.md file from a template
*/
scaffold(options: ScaffoldOptions): ScaffoldResult;
/**
* Render a template string with variable substitution
*/
renderTemplate(template: string, variables: Partial<TemplateVariables>): string;
/**
* Get the best template for a detection result
*/
getTemplateForDetection(detection: DetectionResult): TemplateName;
private loadTemplate;
private buildVariables;
private getInstallCommand;
}
export {};
//# sourceMappingURL=Scaffolder.d.ts.map