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

.ipynb_checkpoints/
*.ipynb_metadata/

node_modules/
.next/
out/
.vercel

target/
Cargo.lock
*.rlib

*.deps
*.ji

.env
.env.local
.env.*.local
*.pem
*.key

.DS_Store
Thumbs.db
*.swp
*.swo
*~
.idea/
.vscode/
*.log

data/
models/
checkpoints/
wandb/
mlruns/
*.pt
*.pth
*.onnx
*.safetensors
*.bin
*.h5
.gstack/

.link-cache.json
# 本地 Claude 设置仍忽略；只发布认证导师 wrapper，让新 clone 能自动发现。
.claude/
!.claude/
.claude/*
!.claude/skills/
.claude/skills/*
!.claude/skills/claude-certification/
!.claude/skills/find-your-level/
!.claude/skills/find-your-level/**
!.claude/skills/learn-agent-skills/
!.claude/skills/learn-mcp/
# impeccable 工具的本地缓存/配置（config.json、hook.cache.json），任意层级，不入库
.impeccable/

# 由 site/build.js 在每次 Vercel 部署时生成（buildCommand）——不提交，
# 以免漂移或丢 URL。每次从 PHASES 重新生成。
site/sitemap.xml
site/llms.txt
# 由 build.js 每次部署写入，记录本次部署的 git 分支（供 lesson.html 按分支拉取 docs）
site/build-meta.js
# 认证课程数据也由 build.js 在部署时生成，不提交。
site/certification-data.js
site/figure-manifest.js
site/lesson-seo.json
site/certification-seo.json
site/langs.js
# 预渲染静态课程页（writeLessonPages 生成，523 个 index.html）——同款策略不提交
site/lessons/

# scripts/build_catalog.py 的可再生产物；中文仓的发布与课数真相仍由
# site/build.js 管理，因此忽略 catalog.json，避免误提交生成文件。
catalog.json
book/_build/
i18n/*/phases/
i18n/*/.cache/
i18n/*/.translate-cache.json
