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

# Virtual environment
.venv/

# Environment variables & secrets (never commit)
.env
.secret

# User LLM config (contains API keys)
llm_config.yaml

# IDE
.idea/
.vscode/

# Claude Code：团队共享配置（agents/commands/hooks/skills）入库。
# ~/.gitignore_global 的 *.md 会连带忽略 .claude 下文档，故先重新包含整个 .claude，
# 再在最后显式排除个人本地设置 settings.local.json（gitignore 后置规则生效）。
!.claude/
!.claude/**
.claude/settings.local.json
*.swp
*.swo

# Testing
.pytest_cache/
htmlcov/
.coverage
coverage.xml

# Runtime data (not version controlled)
workspace/
/packages/

# 场景包（scenario new 默认 cwd 直出 ./<id>-package/）：实验态默认不进库；
# 转正式资产时 git add -f <包目录>，或迁入 evaluator/agent_eval/assets/packages/ 随包发布
/*-package/
evaluator/*-package/

# OS
.DS_Store
Thumbs.db
*.zip

# Ruff
.ruff_cache/

# mypy
.mypy_cache/

# Web Portal (Node.js build artifacts)
web/backend/node_modules/
web/frontend/node_modules/
web/frontend/dist/
web/backend/public/

# Prisma 项目根污染：schema.prisma 迁至 db/web/prisma/ 后，prisma generate 会把仓库根
# 推断为项目根并在此安装 @prisma/client/prisma（node_modules + package.json）。
# 这是 Prisma 的推断副作用，非本项目依赖，勿入库。详见 db/README.md。
/package.json
/package-lock.json
/node_modules/

# 可观测平台离线摄取队列（运行期产物）
.ingest_queue/

# llm_config.yaml 不落根目录（防明文 key 入库）
/llm_config.yaml
# evaluator 包内默认配置：仅 ${VAR} 引用、无明文 key，入库供 CI 构建使用（参考 .example.yaml）
!evaluator/agent_eval/assets/configs/llm_config.yaml
# 部分协作者 ~/.gitignore_global 含宽泛 `datasets`（数据科学习惯），会误伤包源码
# 目录 evaluator/agent_eval/datasets/（仓库规则优先级高于全局 excludesFile）。
# 只反包含 *.py 源码——勿用 **（会把 __pycache__/.DS_Store 一并重新包含）
!evaluator/agent_eval/datasets/
!evaluator/agent_eval/datasets/*.py
# 部分协作者 ~/.gitignore_global 含 `*.md` 全忽略，会误伤随包发布的资产文档
# evaluator/agent_eval/assets/guides/（仓库规则优先级高于全局 excludesFile）
!evaluator/agent_eval/assets/guides/
!evaluator/agent_eval/assets/guides/*.md
*.env.local

