# Secrets / local env
.env
.env.*
!.env.example

# Node / Forge
node_modules/
dist/
build/
# Anchored to repo root: this is Jest's coverage-report output directory, not to be
# confused with the app's own src/lib/coverage/ (Coverage Status derivation service,
# docs/build-plan.md task 3.3) — an unanchored `coverage/` here would silently
# gitignore that entire source module too.
/coverage/
*.log
npm-debug.log*
yarn-error.log*
.forge/
static/*/build/
static/*/dist/
static/*/node_modules/

# Python (template tooling in execution/)
__pycache__/
*.pyc
.venv/
venv/

# Session / scratch
.tmp/*
!.tmp/.gitkeep

# OS / editor
.DS_Store
Thumbs.db
*.swp
.idea/
.vscode/*
!.vscode/extensions.json

# forge tunnel local state
/.container-service-assets/

# Agent/browser scratch that must never be committed
.playwright-mcp/
/*.png

# Marketplace listing screenshots — kept on disk for the listing upload, not version-controlled
docs/marketplace/screenshots/

# Playwright test-runner output (frontend/tests/, added 2026-09-13)
frontend/playwright-report/
frontend/test-results/

# Local agent-skill tooling (taste-skill installer) — not app code
.agents/
skills-lock.json

# Generated Playwright runs (HTML reports, traces, artifacts): large, long paths, may hold session data
TESTING/evidence/*-local-playwright/

# Generated Playwright output anywhere under TESTING/evidence (traces, videos, HTML reports): large,
# over-long paths on Windows. Keep READMEs, results JSON and screenshots only.
TESTING/evidence/**/artifacts/
TESTING/evidence/**/html-report/
TESTING/evidence/**/test-results/
TESTING/evidence/**/*.webm
TESTING/evidence/**/trace.zip
TESTING/evidence/**/*html-report*/
TESTING/evidence/**/*artifacts*/
TESTING/evidence/**/*test-results*/
TESTING/evidence/**/*.zip
TESTING/evidence/**/*.webm
TESTING/evidence/**/*.trace
