UNPKG

@felixgeelhaar/cclint

Version:

Catch CLAUDE.md drift before Claude misbehaves. Lints CLAUDE.md, skills, subagents, and hooks for Claude Code projects.

51 lines 2.13 kB
/** * Directory names that discovery never descends into. * * @remarks * These hold generated output, VCS metadata, or tooling scratch space — none of * which contain first-party Claude Code config worth linting, and some of which * (e.g. `node_modules`) are large enough to make an unfiltered walk slow. */ export declare const IGNORED_DIRECTORIES: ReadonlySet<string>; /** Path split into segments relative to the discovery root, e.g. `['.claude', 'agents', 'x.md']`. */ type PathSegments = readonly string[]; /** * One recognisable Claude Code config-file shape. Kept as an explicit, * self-describing list so the set of files cclint understands is easy to read * and extend in one place. */ interface ConfigFilePattern { /** Human-readable pattern, mirroring the glob it stands in for. */ readonly label: string; /** Whether a file (given its root-relative segments) matches this pattern. */ matches(segments: PathSegments): boolean; } /** * The config files cclint understands, expressed against root-relative path * segments. Order is presentational only; a file matches if ANY pattern does. */ export declare const CONFIG_FILE_PATTERNS: readonly ConfigFilePattern[]; /** Whether a file (by its root-relative segments) is a config file cclint lints. */ export declare function isConfigFile(segments: PathSegments): boolean; /** * Walks a project directory and returns the Claude Code config files cclint * understands. * * @remarks * Infrastructure-layer adapter: it is the only place directory traversal (`fs`) * happens for project-wide linting, keeping the domain and CLI free of I/O * concerns. It resolves *what* to lint; reading and linting stay with the * existing `FileReader` / `RulesEngine` pipeline. */ export declare class FileDiscovery { /** * Discover config files under `rootDir`. * * @param rootDir - Absolute or relative path to the project directory. * @returns Absolute file paths, sorted for deterministic output. */ discover(rootDir: string): string[]; private walk; } export {}; //# sourceMappingURL=FileDiscovery.d.ts.map