# Environment variables and secrets
.env
.env.local
.env.production
.mcp.json
ga_credentials.json
*_credentials.json
service_account.json
indexing_log.json

# Ignore Python virtual environment
venv/
env/
*.pyc
__pycache__/
.Python
*.egg-info/
dist/
build/

# Ignore database files (but keep docs/database_reference for reference)
*.db
*.sqlite
*.sqlite3
!docs/database_reference/*.sql
!docs/database_reference/README.md

# IDE files
.vscode/
.idea/
*.swp
*.swo
*~

# OS files
.DS_Store
Thumbs.db

# Word lock files
~$*.docx

# Design scratch — implemented features keep no mockups in history
design_mockups/

# Logs
*.log
logs/
*.log.*
scripts/indexnow_log.json

# SEO analytics snapshots — regenerated by tooling, not runtime data
data/gsc/*.json

# Testing
.coverage
htmlcov/
.pytest_cache/
.tox/

# Temporary files
tmp/
temp/

# Node.js
node_modules/
package-lock.json
# Session data
flask_session/

# Playwright screenshots
.playwright-mcp/

# Output artifacts
artifacts/
ai_strategy_results/

# Local dev-only admin shim — never deploy
dev_admin.py

# Claude Code ephemeral files
.claude/reports/
.claude/scheduled_tasks.lock

# Session working docs (handoffs, QA checklists, audit/progress notes) at repo
# root — untracked by convention, see .claude/commands/handoff.md. Content that
# must survive lives in Claude's memory files / committed docs, not here.
/HANDOFF.md
/*_HANDOFF.md
/TERMINAL_*.md
/TESTING_CHECKLIST*.md
/NATIVE_REBUILD_*
/PARITY_CLOSE_PLAN.md

# Local working docs — audit tracker source, perf benchmark script and its
# output. Swept into a commit by an over-broad `git add -A`; they are session
# scratch, not deliverables, and should not ship to the prod web root.
/PERF_BASELINE.md
/perf_baseline.py
/audit_tracker.html
