__pycache__/
*.pyc
.pytest_cache/
build/
dist/
*.egg-info/
.venv/
venv/
.tmp-site/
site/
node_modules/
.plan-auditor/evidence.jsonl
.plan-auditor/evidence.head.json
.plan-auditor/evidence.write.lock
.plan-auditor/audit.freeze.lock
.plan-auditor/request.json
.plan-auditor/activation.json
.plan-auditor/integrity.json
.plan-auditor/*.tmp
.plan-auditor/archive/
.plan-auditor/snapshots/
.plan-auditor/seal.json
.plan-auditor/seals/
.plan-auditor/supervisor-runtime.json
.plan-auditor/supervisor-assessment.json
.plan-auditor/supervisor.stop
.plan-auditor/supervisor.log
.plan-auditor/watchdog.jsonl
.plan-auditor/gate-warning.json
.plan-auditor/agents/

# plan-auditor runtime state. The fine-grained rule is the nested
# .plan-auditor/.gitignore, which ignores everything under that directory and
# re-includes only hand-authored input (plan.json, request-source.json, named
# plans). The entries above stay for workspaces that predate the nested rule,
# and the two below close the gaps it now covers, so a runtime file added by a
# new feature is ignored by default rather than only after it has been
# committed once. Both are documented as tool-written in
# docs/workspace-artifacts.md.
.plan-auditor/facts.json
.plan-auditor/supervisor.json

# coverage.py data file produced by the branch-coverage gate in
# .github/workflows/plan-audit.yml
.coverage
.coverage.*
coverage.xml
htmlcov/

# npm pack output written by the tarball-content gate in build.yml and
# npm-publish.yml, plus the tarball itself.
pack.json
*.tgz

# mypy cache from the type ratchet job
.mypy_cache/
.ruff_cache/

# Upstream commit lookups cached by .github/scripts/check_action_pins.py. The
# cache exists so repeated local runs and a cold CI runner do not re-query the
# API; it is machine-local state and must never be committed.
.action-pin-cache/
