# Python
__pycache__/
*.pyc
*.pyo
*.egg-info/
dist/
build/
*.egg

# Virtual environments
.venv/
venv/

# IDE
.idea/
.vscode/
*.swp
*.swo

# Test/CI artifacts
.coverage
.coverage.*
htmlcov/
.pytest_cache/
.mypy_cache/
.ruff_cache/

# OS
.DS_Store
Thumbs.db

# Codex runs (generated)
.codex_runs/

# Quality-gate skill state (per-run ephemera)
.quality-gate/

# Claude Code scheduler runtime lock (session id + PID; machine-local, never commit)
.claude/scheduled_tasks.lock

# Playwright MCP logs
.playwright-mcp/

# Environment
.env
.env.*

# Coverage artifacts
coverage.xml

# Scaffold artifacts
sbom.spdx.json
sbom.cdx.json
.mutmut-cache/
coverage.json
perf_results.json

# Knowledge database (runtime artifact)
aipea_knowledge.db

# AFA workflow config
.afa.yaml

# Poetry — AIPEA uses hatchling (see pyproject.toml [build-system]);
# a stray `poetry install` pointed at this directory would otherwise
# drop a lockfile in-tree. Keep both out so the build backend stays
# unambiguous.
poetry.lock
poetry.toml
