[DTP-Worker 20260801_213444] Sprint 8 · buffer · Fiche ONAPI/Legal : gate de la 2ᵉ SURFACE PROSE des ENTITÉS PORTEUSES
Surface ungatée fermée : `03_agents/onapi_legal/AGENT.md:54` décrit le champ Select `entite_porteuse` du DocType CONFOTUR par « les 7 entités de CLAUDE.md #Entités (WAF · WA SRL · AC Arias Cuevas · Consortium ECR DR · Helios RD · Ploutos · 9060 QC) » — un COMPTE littéral + l'énumération complète du même menu. Le bloc « Confotur entités » déjà en place ancre le champ mais gate la ligne du README `legal/confotur` (surface e, ancrée sur legal/confotur/README.md) ; le motif ne vise PAS 03_agents/ ⇒ la fiche restait hors de tout gate. Dérive #6 : ajouter/retirer/renommer une entité dans CLAUDE.md §Entités puis régénérer propage le menu de l'artefact ET la ligne README confotur, MAIS la fiche se périme en silence (l'agent ERPNext Backend seederait un déroulant de périmètre faux). Aucune suite tests/ (FONCTIONS de build, pas la prose) ne l'attrape. Gate ajouté (ci/check_readme_claims.sh) : re-dérive la liste depuis les tokens gras de « ## Entités » de CLAUDE.md (source ancre · zéro duplication) et exige de la fiche — (a) COMPTE littéral == |§Entités| ; (b) énumération == §Entités ORDRE EXACT (absent ET fantôme mordus par set-diff + comparaison ordonnée) ; (c) ancre « CLAUDE.md #Entités » citée ; (d) cross-check bonus — énumération == options entite_porteuse de l'artefact byte-gaté (la fiche décrit EXACTEMENT le menu du DocType). Ligne absente = échec (#6). 6 morsures vérifiées (5 fiche · 1 artefact) : 7→8 → ✗(a) ; Ploutos retiré → ✗(b) absent ; fantôme Fantom SA → ✗(b) fantôme ; réordre WAF↔WA SRL → ✗(b) ordre ; ancre #Entités retirée → ✗(c) ; option artefact Ploutos→Ploutos SRL → ✗(d) menu divergent. Restauré = green (a/b/c/d ✓ · exit 0). Working tree byte-restauré via git checkout -- <fichier précis> (JAMAIS git checkout . / git clean). 7 gates re-verts. ci/README.md étendu (clause « 2ᵉ surface prose (fiche ONAPI/Legal) »). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -2313,3 +2313,69 @@ Working tree byte-restauré via `git checkout -- <fichier précis>` (**JAMAIS**
|
||||
édition **hors** `05_deliverables_mvp/*/out` ⇒ 0 dérive d'artefact ; l'exécution
|
||||
réelle de l'audit `bench` reste côté VPS).
|
||||
- **Auto-score 4Big** : 96/100.
|
||||
|
||||
## Session `20260801_213444` · Buffer S8 · Fiche ONAPI/Legal : 2ᵉ SURFACE PROSE des ENTITÉS PORTEUSES
|
||||
|
||||
**Tâche** : **Sprint 8 · buffer** (DevOps CI/CD · QA — anti-dérive doc). Roadmap
|
||||
plancher atteinte ; on continue de fermer les surfaces prose data-derived encore
|
||||
ungatées. Cible de cette session : `03_agents/onapi_legal/AGENT.md:54`.
|
||||
|
||||
**Surface trouvée (ungatée)** : la fiche ONAPI/Legal décrit le champ Select
|
||||
`entite_porteuse` du DocType CONFOTUR par « **les 7 entités de CLAUDE.md #Entités
|
||||
(WAF · WA SRL · AC Arias Cuevas · Consortium ECR DR · Helios RD · Ploutos · 9060
|
||||
QC)** ». C'est un **COMPTE littéral** (« 7 ») **+** l'**énumération complète** — une
|
||||
**SECONDE surface prose** du même menu que le champ `entite_porteuse` offrira.
|
||||
|
||||
Le bloc « Confotur entités » déjà en place ancre le champ à CLAUDE.md §Entités et
|
||||
gate la ligne du README `legal/confotur` (surface **(e)**), mais ce motif est ancré
|
||||
sur `05_deliverables_mvp/legal/confotur/README.md` — **il ne vise pas `03_agents/`**.
|
||||
La fiche restait donc **hors de tout gate** : recompter la §Entités (aujourd'hui 7)
|
||||
n'atteignait jamais cette phrase.
|
||||
|
||||
**Dérive silencieuse fermée** : AJOUTER / RETIRER / RENOMMER une entité dans
|
||||
CLAUDE.md §Entités (source ancre) → régénérer propage le menu de l'artefact **et** la
|
||||
ligne du README confotur, MAIS la fiche onapi_legal se **périme en silence** — elle
|
||||
annoncerait « 7 entités » quand il y en a 8, ou nommerait `Ploutos` là où le menu ne
|
||||
l'offre plus. L'agent ERPNext Backend qui seede le DocType croirait le déroulant
|
||||
couvrir un périmètre d'entités qu'il ne couvre plus (l'**invention #6** interdit).
|
||||
Aucune suite `tests/` (FONCTIONS de build du DocType, pas la prose d'une fiche) ne
|
||||
l'attrape. **État courant** : la fiche == §Entités == menu artefact exactement
|
||||
(rien à réécrire · #6) ; le défaut était la surface **ungatée**.
|
||||
|
||||
**Gate ajouté** (`ci/check_readme_claims.sh`, nouveau bloc « Fiche ONAPI/Legal ·
|
||||
2ᵉ SURFACE PROSE des ENTITÉS PORTEUSES », inséré juste après le bloc « Confotur
|
||||
entités » et avant le bloc Chat OTOIA) : on **re-dérive** la liste depuis les tokens
|
||||
en gras de la section « ## Entités » de CLAUDE.md (source ancre · zéro duplication)
|
||||
et on exige de la fiche — **(a)** le COMPTE littéral (« les N entités ») ==
|
||||
|§Entités| ; **(b)** l'énumération == §Entités **ORDRE EXACT** (absent ET fantôme
|
||||
mordus par set-diff + comparaison ordonnée) ; **(c)** l'ancre « CLAUDE.md #Entités »
|
||||
citée sur la ligne ; **(d)** cross-check bonus — l'énumération == options
|
||||
`entite_porteuse` de l'artefact CONFOTUR byte-gaté (la fiche décrit **exactement** le
|
||||
menu que le DocType offrira). Ligne absente = échec (traçabilité #6).
|
||||
|
||||
**6 morsures vérifiées** (5 côté fiche · 1 côté artefact) :
|
||||
1. compte `7`→`8` → ✗ (a) « fiche dit 8 entités MAIS §Entités en porte 7 » ;
|
||||
2. `Ploutos` retiré de l'énumération → ✗ (b) « absent(s)=['Ploutos'] » ;
|
||||
3. entité FANTÔME `Fantom SA` ajoutée → ✗ (b) « fantôme(s)=['Fantom SA'] » ;
|
||||
4. réordre `WAF`↔`WA SRL` → ✗ (b) « ordre : fiche […] ≠ §Entités […] » ;
|
||||
5. ancre `#Entités` retirée de la ligne → ✗ (c) « ne cite pas CLAUDE.md #Entités » ;
|
||||
6. option `Ploutos`→`Ploutos SRL` dans l'artefact CONFOTUR → ✗ (d) « fiche […] ≠
|
||||
menu artefact […] → la fiche décrit un menu que le DocType n'offre pas ».
|
||||
Restauré = green : (a)(b)(c)(d) tous ✓ · exit 0. Working tree byte-restauré via
|
||||
`git checkout -- <fichier précis>` (**JAMAIS** `git checkout .` / `git clean`,
|
||||
interdits absolus). **7 gates re-verts** : `validate_json` / `guard_constraints` /
|
||||
`check_docs` / `check_artifacts` / `check_regression` / `check_ci_integrity` /
|
||||
`check_readme_claims` (tous rc=0).
|
||||
|
||||
- `ci/README.md` mis à jour : paragraphe « Entités porteuses du DocType CONFOTUR »
|
||||
étendu d'une clause « **2ᵉ surface prose (fiche ONAPI/Legal)** » (compte + liste +
|
||||
cross-check menu artefact).
|
||||
- **Note anti-stale** : la mémoire `agent-fiche-role-attrs-ungated` est désormais
|
||||
**périmée** — les attributs des fiches mobile / rendu / ifc_speckle (niveau, scope,
|
||||
modules, permissions, entité) SONT déjà gatés (blocs « Fiche Mobile » et « Fiches
|
||||
Faisabilité »). La classe résiduelle réelle est celle des LISTES data-derived
|
||||
transcrites en prose de fiche, dont cette session ferme l'occurrence entités.
|
||||
- **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'application
|
||||
réelle du DocType par `bench` reste côté agent ERPNext Backend).
|
||||
- **Auto-score 4Big** : 96/100.
|
||||
|
||||
Reference in New Issue
Block a user