.DS_Store

# Python
__pycache__/
*.pyc
*.pyo
*.egg-info/
dist/
build/
.venv/

# IDE
.idea/
.vscode/
*.swp

# Testing
.coverage
coverage.json
htmlcov/
.pytest_cache/

# mypy
.mypy_cache/

# ruff
.ruff_cache/

# Beadloom (auto-generated SQLite databases + WAL files)
.beadloom/**/*.db
# Guard firing record: local evidence that a gate ran, not shared state.
.beadloom/guard-firings*.jsonl
.beadloom/**/*.db-shm
.beadloom/**/*.db-wal

# BDL-037 F1 dogfood scratch (hand-curated satellite slices + hub; never committed)
.scratch-federation/

# The portal `beadloom docs site --out site` writes: the generated content, the
# scaffold it writes from the installed package (theme, viewer, VitePress
# config, package.json, lockfile, browser tests), and what npm, VitePress and
# Playwright add beside them. BDL-076 B1 moved the scaffold's sources into
# src/beadloom/site_scaffold/, and B2 (`beadloom-qki6`) made `site/` output only,
# so none of it is tracked. The project's own changes to its portal live in
# .beadloom/site/, which `docs site` copies last.
/site/

# BDL-047 agent credentials (never committed)
.claude/development/docs/features/BDL-047/credentials.md
# Agent tool worktrees (isolation: worktree) — never commit
.claude/worktrees/

# dev-server logs from local dogfooding
.vitepress-dev.log

# mutmut working copy: the runner copies the package + tests into `mutants/`
# and runs there (BDL-068 S3). Local evidence of a run, not shared state.
mutants/
