# Environment + virtualenv
.env
.venv/

# Editor / OS
.vscode/
**/.DS_Store

# Python build artifacts
__pycache__/
*.pyc
.pytest_cache/
build/
dist/
*.egg-info/

# Bundled docs copied from docs/ by hatch_build.py at build time.
# This directory is build output; committing it would create a second
# source of truth alongside docs/.
/src/roadmodel/data/

# Update run artifacts (transient outputs of update_models.py)
update/.last-summary.txt
update/.last-warnings.txt
update/.cache/

# Test fixtures (regenerated from update/build_fixture.py; never committed)
tests/fixtures/*.json

# Local user-specific selector config (real subscription values, API-key state).
# The committed template is docs/user-context.example.md — copy it to
# docs/user-context.md and fill in your values.
/docs/user-context.md

# NOTE: /private/ (local-only planning docs) is excluded via .git/info/exclude
# rather than .gitignore so editor tooling (Cursor / VSCode @-pickers,
# fuzzy-find) still indexes the files locally while git continues to ignore
# them. The directory has already been scrubbed from history (commit 1b60bfb)
# and exists only on the maintainer's machine, so the per-clone exclude is
# sufficient.
