add-config
Add or update dotfiles config in the repo source. Target files under
~/.config 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 |
| 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.
- Existing linked-file edits need no relinking. Reload the owning app as needed
and distinguish a saved setting from behavior verified in the app; report
settings that only affect new sessions, tabs, or windows. 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.
1---2name: add-config3description: 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, Git, Bat, Atuin, tealdeer, and gh.4---56# add-config78Add or update dotfiles config in the repo source. Target files under9`~/.config` and `~/.local/bin` are generated by symlinks; do not10edit them directly.1112## Route1314Start with the area reference, then read only the relevant README section when15repository behavior or commands need clarification:1617| Area | Read |18|---|---|19| Fish | [references/fish.md](references/fish.md), then the relevant section of `fish/README.md` |20| Neovim / LazyVim | [references/neovim.md](references/neovim.md), then the relevant section of `nvim/README.md` |21| Shared agent config | `.agents/rules/authoring.md`, then the relevant section of `.agents/README.md` |22| Other apps | the app README when present, then its source config and checks |2324## File Map2526| Concern | Edit |27|---|---|28| Fish env vars, abbreviations, interactive integrations | `fish/config.fish` |29| Fish plugins | `fish/fish_plugins` |30| Fish functions | `fish/functions/*.fish` |31| Fish early PATH, startup snippets, vendor overrides | `fish/conf.d/*.fish` |32| Neovim plugins/options/keymaps | `nvim/lua/...` |33| Ghostty | `ghostty/config` |34| Git/GitHub config | `git/config`, `gh/config.yml` |35| Bat/Atuin/tealdeer | `bat/config`, `atuin/config.toml`, `tealdeer/config.toml` |36| Shared agent config | `.agents/agents/`, `.agents/rules/`, `.agents/docs/`, `.agents/skills/` |37| Bootstrap/link behavior | `scripts/bootstrap.sh`, `scripts/link.sh` |38| Packages | `Brewfile` via `add-package` |3940## Workflow41421. Inspect the repo source, its link rule, and the current tool version.432. Put the change in the mapped source file and follow the area reference.443. Preserve grouped style. Keep guarded behavior behind short/default aliases;45 use explicit names for permission bypasses or destructive modes.464. Keep app reload work separate from package installation. Validate effective47 behavior when a parser accepts obsolete or ignored settings.485. Existing linked-file edits need no relinking. Reload the owning app as needed49 and distinguish a saved setting from behavior verified in the app; report50 settings that only affect new sessions, tabs, or windows. When adding or51 removing a path, inspect whether its parent is linked, update `scripts/link.sh`52 only if needed, then run it.536. Use `add-package` when a binary must also be added to `Brewfile`.547. Keep caches, histories, generated state, credentials, and local overrides55 outside the repository.5657## Validation5859For Fish or Neovim, run the commands in its selected reference. For another60app, run its README or source-adjacent checks and a targeted smoke test.61Additionally:6263- Package change: `brew bundle check --file Brewfile`64- Agent asset change: `./scripts/audit-agent-config.sh`65- Fish plugin change: `fish scripts/install-fish-plugins.fish`6667## Don't6869- Do not edit `archive/` unless the user explicitly asks.70- Do not edit generated target files directly.71- Do not symlink writable cache/state directories unless the tool expects it.72- Do not replace a standard command with a function unless its CLI is fully73 compatible; prefer a distinct name or an interactive abbreviation.74- Do not reformat or refactor unrelated config.