UNPKG

@felixgeelhaar/cclint

Version:

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

71 lines 2.67 kB
export declare class ContextFile { readonly path: string; readonly content: string; readonly lines: string[]; constructor(path: string, content: string); getLineCount(): number; getCharacterCount(): number; getLine(lineNumber: number): string; /** * Whether this file is a Markdown document (`.md` / `.markdown`). * * @remarks * Used by rules that validate Markdown-document structure so they only run * on Markdown files, not on other linted config (e.g. `settings.json`). */ isMarkdown(): boolean; /** * Whether this file is a Claude Code settings file * (`settings.json` / `settings.local.json`). */ isSettingsFile(): boolean; /** * Whether this file is a Claude Code plugin manifest — either a plugin * descriptor (`plugin.json`, conventionally under `.claude-plugin/`) or a * marketplace listing (`marketplace.json`). * * @remarks * Matched by basename so both the plugin and marketplace manifests are * covered wherever they live, while ordinary `package.json` / `tsconfig.json` * files are left untouched. */ isPluginManifest(): boolean; /** * Whether this file is a Claude Code MCP server configuration (`.mcp.json`). * * @remarks * Matches the dotfile `.mcp.json` and any `*.mcp.json`, but not a plain * `mcp.json` without the leading dot or a generic `*.json`. */ isMcpConfig(): boolean; /** * Whether this file is a Claude Code output style * (a Markdown file under an `output-styles/` directory). */ isOutputStyle(): boolean; /** * Whether this file is a Claude Code skill (a Markdown file under a * `.claude/skills/` directory). */ isSkillFile(): boolean; /** * Whether this file is a Claude Code subagent (a Markdown file under a * `.claude/agents/` directory). */ isAgentFile(): boolean; /** * Whether this file is a CLAUDE.md-style context document — a Markdown file * that is NOT a skill, subagent, or output-style. * * @remarks * Used by rules that validate CLAUDE.md *document* structure (required * sections, monorepo hierarchy, file location, opinionated guidance). Those * rules must not fire on skill / subagent / output-style Markdown, which are * Markdown but not CLAUDE.md documents — otherwise a project-wide lint spams * "missing section" false positives on every skill and agent file. */ isClaudeMarkdown(): boolean; hasSection(sectionTitle: string): boolean; private escapeRegExp; } //# sourceMappingURL=ContextFile.d.ts.map