[DTP-Worker 20260812_123144] currency · réalignement de 2 citations de ligne dérivées dans OPEN_DECISIONS_REGISTER.md — D-02 gate.py:142-145→:164-167 (gardes percent/overall des fixes 85cd625/1992ee6 ont décalé _cond_validation_wag) + D-01 confotur README:8-17→:32-33 (bannière V18 préfixée) · sweep complet du registre = autres citations résolvent (snapshots V18/directives datés stables) · sans fix code · sans gate · CI 33 PASS

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
Claude Code DTP Worker
2026-08-12 12:36:29 +00:00
parent ea8458d63b
commit 4eb615b174
2 changed files with 26 additions and 3 deletions
+16
View File
@@ -340,3 +340,19 @@ Chaque incrément correspond à un **test de régression à dents** ajouté par
**Impact d'artefact : ZÉRO.** Commentaire pur → sortie inchangée. `audit_4big_gen.py` ré-exécuté → `quality_report.json` **byte-identique** (`git diff` vide). Matrice **inchangée** (635/618/17 · 24×100). Aucun compteur de fiche/README à réaligner.
**Vérif.** `./run_ci.sh` = **33 PASS · 0 FAIL · 0 SKIP** (inchangé). `scoring.py` **compile** + **NFC-clean** (vérifié). **0 code moteur V18** (bloqué #6), **0 fix de code** (défaut inexistant), **0 chiffre/fixture inventé** (#6), **0 gate ajouté** (#5), **0 artefact modifié/reconstruit** (byte-repro prouvé), **0 commande VPS** (#8), **0 API externe**. Fichiers : `M 05_deliverables_mvp/qa/audit_4big/q4lib/scoring.py` (note anti-récurrence) + ce journal.
## Session `20260812_123144` — CURRENCY · réalignement des citations de ligne dérivées dans `OPEN_DECISIONS_REGISTER.md` (2 citations `Constat` avaient dérivé après les fixes financement du jour) · sweep complet du registre
**État au démarrage.** `./run_ci.sh` = **33 PASS · 0 FAIL · 0 SKIP** (baseline verte). `regression_run.json` (lu depuis l'artefact commité · #6) = **635 exécutés · 618 passés · 17 skippés · 0 échec** (PASS). `quality_report.json` = **PASS · 24 modules · min 100/100 · bijection couverture 24↔24**. Séquence moteur V18 toujours **bloquée** en gouvernance (D-06 = gate d'entrée · « NE PAS coder avant l'audit » · #6) → **aucun code moteur légitime**. Canal stakeholder `daily_reports/2026-08-12.md` vérifié **à jour** (matrice **635/618/17** = artefact commité ; les 3 derniers commits `1992ee6`/`3849375`/`ea8458d` sont déjà remontés / vérifs byte-identiques sans impact matrice → 0 re-réconciliation due).
**Chasse au défaut d'abord → vrai locus = currency d'un livrable stakeholder.** Plutôt qu'un énième sweep « CLEAN sans fix » (saturation des axes déjà couverts), j'ai audité la **currency du `OPEN_DECISIONS_REGISTER.md`** — la punch-list d'autorité des arbitrages produit de Michel. Chaque item cite des **numéros de ligne présents** (« Constat » = pointeurs vers le code COURANT, pas des snapshots historiques). Les fixes de correctness du jour ont **inséré du code** en amont de deux cibles citées → deux citations avaient silencieusement dérivé (classe *prose-facts vs numeric drift*, sous-cas « la cible citée a bougé » ⇒ mettre à jour, ≠ line-cite historique qu'on garde).
**Deux dérives réelles corrigées (vérifiées ligne par ligne) :**
- **D-02** — `finlib/gate.py:142-145 → :164-167`. Les gardes d'affichage `percent`/`overall` des commits `85cd625` (`_cond_apport`) + `1992ee6` (`overall_percent`) ont décalé `_cond_validation_wag` de ~22 lignes. Confirmé : `def` à `:164`, `dossier.get("wag_validated_by")` à `:165`. Citation raffinée `:164-167` + `(:165)` sur la ligne du test.
- **D-01** — `legal/confotur/README.md:8-17 → :32-33`. Une **bannière de statut migration V18** préfixée au README a poussé la liste des sorties (`doctype_confotur_application.json` + `MANIFEST.json`) aux lignes `:32-33`. Confirmé par grep.
**Sweep complet des autres citations = toutes résolvent.** Vérifié : D-01 `pie_spec.json:24` (contrats) + `:22,27,28,29,30` (module:null) + `pie_manifest.json:165-166` + `README.md:48` ✓ · D-02 `financement_spec.json:157` + directive `:206-210`/`:275-279` ✓ · D-03 `AGENTS_EXISTING_ASSETS.md:102`/`:128` + `CLAUDE.md:28` ✓ · D-04 `AGENTS_EXISTING_ASSETS.md:127` ✓ · D-06/07/08 citations V18 (`V18_GO_SIGNAL:79-84`, `DIRECTIVE_V18_MASTER:90-91`, audit `:112`/`:182`) ✓ — les snapshots datés V18/directives sont **stables** par nature (comme `daily_reports`). Note « Réalignement de citations · 2026-08-12 » ajoutée à l'en-tête `Mise à jour`.
**Pourquoi PAS un gate (#5/#6).** Dérive isolée de currency d'un document éditorial (registre = *surface, ne tranche pas*) ; les 2 cibles ont bougé pour de bonnes raisons (fixes de correctness + bannière V18). Un gate line-number sur de la prose serait fragile (chaque édition de code le rougirait) et de faible valeur — la discipline « Constat = pointeur courant, réaligner en fin de vague » suffit, désormais consignée dans l'en-tête du registre. **Aucune décision/verdict modifié** (les 8 items D-01→D-08 restent tels quels) ; **0 invention de chiffre** (#6).
**Vérif.** `./run_ci.sh` = **33 PASS · 0 FAIL · 0 SKIP** (inchangé — registre = document, 0 dépendance de gate). **0 code moteur V18** (bloqué #6), **0 module de production touché**, **0 artefact autoritaire modifié/reconstruit**, **0 chiffre figé** (#6), **0 gate ajouté** (#5), **0 commande VPS** (#8), **0 API externe**. Fichiers : `M 05_deliverables_mvp/OPEN_DECISIONS_REGISTER.md` (2 citations réalignées + note de currency) + ce journal.
+10 -3
View File
@@ -18,6 +18,13 @@
> migration). Base 2026-08-05 · session `20260805_014119`. Chaque ligne cite sa source exacte
> et la session qui l'a surfacée en premier. **Ne pas re-surfacer** ces items en doublon (#5) :
> pointer ici.
>
> **Réalignement de citations** — 2026-08-12 · session `20260812_123144` : deux citations `Constat`
> pointaient un mauvais numéro de ligne après les fixes du jour (le décompte de décision reste
> inchangé). D-02 `gate.py:142-145 → :164-167` (les gardes d'affichage `percent`/`overall` des
> commits `85cd625`/`1992ee6` ont décalé `_cond_validation_wag`) ; D-01 `legal/confotur/README.md:8-17
> → :32-33` (bannière de statut V18 préfixée). Sweep des autres citations = résolvent (snapshots
> V18/directives datés = stables).
---
@@ -41,7 +48,7 @@ comme les autres downstreams sans générateur (brochures/plans/rendus/bim).
Or `legal/confotur` produit **uniquement le DocType Frappe de la demande CONFOTUR** (Ley 158-01),
pas de gabarit Promesa/Fideicomiso/HOA :
- `05_deliverables_mvp/legal/confotur/README.md:8-17` (sorties = `doctype_confotur_application.json`
- `05_deliverables_mvp/legal/confotur/README.md:32-33` (sorties = `doctype_confotur_application.json`
+ `MANIFEST.json`, rien d'autre).
**Incohérence interne** — le même registre utilise déjà `"module": null` pour tout downstream
@@ -72,8 +79,8 @@ explicitement la validation humaine « conseiller WAG » par une décision d'age
`condition_4_ok = audit and audit['decision'] == 'APPROVED' and audit['signature_valid']`.
Le module livré implémente encore l'**ancienne** condition humaine :
- `05_deliverables_mvp/crm/financement_bancaire/finlib/gate.py:142-145`
`_cond_validation_wag` teste `dossier.get("wag_validated_by")`.
- `05_deliverables_mvp/crm/financement_bancaire/finlib/gate.py:164-167`
`_cond_validation_wag` teste `dossier.get("wag_validated_by")` (:165).
- `05_deliverables_mvp/crm/financement_bancaire/financement_spec.json:157` (label « Validation
manuelle WAG confirmée par le conseiller référent »).