# Node
node_modules/
npm-debug.log*
.npm/

# Tooling caches
.cache/
.biome-cache/

# Python
dist/
*.egg-info/
.coverage
.coverage.*
# uv writes one when a command is run against this project rather than with
# `--no-project`. DESIGN.md section 9 refuses a lockfile of ours, so a stray one
# is cruft rather than content.
uv.lock
__pycache__/
*.py[cod]
.pytest_cache/
.ruff_cache/
.venv/

# OS / editor cruft
.DS_Store
Thumbs.db
*.swp
*~
.idea/
.vscode/

# A scratch copy of a personal manifest, when one is kept here while working.
# This repository's own `.akit.yaml` is committed: it is the project manifest,
# and DESIGN.md section 6 is why.
/kits.yaml

# OpenCode agent session/continuation state - machine cruft, not repo content
.omo/
