local_scripts/

# Byte-compiled / optimized / DLL files
__pycache__/
*.pyc
*.pyd
*.pyo

# C extensions
*.so
*.ax

# Distribution / packaging
.Python
build/
dist/
develop-eggs/
*.egg-info/
.eggs/
sdist/
.tox/
.venv/
env/
venv/
ENV/
env.bak/
venv.bak/
notebooks/

# Editors
.vscode/
.idea/

# Jupyter Notebook
.ipynb_checkpoints/
*.ipynb

# Environment variables
.env
.flaskenv

# MyPy
.mypy_cache/
.dmypy.json
mypy_primer_deps/

# pytest
.pytest_cache/
.hypothesis/

# Sphinx documentation
docs/_build/

# virtualenv
.venv/
venv/

# Unsloth compiled cache
unsloth_compiled_cache/

# Temporary files
=[0-9]*
*.swp

# OS generated files
.DS_Store
.Trashes
ehthumbs.db
Thumbs.db
reasoning_core/generated_data/
generated_data/
task_influence_work/
upload_state/
.task_influence_cache.json
# Local measurement artifacts; published tables live under docs/results/.
/per_task_results/
per_task_results_rgym/*.json
per_task_results_rgym/*.jsonl
per_task_results_rgym/*.log
reasoning_core/checkpoints/
reasoning_core/wandb/
checkpoints/
run_logs/
wandb/
analyze_artifact/
analyze_artifact.py
torchinductor/
dmnsl/

*.xls
*.pkl
*.xlsx
*.log
*.jsonl


ROADMAP.md

# Claude Code artifacts
.claude/
.codex-tmp/
.test/
data-gym-cache/

# Agent workspace; untracked by design.
.dsh/

# Local research scratch space; task implementations belong in reasoning_core/tasks/.
/tasks/dev/


# Generated outputs; not part of the package.
paper_exports/
/build_canon_shuffle.py

# Local utility; machine-specific paths.
sync_results.sh
# A nested checkout, tracked in its own repository rather than here. Keep the whole directory
# out: without this git records it as a gitlink, which writes that repository's URL and commit id
# into this one. A negation cannot re-include anything under it either -- files inside an excluded
# directory are never reachable.
task_diagnostics/

# Machine-specific notes; not part of the package.
docs/GRID5000.md
reasoning_core/task_search/README.providers.private.md
# Internal tooling plus its build/ outputs. Machine-specific; keep the whole directory out.
reasoning_core/reports/
# ...and the test that imports it.
tests/test_difficulty_tune.py
# Machine-specific orchestration: hardcoded paths to one cluster and one storage mount. It
# cannot run anywhere else, so it is workspace state, not part of the package.
scripts/g5k_influence_gaps.py
# experiments/ is a separate private checkout. It was tracked here as a SUBMODULE, which wrote its
# URL into .gitmodules and pinned its commit id -- both published, and both useless to anyone who
# cannot clone it (the Pages workflow already had to disable submodules to build at all). Ignoring
# the directory and the .gitmodules that described it keeps the working checkout exactly as it is
# while taking the pointer out of this repo. To recreate the checkout:
#   git clone https://github.com/sileod/reasoning-core-experiments.git experiments
/experiments/
/.gitmodules

# Driver logs: the proposer and the implementor service write a file per wave here for as
# long as they are left running. Workspace state, and the reason `git status` stays quiet
# while a service is working.
/runs/

# A proposal wave checkpoints to <wave>.yaml.partial so an interrupted run resumes
# where it stopped, and deletes it once the archive is written. It is live state,
# not a record: one was swept into a commit by a directory-wide `git add` and the
# next wave to finish deleted it out from under the repository.
reasoning_core/task_search/proposals/archive/*.yaml.partial

# Sandbox tests build their worktrees inside the repo, because a sandbox has to sit on
# the same filesystem as what it copies. On NFS a still-open file survives the cleanup as
# a .nfs silly-rename, so the directory outlives the test that made it.
.task-search-test-*/

# generated dev-task index: carries private eval numbers (reasoning_core.reports.dev_index)
reasoning_core/tasks/dev/README.md
