# Real AIS/TIS data and passwords — never commit (contains PAN + financial data)
# Test fixtures must be fabricated and live under tests/fixtures/ only.
*AIS*.json
*ais*.json
*TIS*.json
*tis*.json
password*.txt
!tests/fixtures/*.json
# Re-exclude AIS/TIS-named files even under fixtures: a real encrypted download
# (which the PAN guard cannot read) must never be trackable. Fabricated fixtures
# must use non-AIS/TIS names.
tests/fixtures/*AIS*.json
tests/fixtures/*ais*.json
tests/fixtures/*TIS*.json
tests/fixtures/*tis*.json

# Python
__pycache__/
*.py[cod]
.venv/
venv/
dist/
build/
*.egg-info/
.pytest_cache/
.mypy_cache/
.ruff_cache/
.coverage
# D-07: CI resolves fresh every run; the lockfile stays untracked.
uv.lock

# In-repo private stash for real data — never committed (Phase 1, D-09)
.garage/

# Local tooling and planning files — kept out of the public repo
CLAUDE.md
.planning/
.claude/
.DS_Store
