# Python
__pycache__/
*.py[cod]
*.egg-info/
dist/
build/
.venv/
venv/
.python-version
.mypy_cache/
.pytest_cache/
.ruff_cache/
.hypothesis/
.tox/
.nox/
.coverage
.coverage.*
coverage.xml
htmlcov/

# Readability-corpus cache. NO CORPUS ARCHIVE IS EVER COMMITTED (ARCHITECTURE.md
# §8.3). cache/ holds the fetched archives (Buse-Weimer, Scalabrino 2018, Dorn 2012)
# and anything extracted from them, and stays ignored.
#
# THE SCALABRINO 2018 AND DORN 2012 CORPORA HAVE NO PERMISSION OF ANY KIND
# (dataset.toml): not one byte of either may EVER enter the tracked tree. They are
# fetched at run time into cache/ and only aggregates are published. Non-negotiable.
#
# The Buse-Weimer RAW INPUTS ARE TRACKED, under the author's explicit grant
# (W. Weimer, email 2026-07-11; PERMISSIONS.md records redistribution of the raw
# snippets and the annotator scores, plus publication of derived data), because a
# measurement instrument whose own headline result cannot be regenerated from pinned
# inputs is exactly the failure it exists to expose. They live in
# validation/bw_faithfulness/derived/arbitration_inputs/:
#   snippets/{1..100}.jsnp  the 100 rated Java snippets
#   oracle.csv              the per-annotator score matrix (121 rows)
#   scores.csv              the per-snippet mean ratings derived from oracle.csv
# The lane reads THOSE (pinned.py); cache/ is only an optional byte-for-byte
# cross-check. That is the ONLY dataset content in this repository, and nothing else
# from any corpus may join it. Do not add ignore rules for derived/, which also
# holds the committable computed outputs (feature vectors, stamps, reports).
validation/bw_faithfulness/cache/
validation/bw_faithfulness/*.zip

# mkdocs build output (deployed by .github/workflows/docs.yml, never committed)
site/

# The PMD distribution, fetched and sha256-verified by tools/fetch_pmd.py from
# the pin in tests/differential/pmd.toml. PMD is a JVM tool, so it cannot ride
# in the `oracles` pip extra; 73 MB of a third party's release binaries has no
# business in this tree either.
.oracles/

# MSR paper sources: submission material, kept local until publication
# (pyproject.toml excludes it from the sdist and release.yml asserts that,
# as defense in depth should this rule ever be dropped)
paper/

# Editors / OS / agent tooling
.claude/
.idea/
.vscode/
*.swp
*~
.DS_Store
