# Python
__pycache__/
*.py[cod]
*$py.class
*.so
.Python
*.egg-info/
.installed.cfg
*.egg
MANIFEST

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

# IDEs
.idea/
.vscode/
*.swp
*.swo
*~

# Testing / type / lint caches
.pytest_cache/
.coverage
.coverage.*
htmlcov/
.tox/
.nox/
coverage.xml
*.cover
.hypothesis/
.mypy_cache/
.ruff_cache/
.dmypy.json

# OS
.DS_Store
Thumbs.db
desktop.ini

# Paperfessor runtime: the whole workspace/ is live paper work
# (memos, logs, runs, archived attempts), bootstrapped from templates
# in paperfessor/workspace.py on demand. Never commit the filled state.
/workspace/

# Local user data. API keys live in the OS keychain, never on disk.
.paperfessor/
data/
*.pfdb
*.pfsec

# Private plans / internal governance docs. Never published.
req.txt
SOUL.md
PROJECT_PLAN.md
*.private.md
notes/

# Logs
*.log
logs/
_e2e_log*.txt
_trace*.log

# Dev scripts are not part of the distributed package.
/scripts/

# Generated / build artifacts
dist/
build/
output/

# Isolated test workspaces (dev only)
/_wstest/
