.DS_Store .docs/ .tea/ tmp/ # `.claude/*` and not `.claude/`, because git does not descend into an excluded # DIRECTORY and the negation below would never be reached. # # The exception is the hook registration, which is a fact about this repository # rather than about whoever cloned it: `kettle mirror --hook` keeps every # AGENTS.md paired with its CLAUDE.md symlink, and a fresh clone should get that # without anyone remembering to wire it up. Everything else under .claude/ here # is a local scratch tree and stays ignored. .claude/* !.claude/settings.json # `make dist` and `make build` — release artifacts are rebuilt from a tag, never # committed cli/dist/ __pycache__/ *.pyc # agents-sync regenerates these symlinks next to every AGENTS.md CLAUDE.md .kettle/