# Secrets / env
.env
.env.*
!.env.example
!.env.staging.example
*.pem
*.key

# Live LMS tenant credentials for the seed script (real values, per-machine /
# secrets manager). Ignore the dir CONTENTS but keep the tracked .example template
# (must be `secrets/*` not `secrets/`, or Git can't re-include the example).
secrets/*
!secrets/*.example

# Python
__pycache__/
*.py[cod]
.venv/
venv/
.pytest_cache/
.mypy_cache/
.ruff_cache/
*.egg-info/
.coverage
htmlcov/

# uv
.uv/

# Node / Next.js (frontend/)
node_modules/
.next/
out/
.turbo/

# CodeGraph local DB/cache (config is committed; the index is per-machine)
.codegraph/*.db
.codegraph/*.db-*
.codegraph/cache/
.codegraph/*.log
.codegraph/.dirty

# Eval scorecards are committed in PRs intentionally; ignore only scratch runs
tests/eval/results/_scratch/

# API Capture Tool — dev/staging debug output, can contain real conversation
# content (docs/superpowers/specs/2026-07-16-api-capture-tool-design.md)
docs/qa/api-capture/

# Local dev server logs (backend/frontend run output — per-machine, never committed)
*.log

# TM1 profile live-test harnesses — kept LOCAL only (hit real LMS instances + need
# secrets/live_tenants.env). Not part of the PR / CI. The mocked contract tests in
# tests/contract/ are the committed coverage.
scripts/_livetest_env.py
scripts/seed_live_edx.py
scripts/livetest_profile.py
scripts/livetest_profile_bb.py
scripts/livetest_profile_moodle.py

# OS / editor
.DS_Store
Thumbs.db
*.swp

# NOTE: fahd-agent-v1/ is vendored reference code (its nested .git was removed; original history
# lives at github.com/QusaiiSaleem/eduarabia-agent). It is tracked as plain files in this repo.

settings.local.json
# Agent-tool worktrees (never commit)
.claude/worktrees/
