# macOS
.DS_Store
._*
.Spotlight-V100
.Trashes
.claude

tests/fixtures/extract/*-extracted.xlsx

# Java / Maven
target/
*.class
*.jar
*.war
*.ear
dependency-reduced-pom.xml
buildNumber.properties
.mvn/timing.properties
.mvn/wrapper/maven-wrapper.jar

# Python
__pycache__/
.pytest_cache/
*.py[cod]
*$py.class
*.egg-info/
dist/
# build/ — Python wheel build artifacts (top-level convention).
build/
# dev/build/ — UofA pipeline outputs (Phase 2.5 refinement workspace +
# adversarial corpora). Nested under dev/ in Phase E. Everything
# regenerable from git-tracked sources.
dev/build/
# ...except for the documentation README inside dev/build/phase2_5/ (the
# Phase 2.5 refinement workspace index), which is force-tracked so
# contributors see the layout without having to regenerate the dir.
!dev/build/phase2_5/README.md
*.egg
.eggs/
*.whl
.venv/
venv/
env/

# IDE
.idea/
*.iml
.vscode/
*.swp
*.swo
*~
.project
.classpath
.settings/

# Keys (private keys must NOT be committed)
keys/*.pem
!keys/*.pub

# OS
Thumbs.db
ehthumbs.db
Desktop.ini

# Logs
*.log
hs_err_pid*

# Temp
*.tmp
*.bak
*.orig

# Generated test fixtures (regenerated at test time from generator.py)
tests/fixtures/import/e2e-*.xlsx

# Extracted xlsx files from score_extraction_batch.py runs (regenerated each
# run; tied to a specific (model, prompt-version, timestamp), so committing
# them couples a fixture to one run).
tests/fixtures/extract_corpus/**/extracted.xlsx

# Eval run artifacts (per-run JSON + markdown outputs)
runs/

# Wheel-bundled artifacts (populated by hatch_build.py at wheel build time).
# .jar is already covered by *.jar above; listed explicitly so the location
# is documented and so the .gitkeep placeholder is preserved.
src/uofa_cli/_engine/*.jar
!src/uofa_cli/_engine/.gitkeep
# JRE tree downloaded by hatch_build.py when UOFA_BUNDLE_PLATFORM is set.
src/uofa_cli/_runtime/jre/
src/uofa_cli/_runtime/PLATFORM
src/uofa_cli/_runtime/JRE_VERSION
