Guidelines for automation agents working inside repositories created from this template.
- Confirm
uvis available: https://docs.astral.sh/uv/getting-started/installation/. - Synchronize the environment before running code:
just install(runsuv sync --devand installs pre-commit hooks). - When bootstrapping a fresh variant that needs a newer interpreter, re-run
uv init --python <version>at the project root before syncing.
- Add runtime packages with
uv add <package>. - Add tooling with the
--devflag, e.g.uv add --dev ruff ty pytest zensical. - After editing dependencies, commit the updated
pyproject.tomlanduv.lock, then runjust checkandjust test.
Use the justfile to keep task automation consistent. Key recipes:
just install: Syncs dev dependencies and installs pre-commit hooks (uv sync --dev,uv run pre-commit install).just check: Runs all pre-commit hooks against every file (Ruff, Ruff format, Ty, and hygiene hooks). Run before opening a PR or after dependency changes.just lint,just typing: Individual quality gates when you need faster feedback.just test: Executespytestviauv run -m pytest -q.just docs: Builds documentation with zensical (uv run zensical build); useful after updating docstrings.just run: Launches the application entry point (uv run python -m src.main).just clean: Clears caches (.venv,.uv-cache,__pycache__, etc.) when the environment misbehaves.just update: Runsuv lock --upgradeto refresh dependency versions inuv.lock; follow withjust installwhen you need to update the virtualenv.
All recipes inherit .env values because the justfile uses set dotenv-load.
- Maintain type hints and concise docstrings so zensical documentation stays up to date.
- Prefer built-in collection types (
list,dict,set, etc.) over legacytypingaliases. - Treat Ruff, Ty, and pytest warnings as failures; resolve them before finalizing work.
- Logging uses Pydantic Logfire. Configure credentials by copying
.env.exampleto.envand settingLOGFIRE_TOKEN. - Telemetry export to Azure remains unresolved; mention this limitation when proposing observability changes.
- Include a short summary of commands executed and results in status updates.
- Surface tooling limitations or manual steps you could not automate.
- Align doc updates with code changes so
just docscontinues to produce accurate reference pages.