node_modules
dist
# ...except the published MCP server bundle (the distributable artifact).
!mcp/dist/
!mcp/dist/server.mjs
.DS_Store
*.local
.env
!.env.example
public/data/*
!public/data/schedule-*.json
!public/data/redraft-projections-presets.json
# Mike Clay's NFL Projection Guide (ESPN+) is a paid product — its raw extracts
# are LOCAL-ONLY (regenerate via scripts/extract_clay_*.py from a PDF you own).
# Never commit clay-*.json; only the derived/anonymized blends ship. See
# DATA_SOURCES.md ("Paid products — never redistribute the source").
public/data/clay-projections-*.json
public/data/clay-unit-grades-*.json
public/data/clay-matchups-*.json
public/data/clay-team-projections-*.json
!public/data/training-rows-cache-*.json
!public/data/trained-models-cache-*.json
!public/data/model-cache-*.json
!public/data/feature-store/
!public/data/score-store/
!public/data/ktc_rankings_*.json
!public/data/ktc_history.json
!public/data/nflverse_weekly_2025.json
!public/data/ppg-feature-ablation.json
!public/data/ppg-hyperparam-sweep.json
!public/data/residual-feature-ablation.json
!public/data/residual-hyperparam-sweep.json
!public/data/ktc-feature-ablation.json
!public/data/ktc-hyperparam-sweep.json
!public/data/pdf-career-ablation-predraft.json
!public/data/pdf-career-ablation-postdraft.json
!public/data/rsp-career-ablation-predraft.json
!public/data/rsp-career-ablation-postdraft.json
!public/data/pdf-only-career-test.json
!public/data/qb-beast-ablation.json
!public/data/ktc-forecasts-*.json
!public/data/redraft-projections.json
!public/data/projection-base-*.json
!public/data/model-eval-*.json
!public/data/team-metrics-*.json
!public/data/coach-tendencies.json
!public/data/player-metrics-*.json
!public/data/pbp-slim-*.json.gz
!public/data/prospect-boom-bust.json
!public/data/prospect-grades-*.json
!public/data/depth-order-2026.json
!public/data/career-2027.json
!public/data/cfbd-college-stats.json
!public/data/cfbd-sp-ratings.json
!public/data/cfbd-recruiting.json
!public/data/cfbd-games.json
!public/data/cfbd-team-talent.json
!public/data/cfbd-player-usage.json
!public/data/cfbd/
!public/data/cfbd/*.json
!public/data/pdf-prospect-features.json
!public/data/pdf-prospect-features-merged.json
!public/data/rsp-historical-rankings.json
!public/data/rsp-qb-features.json
!public/data/manual-cfbd-overrides.json
!public/data/player-crosswalk.json
!public/data/player-id-map.json
!public/data/player-aliases.json
!public/data/player-promotions.json
!public/data/player-conflicts.json
!public/data/player-buzz.json
# Raw upstream sources committed as .csv.gz (~35 MB vs ~200 MB raw).
# TS readLocalFile auto-decompresses; Python runs `bash scripts/extract-data.sh`
# once to materialize the .csv. See scripts/pull-all-data-sources.sh.
!public/data/*.csv.gz
!public/data/ffc_adp_ppr_*.json
!public/data/ffc_adp_2qb_*.json
!public/data/espn_adp_*.json
!public/data/espn-nfl-ids.json
!public/data/fantasycalc_*.json
!public/data/fantasycalc_history_*.json
!public/data/sleeper-players.json
!public/data/sleeper-adp-*.json
!public/data/ktc-fc-rescale.json
# Aggregated, anonymized expert activity (no usernames) — committed/deployed.
# Built by scripts/build_expert_data.py from the gitignored private/ list.
!public/data/expert-ownership.json
!public/data/expert-adds.json
!public/data/expert-trades.json
!public/data/expert-graph.json
!public/data/expert-league-graph.json
!public/data/expert-candidates.json
# expert-names.json (index -> username) is intentionally NOT un-ignored: it stays
# local-only so the social graph / rankings can show names in dev but never ship.
# Its passphrase-encrypted form (scripts/encrypt-expert-names.mjs) IS committed:
# the deployed Social Graph decrypts it in-browser after an "unlock" passphrase.
# The ciphertext is public, so the passphrase is the only protection — keep it strong.
!public/data/expert-names.enc.json
.claude/*
!.claude/commands/
!.claude/commands/**
CLAUDE.local.md
__pycache__/
.nflverse-cache/
.cache/
.venv/
pdfs/

# Proprietary inputs (Clay PDFs + parsed dataset) — never committed.
/private/
# Local-only Clay projection set consumed at runtime by the "Consensus" preset.
# Never committed — absent in the public deploy so Clay's numbers ship nowhere.
/public/data/clay/

# Downloaded headshot images
headshots.zip
headshots_part*.zip
!public/data/depth-starters-*.json
