# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
.venv/
venv/
env/
build/
dist/
*.egg-info/
*.egg
.eggs/
.installed.cfg
wheels/
share/python-wheels/
pip-wheel-metadata/

# uv
.uv-cache/
uv.lock.bak

# mgf-common catch-up backups
**/*.bak.[0-9]*

# Test + coverage
.pytest_cache/
.coverage
.coverage.*
htmlcov/
.cache
nosetests.xml
coverage.xml
*.cover
.hypothesis/
.tox/

# mypy + ruff
.mypy_cache/
.ruff_cache/
.import_linter_cache/

# pre-commit
.pre-commit-cache/

# Editors
.idea/
.vscode/
*.swp
*.swo
.DS_Store

# Zig (hrb-code/)
zig-cache/
zig-out/
.zig-cache/

# Project-local notes
my_stuff/

# Self-hosted Woodpecker deploy: the real `.env` holds the Forgejo OAuth secret
# (the bundle ships only `.env.example`). Never commit it.
deploy/woodpecker/.env

# mgf-test-supervisor per-run state (TS-24/27)
.gates/

# Session-hook kit local state (`mgf-fed hooks`). The kill-switch in particular MUST
# stay untracked: a sweeping `git add` that commits it would switch the hooks off for
# every clone, permanently and invisibly — the one failure a kill-switch may not have.
.claude/state/
.claude/mgf-hooks-disabled
# The FLEET-wide kill-switch resolves next to the installed package — which, in an
# editable install, is this path inside the source tree. Committing it would ship a
# permanently-disabled kit in the wheel to every consumer at once.
src/mgf/fed/sessionhooks/DISABLED

# Woodpecker CI private-registry netrc (read:package token) — host-only, never commit.
deploy/woodpecker/netrc
# MGF standardized ignores (AG-18) — local secrets, IDE, Claude-local
.claude/settings.local.json
