# --- Secrets. Never commit; only the .envrc template is tracked. ---
# The CLI reads keys from the environment, never from a file (see config.py). direnv loads .envrc
# on cd; .env is still ignored here because nothing stops you keeping one for other tooling.
.envrc
.env
.env.*
!.envrc.example

# --- Python ---
__pycache__/
*.py[cod]
*.egg-info/
dist/
build/

# --- Virtualenvs & tooling caches ---
.venv/
venv/
.pytest_cache/
.ruff_cache/
.ty_cache/
.mypy_cache/
.coverage
.coverage.*
htmlcov/
coverage.xml

# --- Pipeline intermediates and output, written beside whatever video you ran on. ---
.shortsmaker/
.vsc/
clips/

# --- Media. Source videos and extracted audio are inputs/scratch, never artefacts.
# The vendored font and model are the exception: they are declared dependencies,
# and the pipeline is not reproducible without them. ---
*.mp4
*.mov
*.mkv
*.webm
*.avi
*.mp3
*.wav
*.m4a
!src/shortsmaker/assets/**
# docs/ holds the README's demo clip — the one place a committed .mp4 is intentional.
!docs/**
# docs/ holds the README's demo assets — the one place a committed .mp4 is intentional.
!docs/**

# --- Editors / OS ---
.idea/
.vscode/
*.swp
.DS_Store
Thumbs.db
