# ---- Python / uv ----
.venv/
venv/
__pycache__/
*.py[cod]
*$py.class
*.egg
*.egg-info/
build/
dist/
.uv/
uv.lock.bak

# ---- Test / type-check caches ----
.pytest_cache/
.ruff_cache/
.mypy_cache/
.cache/
.coverage
htmlcov/

# ---- Selenium / Chrome runtime junk ----
*.crdownload
chromedriver*
debug_*.png
debug_*.html
# Persistent browser profiles from --user-data-dir (may hold cookies/sessions!)
chrome-profile*/
*-chrome-profile/
user-data-dir/

# ---- Scraper output (contains usernames / PII — do not commit) ----
out/
out_test/
devx/
# Stray product files written outside out/. These suffixes are scraper-only, so
# committed docs (README.md, …) are NOT caught by them.
*.transcript.md
*.related.md
*.unified.md
unified-all.md

# ---- Secrets / credentials (never commit) ----
.env
.env.*
*.pem
*.key
*.crt
*.p12
id_rsa*
secrets.*
credentials.json

# ---- Local Claude Code settings ----
.claude/settings.local.json

# ---- Personal, per-developer agent notes (not shared) ----
CLAUDE.local.md
AGENTS.local.md

# ---- OS / editor ----
.DS_Store
Thumbs.db
*.swp
*~
.idea/
.vscode/

src/viewlyt/live/dashboard/node_modules/
src/viewlyt/live/dashboard/dist/

# ---- Local-only docs (kept in the working tree, out of the published repo) ----
# Comments must be on their own line (.gitignore has no inline comments).
xray.md
how-to.md
CLAUDE.md
AGENTS.md

# hd-secperf audit reports (do not commit)
secperf-*.md
