# =====================================================================
# Repository root: ignore everything by default.
# Stray files dropped at the root (test logs, scratch output, etc.) must
# NOT be accidentally committed. Only the project files/dirs explicitly
# un-ignored below are tracked. To track a new top-level entry, add an
# explicit `!/<name>` (files) or `!/<name>/` (dirs) line here.
# =====================================================================
/*
!/.gitignore
!/.claude/
!/LICENSE
!/NOTICE
!/README.md
!/README.zh.md
!/VERSIONS.md
!/progress.md
!/pyproject.toml
!/tianluo.example.yaml
!/docs/
!/scripts/
!/se3/
!/tianluo/
!/src/
!/tests/

# --- Global ignore patterns (apply at any depth) ---
node_modules/
.DS_Store
*.swp
*.swo
__pycache__/
*.pyc
.pytest_cache/
.worktrees/
.collab/
*.egg-info/
human-calls/
issues.md
prompts/
# But the built-in preset prompts shipped as package data MUST be tracked
# (the broad `prompts/` rule above would otherwise swallow them, so the
# root-cause doc-sync fix could never be committed/shipped).
!/src/tianluo/templates/prompts/
e2e
materials

# tianluo runtime dir (post-rename layout): ignore runtime content,
# whitelist committed artifacts. Mirrors the legacy /se3/* block below so
# `luo migrate run rename-to-tianluo` on this repo needs no gitignore edit.
/tianluo/*
!/tianluo/code-index.md
!/tianluo/charter.md
!/tianluo/issues/
!/tianluo/scripts/
!/tianluo/prompts/
!/tianluo/version-rules.md
!/tianluo/version-intents/

# SE3: ignore runtime content, whitelist committed artifacts (legacy layout)
/se3/*
!/se3/code-index.md
!/se3/charter.md
!/se3/issues/
!/se3/scripts/
!/se3/prompts/
!/se3/version-rules.md
# Version-reconcile intent metadata: written by a worktree session's commit
# step and committed on the flow branch so the merge-side reconcile step can
# read every merged-in branch's intent from master. Must be tracked, unlike
# the rest of se3/state runtime content that /se3/* ignores.
!/se3/version-intents/
tmp*.prompt

# SE3 session file
.claude/.session.json

# tianluo local/live project config (not checked in; tianluo.example.yaml
# is the shipped reference). Legacy se3.* names honoured through 12.x.
tianluo.local.yaml
se3.local.yaml
src/tianluo/__pycache__/
*.egg-info/

# Userspace-installed system libraries for the headless-browser acceptance
# test (populated by scripts/install_browser_test_libs.sh on no-root hosts).
.browser-libs/
