# IDE
.idea/
.vscode/

# Python
__pycache__/
*.py[cod]
.venv/
venv/
.pytest_cache/
.ruff_cache/
*.egg-info/
build/
dist/
.coverage
.coverage.*
htmlcov/

# Scratch databases. `alembic` used by hand, and the `alembic check` CI step, both write one
# into the working directory; the real database lives in the data directory, not here.
manicule.db
manicule.db-wal
manicule.db-shm

# uv.lock is deliberately committed: CI installs with --frozen, so a build here is the
# build that runs there.

# The tree-sitter pack, staged for the image build by CI and named for the pack release it
# holds. Compiled shared libraries for one platform and one release — the definition of
# something rebuilt rather than committed. The directory itself stays, so that the Dockerfile's
# `COPY .ci/grammars` resolves on a clean clone.
.ci/grammars/*
!.ci/grammars/.gitkeep

# The link checker's machine-readable report, written by the docs job and by anyone running
# lychee the way that job does. `tools/check_link_report.py` is what reads it.
lychee-report.json

# macOS
.DS_Store

# Claude Code worktrees
.claude/worktrees/

# Local bug prompts and investigation notes
bugs/
