@felixgeelhaar/cclint
Version:
Catch CLAUDE.md drift before Claude misbehaves. Lints CLAUDE.md, skills, subagents, and hooks for Claude Code projects.
51 lines • 1.6 kB
TypeScript
import type { Rule } from '../domain/Rule.js';
import { ContextFile } from '../domain/ContextFile.js';
import { Violation } from '../domain/Violation.js';
/**
* Rule that validates bash command safety in CLAUDE.md
*
* @remarks
* Validates that bash commands:
* - Avoid dangerous operations (rm -rf, sudo without context)
* - Include proper error handling
* - Use safe patterns (quotes, error checks)
* - Follow Anthropic's safety recommendations
*
* @see {@link https://www.anthropic.com/engineering/claude-code-best-practices | Claude Code Best Practices}
*
* @category Rules
*/
export declare class CommandSafetyRule implements Rule {
readonly id = "command-safety";
readonly description = "Validates safety of bash commands in CLAUDE.md files";
private readonly extractor;
constructor();
lint(file: ContextFile): Violation[];
/**
* Check for dangerous commands
*/
private checkDangerousCommands;
/**
* Detect an `rm` invocation that is both recursive (-r/-R/--recursive) and
* forced (-f/--force), regardless of flag order or short/long form.
*/
private isRecursiveForcedRm;
/**
* Detect a root-path argument (e.g. `/`, `/usr`, `/etc`) while allowing the
* conventional temp directories `/tmp` and `/var/tmp`.
*/
private targetsRootPath;
/**
* Check error handling
*/
private checkErrorHandling;
/**
* Check variable quoting
*/
private checkQuoting;
/**
* Check sudo usage
*/
private checkSudoUsage;
}
//# sourceMappingURL=CommandSafetyRule.d.ts.map