# keep each top level section alphabetical
# keep each item within the sections alphabetical

# large files
*.df
*.png
*.gif
*.mp4
*.pkl
*.pptx
*.so
!/xdof/calibration/assets/*
!/xdof/customer/samples/images/**/*.png

# learning
*logs*/
*runs*/
*tb_logs*/
*wandb*/
*wandb_logs*/

# mac
*.DS_Store

# python
*.egg-info
*.hypothesis
*.ipynb_checkpoints
*.mypy_cache
*.pyc
*.pyo
.coverage*
__pycache__
.venv/
build/
!gui/apps/pulse/build/
coverage.xml
dist/
pyrightconfig.json
pytest.xml
/requirements.txt

# vim
*.sw[a-p]

# ansible
.vault_pass
.sudo_pass

# secrets
.env
.env.local
.env.development

# specs
/spec/

# terraform
*.tfplan
infra/.terraform/

# IDEs
.vscode
.idea
.trae
.kiro
# DO NOT CHANGE
# Claude personal state (plans, memory, cache) can be ignored
.claude/*
# Shared team skills link should be kept
!.claude/skills
# Shared project-level plugin config should be kept
!.claude/settings.json

# DO NOT CHANGE
# Cursor personal state, track shared rules and sync scripts can be ignored
.cursor/*
# Shared team cursor rules (synced from Claude skills) should be kept
!.cursor/rules/
# Shared sync tooling between Claude skills and Cursor rules should be kept
!.cursor/scripts/

# xdof specific
local_data_cache
*.npy.mp4
recordings/
tools/gripper_vision/inference_outputs/
tools/gripper_vision/weights/*.pt
tools/gripper_vision/weights/*.json
tools/gripper_vision/weights/*.joblib
services/foundry/model_eval/vendor/*.whl
packages/gripper_vision/src/gripper_vision/weights/*.pt
xdof/annotations/
xdof/sandboxs/jenny/egocentric/data/validation_set/good/*.json

# Egocentric caption parser pipeline: annotation JSONs live on NFS
# (/nfs_us/fred/data/itw_example/) and parser outputs / similarity tables are
# regenerable; only manifest.json + code + reports are tracked.
xdof/sandboxs/jenny/egocentric_pipeline/data/validation_set/good/*.json
xdof/sandboxs/jenny/egocentric_pipeline/data/validation_set/bad/*.json
xdof/sandboxs/jenny/egocentric_pipeline/data/analysis/*.csv

# lychee
.lycheecache
delivery_reports/

# pytest scratch (delivery reducer tests write JSONL to cwd)
/skipped.jsonl
/delivered.jsonl
/failed.jsonl

# egoLab/ITW canonical fleet runner (research/run_t2_fleet/) — regenerable local caches + runtime
# artifacts, never committed. The publish ledger (data/published_by_task_ledger.jsonl) is TRACKED
# deliberately: it is the append-only publish-dedup record (publish contract step 8b) and the laptop
# Desktop is a wipe path — git is its durability.
# egoLab low-res regen failure list (operational data, not source — kept local; the funnel
# step 6a consults it by GLOB, which a filename grep misses: restored 2026-08-21)
research/run_t2_fleet/data/failed_lowres_regen_episodes_*.csv
research/run_t2_fleet/scripts/data/pulse_universe_snapshot.jsonl
research/run_t2_fleet/scripts/data/lowres_1to1_verdicts.json
research/run_t2_fleet/scripts/interclip/fix_calls.jsonl

# Runtime logs from the tune GUI's rerun/rrd servers — never artefacts worth committing.
xdof/sandboxs/fred/hand_pose_with_depth_tune/*.log
