# byte-compiled / caches
__pycache__/
*.py[cod]
.pytest_cache/
.ruff_cache/
.mypy_cache/
.coverage
htmlcov/

# builds
build/
dist/
site/
.mkdocs-site/
*.egg-info/
.venv/
venv/

# docket's own artifacts: ledgers and receipts are frequently sensitive
.docket/
*.receipt.json
*.jsonl
!spec/vectors/*.json
# The negative corpus ships its ledgers as fixtures, deliberately: each is the evidence one or
# more vectors are refused against, and `*.jsonl` above is a rule about ledgers a *user* produces.
# It hid these four from the first commit of the corpus, and the release record caught it exactly
# as designed — the suite passed in the authoring tree (where the files existed, untracked) and
# failed in a clone of the shipped bundle.
!spec/vectors/invalid/*.jsonl
!spec/vectors/invalid/ledgers/*.jsonl

# the mutation sweep's reports (regenerate with `make mutation`)
mutation-report.json
mutation-report.md

# measurements written to the repository root by `make load` / `make soak` / `make cache-load`.
# These are anchored on purpose: the curated reports that ship under docs/measurements/ are
# evidence, they are cited by name in docs/sre-coverage.md and README.md, and a basename pattern
# would leave them out of every clone while the authoring checkout still had them.
/load-report.json
/load-report.md
/soak-report.json
/soak-report.md
/cache-report.json
/cache-report.md
/.docket-soak/

# editors / OS
.vscode/
.idea/
.DS_Store

# the Go verifier's build product
verify-go/docket-verify
verify-go/verify-go
