docs/design/0002-venv-standard.md settles whether to use a venv (yes in persistent or shared environments, no on ephemeral CI runners) and assumes the tooling is pip plus requirements-dev.txt.
swimblocks/officials-admin specifies uv for dependency management and pnpm for the TypeScript side. uv is compatible with the rule — it creates and manages .venv — but not with the documented mechanism, since it uses pyproject.toml and a lockfile rather than requirements-dev.txt.
This needs an org position rather than a silent deviation, because it affects the reusable CI (which installs requirements-dev.txt by name), the devcontainer postCreateCommand, and what AGENTS.md tells an agent to run.
Options as I see them:
- Extend 0002 to permit
uv where a repo has a pyproject.toml, and teach the reusable CI to detect which is in use.
- Require
requirements-dev.txt everywhere and have officials-admin export one from uv.
- Declare officials-admin an explicit, documented exception.
Raising it rather than choosing unilaterally, since it binds every Python repo.
docs/design/0002-venv-standard.mdsettles whether to use a venv (yes in persistent or shared environments, no on ephemeral CI runners) and assumes the tooling ispipplusrequirements-dev.txt.swimblocks/officials-adminspecifiesuvfor dependency management andpnpmfor the TypeScript side.uvis compatible with the rule — it creates and manages.venv— but not with the documented mechanism, since it usespyproject.tomland a lockfile rather thanrequirements-dev.txt.This needs an org position rather than a silent deviation, because it affects the reusable CI (which installs
requirements-dev.txtby name), the devcontainerpostCreateCommand, and what AGENTS.md tells an agent to run.Options as I see them:
uvwhere a repo has apyproject.toml, and teach the reusable CI to detect which is in use.requirements-dev.txteverywhere and have officials-admin export one fromuv.Raising it rather than choosing unilaterally, since it binds every Python repo.