# Byte-compiled / optimized / DLL files
__pycache__/
*.py[cod]
*$py.class

# Distribution / packaging
build/
dist/
*.egg-info/
*.egg

# Virtual environments
.venv/
venv/
env/

# Test & coverage
.coverage
htmlcov/
.pytest_cache/
.ruff_cache/

# Data (synthetic + raw + processed DuckDB files — never committed)
data/raw/*
data/synthetic/*
data/processed/*
!data/raw/.gitkeep
!data/synthetic/.gitkeep
!data/processed/.gitkeep

# OS files
.DS_Store
Thumbs.db

# Internal planning/petition drafts — never committed (petition narrative,
# session handoff notes). Only distilled engineering content (see docs/)
# belongs in the public repo.
/CivicPay Handoff Document.md
/CivicPay Open Framework — Project Charter & Implementation Spec.md
/CivicPay Open Framework — Ticket 13 (Enrollment & Validation Module).md
# Chronological decision log kept for working reference only — narrates the
# build process itself (advisor consultations, session-to-session framing)
# in a way the distilled docs/*.md files deliberately do not. Never
# committed; explicitly ignored (not just left untracked) so a future
# broad `git add` can't sweep it in by accident.
/OPEN_QUESTIONS.md
# Same reasoning, scoped to one doc: kept local by explicit request even
# though it lives under docs/ and contains no petition/NIW content itself —
# see the file's own note for why it isn't committed.
docs/ai-implementation-backlog.md

# dbt run artifacts (compiled SQL, run results, docs) — regenerated by
# `civicpay dbt run`/`test`, never hand-edited or committed.
dbt/target/
dbt/logs/
dbt/dbt_packages/
# dbt-core's own anonymous-usage-telemetry id file, auto-created on first
# run — already accidentally committed once (18dbd0e); left tracked there
# (not rewriting history for it) but ignored going forward.
dbt/.user.yml

# build artifacts
civicpay/_version.py
*.egg-info/
build/
dist/
__pycache__/
*.pyc
data/processed/*.duckdb

# Any stray DuckDB file anywhere (ad-hoc/scratch test databases created
# outside data/processed/ during manual testing must never be committed —
# one such file was accidentally committed in 84fed02 before this rule
# existed; see the CHANGELOG/OPEN_QUESTIONS note about it).
*.duckdb
