# Rust build artifacts
/target/

# Example data built locally from external archives (see examples/prep_*.py / prep_congress.R)
examples/congress_data/
examples/speech_data/

# Java reference source (not part of the Rust project)
Mallet/

# Generated corpus and output files
*.corp
*.mallet
topic_word.tsv
doc_topic.tsv

# Local test and scratch files
aha.*

# Distribution / wheel output
dist/

# Compiled Python extension modules (dev builds)
*.so
*.pyd

# Python bytecode caches
__pycache__/
*.py[cod]

# Virtual environments
.venv/
.venv*/
venv/
env/

# Egg / setuptools / maturin dev-install artifacts
*.egg-info/
*.egg

# Test / type-checker caches
.pytest_cache/
.mypy_cache/

# Built documentation site
/site/

# macOS metadata
.DS_Store
parity/*.class

# Claude Code local dir (agent worktrees, settings, etc.) — but DO track the
# committed skills so contributors get them on clone.
.claude/*
!.claude/skills/

# Internal development notes (kept local, not part of the public package)
/notes/

# Benchmark generated artifacts (commit the generators, not the data)
benchmarks/poliblog5k_prepped.csv
benchmarks/bench_results.json
benchmarks/speed_vs_size.json
benchmarks/website_table.md
benchmarks/matrix_results.json
benchmarks/model_matrix.md
benchmarks/k_crossover_results.json
benchmarks/k_crossover.md
paper/fig_thread_scaling.pdf
paper/fig_memory.pdf
paper/fig_scaling.pdf

# Misc local-only files
API_FROZEN.md
docs/stratm-design.md
uv.lock

# Paper reproduction outputs (regenerable by paper/reproduce.py). Ignore the
# directory CONTENTS (not the dir itself) so the consolidated provenance report
# can be re-included -- JSS wants it versioned, so every printed number in
# Sections 5-7 has a traceable, dated, machine-stamped run.
paper/generated/*
!paper/generated/replication_report.md
!paper/generated/replication_report_longleaf.md
!paper/generated/validation_appendix.tex
