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

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

# Virtual environments
.venv/
venv/
env/

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

# Testing
.pytest_cache/
.coverage
htmlcov/
.mypy_cache/
.ruff_cache/
.tox/
.nox/
.hypothesis/

# Jupyter
.ipynb_checkpoints/

# Documentation build
docs/_build/
# Autosummary-generated API stubs (rebuilt on every Sphinx run)
docs/api/generated/
# Local /search research scratch
/search/

# Git worktrees
.worktrees/

# Local assistant/tool state
.claude/
.serena/
CLAUDE.md
AGENTS.md
**/CLAUDE.md
**/AGENTS.md

# Root planning and decision records are maintainer-only.
/roadmap.md
/memory.md
# Research archive (papers, literature, internal AI/maintainer docs). Lives under
# docs/ so all documents sit in one tree, but it is local-only and Sphinx-excluded:
# never built into the public site, never committed. See docs/research/README.md.
/docs/research/

# Planning skeleton + local research programs live under project/ (roadmap, status,
# plan, decisions, style, SYSTEM, handoff, archived plans, autolab/autoresearch).
# Local-only; never part of the public package repo.
/project/

# Retired code (legacy/): the home + its README are tracked so the convention is
# visible, but the contents stay local. No outputs/ home in this repo: generated
# figures and tables flow through the RTD pipeline (docs/_static, docs/_generated,
# validation/results); one-off experiment results sit beside their driver in experiments/.
/legacy/*
!/legacy/README.md

# Validation receipts are tracked as compact JSON. Resumable per-fit checkpoints
# stay local because they contain the full raw record stream.
/validation/results/*.jsonl

# Secrets and local environment
.env
.env.*
*.pem
*.key
*.p12
*.pfx
credentials*.json
secrets*.json
auth*.json
token*.json
token*.txt
id_rsa
id_rsa.*
id_ed25519
id_ed25519.*
cookies*.txt
*.session
*.db
*.sqlite
*.sqlite3

# Private drafts and browser/session artifacts. Publication files such as
# LICENSE, CITATION.cff, CONTRIBUTING.md, and reviewed workflows remain visible.
/.playwright-mcp/
/docs/prds/
/paper/
/lets-work-on-*.md

# Large data files
data/raw/
data/samples/
data/scania/
data/processed/
*.zip
src/econirl/datasets/rdw_scrappage_data.csv
src/econirl/datasets/rdw_intermediate/
src/econirl/datasets/ziebart_big_data.csv
src/econirl/datasets/lsw_synthetic_data.csv

# JSS deep-run outputs (downloaded fresh from RunPod, not committed)
experiments/jss_deep_run/results/

# Local research experiments: one-off drivers + sweeps. Home + README tracked so
# the convention is visible; contents stay local (one level deep so scripts keep
# their ../src, ../docs, ../examples relative paths). papers/ now under docs/research/.
/experiments/*
!/experiments/README.md

# Local paper-search assistant. Keep only its tracked public README.
/assistant/*
!/assistant/README.md

# Cache
cache/
.cache/

# macOS
.DS_Store

# Personal notes
notes/

# PDFs and TeX sources are external to the package repo
*.pdf
*.tex

# LaTeX compilation artifacts
*.aux
*.bbl
*.bcf
*.blg
*.fls
*.fdb_latexmk
*.log
*.nav
*.out
*.run.xml
*.snm
*.synctex.gz
*.toc
*.vrb
texput.log
docs/research/papers/econirl_package_jss/apikeyrunpod.txt

# Local scratch and editor backups
*.tmp
*.bak
*.orig
*.rej

# Validation runner byproducts
validation/estimators/**/*.json
validation/estimators/**/*.tex

# (handoff.md now lives under project/ and is ignored via /project/ above)

# Assistant audit reports (assistant state)
bullshit-detector_*.md

# generated session dashboard (regenerated by /start)
STATUS.md

# Joe acceptance program: track the lean engine, hide tokens/transcripts/data
acceptance/joe_agent.py
acceptance/problems/
acceptance/papers/
acceptance/reports/
acceptance/loop/

# Raw NFXP source data + PDFs (downloaded on demand by `make rust-table-ix`)
downloads/
