summaryrefslogtreecommitdiff
path: root/AGENTS.md
diff options
context:
space:
mode:
Diffstat (limited to 'AGENTS.md')
-rw-r--r--AGENTS.md2
1 files changed, 2 insertions, 0 deletions
diff --git a/AGENTS.md b/AGENTS.md
index 316f972..64d3b52 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -268,6 +268,8 @@ theme --list-bat
### Configuration Management
The repository uses a centralized linking system where `link.sh` creates symlinks from `config/` files to their expected locations in `$HOME` and `$XDG_CONFIG_HOME`. This allows version control of dotfiles while maintaining standard file locations.
+Two linked files are rewritten by the tool that reads them, so on a machine in use they differ from the repo and that is their normal state: `config/claude/settings.json`, which Claude Code writes to (model, theme), and `config/pi/compact-tools.json`, which pi-compact-tools' `/compact-tools` command saves through the link on purpose. **Do not commit, revert or "fix" a change to either without asking.** One meant for every machine is committed deliberately; one that is a single machine's preference stays where it is.
+
`link.sh` holds only the plain one-line links. Anything with logic of its own is a part in `link/` (`ssh`, `claude`, `pi`, `skills`, `icloud`, `hammerspoon`, `kwin`): a script with the same `[yes]` dry-run interface that decides for itself whether it applies, and can be run alone (`link/ssh.sh yes`). Shared helpers are in `link/lib.sh`. New logic goes in a part, not in `link.sh`.
A part named in `~/.config/dot/skip`, one per line, does nothing on that machine — whether it is reached through `link.sh` or run on its own. That file is hand-written and in no repo, like `~/.localenv`: it is for a machine where a part would do the wrong thing, such as one whose `~/.claude/settings.json` belongs to its owner rather than to this account, and it keeps that machine's exception out of this repo, which every machine shares.