# Claude Guidelines for cgould/config ## Repository Structure - Configuration files for various tools (fish, git, helix, etc.) - Installation scripts for different environments (Linux/Nix, macOS/Homebrew) ## Commands - Install/setup: `./install.sh` (interactive installer) - No specific test/lint commands (configuration repo) ## Code Style ### Naming Conventions - Files/functions: `snake_case.fish` - Shell variables: Local `snake_case`, env vars `UPPERCASE` - Function arguments: Use `--argument-names` in fish ### Formatting - Indentation: 4 spaces for fish, tabs/4 spaces for shell scripts - Line length: Keep under 100 characters - Commands: Space after commands, spaces around operators ### Documentation - Fish functions: Use `--description` parameter - Major sections: Use header comments with descriptive names - Error messages: User-friendly, sent to stderr with `>&2` ### Error Handling - Validate arguments at beginning of functions - Return explicit error codes (return 1) for failures - Use conditionals to check for successful operations ### Fish-Specific - Follow fish idioms (command substitution with parentheses) - Use fish built-ins where possible - Separate config into functions, completions, conf.d directories