feat: add zuban type checker, documentation guidelines, and repository organization - #128
Merged
Merged
Conversation
…tion - Add zuban>=0.1.0 as dev dependency in pyproject.toml - Configure mypy (used by zuban) to ignore all files initially - Allow untyped definitions to start gradual type annotation adoption - This sets up the foundation for incrementally adding type annotations to modules one at a time, with zuban validating as we go - Configuration enables: allow_untyped_defs, allow_incomplete_defs, ignore_missing_imports, allow_untyped_globals - Files will be enabled in [mypy] section as they receive type annotations
- Document the gradual type annotation adoption strategy - Explain how to enable modules one at a time for type checking - Provide type annotation guidelines and examples - Show how to increase strictness as coverage improves - Include common patterns and resources for type annotations
…elines - Create scratch_files/ directory for agent-generated documentation - Update AGENTS.md with clear guidance that agents should write documentation to scratch_files/ instead of the repository root - Keep root directory clean with only essential docs (README.md, AGENTS.md, etc) - Allow agents to freely create capitalized markdown files in scratch_files/ - Include examples of appropriate documentation locations
Move the following documentation files to scratch_files/ to keep the repository root clean with only essential documentation: - PUBLISHING.md → scratch_files/PUBLISHING.md - PYPI_SETUP.md → scratch_files/PYPI_SETUP.md - TYPE_ANNOTATIONS.md → scratch_files/TYPE_ANNOTATIONS.md Keep in root: README.md, AGENTS.md, CLAUDE.md (essential project docs) Agent-generated and operational docs now live in scratch_files/
Resolve conflicts and apply documentation guidelines: - Combine dev dependencies from both branches (zuban + testing utils) - Remove duplicate TYPE_ANNOTATIONS.md from root (keep in scratch_files/) - Move TESTING.md and TESTING_PLAN.md to scratch_files/ per new guidelines - Include testing infrastructure from master: - New comprehensive Kalman filter tests - Testing utilities module for shared test helpers - Improved test coverage workflow - pytest configuration with conftest
Contributor
GeorgePearse
marked this pull request as ready for review
October 25, 2025 13:41
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
This PR introduces comprehensive improvements to type checking, documentation organization, and project guidelines:
scratch_files/directory for agent-generated and operational documentationKey Changes
1. Zuban Type Checking Setup
zuban>=0.1.0as dev dependencypyproject.tomlwith all files initially ignoredallow_untyped_defs,allow_incomplete_defs,ignore_missing_imports,allow_untyped_globals2. Type Annotation Documentation
scratch_files/TYPE_ANNOTATIONS.md3. Repository Organization
scratch_files/directory for non-essential documentationPUBLISHING.md→scratch_files/PUBLISHING.mdPYPI_SETUP.md→scratch_files/PYPI_SETUP.mdTYPE_ANNOTATIONS.md→scratch_files/TYPE_ANNOTATIONS.mdREADME.md,AGENTS.md,CLAUDE.md4. Agent Guidelines Update
AGENTS.mdwith "📝 Agent Documentation Guidelines"scratch_files/not rootUsage
Install:
```bash
uv sync --extra dev
```
Run type checking:
```bash
uv run zuban check .
uv run zuban check bayesian_filters/kalman/kalman_filter.py
```
Enable a module for type checking:
Current Status
Directory Structure
Next Steps
As type coverage improves:
ignore_patternsone at a timeAgent documentation:
scratch_files/Files Modified
pyproject.toml- Added zuban dependency and mypy configurationAGENTS.md- Added agent documentation guidelinesscratch_files/- New directory with moved documentationFiles Moved
PUBLISHING.md→scratch_files/PUBLISHING.mdPYPI_SETUP.md→scratch_files/PYPI_SETUP.mdTYPE_ANNOTATIONS.md→scratch_files/TYPE_ANNOTATIONS.mdRelated
Complements the workflow improvements made in #125 (Testing/kalman-core)