--- name: validation-standards description: Tool usage requirements, failure patterns, consistency checks, and validation methodologies for Claude Code operations version: 1.0.0 --- ## Overview This skill provides comprehensive validation standards for Claude Code tool usage, documentation consistency, and execution flow validation. It defines rules for detecting failures before they occur, identifying common error patterns, and ensuring compliance with best practices. **When to apply**: Before any file modification, after errors occur, during documentation updates, or when ensuring quality and consistency. ## Tool Usage Validation Standards ### Edit Tool Requirements **Rule**: Must read file before editing ``` REQUIRED SEQUENCE: 1. Read(file_path) 2. Edit(file_path, old_string, new_string) VIOLATION SYMPTOMS: - Error: "File has not been read yet" - Error: "Read it first before writing" PREVENTION: - Track files read in current session - Validate Read was called before Edit - Maintain session state of file operations AUTO-FIX: IF Edit fails with "not read yet" error THEN Call Read(file_path) first THEN Retry Edit operation ``` **Rule**: old_string must exist and be unique ``` REQUIRED: - old_string appears in file exactly once - OR use replace_all=true for multiple occurrences VIOLATION SYMPTOMS: - Error: "old_string not found" - Error: "old_string not unique" PREVENTION: - Use larger context for uniqueness - Search file content before editing - Verify exact match with line numbers AUTO-FIX: IF old_string not unique THEN Expand context with surrounding lines OR Use replace_all=true parameter ``` ### Write Tool Requirements **Rule**: Read before overwriting existing files ``` REQUIRED FOR EXISTING FILES: 1. Check if file exists (Glob or Bash ls) 2. If exists: Read(file_path) first 3. Then Write(file_path, content) VIOLATION SYMPTOMS: - Error: "File has not been read yet" - Warning: "Overwriting without reading" PREVENTION: - Always check file existence first - Read existing files before writing - Use Edit instead of Write for modifications BEST PRACTICE: - Write: Only for new files - Edit: For modifying existing files ``` **Rule**: Verify parent directory exists ``` REQUIRED: - Parent directory must exist before Write - Use Bash mkdir -p if needed VIOLATION SYMPTOMS: - Error: "No such file or directory" - Error: "Parent directory doesn't exist" PREVENTION: - Verify directory structure before Write - Create directories with mkdir -p - Use absolute paths to avoid ambiguity AUTO-FIX: Extract parent directory from file_path Check if parent exists If not: mkdir -p parent_directory Then: Proceed with Write ``` ### NotebookEdit Tool Requirements **Rule**: Verify cell ID exists ``` REQUIRED: - cell_id must exist in notebook - For insert: Specify position or cell_id - For delete: cell_id must be valid PREVENTION: - Read notebook structure first - Verify cell_id in notebook - Check cell_type matches operation ``` ### Bash Tool Requirements **Rule**: Use specialized tools instead of Bash ``` PREFER SPECIALIZED TOOLS: - Read instead of cat/head/tail - Edit instead of sed/awk - Write instead of echo > or cat <