# === Punt Labs canonical .gitignore ===
# Source of truth: .bin/gitignore-canonical.template
# Rollout:         .bin/gitignore-canonical-rollout.sh
# Repo-specific additions belong BELOW the "# === Repo-specific ===" marker.
# Everything above it is managed by the rollout script.

# --- Secrets & local overrides ---
.env
.env.*
.env*.local
!.env.example
.envrc.local
.biff.local
.claude/settings.local.json
.claude/settings.local.*
.claude/mcp.local.json
.mcp.local.json
*.local
*.local.*
.*.local
.*.local.*

# --- Punt Labs runtime state (never commit) ---
.punt-labs/local/
.punt-labs/**/local/**
.punt-labs/**/*.local.*
.punt-labs/quarry/captures/
.punt-labs/vox/ephemeral/
.punt-labs/vox/vox.local.md
.punt-labs/lux.md

# --- Claude Code runtime state ---
.claude/*
!.claude/settings.json
!.claude/commands/
!.claude/hooks/
!.claude/agents/
!.claude/rules/
!.claude/skills/
.claude/scheduled_tasks*
.claude/worktrees/
.claude/projects/
.claude/beadle.poll.t
*/**/.claude/

# --- Lock files (except uv.lock) ---
.*.lock
*.punt-import.lock
.CLAUDE.md.lock
.CLAUDE.md.punt-import.lock
**/.create.lock

# --- Beads runtime state ---
.beads/bd.sock*
.beads/beads.db*
.beads/daemon-*
.beads/daemon.log
.beads/daemon-error
.beads/.local_version

# --- Scratch / temp ---
.tmp/*
!.tmp/.gitkeep
*.tmp
CLAUDE.md.tmp

# --- Worktrees ---
.worktrees/

# --- OS junk ---
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashe
Thumbs.db
ehthumbs.db

# --- Editors / IDEs ---
.idea/
.vscode/
.cursor/
.codex/
.accio/
.claude-flow/
*.swp
*.swo
*~

# --- Python ---
__pycache__/
*.py[cod]
*$py.class
.venv/
venv/
dist/
build/
*.egg
*.egg-info/
.eggs/
.mypy_cache/
.pyright/
.pytest_cache/
.pytest-work/
.ruff_cache/
.coverage
.coverage.*
htmlcov/
uv.toml

# --- Node / web ---
node_modules/
.astro/
.vercel/

# --- Go ---
coverage.out
*.test

# --- Swift / Xcode ---
# (Do NOT ignore *.xcodeproj / *.xcworkspace — those directories are tracked;
# only ignore user-specific state INSIDE them.)
xcuserdata/
DerivedData/
CoverageDerived/
*.xccheckout
*.xcresult
*.xcscmblueprint
*.hmap
*.dSYM
*.dSYM.zip
*.ipa
.swiftpm/
Package.pin
Package.resolved
Carthage/Build/
Carthage/Checkout
Pods/
fastlane/report.xml
fastlane/Preview.html
fastlane/screenshots/**/*.png
fastlane/test_output
iOSInjectionProject/
playground.xcworkspace
timeline.xctimeline

# --- LaTeX build artifacts ---
*.aux
*.bbl
*.bcf
*.blg
*.fdb_latexmk
*.fl
*.log
*.out
*.run.xml
*.synctex.gz
*.toc

# === Repo-specific ===
# Nested git repos (independent projects)
lancedb/

# Python
__pycache__/
*.pyc
.venv/
dist/
*.egg-info/
.pytest_cache/
.mypy_cache/
.ruff_cache/

# Session scratch files (not part of the project)
session.md
.bin/


# LaTeX auxiliary files (prfaq.pdf is tracked, build artifacts are not)
*.aux
*.bbl
*.bcf
*.blg
*.log
*.out
*.run.xml

# Research cache (generated by research librarian agent)
research/research-*.md

# Scratch/temp directory (TMPDIR set via .envrc)

# Editor/tool local state
.vscode/
.cursor/
Lux.ini

# Local uv overrides (depot find-links, etc.)
uv.toml

# Local-only files (machine-specific, per-user)

# Vox cached audio
.vox/*.mp3

# Quarry session-transcript captures (pkit-kcps)

# Editor project config (JetBrains)
.idea/

# Local agent state — ethos session audit logs and mission lockfiles.
# Never publishable: these carry tool inputs including message bodies.

# Per-repo CLAUDE.md lockfile
.CLAUDE.md.lock

# Beads-managed git hooks (installed locally, not shared)
.beads/hooks/

# Working notes, not part of the package
resume.md
