# Agent Instructions for Chezmoi Dotfiles ## Build & Test Commands - **Apply**: `chezmoi apply` (deploys changes to home directory). - **Diff**: `chezmoi diff` (previews changes; ALWAYS run this before applying). - **Add**: `chezmoi add ~/.config/` (imports existing files). - **Test**: No automated tests. Verify changes by applying and checking application behavior. ## Code Style & Conventions - **Structure**: Follow `chezmoi` conventions (`dot_` for hidden, `executable_` for scripts, `.tmpl` for templates). - **Lua (Neovim)**: Use tabs for indentation. Return tables for plugins. Follow LazyVim specs. - **Fish**: Use 4 spaces indentation. Guard interactive logic with `if status is-interactive`. - **Formatting**: Mimic existing file indentation (mostly 4 spaces, Lua uses tabs). - **Templating**: In `.tmpl` files, wrap Go template logic in `{{ ... }}`. - **Imports**: Keep config minimal. Verify plugin/tool availability before adding config. - **Comments**: Explain *why* a specific hack/setting is needed. - **Safety**: Use absolute paths. Read files before editing to preserve context.