/target
**/*.rs.bk
Cargo.lock.bak

# IDE / OS
.idea/
.vscode/
*.swp
.DS_Store
Thumbs.db

# 本地运行时数据 —— 不得进入版本库
/.workflow/
/.vigil-local/
*.db
*.db-wal
*.db-shm
*.sqlite
*.sqlite-journal

# Node / Tauri(I08 起)
node_modules/
# 根级 /dist/ 专供本地 CI 打包(scripts/build-local/);
# 子模块 dist/(如 apps/desktop/ui/dist 由 vite 产出)仍被上方 `dist/` 通配 match。
/dist/
# Tauri 自动生成 schema(每次 cargo build 重生,SSOT 是 capabilities/default.json)
apps/desktop/gen/

# 工具运行时目录(AI 辅助 / spec-workflow / Serena / Claude / Codex session)
/.serena/
/.spec-workflow/
/.claude/
/.codex-session-*/
# Codex MCP 意外重定向产物(stdout JSON 流 `10`)
/10
# Codex review 协作 prompt(本机协作产物,引本地路径,不发布)
/.codex-review-prompt*.txt
# Claude Code harness meta(用户度统计 / MCP 列表 / session 工具产物,非项目内容)
/ONBOARDING.md

# 内部策略素材(roadmap / launch-kit / 发布文案)—— 仅内部库,**绝不入公开仓**;
# 纵深防御:即便干净移植误 cp 进来,也被此处挡在 commit 之外。
/docs/strategy/
**/launch-kit/

# Secrets —— 即便我们有 OS Keychain,也兜底禁止任何本地 dotenv 进入 git
.env
.env.*
!.env.example
*.pem
*.key
!**/test*.pem
!**/test*.key
id_rsa
id_ed25519

# Spike/PoC 实验区 —— 含大模型文件,不得进入版本库
.spike/

# 防御性:压缩包 / 大模型 / 二进制产物绝不入库
*.zip
*.tar
*.tar.gz
*.tgz
*.tar.bz2
*.7z
*.rar
*.onnx
*.gguf
*.safetensors
*.bin
!**/firmware/*.bin
*.exe
*.dll
*.so
*.dylib
!**/test-fixtures/*.so
!**/test-fixtures/*.dll

# 临时 / 备份
*.tmp
*.tmp.json
.tmp-*
*.bak
*.orig
*.rej

# Python 工具(scripts/spike-p3 / etc)运行时缓存
__pycache__/
*.pyc
*.pyo
/scripts/test-local/e2e-ext-redaction/test-results/
/scripts/test-local/e2e-ext-redaction/playwright-report/
/scripts/test-local/e2e-ext-redaction/.playwright/

# mdbook build output(by mdbook build,不入 git)
/docs/book/book/

# 临时 UI 审计 / 参考截图(Playwright MCP + 手工 audit 产物,工具输出不入库)
/.playwright-mcp/
/audit-*.jpeg
/audit-*.jpg
/audit-*.png
/ref-*.jpeg
/ref-*.jpg
/ref-*.png
