# =============================================================================
# Root .gitignore — common patterns shared across all subprojects
# =============================================================================
# Each subproject (backend-api/, frontend-web/, mcp_server/) has its own
# .gitignore for project-specific patterns. This file covers cross-cutting
# concerns that apply at the repository root level.
# =============================================================================

# ── OS ──────────────────────────────────────────────────────────────────────
.DS_Store
Thumbs.db
.AppleDouble
.LSOverride
Desktop.ini

# ── IDE / Editor ────────────────────────────────────────────────────────────
.vscode/
.idea/
*.swp
*.swo
*~
.project
.settings/

# ── Environment / Secrets ──────────────────────────────────────────────────
.env
.env.local
.env.*.local
# Operator-side env-var snapshots (used to feed `aws amplify update-branch
# --environment-variables file://...`). These mirror live deployment env vars
# (client IDs, API keys, price IDs) and must never enter git.
scripts/dev/amplify-*-env.json
scripts/**/*-env.json
*.client_secret*.json
client_secret_*.apps.googleusercontent.com.json

# ── Python (root-level caches) ─────────────────────────────────────────────
__pycache__/
*.py[cod]
.ruff_cache/
.mypy_cache/
.pytest_cache/
.coverage
.coverage.*
coverage.xml
htmlcov/

# OSS extraction tooling venv (scripts/oss/)
scripts/oss/.venv/

# admin-ui CDK build artifacts
admin-ui/cdk/cdk.out/
admin-ui/cdk/.venv/

# sdk/consumer-python local dev venv (hatch-managed; CI uses its own env)
sdk/consumer-python/.venv/
sdk/author-python/.venv/

# Agent scratch — never commit (root-level only; per-feature TODO.md is canonical)
/pre-clearance-packet-agent.md
/todo.md

# One-shot migration / smoke scripts — never tracked, run-then-delete only
scripts/migrations/

# ── Node (root-level) ─────────────────────────────────────────────────────
node_modules/

# ── Docker ─────────────────────────────────────────────────────────────────
docker-compose.override.yml

# ── Daily summaries (generated, not source) ────────────────────────────────
summary_*.md

# ── Claude Code runtime state (per-session, never tracked) ─────────────────
.claude/scheduled_tasks.lock
.claude/settings.local.json

# ── Local CI/CD evidence artifacts (scripts/ci-local/run-ci.ps1 output) ────
.ci-local/

# ── /workflow-test fingerprint (per-worktree retry-gate state) ─────────────
.workflow-test-fingerprint.json

# ── CDK synth output (regenerated on every `cdk synth/deploy`) ─────────────
mcp_server/infra/cdk.out/
mcp_server/infra/cdk.staging/
.evidence/

# ── Python build artifacts (regenerated by `python -m build`) ──────────────
# Both SDK packages emit wheel + sdist into their own dist/ on every build;
# the publish CI workflow re-runs `python -m build` from a clean tree.
sdk/consumer-python/dist/
sdk/author-python/dist/
sdk/consumer-python/src/*.egg-info/
sdk/author-python/src/*.egg-info/
__pycache__/
.rcd_tmp/

# Real teacher grade sheet — student PII, never commit (anonymized fixture lives under tests/)
/青園f閩南語成績單114.xlsx
/測試成績.jpg

# standalone admin CDK cloud assembly
backend-api/infra/cdk.out.admin/
