# Python
__pycache__/
*.pyc
.venv/
*.egg-info/
.pytest_cache/
backend/runs/
backend/fraser_state.json

# runtime logs
*.log

# build / handoff artifacts (generated from source, not committed)
*.zip

# scratch (mirrors SWARM convention: backend/_* are throwaway — tests, smokes, screenshots)
backend/_*

# local safety backup of the GitHub state taken before a push — never commit it
_github_backup_*/

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

# env / secrets — never commit real credentials
.env
.env.*
!.env.example
*.key
*.pem
secrets/
service-account*.json
service_account*.json
_vidframes/

# local dev launcher (convenience script, not committed)
dev.ps1

# local persisted app state + screenshots (FRASER_DATA_DIR)
backend/data/

# OS / editor
.DS_Store
Thumbs.db
.idea/
.vscode/
tsconfig.tsbuildinfo

# temporary files
/temp
# guildly agent workspace (linked project) — unstaged by default
.guildly/
.claude/skills/fraser-review/.loop_lock
