@@ -116,3 +116,31 @@ phase, not a strict wall-clock deadline for the entire network exchange.
116116The first scaffold is synchronous. Async support, rich response models, artifact
117117streaming, idempotent write retries and worker support are not included. Mock HTTP
118118tests do not certify any particular server deployment.
119+
120+ ## Code quality
121+
122+ Install ` .[dev] ` to get the pinned development tools. Black 24.8.0, isort 5.13.2,
123+ and Flake8 7.1.1 follow the conventions used in the sibling envstack and pyseq
124+ projects: 100-column formatting, isort's Black profile, and a Python 3.8 target.
125+ The tool versions also support running locally under Python 3.8.
126+
127+ ``` bash
128+ make format # Sort imports and apply Black to src/ and tests/
129+ make lint # Check formatting, imports, Flake8 and Google-style docstrings
130+ make typecheck # Check annotated library code with mypy
131+ make test # Run the HTTP contract tests
132+ make check # Run lint, type checking and tests
133+ make build # Build distributions and check their metadata
134+ ```
135+
136+ Activate your environment first, or specify it explicitly, for example:
137+ ` make check PYTHON=.venv/bin/python ` . The CI lint job uses the same commands.
138+ EditorConfig defines whitespace and newline conventions for supporting editors.
139+
140+ Add annotations and docstrings to new functions, methods and classes, including
141+ constructors and test helpers. Public docstrings should explain side effects,
142+ permissions, return values and failure behavior where useful. JSON dictionaries
143+ retain ` Any ` values because node parameters and server response fields are dynamic;
144+ this release does not pretend to provide complete generated response models.
145+ Mypy checks library signatures and bodies; Flake8 and formatting cover both the
146+ library and tests. Runtime tests continue to cover Python 3.8 in CI.
0 commit comments