@felixgeelhaar/cclint
Version:
Catch CLAUDE.md drift before Claude misbehaves. Lints CLAUDE.md, skills, subagents, and hooks for Claude Code projects.
74 lines • 3.45 kB
TypeScript
/**
* CC Linter - A comprehensive linter for CLAUDE.md files
*
* @packageDocumentation
*
* ## Overview
*
* CC Linter validates and optimizes CLAUDE.md context files for Claude AI.
* Built with TypeScript following hexagonal architecture principles.
*
* ## Core Concepts
*
* - **ContextFile**: In-memory representation of a file being linted
* - **Rule**: Self-contained validation logic
* - **Violation**: A broken rule with location and severity
* - **RulesEngine**: Aggregates rules and runs validation
* - **LintingResult**: Complete validation results for a file
*
* ## Basic Usage
*
* ```typescript
* import { ContextFile, RulesEngine, FileSizeRule } from '@felixgeelhaar/cclint';
*
* // Create a context file from content read by your own I/O layer
* const file = new ContextFile('CLAUDE.md', readFileSync('CLAUDE.md', 'utf-8'));
*
* // Set up rules
* const rules = [new FileSizeRule(10000)];
* const engine = new RulesEngine(rules);
*
* // Run linting
* const result = engine.lint(file);
*
* console.log(`Errors: ${result.errorCount}`);
* console.log(`Warnings: ${result.warningCount}`);
* ```
*
* @see {@link https://github.com/felixgeelhaar/cclint | GitHub Repository}
* @see {@link https://www.npmjs.com/package/@felixgeelhaar/cclint | npm Package}
*/
export { ContextFile } from './domain/ContextFile.js';
export { RulesEngine } from './domain/RulesEngine.js';
export { LintingResult } from './domain/LintingResult.js';
export { Violation } from './domain/Violation.js';
export { Location } from './domain/Location.js';
export { Severity } from './domain/Severity.js';
export type { Rule } from './domain/Rule.js';
export type { CclintConfig, RuleConfig, PluginConfig, } from './domain/Config.js';
export { FileSizeRule } from './rules/FileSizeRule.js';
export { StructureRule } from './rules/StructureRule.js';
export { FormatRule } from './rules/FormatRule.js';
export { CodeBlockRule } from './rules/CodeBlockRule.js';
export { ImportSyntaxRule } from './rules/ImportSyntaxRule.js';
export { ContentOrganizationRule } from './rules/ContentOrganizationRule.js';
export { FileLocationRule } from './rules/FileLocationRule.js';
export { ImportResolutionRule } from './rules/ImportResolutionRule.js';
export { ContentAppropriatenessRule } from './rules/ContentAppropriatenessRule.js';
export { MonorepoHierarchyRule } from './rules/MonorepoHierarchyRule.js';
export { CommandSafetyRule } from './rules/CommandSafetyRule.js';
export { SkillStructureRule } from './rules/SkillStructureRule.js';
export { SubagentStructureRule } from './rules/SubagentStructureRule.js';
export { HookConfigurationRule } from './rules/HookConfigurationRule.js';
export { KarpathyRule } from './rules/KarpathyRule.js';
/** @deprecated Use ContentOrganizationRule instead - ContentRule is too opinionated with technology-specific checks */
export { ContentRule } from './rules/ContentRule.js';
export { CustomRule } from './domain/CustomRule.js';
export type { Plugin, PluginModule } from './domain/CustomRule.js';
export { ConfigLoader } from './infrastructure/ConfigLoader.js';
export { PluginLoader } from './infrastructure/PluginLoader.js';
export { RuleRegistry } from './infrastructure/RuleRegistry.js';
export { AutoFixer } from './infrastructure/AutoFixer.js';
export type { Fix } from './domain/AutoFix.js';
export { PathValidator } from './infrastructure/security/PathValidator.js';
//# sourceMappingURL=index.d.ts.map