# Debug artifacts
sorftime_mcp_raw_responses.json
coverage.json

# Locally-cached embedding model (google/embeddinggemma-300m), pulled from our
# S3 mirror by `make model` and COPYed into images at build. ~1.2GB; never
# committed. See the Makefile model/mirror-model targets.
.model-cache/

# Next.js generated type shim (regenerated by `next dev`/`next build`/`next
# typegen`); committing it just causes churn across apps. Next.js convention.
next-env.d.ts
# One-off captures from backend/debug_amazon_html.py (HTML + trafilatura markdown dumps)
backend/_debug_amazon_*.html
backend/_debug_amazon_*.md

# Claude Code (local only)
.claude/plans/
.claude/reference/
.claude/scheduled_tasks.lock
.worktrees/

# Reference repos (local dev only)
.reference/
yc.md
# Dependencies
node_modules/
.pnp
.pnp.js

# Build outputs
.next/
public/shared/
out/
build/
dist/
.turbo/
.vercel/

# Environment
.env
.env*.local
.env_development
.env_staging
.env_production
.env_testing


# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.venv/
venv/
*.egg-info/
.mypy_cache/
.ruff_cache/
.pytest_cache/
.coverage
.coverage.*
coverage.xml
htmlcov/

# IDE
.vscode/
.idea/
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
.cursor/

# OS
.DS_Store
Thumbs.db
desktop.ini

# Local file uploads (dev only — production uses cloud storage)
backend/uploads/
backend/test_uploads/
test_uploads/
backend/tmp/

# Research / reference files
*.pdf
launchkit-code-review.md
sandbox-file-persistence-research.md
user_interview/
plan/
# Root-only: the internal PM docs/ folder. apps/docs/ (Mintlify customer docs) is tracked.
/docs/

# backend/evals/ is a tracked Python package; only artifacts + machine-specific config are ignored.
backend/evals/workspaces/
backend/evals/history/
backend/evals/reports/
backend/evals/runs/
backend/evals/**/__pycache__/
backend/evals/**/.pytest_cache/
# pgbouncer has hardcoded absolute paths + plain-text dev creds; keep local.
backend/evals/pgbouncer/

# E2B template staging dir (mirrors backend/skills/ minus internal content)
backend/.build_staging/

# Skill translation cache. Per-skill JSON map of {english_sha256: translation}
# regenerated by `python -m scripts.skill_translate`. Cache survives `.skill-zh/`
# folder wipes so re-runs on unchanged English are no-ops; safe to delete.
backend/.translation-cache/

# Claude Code transcripts (timestamp-named files in backend/)
backend/*.txt

# MCP config (machine-specific, may contain credentials)
.mcp.json
Product-Catalog-511360-2025-11-18.xlsx
# Test artifacts
backend/MagicMock/

# Misc
*.log
backend/logs/
npm-debug.log*
yarn-debug.log*
yarn-error.log*
coverage/
package-lock.json
# EXCEPTION: the sandbox-runtime CLIs are npm (not pnpm) and are built inside the
# E2B template image with `npm ci`, which HARD-FAILS without a committed lock.
# Without this negation the template build only works on the machine that has the
# untracked lockfile on disk (LAUNCH-239).
!backend/sandbox_runtime/**/package-lock.json
uv.lock

# Sentry wizard writes auth token here on re-runs; keep it out of git.
.env.sentry-build-plugin

# Skill masters are local-only FDE content: hand-authored, published to the
# platform via dashboard zip upload. Intentionally untracked.
# Leading slash anchors this to the repo-root admin/ dir only, so it does NOT
# also swallow apps/admin/ (the staff-admin console app, which must be tracked).
/admin/
.vercel

# Local eval/calibration run artifacts (regenerable; never commit)
backend/trials/
backend/calib_*.json
backend/stdout.json

# Running implementation log (deviations belong in the plan file, not the repo)
/implementation-notes.md
