venv/
.venv/
__pycache__/
*.py[cod]
*.egg-info/
src/*.egg-info/
dist/
build/
.pytest_cache/
.coverage
htmlcov/
.mypy_cache/
.reyn/
reyn/local/
.env
.env.*
!.env.example

# Local user config — contains api_base / model overrides etc.
# A `reyn.local.yaml.example` template IS checked in; the real file is not.
reyn.local.yaml
!reyn.local.yaml.example

# Personal AI-tool instruction overrides (= industry pattern: Claude Code
# CLAUDE.local.md / OpenAI Codex AGENTS.override.md 等)。 project-level
# CLAUDE.md / REYN.md は committed (= team-shared, dogfood reproducible)、
# personal override は gitignored。
CLAUDE.local.md
REYN.local.md

improver_state.json
# Textual TUI export captures (= screenshots Textual emits via SVG
# export / --screenshot). Land in repo root by default; never meant to
# be committed.
ReynTUIApp_*.svg
.DS_Store
.vscode/
.idea/
.claude/
site/
tmp/

# Built landing page output — regenerated from website/copy.yaml +
# website/index.html via website/build.py. The source files are tracked;
# the build artefact is not.
website/dist/

# 別リポジトリで管理する本書ドラフト (Zenn Books)
# reyn の reveal を守るため reyn repo には commit しない
zenn-book/
scripts/s5_driver_main.py
artifacts/

# G4 spike runtime output
spike_results/
.spike_*/

# Session handoff notes between Claude Code instances (= migration
# between Desktop / CLI / different sessions).  Git-ignored so private
# session context does not leak into repo history.
.handoff/

# Chainlit auto-created artifacts (= first `reyn chainlit` run drops
# chainlit.md welcome page + .chainlit/{config.toml,translations/} +
# public/ in cwd). User-editable but not part of reyn's source —
# per-project customization belongs in operator's workspace, not the
# repo. Anchored to repo root so the shipped assets under
# src/reyn/chainlit_app/assets/ are tracked.
/chainlit.md
/.chainlit/
/public/
