# Python
__pycache__/
*.py[cod]
*.egg-info/
.venv/
.uv-cache/

# Env + secrets — ALL .env variants except .env.example are sensitive
.env
.env.*
!.env.example
*.local.md
CLAUDE.local.md
# Per-project Gecko state (wallet refs, api tokens cached locally)
.gecko/
# Solana keypairs anywhere in the tree
*.keypair.json
gecko-demo-treasury.json

# Private strategy / pitch / findings — sensitive, never in the public repo.
# Lives on-disk only (see private/README.md). Code stays tracked; strategy goes here.
/private/

# Build
dist/
build/
*.whl

# OS / editor
.DS_Store
.vscode/
.idea/

# Test / coverage
.pytest_cache/
.mypy_cache/
.ruff_cache/
htmlcov/
.coverage

instructions/

# Session transcripts (contain sensitive tokens; for grant submission only)
claude-session.jsonl
codex-session.jsonl

# Generated artifacts (reproducible from .md sources)
*.pdf
colosseum-report.html
docs/external/
.claude/worktrees/

# Pitch deck working files (Notion exports + .pptx; tracked separately if needed)
gecko_pitch/
apps/
apps/*

# Context-mode local session telemetry
.github/context-mode/sessions/

# Task 8 — Tavily falsifier writes manual-judging artifacts here.
# Grading is private; we don't want noisy diffs on every probe run.
docs/superpowers/falsifier-results/

# Contest bot — per-run state. Reproducible from the bot itself; we don't
# want every artifact-log day to dirty the tree, and the local-lab JSONL
# is operator-private telemetry that should never enter the repo.
contest_bot/circuit_breaker_state.json
contest_bot/bot_state.json
contest_bot/bot_state.json.tmp
contest_bot/artifact_*.jsonl
contest_bot/local_memory.jsonl
contest_bot/jto_breakout_gecko_gated_contest_live_ack.jsonl

# Skill installs from `npx skills add okx/...` and `okx/plugin-store`.
# Per-machine install state — reproducible via the npx command, not
# source we maintain. Same shape as node_modules / .venv.
# Skills under .claude/skills/ are SYMLINKS to .agents/skills/, so the
# patterns drop the trailing slash (gitignore treats `dir/` as
# "directory only" and skips symlinks).
.agents/
.claude/skills/okx-*
.claude/skills/starter-coach
.claude/skills/colosseum-copilot
skills-lock.json

# Contest-bot operator junk — iteration logs, state snapshots, manual
# backups, and per-poll telemetry. All reproducible from a bot run; none
# of it is source. (Runtime state files are already listed above; these
# are the globs that catch the per-iteration debris.)
contest_bot/*.log
contest_bot/*.bak
contest_bot/bot_state.*.json
contest_bot/poll_telemetry_*.jsonl
contest_bot/eval_telemetry_*.jsonl

# Decision-record store (s43): per-run JSONL + simulation.json. Local +
# best-effort synced to Mongo via `python -m decision_store.sync`; the
# JSONL is the durable source of truth, not repo source. Never track.
contest_bot/decision_runs/

# OKX example skills pulled down for reference (kline-indicator,
# market-intel). Context-feed material, not source we maintain.
skills_example/

# gecko-okx-quickstart skill — runtime artifacts (same shape as contest_bot)
gecko-okx-quickstart/bot_state.json
gecko-okx-quickstart/bot_state.json.tmp
gecko-okx-quickstart/circuit_breaker_state.json
gecko-okx-quickstart/local_memory.jsonl
gecko-okx-quickstart/*.log
gecko-okx-quickstart/*_live_ack.jsonl
gecko-okx-quickstart/poll_telemetry_*.jsonl
gecko-okx-quickstart/artifact_*.jsonl
gecko-okx-quickstart/__pycache__/
gecko-okx-quickstart/**/__pycache__/
gecko-okx-quickstart/.env

# s46: derived regime window index (regenerable via build_tape.py regimes --write)
scripts/calibration/data/tape/regime_windows.json
