You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
{{ message }}
Repository navigation
Single-source the public-surface mypy gate in [tool.mypy] instead of four hand-copied flag strings #919
The typing gate (mypy --strict --follow-imports=silent forgelm/__init__.py forgelm/_version.py tests/typing/public_surface_probe.py) is copied verbatim into ci.yml, CLAUDE.md, AGENTS.md and CONTRIBUTING.md, and only tests/test_guard_wiring.py keeps the copies identical. The Phase 16 S1 addendum deferred a [tool.mypy] single source because it would have changed the gate's invocation in the middle of a review round; that round has closed.
Condition or budget
None left: the reason for deferring (a mid-review change) no longer applies.
State today (re-checked 2026-10-09)
pyproject.toml has no [tool.mypy] section and no mypy.ini exists.
Related
#662 and #686 concern what the gate covers, not where its configuration lives.
Acceptance criteria
The flags and files are declared once in [tool.mypy], the four copies become a bare invocation, and tests/test_guard_wiring.py pins the new form.
Move the existing strict/follow_imports/files values into [tool.mypy], then replace the four copied flag/file lists with the same bare mypy invocation. Update guard-wiring assertions to enforce the new single source. Run python3 -m mypy and the wiring test; prove the public-surface files and strictness stay identical. Do not expand typing scope or fix internal typing debt.
No [tool.mypy] exists at the verified SHA. The eventual issue PR includes CI changes explicitly requested by that issue; none are made in this preparation task.
Run the focused tests:
pytest tests/test_guard_wiring.py --no-cov
Run these guards/checks as applicable to the changed files:
If user-facing documentation changes, update the existing Turkish mirror in the same PR; keep commands, code and terminal output in English and structurally aligned. English-only contributor standards need no new mirror.
Open the PR against development with Fixes #919 once every finding is resolved or explicitly closed with a reason; use Refs #919 for partial work and list the resolved finding IDs.
Activity
cemililik commentedon Oct 11, 2026
Where to start
Thanks for taking a look. Please confirm the issue is unassigned and comment before starting so work does not overlap.
Start with these files on
development:Move the existing strict/follow_imports/files values into [tool.mypy], then replace the four copied flag/file lists with the same bare mypy invocation. Update guard-wiring assertions to enforce the new single source. Run python3 -m mypy and the wiring test; prove the public-surface files and strictness stay identical. Do not expand typing scope or fix internal typing debt.
No [tool.mypy] exists at the verified SHA. The eventual issue PR includes CI changes explicitly requested by that issue; none are made in this preparation task.
Run the focused tests:
Run these guards/checks as applicable to the changed files:
If user-facing documentation changes, update the existing Turkish mirror in the same PR; keep commands, code and terminal output in English and structurally aligned. English-only contributor standards need no new mirror.
Open the PR against
developmentwithFixes #919once every finding is resolved or explicitly closed with a reason; useRefs #919for partial work and list the resolved finding IDs.