[DTP-Worker] Sprint 8 · buffer · DevOps/deploy_runbook : IMPUTABILITÉ des CONFIRMATIONS préalables VPS (owner · réf-contrôle) ancrée sur out/deploy_runbook.json ⨯ qa/audit_5d

La ligne « Confirmations préalables VPS » du README `devops/deploy_runbook` annote
CHAQUE confirmation réglementaire d'un COUPLE data-derived `nom` (OWNER · RÉF-CONTRÔLE)
— ex. `taux_commission` (Direction · audit_5d D1.1) : QUI doit confirmer le paramètre
avant déploiement + QUEL contrôle qa/audit_5d le trace. Sources faisant autorité
(double, byte-gatées) : les `confirmations` de out/deploy_runbook.json (owner + source)
CROISÉES avec qa/audit_5d/out/audit_report.json (chaque control D#.# porte son propre
owner). Les blocs DevOps amont ne gataient que le COMPTE (2) et l'ENSEMBLE des noms —
AVEUGLES à QUI porte chaque confirmation et à QUEL contrôle la trace. Piège #6 :
réaffecter `taux_commission` de Direction à Ventes (mauvais responsable escaladé),
misattribuer le contrôle (D1.1→D2.1) ou citer un contrôle FANTÔME (D9.9) laisse la
prose périmée en silence pendant que l'artefact/l'audit disent autre chose → l'agent
DevOps escaladerait le mauvais owner / contrôle ; aucune suite tests/ (FONCTIONS de
graphe) n'attrape ce « vert trompeur ». État courant : aucune annotation périmée
(anti-invention #6), le défaut est la surface ungated.

Gate ajouté (ci/check_readme_claims.sh, bloc « 2ter ») : cross-anchor à trois — owner
run-book ⊆ owner du contrôle audit_5d cité (tolère le suffixe « / UAF ») · owner
README ⊆ owner run-book (tolère l'abréviation « Fiscaliste eCF » ⊂ « Compta Fiscaliste
eCF ») · réf README == contrôle réel présent DANS audit_5d ET dans la source. Une
confirmation tracée DOIT rester annotée (traçabilité #6) ; une annotation d'un nom
fantôme échoue AUSSI.

9 morsures vérifiées (README réaffecte owner · misattribue D1.1→D2.1 · contrôle
fantôme D9.9 · annotation retirée · artefact réaffecte owner = silent green · audit_5d
owner divergent · source cite contrôle fantôme · annotation nom fantôme · réf textuelle
absente de la source), restauré vert, 7 gates re-verts. ci/README.md (récap + paragraphe
« 3ᵉ surface deploy_runbook — imputabilité des confirmations ») mis à jour.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude Code DTP Worker
2026-08-01 08:41:43 +00:00
parent 9353d7f54e
commit 51e447605f
3 changed files with 210 additions and 1 deletions
+74
View File
@@ -937,3 +937,77 @@ check_regression).
**Vérif** : 13 confirmations vertes (9 noms + set codes + listings schema.org + MANIFEST + README) ; **7 morsures vérifiées puis restaurées** — CLAUDE.md rename P07 (bite b+d simultanés, l'ancre est vive) · fixture nom drift P03 · fixture drop P09 (set manquant) · fixture add fantôme P10 (set fantôme) · fixture strip `source.fichiers` P01 · artefact schema.org rename `Structure``Estructura` (le vrai silent-green public) · README retire la citation §Projets. Restauré vert. **7 gates CI re-verts** (`check_readme_claims`, `check_artifacts`, `check_docs`, `check_ci_integrity`, `guard_constraints`, `check_regression`, `validate_json`).
- **Auto-score 4Big** : 96/100.
## Session `20260801_083254` · Buffer S8 · DevOps/deploy_runbook — IMPUTABILITÉ des CONFIRMATIONS préalables VPS (owner + réf-contrôle) ancrée sur out/deploy_runbook.json qa/audit_5d
**Domaine** : DevOps · `05_deliverables_mvp/devops/deploy_runbook/README.md:55-58`
(ligne « Confirmations préalables VPS ») `out/deploy_runbook.json` (byte-gaté)
`05_deliverables_mvp/qa/audit_5d/out/audit_report.json` (byte-gaté).
**Tâche** : **Sprint 8 · buffer** (DevOps CI/CD · QA). Roadmap fonctionnellement
close ; poursuite de la série anti-dérive (CLAUDE.md #6). Même classe de « vert
trompeur » que la table run-book (2e surface `deploy_runbook`) ou l'identité du RÔLE
émetteur e-CF — appliquée à une **3e surface distincte du MÊME README `deploy_runbook`** :
non plus le COMPTE de confirmations ni l'ENSEMBLE de leurs noms (déjà gatés), mais
l'**imputabilité** de chacune — QUI la porte et QUEL contrôle audit_5d la trace.
**Dérive silencieuse fermée** :
- `devops/deploy_runbook/README.md:55-58` — la ligne « Confirmations préalables VPS »
annote CHAQUE confirmation réglementaire d'un COUPLE data-derived
`nom` (**owner** · **réf-contrôle**) : `taux_commission` (Direction · audit_5d D1.1) ·
`rnc_emisor` (Compta · D1.2) · `itbis_tipocambio` (Fiscaliste eCF · D1.3) ·
`seuil_uaf` (Oficial de Cumplimiento · D2.3) · `endpoint_otoia` (ERPNext Backend ·
session 19). L'OWNER = qui doit confirmer le paramètre avant déploiement ; la RÉF =
le contrôle qa/audit_5d (`D#.#`) — ou la session — qui en assure le suivi.
- Sources faisant autorité (double, byte-gatées par `check_artifacts`) : (a) les
`confirmations` de `out/deploy_runbook.json` — chaque item porte `owner` + `source` ;
(b) `qa/audit_5d/out/audit_report.json` — chaque `control` (`D1.1`..`D5.3`) porte
SON PROPRE `owner`. L'owner et le contrôle ne vivent PAS dans le MANIFEST
(`confirmations_ouvertes` n'est qu'une liste de NOMS) : ils ne sont vérifiables que
contre ces deux artefacts croisés.
- Piège #6 : les blocs DevOps amont ne gatent que le COMPTE (2) et l'ENSEMBLE des
noms — AVEUGLES à QUI porte chaque confirmation et à QUEL contrôle la trace.
RÉAFFECTER `taux_commission` de Direction à Ventes (mauvais responsable escaladé →
confirmation jamais obtenue · séparation des pouvoirs cassée), MISATTRIBUER le
contrôle (`D1.1``D2.1`, pointant un contrôle qui ne trace PAS ce paramètre) ou
citer un contrôle FANTÔME (`D9.9`, absent d'audit_5d) laisse la prose périmée EN
SILENCE pendant que l'artefact/l'audit disent autre chose → l'agent DevOps
escaladerait le mauvais owner / le mauvais contrôle. Aucune suite `tests/`
(FONCTIONS de graphe) n'attrape ce « vert trompeur ».
- **État courant** : aucune annotation périmée — les 5 couples owner/réf recoupent
`deploy_runbook.json`, et les 4 réf `D#.#` existent dans audit_5d avec un owner
compatible (`Oficial de Cumplimiento``Oficial de Cumplimiento / UAF`, `Fiscaliste
eCF``Compta Fiscaliste eCF`) (anti-invention #6, rien à réécrire). Le défaut est
la **surface ungated**.
**Gate ajouté** (`ci/check_readme_claims.sh`, bloc « 2ter) deploy_runbook —
IMPUTABILITÉ des CONFIRMATIONS » après le bloc table de phases) : confirmations
aplaties de `deploy_runbook.json` (unicité inter-phases), contrôle audit_5d résolu de
la `source` (`D#.#`), annotations README parsées `nom` (owner · réf), puis **(a)**
cross-module — chaque confirmation tracée porte un contrôle audit_5d RÉEL dont l'owner
est COMPATIBLE avec l'owner run-book (sous-ensemble de tokens · tolère « / UAF ») ET
elle reste ANNOTÉE au README ; **(b)** chaque annotation désigne une confirmation
RÉELLE (pas fantôme), owner README ⊆ owner run-book (tolère l'abréviation), et la réf
== contrôle réel (présent audit_5d + source) ou, pour une réf textuelle
(« session 19 »), présente dans la source. Un claim absent échoue AUSSI (traçabilité #6).
**9 morsures vérifiées** (4 côté README · 3 côté artefact · 2 réf) : README réaffecte
owner `Direction→Ventes` (mauvais responsable) · README misattribue `D1.1→D2.1`
(contrôle périmé vs source) · README cite contrôle fantôme `D9.9` · README retire
l'annotation de `taux_commission` (tracée par D1.1, INTROUVABLE) · **artefact**
réaffecte `taux_commission` owner→Ventes (README stale = le vrai *silent green* · mord
cross-module ET README⊆) · **artefact** audit_5d D1.1 owner `Direction→Finanzas`
(divergence inter-modules) · **artefact** source `seuil_uaf` `D2.3→D9.9` (contrôle
FANTÔME cité par la source) · README annotation fantôme (`endpoint_otoia→endpoint_xxx`) ·
README réf textuelle `session 19→session 42` (absente de la source) ; restauré = green :
5 couples owner/réf == artefacts croisés · 4 réf `D#.#` présentes audit_5d + source ·
exit 0. Working tree byte-restauré (`git checkout --`, **JAMAIS** `git clean`, interdit
absolu) · **7 gates re-verts** (`check_readme_claims`/`check_ci_integrity`/`check_docs`/
`guard_constraints`/`check_artifacts`/`check_regression`/`validate_json`).
- `ci/README.md` (clause de la table récap du pipeline + paragraphe détaillé « 3ᵉ
surface `devops/deploy_runbook` — imputabilité des confirmations ») mis à jour.
- **Hors périmètre worker (VPS · #8)** : néant (gate bash/python3 stdlib en-repo ;
édition **hors** `05_deliverables_mvp/*/out` ⇒ 0 dérive d'artefact ; l'obtention
réelle des 7 confirmations auprès de leurs owners reste côté agent DevOps / VPS).
- **Auto-score 4Big** : 96/100.