[DTP-Worker 20260802_173603] Sprint 8 · buffer · ci/README.md : retrait des comptes CI figés « 7 gates / 23 suites »
Même fix quedcb463e, un cran plus haut.dcb463eavait dérivé le décompte 30/23/7 du COMMENTAIRE de run_ci.sh (il se périme à chaque module ajouté/retiré de ci.yml) ; mais la DOC du lanceur (ci/README.md §« Rejouer le gate EN LOCAL ») re-transcrivait encore les mêmes nombres à la main : bloc d'usage L34-35 (« 7 gates statiques + 23 suites de module » / « 7 gates ci/*.sh ») + checklist L1601 (« 7 gates statiques »). Vérif d'exposition (verify-uncovered-before-gating) : mutation 23→24 / 7→8 → check_readme_claims ET check_docs restent VERTS → surface réellement NON gatée. Décision FIXER pas gater (fix-vs-gate + local-ci-runner) : ci/README.md:51-54 déclare lui-même que run_ci.sh « n'a pas à être re-gaté (#5) » (exactitude structurelle) — gater la prose qui le décrit trahirait cette posture. On retire donc les nombres figés et on laisse run_ci.sh seul propriétaire du décompte (dérivé de gate.needs, imprimé à l'exécution + --list). Ajout d'un paragraphe l'explicitant (même raison #6). Intactes : les « 7 gates re-verts » du CHANGELOG (narratif historique d'états passés VRAIS, pas une composition vive). Zéro module · zéro gate (#5) · zéro chiffre inventé (#6) · run_ci.sh 30 PASS · guards verts. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,5 +1,52 @@
|
||||
# Activity log · 2026-08-02 · Claude Code DTP Worker
|
||||
|
||||
## Session `20260802_173603` · Sprint 8 · buffer · DevOps doc — `ci/README.md` : retrait des comptes CI figés `7 gates / 23 suites` (même fix que `dcb463e`, un cran plus haut · anti-invention #6, PAS un gate #5)
|
||||
|
||||
**Contexte — le décompte figé oublié un niveau au-dessus du lanceur.** Ouverture :
|
||||
arbre propre, `run_ci.sh` **30 PASS / 0 FAIL** (7 gates statiques + 23 suites de
|
||||
module), file substantielle saturée (22/22 qualité à 100 · 22 suites / 564 méthodes ·
|
||||
recette 15/15 `in_repo` · 13 fiches · RBAC 50) — tous re-vérifiés indépendamment en
|
||||
`python3`. Le commit `dcb463e` avait **dérivé** le décompte `30/23/7` dans `run_ci.sh`
|
||||
(retrait des comptes figés du **commentaire** du script) précisément parce qu'ils se
|
||||
périment en silence quand un module est ajouté/retiré à `ci.yml`. Mais la **doc du
|
||||
lanceur**, `ci/README.md` §« Rejouer le gate EN LOCAL », re-transcrivait toujours à la
|
||||
main les MÊMES nombres : bloc d'usage L34-35 « `tout gate.needs (7 gates statiques + 23
|
||||
suites de module)` » / « `seulement les 7 gates ci/*.sh` », et checklist L1601 « les **7
|
||||
gates statiques** apparaissent ». Même « vert trompeur », un cran au-dessus de l'endroit
|
||||
déjà corrigé.
|
||||
|
||||
**Vérif d'exposition (mémoire *verify-uncovered-before-gating*).** Mutation-test :
|
||||
`23→24` + `7→8` sur ces deux lignes → `check_readme_claims.sh` **exit 0** et
|
||||
`check_docs.sh` **exit 0** (les deux VERTS) — surface **réellement non gatée**, aucune
|
||||
protection existante ne mord. Dérivation indépendante de `gate.needs` de `ci.yml`
|
||||
(classification `bash ci/` == statique, celle de `run_ci.sh::is_static`) confirme
|
||||
`30 = 7 gates + 23 suites`, EXACTEMENT ce que le README figeait.
|
||||
|
||||
**Décision — FIXER, pas gater** (mémoire *fix-vs-gate-a-transitively-protected-constant*
|
||||
+ *local-ci-runner*). `ci/README.md:51-54` déclare lui-même que `run_ci.sh` « n'a pas à
|
||||
être re-gaté (#5) » car son exactitude est **structurelle** ; ajouter un gate N+1 sur la
|
||||
prose qui DÉCRIT ce lanceur trahirait cette posture et prendrait la mauvaise autorité.
|
||||
La réponse cohérente est celle que `dcb463e` a déjà appliquée un cran plus bas :
|
||||
**retirer les nombres figés**, laisser `run_ci.sh` seul propriétaire du décompte (dérivé
|
||||
de `gate.needs`, imprimé à l'exécution + `--list`).
|
||||
|
||||
**Réalisé.**
|
||||
- `ci/README.md` bloc d'usage L34-37 : « 7 gates statiques + 23 suites » → « gates
|
||||
statiques `ci/*.sh` + suites de module » (qualitatif, non chiffré) ; `--list` annoté
|
||||
« + décompte dérivé ».
|
||||
- Ajout d'un paragraphe : le **décompte exact `N jobs = G gates + S suites` est dérivé
|
||||
de `gate.needs` et imprimé à l'exécution / `--list`, jamais figé ici** (même raison #6
|
||||
qui l'a retiré du commentaire de `run_ci.sh`).
|
||||
- Checklist §5 L1601 : « les **7 gates statiques** » → « les gates statiques `ci/*.sh` ».
|
||||
- **Intactes** : les mentions « 7 gates re-verts » du **changelog** (§ sessions de
|
||||
mutation-test, L1387-1542) — narratif historique d'états passés VRAIS, pas une
|
||||
affirmation de composition VIVE ; les figer serait réécrire l'histoire.
|
||||
|
||||
**Vérifs (en-repo, zéro contact VPS).** `run_ci.sh --list` imprime toujours «`30 jobs …
|
||||
: 7 gates statiques ci/*.sh + 23 suites de module`». `run_ci.sh` complet : **30 PASS · 0
|
||||
FAIL · 0 SKIP**. `grep` des surfaces vives figées → **aucune restante**. Zéro module,
|
||||
zéro gate ajouté (#5), zéro chiffre inventé (#6).
|
||||
|
||||
## Session `20260802_153601` · Sprint 8 · buffer · DevOps outillage — `run_ci.sh` : décompte `30/23/7` DÉRIVÉ à l'exécution (retrait des comptes figés du commentaire · anti-invention #6, PAS un gate #5)
|
||||
|
||||
**Contexte — dernière surface figée dans un outil « anti-dérive par construction ».**
|
||||
|
||||
+10
-4
@@ -31,12 +31,18 @@ Aucune dépendance réseau/marketplace hors `actions/checkout`. Tout tourne avec
|
||||
Avant de committer, reproduire l'intégralité du gate de merge en une commande :
|
||||
|
||||
```
|
||||
bash run_ci.sh # tout gate.needs (7 gates statiques + 23 suites de module)
|
||||
bash run_ci.sh --static # seulement les 7 gates ci/*.sh (rapide)
|
||||
bash run_ci.sh --list # liste les jobs qui seraient lancés, sans exécuter
|
||||
bash run_ci.sh # tout gate.needs (gates statiques ci/*.sh + suites de module)
|
||||
bash run_ci.sh --static # seulement les gates statiques ci/*.sh (rapide)
|
||||
bash run_ci.sh --list # liste les jobs qui seraient lancés (+ décompte dérivé), sans exécuter
|
||||
bash run_ci.sh --help # aide + codes de sortie (0 vert · 1 échec · 2 option · 3 hors git)
|
||||
```
|
||||
|
||||
Le **décompte exact** (`N jobs = G gates statiques + S suites de module`) est
|
||||
**dérivé de `gate.needs` et imprimé à l'exécution** (et par `--list`) ; il n'est
|
||||
**jamais figé dans cette doc**, où il se périmerait en silence à chaque module
|
||||
ajouté/retiré — même raison anti-invention (`CLAUDE.md` #6) qui a fait retirer
|
||||
ces mêmes comptes du commentaire de `run_ci.sh`.
|
||||
|
||||
`run_ci.sh` n'a **aucune liste en dur** : il DÉRIVE l'ensemble des checks depuis
|
||||
`gate.needs` de `.gitea/workflows/ci.yml` (la source de vérité que
|
||||
`check_ci_integrity.sh` verrouille déjà) et exécute, pour chaque job, la
|
||||
@@ -1598,7 +1604,7 @@ Actions** doit être activé, et le runner doit apparaître « Idle ».
|
||||
|
||||
- `[ ]` Gitea Actions activé au niveau instance ET repo.
|
||||
- `[ ]` `act_runner` enregistré, label `ubuntu-latest`, statut Idle.
|
||||
- `[ ]` Push de test → les 7 gates statiques apparaissent et passent au vert.
|
||||
- `[ ]` Push de test → les gates statiques `ci/*.sh` apparaissent et passent au vert.
|
||||
- `[ ]` PR de test avec violation volontaire → `constraints-guard` bloque (rouge).
|
||||
|
||||
---
|
||||
|
||||
Reference in New Issue
Block a user