# ── Dependencies ──────────────────────────────────────────────────────────
node_modules/

# ── Build output ──────────────────────────────────────────────────────────
dist/
build/
*.tsbuildinfo

# ── Test output ───────────────────────────────────────────────────────────
coverage/
.vitest/

# ── Logs ──────────────────────────────────────────────────────────────────
# Covers firebase-debug.log, firestore-debug.log, ui-debug.log, pubsub-debug.log
logs/
*.log

# ── Environment variables ─────────────────────────────────────────────────
# Was: .env, .env.local, .env.production — which missed .env.dev,
# .env.sandbox, .env.test and anything else added later. Widened.
.env
.env.*
*.local
!.env.example

# ── GCP credentials — never commit these ──────────────────────────────────
# This repo's existing rules, kept and widened. This is the one repo where a
# service-account key file is a realistic accident.
*service-account*.json
application_default_credentials.json
gcp-key*.json
*.pem
*.p12
*.pfx
*.key

# ── Firebase tooling ──────────────────────────────────────────────────────
.firebase/
.runtimeconfig.json

# ── Machine-local agent and editor settings ───────────────────────────────
# .claude/ ITSELF IS COMMITTED. That is how skills, agents and shared settings
# reach a cloud session. Only settings.local.json is machine-specific.
#
# NOTE: .vscode/settings.json is currently TRACKED in this repo and is the only
# tracked editor config across all five. Left tracked for now — removing it is
# a separate call, since you are moving off VS Code entirely.
.claude/settings.local.json
.idea/
*.suo
*.sw?

# ── OS ────────────────────────────────────────────────────────────────────
.DS_Store
Thumbs.db
desktop.ini

# NOTE: functions/.gitignore exists and is kept. It carries node_modules/ and
# *.local for the Cloud Functions package specifically.

# ── Generated by tools/field-registry ─────────────────────────────────────
# The workbook is a build output; the sheet it is imported into is the thing
# people read. Committing it would mean a 250KB binary churning on every push.
MasterDB-Field-Registry.xlsx

# ── Terraform (infra/) — never commit state, plans or overrides ─────────────
.terraform/
*.tfstate
*.tfstate.*
*.tfplan
*.tfplan.*
tfplan
override.tf
override.tf.json
*_override.tf
*_override.tf.json
crash.log
crash.*.log
.claude/worktrees/
