[DTP-Worker 20260806_071503] DOC anti-footgun in-fiche — colonne « Sortie » de frontend_console/AGENT.md : documenter l'omission MANIFEST volontaire
Un Explore adversarial a re-flagué (2e fois) la cellule « Sortie » du chat_otoia comme « manque MANIFEST.json » — faux positif connu (fiche-sortie-cell-omits-manifest- by-design) : les DEUX rangs (portails+chat) listent le payload seul, MANIFEST omis par convention, docstrings/READMEs énumèrent les 3 (byte-gatés). La récurrence prouve un footgun non documenté (brûle des cycles d'audit, risque un fix #5/#6 cassant le gate regex-parsé). Mitigation : blockquote « Note de lecture » après la table, rédigé pour éviter les regex ancrées du gate (aucun compteur cartes/liens/rôles ni **N tests**). check_readme_claims PASS · check_docs PASS · run_ci 33 PASS 0 FAIL 0 SKIP · 0 artefact reconstruit · 0 gate ajouté (#5) · 0 chiffre inventé (#6) · 0 commande VPS (#8) Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -33,6 +33,14 @@ le câblage de l'endpoint OTOIA et l'application du thème desk restent côté *
|
|||||||
- **Chat OTOIA** : CLI `python3 chat_otoia_gen.py build|validate` · **14 invariants** ·
|
- **Chat OTOIA** : CLI `python3 chat_otoia_gen.py build|validate` · **14 invariants** ·
|
||||||
**31 tests** · job CI `chat-otoia-tests` (gated).
|
**31 tests** · job CI `chat-otoia-tests` (gated).
|
||||||
|
|
||||||
|
> **Note de lecture — colonne « Sortie ».** Les cellules listent le **payload
|
||||||
|
> métier** ; chaque générateur écrit **en plus** un `out/MANIFEST.json` (compteurs
|
||||||
|
> auto-vérifiés) **volontairement omis** de la table par convention éditoriale.
|
||||||
|
> L'énumération exhaustive des trois fichiers vit dans les docstrings et READMEs
|
||||||
|
> de module (byte-gatés). Ne PAS ajouter le MANIFEST à cette cellule : elle est
|
||||||
|
> lue par regex par `ci/check_readme_claims.sh` (compteurs `cartes/liens/rôles`,
|
||||||
|
> comptes de tests) et l'omission est intentionnelle, pas une dérive.
|
||||||
|
|
||||||
## Source de vérité unique (zéro invention · #6)
|
## Source de vérité unique (zéro invention · #6)
|
||||||
La matière première est le **contrat RBAC** `05_deliverables_mvp/rbac/rbac_50_roles.json`,
|
La matière première est le **contrat RBAC** `05_deliverables_mvp/rbac/rbac_50_roles.json`,
|
||||||
**jamais la spec de mise en page** :
|
**jamais la spec de mise en page** :
|
||||||
|
|||||||
@@ -581,3 +581,47 @@ byte-identique. Mémoire `enforcement-oracle-must-stay-independent` créée.
|
|||||||
**Portée / anti-churn.** Édité : `renderer.py` (1 commentaire) + ce journal + mémoire. **0 artefact
|
**Portée / anti-churn.** Édité : `renderer.py` (1 commentaire) + ce journal + mémoire. **0 artefact
|
||||||
reconstruit**, **0 gate ajouté** (#5), **0 chiffre inventé** (#6 — les 6 marqueurs déjà présents,
|
reconstruit**, **0 gate ajouté** (#5), **0 chiffre inventé** (#6 — les 6 marqueurs déjà présents,
|
||||||
re-dérivés du gate), **0 commande VPS** (#8). Structure du gate inchangée (33 checks).
|
re-dérivés du gate), **0 commande VPS** (#8). Structure du gate inchangée (33 checks).
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
## Session `20260806_071503` — anti-footgun in-fiche : documenter l'omission MANIFEST volontaire de la colonne « Sortie » · 0 artefact reconstruit
|
||||||
|
|
||||||
|
**État au démarrage.** `./run_ci.sh` = **33 PASS · 0 FAIL · 0 SKIP**, arbre propre, roadmap
|
||||||
|
intégralement livrée + gatée. HEAD `ddcafc5` (commentaire anti-footgun `renderer.py`, output
|
||||||
|
inchangé). Les ~15 derniers commits sont des sweeps vérif-only / currency à rendement décroissant
|
||||||
|
(la session précédente le notait). Objectif : **éviter d'ajouter un énième « CLEAN sweep »** et
|
||||||
|
trouver une amélioration *durable* réelle.
|
||||||
|
|
||||||
|
**Chasse au défaut (Explore adversarial).** Dispatché un agent lecture-seule sur 3 surfaces
|
||||||
|
(fiches `03_agents/*/AGENT.md` ↔ modules réels · READMEs ↔ `*_gen.py` · liens label↔cible).
|
||||||
|
Retour : **1 candidat** — `frontend_console/AGENT.md:29` « colonne Sortie du chat_otoia omet
|
||||||
|
`MANIFEST.json` » alors que `chat_otoia_gen.py:237` écrit bien les 3 fichiers.
|
||||||
|
|
||||||
|
**Réfutation via mémoire — FAUX POSITIF connu.** C'est exactement `fiche-sortie-cell-omits-
|
||||||
|
manifest-by-design` : la colonne « Sortie » liste le **payload métier** seul ; le MANIFEST est
|
||||||
|
omis **dans les DEUX rangs** (portails + chat) = convention éditoriale, PAS une dérive ; les
|
||||||
|
docstrings/READMEs énumèrent bien les 3 (byte-gatés). « Corriger » violerait #5/#6 et risquerait
|
||||||
|
de casser le gate (la cellule est regex-parsée par `check_readme_claims.sh`). **0 édition de ce
|
||||||
|
faux positif.**
|
||||||
|
|
||||||
|
**Signal actionnable.** Le fait qu'un Explore **re-flague la MÊME cellule cette session** (déjà
|
||||||
|
flaguée session 234409) = preuve que la convention est un **footgun non documenté** : elle brûle
|
||||||
|
des cycles d'audit et risque un « fix » erroné (ajout MANIFEST à la cellule gate-parsée → churn
|
||||||
|
#5, voire RED). Exactement le motif de la session précédente (commentaire anti-footgun remonté au
|
||||||
|
**site** dans `renderer.py`).
|
||||||
|
|
||||||
|
**Livrable — note anti-footgun in-fiche.** Ajouté au `frontend_console/AGENT.md` (juste après la
|
||||||
|
table + les puces Portails/Chat) un blockquote `> **Note de lecture — colonne « Sortie ».**`
|
||||||
|
expliquant que la cellule liste le payload seul, que chaque générateur écrit **en plus** un
|
||||||
|
`out/MANIFEST.json` **volontairement omis** par convention, que l'énumération exhaustive vit dans
|
||||||
|
docstrings/READMEs byte-gatés, et **« ne PAS l'ajouter »** (cellule regex-parsée). Rédigé pour
|
||||||
|
**éviter les regex ancrées** du gate (aucun motif `N cartes/M liens/K rôles`, aucun
|
||||||
|
`**N tests** · job CI`).
|
||||||
|
|
||||||
|
**Vérif.** `check_readme_claims.sh` exit 0 · `check_docs.sh` exit 0 · `./run_ci.sh` =
|
||||||
|
**33 PASS · 0 FAIL · 0 SKIP**. Mémoire `fiche-sortie-cell-omits-manifest-by-design` mise à jour
|
||||||
|
(récurrence + mitigation in-fiche consignées).
|
||||||
|
|
||||||
|
**Portée / anti-churn.** Édité : `frontend_console/AGENT.md` (1 blockquote de prose) + ce journal
|
||||||
|
+ mémoire. **0 artefact reconstruit**, **0 gate ajouté** (#5), **0 chiffre saisi à la main** (#6 —
|
||||||
|
la note ne contient aucun compteur), **0 commande VPS** (#8). Structure du gate inchangée (33 checks).
|
||||||
|
|||||||
Reference in New Issue
Block a user