.ruff_cache/
.pytest_cache/
.mypy_cache/
.venv/
__pycache__/
*.py[cod]

# Repo-root generated output only (CI SBOM/report scratch space). Anchored
# with a leading slash so it does not also match the source subpackage
# l9_ci/artifacts/ — a bare `artifacts/` pattern matches at any depth and
# previously swallowed that package, requiring a force-add to track it.
/artifacts/

# Build artifacts from `python -m build` / `hatchling` (pyproject.toml).
dist/
build/
*.egg-info/

# Agent/session scratchpad only — never part of the SDK codebase inventory.
/memory-bank/

# Commit-bound CI evidence (scripts/generate_validation_report.py), uploaded
# as a workflow artifact each run (ci.yml) — regenerated per-commit, never
# tracked, to avoid perpetual diff churn.
/VALIDATION_REPORT.json

.coverage
.coverage.*
coverage.xml
htmlcov/
*.egg-info/
build/
dist/

# Explicit override: memory-bank/ may be excluded by this machine's global
# gitignore (~/.gitignore_global) but must be tracked in THIS repo so a
# fresh clone gets T0 session-resume context. Negation must come after any
# blanket ignore in this file.
!/memory-bank/
!/memory-bank/**
