Problem
`pyproject.toml` declares mypy `strict` but applies `ignore_errors = true` to 10 module groups:
- `locus.rag.*`
- `locus.memory.*`
- `locus.integrations.*`
- `locus.streaming.*`
- `locus.loop.*`
- `locus.playbooks.*`
- `locus.server.*`
- `locus.core.reducers`, `locus.core.send`
- `locus.multiagent.graph`
- `locus.hooks.builtin.*`
- `locus.reasoning.*`
- `locus.tools.context`, `locus.tools.registry`, `locus.models.registry`
- `locus.skills.*`
- `locus.a2a.*`
These modules escape static checking entirely. There are also 309 `: Any` annotations across `src/` indicating over-promised unions.
Proposed migration
For each ignored module:
- Remove the `ignore_errors = true` block.
- Run mypy and triage failures.
- Replace bare `Any` with concrete types where possible (use `TypeAlias` for complex unions).
- Add `# type: ignore[error-code]` per-line for genuine SDK-stub gaps, with a comment explaining why.
- Cast external SDK responses explicitly at the boundary.
Acceptance
- Zero `ignore_errors` blocks in `pyproject.toml`
- `: Any` count under 100 (currently 309) in `src/`
- Every `# type: ignore` has an error code and justification comment
- mypy strict passes on full src tree
Effort
~1 week.
Source: 2026 best-in-class audit.
Problem
`pyproject.toml` declares mypy `strict` but applies `ignore_errors = true` to 10 module groups:
These modules escape static checking entirely. There are also 309 `: Any` annotations across `src/` indicating over-promised unions.
Proposed migration
For each ignored module:
Acceptance
Effort
~1 week.
Source: 2026 best-in-class audit.