# Prerequisites
*.d

# Compiled Object files
*.slo
*.lo
*.o
*.obj

# Precompiled Headers
*.gch
*.pch

# Compiled Dynamic libraries
*.so
*.dylib
*.dll

# Fortran module files
*.mod
*.smod

# Compiled Static libraries
*.lai
*.la
*.a
*.lib

# Executables
*.exe
*.out
*.app

# Build directories
build/
build-cuda/
build-asan/
build-tabarena/
out/
cmake-build-*/

# CMake (generated; not the top-level setup Makefile)
CMakeCache.txt
CMakeFiles/
CMakeScripts/
Testing/
**/Makefile
!/Makefile
cmake_install.cmake
install_manifest.txt
compile_commands.json
CTestTestfile.cmake
_deps/

# IDE / editor
.vscode/
.idea/
*.swp
*.swo
*~

# macOS
.DS_Store

# Tooling artifacts (catboost dumps an info dir per training run).
catboost_info/
.venv/
__pycache__/

# Datasets pulled by scripts/fetch_*.py — regenerate, don't commit.
# (tiny.csv is a small fixture tracked by hand for unit tests.)
tests/data/*.csv
!tests/data/tiny.csv
tests/data/.toy-fetched

# Comparison results — regenerate via scripts/compare.py.
benchmarks/results/*.json
benchmarks/results/*.md

# Claude Code: ignore everything under .claude/, except project-owned skills.
# `make skills` installs upstream skills (e.g. caveman) into .claude/skills/
# alongside committed project-owned ones (e.g. bonsai-policy).
.claude/*
!.claude/skills/
.claude/skills/*
!.claude/skills/bonsai-policy/
!.claude/skills/quality-gates/
!.claude/skills/pod-validate/
!.claude/skills/perf-round/
!.claude/skills/feature-admission/
tests/data/*.libsvm
tests/data/.amazon-fetched
# bonsai.bench.airline's parsed-array cache beside the (already-ignored) CSVs
tests/data/*.npz
site/
