# Node artifacts **/node_modules/ **/package-lock.json # Python artifacts **/__pycache__/ **/*.pyc **/.venv/ **/.pytest_cache/ # OS / editor .DS_Store *.swp *~ # Claude config — settings.local.json is per-machine, never commit .claude/settings.local.json # MCP plaintext secrets and decrypted-at-runtime credentials # (only the .gpg counterpart is safe to commit) mcp/secrets.env mcp/gcp-oauth.keys.json # Live session anchor — ephemeral, archived under a different name into # .ai/sessions/ at wrap. Tracking .ai/ (this repo does; most projects gitignore # it) meant the anchor showed as untracked for the whole session, which made # git-worktree-gate report rulesets sync-blocked and every other project skip # its rulesets pull until wrap. .ai/session-context.org .ai/session-context.d/