| name | add-config |
| description | Add config to this macOS dotfiles repo. Use for env vars, fish
abbreviations/functions/plugins, direct symlinked config files, tool
integrations, shared agent config, and app config such as Neovim, Ghostty,
Warp, Git, Bat, Atuin, tealdeer, and gh.
|
add-config
Add or update dotfiles config in the repo source. Target files under
~/.config, ~/.warp, and ~/.local/bin are generated by symlinks; do not
edit them directly.
Route
Start with the area reference, then read only the relevant README section when
repository behavior or commands need clarification:
| Area | Read |
|---|
| Fish | references/fish.md, then the relevant section of fish/README.md |
| Neovim / LazyVim | references/neovim.md, then the relevant section of nvim/README.md |
| Shared agent config | .agents/rules/authoring.md, then the relevant section of .agents/README.md |
| Other apps | the app README when present, then its source config and checks |
File Map
| Concern | Edit |
|---|
| Fish env vars, abbreviations, interactive integrations | fish/config.fish |
| Fish plugins | fish/fish_plugins |
| Fish functions | fish/functions/*.fish |
| Fish early PATH, startup snippets, vendor overrides | fish/conf.d/*.fish |
| Neovim plugins/options/keymaps | nvim/lua/... |
| Ghostty | ghostty/config |
| Warp keybindings/themes/workflows | warp/keybindings.yaml, warp/themes/*.yaml, warp/workflows/*.yaml |
| Git/GitHub config | git/config, gh/config.yml |
| Bat/Atuin/tealdeer | bat/config, atuin/config.toml, tealdeer/config.toml |
| Shared agent config | .agents/agents/, .agents/rules/, .agents/docs/, .agents/skills/ |
| Bootstrap/link behavior | scripts/bootstrap.sh, scripts/link.sh |
| Packages | Brewfile via add-package |
Workflow
- Inspect the repo source, its link rule, and the current tool version.
- Put the change in the mapped source file and follow the area reference.
- Preserve grouped style. Keep guarded behavior behind short/default aliases;
use explicit names for permission bypasses or destructive modes.
- Keep app reload work separate from package installation. Validate effective
behavior when a parser accepts obsolete or ignored settings.
- Reload the owning app for an existing linked file. When adding or removing
a path, inspect whether its parent is linked, update
scripts/link.sh only
if needed, then run it.
- Use
add-package when a binary must also be added to Brewfile.
- Keep caches, histories, generated state, credentials, and local overrides
outside the repository.
Validation
For Fish or Neovim, run the commands in its selected reference. For another
app, run its README or source-adjacent checks and a targeted smoke test.
Additionally:
- Package change:
brew bundle check --file Brewfile
- Agent asset change:
./scripts/audit-agent-config.sh
- Fish plugin change:
fish scripts/install-fish-plugins.fish
Don't
- Do not edit
archive/ unless the user explicitly asks.
- Do not edit generated target files directly.
- Do not symlink writable cache/state directories unless the tool expects it.
- Do not replace a standard command with a function unless its CLI is fully
compatible; prefer a distinct name or an interactive abbreviation.
- Do not reformat or refactor unrelated config.