# Python
__pycache__/
*.pyc
*.pyo
.pytest_cache/
.ruff_cache/
.venv/
*.egg-info/

# Node / pnpm
node_modules/
pnpm-debug.log
.pnpm-store/

# Vite per-contributor env overrides (e.g. VITE_WPC_API_URL pointing
# at a dev community host). Never commit — leaks dev URLs into the
# tree and makes `pnpm build` produce divergent bundles per checkout.
.env.local
.env.*.local

# Build outputs
js/
web/
coverage/
.coverage
.vitest-cache/

# Scratch dir for screenshots, lighthouse reports, and other artifacts
# generated during local QA. Never belongs in the tree.
.tmp/

# Archives never belong in the repo (caught a stray src.zip
# hand-dropped into the tree on Apr 26)
*.zip
*.tar
*.tar.gz
*.tgz

# Editor / OS
.vscode/
.idea/
.DS_Store
Thumbs.db

# Claude / Superpowers workspace artifacts
.superpowers/
.claude/
# Backups dropped by /caveman:compress next to compressed files
*.original.md

# Docs — ignore everything except per-node help pages + canonical contracts
/docs/*
!/docs/help/
!/docs/import-export-contract.md
# Network behaviour + download hardening, linked from the README
!/docs/network-access.md
# Rules every custom control follows, linked from CLAUDE.md
!/docs/component-standard.md
# What may move the Bookmarks dock, linked from CLAUDE.md and bookmark.ts
!/docs/bookmark-dock-placement.md
# Curated release highlights — the release body, read by
# scripts/release/release-notes.mjs at release time, so it must be tracked.
!/docs/release-notes/


# Throwaway design / scratch artifacts (mockups, screenshots, demos)
/_temp/
# Root-level PNGs are always scratch QA screenshots here — legit images live
# under public/. Anchored so it never touches public/images/**. Keeps stray
# captures out of git and out of pack-release's ship-list gate.
/*.png

# DB location control — per-contributor sidecar config + root-location DB dir
db-config.json
wp-settings.json
/db/
.tmp-check/

# Playwright MCP session artifacts (page snapshots, console logs).
.playwright-mcp/
theme-audit-out/

# Tutorial videos: the voice model, spoken lines and rendered videos are made locally
tutorials/voice/cache/
tutorials/voice/models/
tutorials/voice/ref/
tutorials/out/
