# Python
__pycache__/
*.py[cod]
*$py.class
*.so
*.egg
*.egg-info/
dist/
build/
eggs/
*.whl
.eggs/

# Front-end toolchain. NOTE: src/yeaboi/web/static/ is the Vite *output* and is
# deliberately committed (so `pip install yeaboi` needs no Node) — do not add it
# here. Beware the unanchored `dist/` and `build/` globs above: hatchling reads
# this file as build excludes, so a build dir with either name would vanish from
# the wheel. (`node_modules/` below is safe: nothing under src/yeaboi is ever
# named node_modules, and the wheel only packages src/yeaboi.)
node_modules/
frontend/.vite/

# Virtual environments
.venv/
venv/
env/
ENV/

# Environment variables
.env
.env.local
.env.*.local

# Git worktrees (make wt-new / wt-open)
.claude/worktrees/

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

# Testing
.pytest_cache/
.coverage
htmlcov/
.tox/

# Vector store
chroma_db/

# LangSmith / LangChain
.langsmith/

# Distribution
*.tar.gz
*.zip

# Jupyter
.ipynb_checkpoints/

# Generated output
scrum-plan.*
scrum-questionnaire.md

# References
Capacity_Plan_Template.xlsx
SCRUM.md

# Allow test fixtures (overrides SCRUM.md ignore above)
!tests/fixtures/SCRUM.md
!projects/*/SCRUM.md

# Stray log tree from a run whose home directory resolved relative — logs
# belong under ~/.yeaboi/logs (paths.py owns every log path), never in the repo.
/Documents/

# Scratch written at the repo root by codeql-triage.yml's survey step, for the
# Claude step in the same job to read. Ignored because that job — unlike the
# flaky hunter, which also writes JSON here — goes on to COMMIT, and a stray
# `git add` of a file listing every open security alert is not a mistake worth
# leaving available.
/alerts-raw.json
/codeql-auto.json
/codeql-propose.json
