# Secrets
.env
.env.*
!.env.example
*.pem
*.key
# Python (engine + gdtoolkit adapter are Python-natural)
__pycache__/
*.pyc
.venv/
.venv-*/
dist/
*.egg-info/
.pytest_cache/
.mypy_cache/
.ruff_cache/
.coverage
htmlcov/
.mutmut-cache
# mutmut v3 writes a generated copy of the project + its result DB here while it runs
mutants/
mutmut-results.db
mutmut-run.log
# poodle (local mutation testing, see docs/decisions/0013) writes its temp copies here; the
# trailing * also catches ad-hoc manual-testing dirs like .poodle-temp-manual/
poodle-run.log
.poodle-temp*/
# Godot (test fixtures may include a small Godot project)
.godot/
# Godot self-test fixture (tests/test_selftest_live.py): the GdUnit4 addon is downloaded
# (scripts/install_gdunit4.py), and reports + .uid import artifacts are regenerated by
# `godot --import` — none of them are committed.
corpus/addons/
corpus/reports/
*.uid
# Live self-test with --basetemp=.live-tmp (CI reuses the Stryker JSON it writes there)
.live-tmp/
# OS/editor
.DS_Store
Thumbs.db
.idea/
*.swp

# Agent scratch output — never commit ad-hoc dumps or agent-local config
*_dump.txt
.claude/

# The private word list tests/test_public_readiness.py scans for (GDMUTANT_PRIVATE_TERMS).
# It belongs outside this tree entirely, and committing it would publish the exact list of words
# the guard exists to keep unpublished. This is the belt to that guard's braces: a copy dropped
# in here by accident cannot be staged at all. tests/test_public_readiness.py pins that this
# pattern is here and that git really does honour it.
*private-terms*
