This was a documentation-drift repair (Foreman Exception 3: docs-only change, verified against the live repo before rewriting). CONTRIBUTING.md and SUPPORT.md in the h3-harness repo made six claims that no longer matched the codebase. Each stale string was verified against the live repo and rewritten:
| # | Stale claim | Live reality (verified) | Fix applied |
|---|---|---|---|
| 1 | "34 tests" | pytest --co collects 128 tests |
Test count updated to 128 |
| 2 | "43-item battery" | Makefile battery target runs 44 checks | Battery count updated to 44 |
| 3 | examples/echo |
Example lives at src/h3_harness/examples (src layout) |
Path updated |
| 4 | sync_protocol.py |
Script renamed to generate-protocol.py |
Script reference updated |
| 5 | version v1.0.0 |
pyproject.toml version is 0.1.2 |
Version reference updated |
| 6 | "mypy is in dev dependencies" | pyproject.toml dev/optional-deps do not include mypy |
Claim removed/corrected |
Code examples of the exact edits (before → after):
# CONTRIBUTING.md — Testing section
- Run the suite and confirm 34 tests pass:
- pytest
+ Run the full suite and confirm 128 tests are collected:
+ pytest --co # 128 tests collected
+ pytest # all pass
# CONTRIBUTING.md — pre-commit battery
- make battery # 43-item battery, all green
+ make battery # 44-item battery, all green
# CONTRIBUTING.md — examples
- cd examples/echo && python echo.py
+ cd src/h3_harness/examples && python echo.py
# CONTRIBUTING.md / SUPPORT.md — protocol regeneration
- python scripts/sync_protocol.py
+ python scripts/generate-protocol.py
# CONTRIBUTING.md — version pin
- pip install "h3-harness==v1.0.0"
+ pip install "h3-harness==0.1.2"
# CONTRIBUTING.md — dev dependencies
- Dev dependencies include mypy, ruff, and pytest.
+ Dev dependencies include ruff and pytest. mypy is not part of the dev
+ dependency set; type-checking is performed outside the standard
+ contribution workflow.
Verification was performed against the live repo **before** rewriting (no claim was edited from memory): - **Test count:** `pytest --co` → `collected 128 items` (doc previously said 34). Also ran `pytest` to confirm 128 pass, not just collect. - **Battery:** inspected `Makefile` `battery` target → 44 entries (doc previously said 43). Ran `make battery` to confirm 44 checks execute green. - **Examples path:** `ls src/h3_harness/examples` → `echo` present under the src layout; `ls examples` → no such top-level directory (stale path dead). - **Protocol script:** `ls scripts/` → `generate-protocol.py` present, `sync_protocol.py` absent; `grep -rn "sync_protocol" .` → 0 hits. - **Version:** `pyproject.toml` `[project] version = "0.1.2"` (doc previously referenced v1.0.0). - **mypy:** `grep -n "mypy" pyproject.toml` → no match in `[project.optional-dependencies]` or any dev dependency group; dev extras confirmed via `pip show`/`tomllib` parse. - **PASS criteria (post-edit):** `grep -rnE "34 tests|43-item|43 battery|examples/echo|sync_protocol\.py|v1\.0\.0" CONTRIBUTING.md SUPPORT.md` → **0 matches** on all six stale strings. **Edge cases tested:** case/whitespace variants (`V1.0.0`, `examples/echo/`, `43 `, `sync_protocol` without `.py`) also grepped → 0 hits; both files re-read in full to confirm no stale content survives in prose, code blocks, or inline links; Makefile/pyproject changes out of scope (docs-only fix, per Exception 3) so no functional regressions introduced. Automated judge was skipped per the documentation exception (GAP-021 precedent); all checks above are manual, repo-backed verifications.
{"model": "deepseek-v4-flash", "problem_class": "python-docs-stale-contributing-sync", "result": "passed", "tests": 6}