# Python
__pycache__/
*.py[cod]
*.egg-info/
dist/
build/
.venv/
venv/

# Tooling
.pytest_cache/
.mypy_cache/
.ruff_cache/
.coverage

# Local config & data (endless.toml.example is the checked-in template)
endless.toml
.endless/

# OS / editor
.DS_Store
.idea/
.vscode/
.claude/settings.local.json

# Local run artifacts
.omc/
exports/

# Emitted datasets and mining scratch. This repo is the engine; a dataset is
# an output of running it, and one that cannot be re-verified without the
# corpus it cites does not belong in the package tree (docs/005).
tasks-*.jsonl
# `repos*.jsonl`, not the bare `repos.jsonl` it used to be: that matched one
# exact name, so `repos-breadth.jsonl` — a real onboarding record with a
# 29-test ledger and an image tag — was neither tracked nor ignored, and rode
# into an sdist as package content.
repos*.jsonl
repo-candidates*.jsonl
*-registry.jsonl
check_reliability*.json

# Test fixtures are evidence, not data. A serialization regression must fail
# a test, so these stay tracked even when their names match the patterns
# above — `tests/fixtures/coding_store/repos.jsonl` was caught by the bare
# `repos.jsonl` rule.
!tests/fixtures/**

# Agent rollout traces: tens of MB each, regenerable from runs
*traces*.jsonl

# Mined data, run logs, and eval reports. The repo ships the ENGINE; what it
# was run on belongs in the corpus repo (`coding export-tree`) or the Hub
# (`adapters/hub_export.py`), both of which gate on redistribution. A record
# committed here bypasses that gate entirely — `tasks-code-v3-eval.jsonl`
# carried real `pallets/markupsafe` patches into version control.
/artifacts/
/*.json
/*.jsonl

# Run outputs: the CONFIG is kept, the logs and traces are not. A config
# records model, rollout count, harness and task path -- the provenance a
# cited pass rate needs to be checkable -- in 4 KB, where its traces run to
# tens of MB. Git cannot re-include a file under an excluded directory, so
# the directory is matched by contents rather than by name.
outputs/**
!outputs/**/
!outputs/**/config.toml

# Experiment scripts stay; the dumps they read and write do not. `panels/`
# is the exception: rate TABLES, small and citable, which is the form the
# roadmap's claims should point at.
experiments/*.json
experiments/*.jsonl
experiments/**/*.jsonl
!experiments/panels/
!experiments/panels/*.json
