__pycache__/
*.py[cod]
*.egg-info/
.pytest_cache/
.mypy_cache/
.ruff_cache/
.coverage
htmlcov/
dist/
build/
.venv/
venv/
.env
*.db
*.db-journal
data/jpintel.db
data/*.sqlite*
# Root-level graph + sqlite working files (analysis_wave18 KG scratch).
# Side files (-wal/-shm) covered by *.db-wal / *.db-shm above don't apply
# to .sqlite siblings — name them explicitly.
graph.sqlite
graph.sqlite-wal
graph.sqlite-shm
data/competitive_watch/
# adoption PoC scrape output -- not committed until schema is approved
data/adoption_*.jsonl
# downloaded 採択 PDFs live in /tmp/jpintel_adoption_cache/ and must never be committed
jpintel_adoption_cache/
.DS_Store
node_modules/
.vercel

# E2E artifacts (Playwright screenshots on failure) + local env
tests/e2e/_artifacts/
tests/e2e/.env.e2e

# Playwright CI artifact directories (created by pytest-playwright + `playwright test`)
test-results/
playwright-report/
blob-report/

# MkDocs build output — regenerated by CI (pages-preview.yml).
# The landing page (site/index.html, site/styles.css, etc.) stays tracked;
# only the docs/ sub-tree produced by `mkdocs build` is ignored.
site/docs/

# Cloudflare Wrangler cache
.wrangler/

# DB backup / WAL / SHM (prod backup は Fly volume snapshot で管理)
# Covers both dash (`*.db.bak-20260423-133045`) and dot (`*.db.bak.20260423-133045`)
# timestamp styles produced by different backup scripts, plus the SQLite
# side files. sdist was hit by the dot variant once, blocking PyPI publish.
*.db.bak*
*.db.gz
*.db.gz.sha256
*.db-wal
*.db-shm

# macOS
.DS_Store

# IDE / editor local state
.idea/
.vscode/
*.swp
*.swo

# Claude Code local state
.claude/

# Log files
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*

# Local-only secrets / config overrides
mcp-server.local.json
.env.*
!.env.example
