Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

[Phase 16] S14 — Test-quality ratchet

Abierto
#900 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
5/5
Tiempo estimado
Más de una semana
Aptitud para principiantes
12/100
Tipo de issue
Refactorización
Claridad
Necesita aclaración
Estado de actividad
Activo
Stack tecnológico
python, testing-qa
Área
testing

Línea de trabajo

Start with the step description at docs/roadmap/phase-16-trust-surface-hardening.md lines 723-744 and the coverage settings that set fail_under, then read testing.md for the currently stated floor. Done means diff-coverage and a ratcheted global floor are enforced, per-module floors exist for compliance.py, verify/, _http.py, safety/ and config.py, and stubbing each curated function makes its test fail.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

phase: 16 source: roadmap

Roadmap · Phase 16, step S14 · size M · 2 unit(s) · planned in docs/roadmap/phase-16-trust-surface-hardening.md:723-744

Summary

The test suite's own quality contract is weaker than its actual quality: a 40 % coverage floor guards a measured 86.60 %, and a curated subset of tests asserts only "did not raise" and would pass against a pass body. Deliberately late in the phase, so the ratchet is not calibrated against pre-remediation code.

Units

Unit Tracked by (October 2026 review)
F-W20260729-OPS-20 #702
F-W20260729-OPS-21 #80 · #559 · #567 · #681 · #692 · #696

Decisions this step executes

  • C-19 — coverage ratchet: diff-coverage enforcing at S14 only (the "advisory at S1" limb was withdrawn: a CI step that cannot go red is a fake green); global floor = measured − 2.

Plan

  • Introduce diff-coverage once, enforcing; ratchet the global fail_under; add per-module floors.

Exit criteria

  • Diff-coverage on changed lines and a ratcheted global fail_under are both enforced, with explicit measured thresholds for compliance.py, verify/, _http.py, safety/ and config.py.
  • Replacing the body of each curated production function with a no-op makes its test fail.
  • The 71-function inventory is triaged by hand into legitimate no-exception contracts versus silent-pass risks, with the disposition recorded.
  • The floor stated in testing.md matches the enforced one.

How to deliver

  • One root-cause family, committed on its own; then an Opus review round and a Sonnet review round, each with verified findings fixed and committed before the next step begins.
  • A reproducer that is red before the fix and green after; the full gauntlet from CLAUDE.md passes under ./.venv/bin/python.
  • Every English documentation edit ships with its Turkish mirror in the same commit; a new or renamed audit event gets its EN and TR catalog rows in the same PR.
  • A step that grows a deferred module carries its budget_history justification in the same diff; a widened guard rolls out non-strict first, then flips.
  • Commit bodies cite Absorbs F-W20260729-…; the CHANGELOG [Unreleased] section gets an entry only for a change a user or library consumer can observe (decision C-20).

Planned in docs/roadmap/phase-16-trust-surface-hardening.md (read at f94595f). Unit IDs (F-W20260729-…) come from the 2026-07-29/30 full-project review; the issue numbers next to them are the October 2026 review's records of the same defects.

Lenguaje dominante
Python
Estrellas
9
Forks
1
Merge medio
7 h 42 min
PR fusionados (30 d)
4

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de HodeTech/ForgeLM

Todos los issues de HodeTech/ForgeLM

Issues similares

Más issues de Python

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.