# Go
/**/cover.out
/**/*.test

# Node / TS
node_modules/
pnpm-debug.log

# Build outputs
functions/lib/
docs-site/build/
docs-site/.docusaurus/
landing/dist/
app/dist/
admin/dist/
integrations/n8n/dist/
sdks/*/dist/
sdks/mcp-server/node_modules/
sdks/mcp-server/dist/
sdks/mcp-server/.vitest-cache/

# Local browser/screenshot QA artifacts
.playwright-cli/
output/playwright/
output/qa/

# Firebase local state
.firebase/
.firebaserc.local
firebase-debug.log
firestore-debug.log
pubsub-debug.log

# Env files — never commit secrets.
.env
.env.local
deploy/solo/.env

# IDE
.vscode/
.idea/

# Local Solo stack state.
deploy/solo/data/
deploy/solo/minio-data/
deploy/solo/postgres-data/

# Ralph loop state (not meaningful outside session).
.claude/.ralph-loop.local.md
.claude/ralph-loop.local.md

.DS_Store

# Service account keys (NEVER commit)
ops/mailserver/firebase-sa.json
**/firebase-sa.json
.claude/

# Python SDK local state
sdks/python/.venv/
sdks/python/dist/
sdks/python/*.egg-info/
sdks/python/.pytest_cache/
sdks/python/**/__pycache__/
sdks/python/**/*.pyc

# Shared packages build output / local state
packages/audit-chain/dist/
packages/audit-chain-py/.venv/
packages/audit-chain-py/dist/
packages/audit-chain-py/*.egg-info/
packages/audit-chain-py/.pytest_cache/
packages/audit-chain-py/**/__pycache__/
packages/audit-chain-py/**/*.pyc
packages/compliance-callback/dist/
packages/compliance-callback-py/.venv/
packages/compliance-callback-py/dist/
packages/compliance-callback-py/*.egg-info/
packages/compliance-callback-py/.pytest_cache/
packages/compliance-callback-py/**/__pycache__/
packages/compliance-callback-py/**/*.pyc

# packd Go daemon binary (produced by `go build ./cmd/packd`)
packd/packd

# functions-md predeploy artifact — copied from landing/dist/index.html
# at deploy time so the markdown-negotiation function serves the SPA
# HTML on default Accept headers. Source of truth lives in landing/.
functions-md/index.html
