# Dependencies
**/node_modules
.pnpm-store/
**/__pycache__/
*.pyc
*.pyo

# Build outputs
dist/
build/
*.dist

# Environment variables
.env
.env.local
.env.preview
.env.development.local
.env.test.local
.env.production.local

# IDE and editor files
.vscode/
.idea/
*.swp
*.swo
*~

# Claude Code 个人本地设置（权限规则等，不进仓库——每个人的授权范围不一样）
.claude/settings.local.json

# OS generated files
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
ehthumbs.db
Thumbs.db

# Logs
logs
*.log
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*

# Runtime data
pids
*.pid
*.seed
*.pid.lock

# Stray runtime / shell redirection artifacts and test outputs that pollute review diffs
$null
test-results/
tmp/
.tmp/
.tmp-oss/

# Agent / IDE session caches (never part of product source)
.codex-logs/
.superpowers/
terminals/
.agent-loop/
.agent-loop-context/
.worktrees/
.test-output-*.txt
.vitest-*.txt

# One-off local diagnostics (npx tsx scripts/_*.mjs)
scripts/_*.mjs
scripts/_*.json

# Stray root-level log dumps from local tsc/smoke runs
tsc-*.log
t.log
gcm-diagnose.log
.tmp-tscheck*.log

# Coverage directory used by tools like istanbul
coverage/
*.lcov

# nyc test coverage
.nyc_output

# Dependency directories
jspm_packages/

# TypeScript cache
*.tsbuildinfo

# Optional npm cache directory
.npm

# Optional eslint cache
.eslintcache

# Microbundle cache
.rpt2_cache/
.rts2_cache_cjs/
.rts2_cache_es/
.rts2_cache_umd/

# Optional REPL history
.node_repl_history

# Output of 'npm pack'
*.tgz

# Yarn Integrity file
.yarn-integrity

# parcel-bundler cache (https://parceljs.org/)
.cache
.parcel-cache

# Next.js build output
.next

# Nuxt.js build / generate output
.nuxt

# Gatsby files
.cache/

# Storybook build outputs
.out
.storybook-out

# Temporary folders
tmp/
temp/

# Database
*.db
*.sqlite
*.sqlite3
data/database.json
data/ai-config.json
data/progress.md
data/knowledge/
data/cost-history.json
data/telemetry-history.json
data/cost-governance-audit.json
data/nl-audit.json
data/test_retrieval_meta.json
data/role-analytics.json
data/replay/
data/__test_*/
data/agents/*/role-state.json

# Runtime agent memory / session artifacts
data/agents/*/sessions/
data/agents/*/memory/
data/agents/*/reports/
data/agents/*/SOUL.md
data/agents/*/HEARTBEAT.md

# Audit runtime data and keys (never commit audit WAL/index/private keys)
data/audit/

# SlideRule V5 durable pilot runtime artifacts (explicitly ignored; smoke intentionally creates them)
# 每轮推演的崩溃恢复检查点（services/checkpoint_store 写的，一次真机烟测就多几个目录）。
# 跟上面那几条同一类：跑出来的运行时状态，不是源码。2026-08-27 补——它一直没进
# 名单，于是每跑一次真实话题 E2E 就多一批 untracked 文件挂在那儿。
data/checkpoints/
data/sliderule-sessions.json
data/sliderule-sessions.json.tmp
data/slide_rule_sessions.json
data/slide_rule_sessions.json.tmp
data/agent-loop-settings.json
data/agent-loop-settings.json.tmp
# legacy pre-rename runtime file kept for rollback during the migration window
data/whybuddy-sessions.json
data/whybuddy-sessions.json.tmp
# 每个存档旁边的时间戳边车（persistence.py:319 —— <store>.meta.json，
# 记 sessionId → lastActive/createdAt）。上面逐个点名了主文件和 .tmp，唯独
# 漏了这一个，于是本机跑一趟推演就会冒出个未跟踪文件。它是纯运行期状态，
# 跟 .tmp 同性质，不该进版本库。
data/*.json.meta.json

# Local debug artifacts
.manus-logs/
.tmp-dev-all.*.log
.tmp-intakeid

# Webdev artifacts (checkpoint zips, migrations, etc.)
.webdev/

# Manus version file (auto-generated, not part of source)
client/public/__manus__/version.json

# Local verification artifacts
tmp-server-*.log
artifacts/

# Grok local tool config, caches, MCP state and temporary artifacts (tooling only).
# These are per-workspace session files for the Grok Build TUI/CLI (e.g. .grok/config.toml, caches).
# Never commit; keeps git status clean and protects hygiene for V5 submissions.
.grok/

# Local sibling project copies / migration scratch space
tws-ai-ask-python/

# Blueprint job store 是运行时生成的数据，不入库（见 server/routes/blueprint/job-store.ts）
.kiro/blueprint-assets/jobs.json
slide-rule-python/data/rag-vector-index.json

# 企业根证书只进本地构建，绝不入库（docker/certs/README.md）
docker/certs/*.crt
docs/skills-triage.partial.jsonl

# 本地真机截图脚本（临时，不入库）
.phone-lib.mjs
.shot-*.mjs
.verify-*.mjs
.audit-*.mjs
.probe.mjs
.gen-*.mjs
.dbg.mjs
purge-result.json

# 图钩实验的产物：HTML/PNG 每轮重生成，几 MB，不进仓
experiments/visual-first/runs/
data/gate-health.jsonl

# CodeGraph 的本地索引库（codegraph init 建在仓根）。324MB 的 SQLite，
# 每次建索引重生成、只对**当前这棵工作树**有意义，不进仓。
# ⚠ 2026-09-17 评测记录：装它 4 秒、索 4697 文件 9.7 秒，callers 查询准且
#   认得未提交的改动——当"带调用索引的 grep"用是划算的。但两条别指望：
#   · affected 在本仓给出 2101/2200 = 95.5% 的测试单，等于没答；
#   · server/index.ts 的 __import__("services.web_aigc_" + adapter + "_adapter")
#     它照样看不见（callers 只返回测试文件）——§30 那条"零入度≠没人用"
#     的坑它填不上，照它清理一样会删掉产线代码。
.codegraph/
