.venv/
__pycache__/
*.pyc
*.egg-info/
build/
dist/
.pytest_cache/
.ruff_cache/
.tickets-tracker/
bridge_state/
# Ignore local .rebar state (session-log pointer, HLC cache, …) but TRACK the out-of-band
# trusted-environment pin (story 76d2): trusted_environments.yaml lives on the code branch
# (Gerrit-gated + CODEOWNERS-protected), NEVER the auto-pushed tickets branch.
.rebar/*
!.rebar/trusted_environments.yaml
.claude/
session-logs/
CLAUDE.local.md

# local test/build scratch (never commit)
.pytest-tmp/

# lint / type-check / coverage artifacts
.mypy_cache/
.coverage
.coverage.*
coverage.xml
htmlcov/
# pytest --store-durations / pytest-split timings (perf logging, task 9ad9) — never committed
.test_durations

# Serena MCP (local code-navigation tooling; per-developer)
.serena/

# tokensave MCP (local code-graph cache; per-developer)
.tokensave/

# mutmut mutation-testing working copy + result DB (docs/mutation-testing.md)
mutants/
.mutmut-cache
html/

# Hybrid Logical Clock per-clone cache (P2.1) — disposable, rebuilt from the log
.rebar/hlc.state
.rebar/hlc.lock

# Ephemeral container secrets — regenerated each boot from SSM by
# infra/scripts/fetch-secrets.sh (ADR-0008); 0600, NEVER committed.
infra/compose/.env

# Build-baked gate-code commit SHA, generated by hatch_build.py at wheel/sdist build
# (epic jira-reb-596). Generated, never committed; force-included in the wheel.
src/rebar/_build_info.py

# d01e live-validation run artifacts (CI artifacts, not source)
/reports/
/leaked-artifacts.log

# terraform plan artifacts (generated)
infra/terraform/tf.plan
infra/terraform/tf.plan.json
infra/terraform/.terraform/
.tools/
