Tier P3 · effort M · from the 2026-09-13 review (CLI F7)
pyproject.toml [tool.ty.rules] ignores unresolved-attribute,
unresolved-import, possibly-missing-attribute, invalid-argument-type,
invalid-method-override, not-subscriptable, no-matching-overload,
too-many-positional-arguments, missing-argument, call-non-callable.
uvx ty check src/leech/ reports "All checks passed"; with those rules as
warnings it reports 218 diagnostics (136 invalid-argument-type, 36
unresolved-attribute, 15 call-non-callable, 10 possibly-missing-attribute,
9 invalid-method-override, 6 not-subscriptable, 3 missing-argument, 2
too-many-positional-arguments). The two at signal_refine.py:733,736 are the
union-dispatch false positive the config comment names; the rest are
unexamined. CI runs uvx ty at latest (ci.yml:53) while the dev pin is
ty>=0.0.64 (lock 0.0.78).
Acceptance criteria
- The nine rules are enabled globally; each remaining false positive carries a
# ty: ignore[rule] with a one-line reason; real defects found on the way are fixed in separate small commits (list them in the PR).
- CI pins ty to the locked version (
uv run ty, not uvx ty).
uv run ty check src/leech/ passes with zero diagnostics and no blanket ignores.
Non-goals
Tier P3 · effort M · from the 2026-09-13 review (CLI F7)
pyproject.toml[tool.ty.rules]ignoresunresolved-attribute,unresolved-import,possibly-missing-attribute,invalid-argument-type,invalid-method-override,not-subscriptable,no-matching-overload,too-many-positional-arguments,missing-argument,call-non-callable.uvx ty check src/leech/reports "All checks passed"; with those rules aswarnings it reports 218 diagnostics (136
invalid-argument-type, 36unresolved-attribute, 15call-non-callable, 10possibly-missing-attribute,9
invalid-method-override, 6not-subscriptable, 3missing-argument, 2too-many-positional-arguments). The two atsignal_refine.py:733,736are theunion-dispatch false positive the config comment names; the rest are
unexamined. CI runs
uvx tyat latest (ci.yml:53) while the dev pin isty>=0.0.64(lock 0.0.78).Acceptance criteria
# ty: ignore[rule]with a one-line reason; real defects found on the way are fixed in separate small commits (list them in the PR).uv run ty, notuvx ty).uv run ty check src/leech/passes with zero diagnostics and no blanket ignores.Non-goals
tests/.