Guidelines
These pages encode the Hother conventions for Python libraries. They're aimed equally at human contributors and AI coding agents — read the relevant guideline before changing the code, and cite it in PR reviews when something doesn't conform.
| File | When to consult |
|---|---|
typing.md |
Before writing or refactoring type annotations |
testing.md |
Before adding or restructuring tests |
errors.md |
Before raising, catching, or designing an exception |
api-design.md |
Before adding or modifying public-API surface |
docstrings.md |
Before documenting (or removing) a public symbol |
releases.md |
Before crafting a commit message or planning a release |
dependencies.md |
Before adding a dep, pinning, or relaxing a pin |
async.md |
Before mixing sync/async code |
Each guideline:
- States what's enforced automatically (basedpyright, ruff, pip-audit, etc.).
- States what's expected in review (the team's conventions).
If you find yourself wanting to do something a guideline forbids, the right move is to discuss the guideline change — don't silently work around it.