# Python-generated files
__pycache__/
*.py[oc]
build/
dist/
wheels/
*.egg-info

# Virtual environments
.venv
.venv-workflows/

# Test / CI artifacts
.coverage
coverage.json

# Environment
.env
.env.*
!.env.example
!.env.*.example
.mcp.json
.mcp.json.bak.*
!.mcp.json.example
# The Claude Code plugin ships its MCP server declaration — keep it tracked
!packages/memtomem-claude-plugin/.mcp.json
# The Codex plugin also ships its MCP server declaration
!plugins/memtomem/.mcp.json

# Claude Code
.claude/
CLAUDE.local.md

# Other agent harnesses — context gateway outputs (user-local, derived from
# CLAUDE.md). Regenerate via `mm context init` + `mm context sync`.
AGENTS.md
GEMINI.md
.cursorrules
.github/copilot-instructions.md
.memtomem/

# macOS
.DS_Store

# Jupyter checkpoints
.ipynb_checkpoints/
notebooks/**/.ipynb_checkpoints/

# Notebooks
notebooks/__pycache__/
memories/
node_modules/

# Internal development artifacts
docs/testing/
docs/marketing/
docs/reports/
docs/plans/
docs/qa/
.claude-memory/
BUG_REPORT.md
*.png
main.py
scripts/
.agents-dev/
# dev-trio plugin: per-run Codex/Gemini reviewer transcripts. Contain local
# paths, session metadata, prompts, and reviewer output — never commit.
.dev-trio/
# debate-conductor plugin: generator/critic transcripts, same contents and the
# same reason.
.debate-conductor/

# Experimental plugins kept private until promoted
packages/memtomem-openclaw-plugin/

# Dev repo: root tests excluded, package tests included
tests/
!packages/*/tests/
.playwright-mcp/

# Standalone test sandbox
/tmp/memtomem-test/

# memtomem local artifacts (ADR-0011 project_local tier)
.memtomem/*.local/
.memtomem/.staging/

# Cross-process file-lock sidecars. Indexing drops an empty `.{name}.lock`
# next to each file it locks, and context/_atomic.py forbids unlinking them
# (deleting a sidecar reintroduces the os.replace inode race), so ignore
# rather than delete. The leading dot is required and is what keeps the
# tracked `uv.lock` unmatched. Which files get one, and when it is safe to
# remove them, are documented once in docs/guides/configuration.md under
# "Lock sidecars" — kept there rather than restated here, since only the
# guide's copy is pinned by tests. See #2387.
.*.lock
