node_modules/
__pycache__/
*.pyc
.env
.env.*
!.env.example
*.tfstate
*.tfstate.*
.terraform/
.terraform.lock.hcl
dist/
build/
*.log
.DS_Store
extensions/vscode/*.vsix
extensions/vscode/out/

# Playwright test artifacts (videos, traces, screenshots)
tests/e2e/artifacts/
# E2E harness artifacts — reports, traces, downloads, and the saved session.
# .auth holds a LIVE JWT and must never be tracked.
playwright-report/
test-results/
tests/e2e/.artifacts/
tests/e2e/.auth/

# Design handoff: screenshots are regenerable binaries (8.6MB/run) — the script
# is committed, the output isn't. Payloads + token export ARE committed: small,
# text, and they're the contract a designer works against.
services/web/design-handoff/screens/

# Claude Code local state — records approved commands verbatim, so it
# accumulates any secret that appears on a command line. Never track it.
.claude/settings.local.json
