# .agents `~/.agents` is owned so skills land on every machine. Most of `skills/` is **not** hand-maintained: `npx skills` installs and updates those trees, and `.skill-lock.json` is its lock file (source, hash, timestamps). Skills absent from the lock file are local. ## Knowledge is a symlink into the repo `~/.agents/knowledge` is a symlink to `agents/knowledge/` at the repo root — outside `home/`, so chezmoi does not copy it. Writes from `knowledge-maintain` land in git. The target is `.chezmoi.workingTree`, not a hardcoded checkout path: `install.sh` clones to `~/.local/share/chezmoi`, this machine uses a different path. Skills stay copies. Pointing that tree at the repo would let `npx skills` commit third-party files. After an `npx skills` run, `chezmoi add ~/.agents` and commit; `re-add` misses new skill folders. `dotfiles apply` checks the repo, not the target, so an un-added update dies on the next apply. `CLAUDE.md` is a symlink to `AGENTS.md` so both CLIs read one file. ## Requirements - `npx` (Node) to add or update lockfile-managed skills. Apply does not need it; the files are already in the tree.