# =============================================================================
# Python
# =============================================================================
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
build/
develop-eggs/
dist/
downloads/
eggs/
.eggs/
lib64/
parts/
sdist/
var/
wheels/
share/python-wheels/
*.egg-info/
.installed.cfg
*.egg
MANIFEST

# Virtual environments
.venv/
venv/
env/
ENV/
.python-version

# Packaging / dependency tooling
pip-wheel-metadata/
.pdm-python
.pdm-build/
__pypackages__/

# Testing / coverage / type checking
.pytest_cache/
.tox/
.nox/
.coverage
.coverage.*
coverage.xml
htmlcov/
nosetests.xml
*.cover
.hypothesis/
.mypy_cache/
.dmypy.json
dmypy.json
.pyre/
.pytype/
.ruff_cache/
cython_debug/

# Notebooks
.ipynb_checkpoints/

# =============================================================================
# Node / TypeScript
# =============================================================================
node_modules/
.pnpm-store/
.yarn/cache/
.yarn/unplugged/
.yarn/build-state.yml
.yarn/install-state.gz
.pnp.*

# Build output
dist/
build/
out/
.next/
.nuxt/
.svelte-kit/
.astro/
.turbo/
.vercel/
*.tsbuildinfo
next-env.d.ts

# Logs / caches
npm-debug.log*
yarn-debug.log*
yarn-error.log*
pnpm-debug.log*
lerna-debug.log*
.eslintcache
.parcel-cache/
.cache/

# Test output
coverage/
playwright-report/
test-results/
blob-report/
.playwright/

# =============================================================================
# Environment & secrets — never commit a real value, only the .example template
# =============================================================================
.env
.env.*
!.env.example
!.env.sample
!.env.template
*.pem
*.key
*.p12
*.pfx
secrets/
credentials.json
service-account*.json

# =============================================================================
# CLIENT DATA — HARD BOUNDARY. DO NOT REMOVE THESE LINES.
# -----------------------------------------------------------------------------
# This is the open-source engine. It must never carry the operational side of a
# deployment: no customer identities, no crawled or generated customer content,
# no run registries, no agent memory. Anything below is operator-local by
# definition — if it exists in a working copy it stays there.
#
# A commit that needs to bypass one of these lines is a design mistake, not a
# .gitignore mistake. If a genuinely public fixture must live under one of these
# paths, whitelist that single file explicitly with `!path/to/file`, and say in
# the pull request why it contains nothing traceable to a real property.
# =============================================================================

# Customer registries and per-customer configuration
clients/
client-registry.*
registry.yaml
registry.yml

# Crawled inputs, exports, snapshots, measurement dumps
data/
datasets/
exports/
snapshots/
crawl-cache/
gsc-*/
storage/

# Generated content awaiting review — drafts are per-deployment output, not source
drafts/
generated/
reports/
artifacts/
# Default landing place for rendered pages and screenshots of a real site
# (SCORITY_ARTIFACT_DIR overrides it). Screenshots ARE customer content.
output/
screenshots/

# Agent memory, run journals and board state — operator-local, regenerated
.agent-memory/
.agent-state/
memory-inbox/
autopilot/
coordination/
.notion-state.json

# Append-only registries and run logs (intervention journals, event streams,
# outcome ledgers, probe results). Any *.jsonl is assumed to be operational data.
*.jsonl
# Exception: synthetic test fixtures only, reviewed case by case. Keep this on
# its own line — git has no trailing comments, a `# …` after a pattern becomes
# part of the pattern and the exception silently stops matching.
!tests/**/fixtures/**/*.jsonl

# Local databases and dumps
*.db
*.sqlite
*.sqlite3
*.sql
*.dump
*.bak

# =============================================================================
# OS / editor
# =============================================================================
.DS_Store
.DS_Store?
._*
.Spotlight-V100
.Trashes
Thumbs.db
ehthumbs.db
desktop.ini
*.swp
*.swo
*~
.idea/
.vscode/
!.vscode/extensions.json
*.log
tmp/
temp/
