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

# Virtual environments
venv/
ENV/
env/
.venv/

# IDE
.idea/
.vscode/*
# Share the team's launch/tasks/extensions; keep personal settings out.
!.vscode/launch.json
!.vscode/tasks.json
!.vscode/extensions.json
*.swp
*.swo
*~

# Flask
instance/
*.db
*.sqlite

# Testing
.coverage
htmlcov/
.pytest_cache/
.tox/

# Logs
logs/
*.log

# OS
.DS_Store
Thumbs.db

# Node/Frontend
node_modules/
frontend/dist/
*.local

# Secrets and credentials (defensive)
.env
.env.*
!.env.example
!.env.*.example
*.pem
*.key
id_rsa
id_rsa.*
*.ppk
*.p12
*.pfx

# Local/test TLS material for the dev HTTPS listener. Self-signed, per-host,
# never shipped. The container mounts these at runtime; a site provides its own.
certs/
secrets.json
secrets.yaml
secrets.yml
*_secret
*_secrets
credentials.json
scripts/site_imports/wjf/idmap.json

# work-PC publication clone: bundle drop folder for the transfer pipeline
_transfer/

# Local developer scratch notes and chat handoffs - never committed
devnotes/

# docs/ prose is published to the wiki, not tracked in the product repo. The
# docs gates detect a published checkout by the ABSENCE of docs/*.md, so a
# single tracked prose file here makes CI look like an internal checkout while
# carrying almost no prose: test_there_are_docs_to_check then fails asserting
# >20 files, test_the_map_itself_is_current fails on a generated PROJECT-MAP
# that is correctly untracked, and check-gates-ran.sh fails on the resulting
# skip. That happened - DEV-BUILD-TEST.md and PLUGIN-HOOKS.md were committed in
# unrelated changes and broke the branch for days. Ignore the whole pattern
# rather than naming files one at a time, so the next authored doc cannot
# reintroduce it.
#
# Scoped to the top level on purpose: docs/notes/ prose stays tracked, and the
# gates only glob docs/*.md. docs/openapi.json is tracked (the app serves it)
# and is unaffected by a *.md rule.
docs/*.md

# Local-only authored docs (planner exports, draft decks and diagrams). Same
# reasoning as above: keep personal docs out of version control.
docs/ShopDB-Planner-Tasks.csv
docs/DRAFT--ShopDB-CSV-Import-Guide.pptx
docs/diagrams/
docs/media/

# Local-only working artifacts: DB dumps, sample/test datasets, scratch
# scripts, captured command output, generated maps/reports, vulnerability
# scan output, and staged agent publish trees. None of these are product
# source; they are developer scratch that should never enter version control.
# exports/ (merge kits, decks, catalog snapshots) stays on disk for reference
# but is not tracked.
backups/
exports/
testdata/
vuln/
agent/publish-wjf/
*.sql
shopmap.pdf
shopmap.png
agent_build.txt
agent_publish.txt
backend_out.txt
backend_out2.txt
docker_build.txt
docker_up.txt
gates_out.txt
pytest_targeted.txt
pt*.txt
alandry.py
kendry.py

# Visual Studio local editor state (not product source).
.vs/

# Scratch tooling under scripts/ (catalog diff/merge helpers, docx generator).
# Not product source; developer-local utilities.
scripts/.temp/
scripts/docs/
