Every variable, parameter, and return type MUST have a type annotation. mypy --strict is enforced. No Any unless absolutely unavoidable and justified with a comment explaining why.
uv for installs, lockfile (uv.lock), venv management, and running tools. No pip. No poetry. No conda.
Zero HITL, OIDC, cloud federation, or sidecar code in this repo. Ever. This is the open-source core SDK. Enterprise extensions live in separate repos.
Comments explain what reading the code alone would NOT tell you: who calls it, why it exists, boundaries, design history. Never restate what the code does.
- Unit tests:
uv run pytest tests/unit/— no broker needed - Integration tests:
uv run pytest -m integration— requires live broker - Acceptance tests:
tests/sdk-core/— stories with evidence files and banners
uv run ruff check . # lint
uv run mypy --strict src/ # type check
uv run pytest tests/unit/ # unit tests- API source of truth: AgentWrit broker API docs — always verify SDK calls against it.
- Live broker for verification: Stand up broker via
docker compose up -d(pullsdevonartis/agentwritfrom Docker Hub).