generated from john/python-template
This commit is contained in:
@@ -89,6 +89,12 @@ Non-obvious things that have already caused real bugs here:
|
||||
- **Shared symbols have more consumers than the obvious one.** Before changing a model field,
|
||||
exception attribute, or helper return value, grep for every consumer including tests.
|
||||
Evidence and logging paths frequently read the same fields the UI does.
|
||||
- **`Tag` is owned by two services, on purpose.** Every other model has exactly one owning
|
||||
service, so the ownership rule reads as absolute — it isn't. `Tag` is a single table reached
|
||||
through two `RegistryService[Tag]` facades, `TagRegistry` (documents) and `PersonTagRegistry`
|
||||
(people), which count usage through `DocumentTag` and `PersonTag` respectively. Changing tag
|
||||
semantics through one facade silently changes the other. Consolidating them under one service
|
||||
is not a cleanup; it makes the other side a cross-aggregate writer.
|
||||
- **Import style:** ruff `isort` runs with `force-single-line = true`. One import per line.
|
||||
- **Latent defects have ordering constraints.** Some code is unreachable only because of a
|
||||
current setting or single-instance deployment. Fix it *before* the change that unblocks it,
|
||||
|
||||
Reference in New Issue
Block a user