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

# Node
node_modules/
dist/

# Built frontend staged into the package for wheel builds (release.yml).
# Not source; reproducible from `frontend/` via `pnpm build`.
app/static/

# Runtime data
data/
*.log
server.log
logs/
logs_*/
logs_*.txt

# Playwright MCP
.playwright-mcp/

# Worktrees + per-user Claude state
.worktrees/
.claude/worktrees/
.claude/settings.local.json
.claude/scheduled_tasks.lock

# Lock files
uv.lock

# Local Windows launcher — these carry an API key inline, so the file
# stays out of the repo. A SHAREABLE launcher must read its key from the
# environment / an AI profile instead, and needs a different name.
start-windows.bat

# Brainstorming artifacts
docs/superpowers/

# IDE
.vscode/
.idea/
.DS_Store
.pids_*
.superpowers/
.coverage
coverage.xml

# Cloudflare Worker source for the PostHog proxy is deployed via
# the maintainer's local copy + wrangler — no need to track in repo.
cloudflare/
rating.md
# Screenshots of a LIVE store — campaign names, SKUs, spend, search terms.
# Every image this repo actually ships lives under docs/images/, so anything
# at the root is a scratch capture and must never be committable. The old
# `review-*.png` rule covered one prefix; the next capture used a different
# one and was staged-able again, so the rule is scoped by LOCATION instead.
/*.png
/*.jpg
/*.jpeg
/*.webp

# Build artifacts (wheel/sdist staging)
build/

# local investigation handoff notes (contain live-account data)
refactor.md
