[DTP-Worker] Sprint 8 · buffer · Fiches agents/voix : gate d'ANCRAGE du pied de page « Voix Amélie QC (multilingual_v2) pour toute interaction OTOIA » — répété dans 11 des 13 fiches 03_agents/*/AGENT.md (hors faisabilite/publiciste) — sur CLAUDE.md §Architecture cible

Le triplet persona/qualif/voix (Amélie · QC · multilingual_v2) recopié à la main
dans chaque pied de page était HORS de tout gate : le bloc persona Chat OTOIA
(063234) ne confronte que le module chat_otoia, aveugle aux 11 fiches ; le bloc
configs runtime note même que le « QC » est « gardé en littéral — non gaté ici ».

Bloc ajouté (check_readme_claims.sh) : RE-DÉRIVATION INDÉPENDANTE du triplet de
§Architecture cible (regex qui ne fige PAS le qualificatif en dur ⇒ QC→… mord ici,
pas seulement via l'INTROUVABLE du bloc persona) · 3 tokens == CLAUDE.md exigés sur
chaque fiche portant le pied de page · pied de page malformé & évaporation totale du
recensement échouent AUSSI (#6). 6 morsures vérifiées (CLAUDE.md voix v2→v3 : 11
fiches + cascade persona · CLAUDE.md qualif QC→BC : 11 fiches, bloc indépendant ·
seo voix · crm persona · bim malformé · surface évaporée) · restauré green · 7 gates
re-verts. ci/README.md (récap + paragraphe détaillé) 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 17:44:15 +00:00
parent b9e333ceef
commit e874717f0f
3 changed files with 170 additions and 1 deletions
+56
View File
@@ -1,5 +1,61 @@
# Activity Log · 2026-08-01 · Claude Code DTP
## Session `20260801_173409` · Buffer S8 · Fiches agents/pied de page voix OTOIA : le **PIED DE PAGE CANONIQUE** « - Voix **Amélie QC** (**multilingual_v2**) pour toute interaction OTOIA » — répété à l'identique dans **11 des 13 fiches** `03_agents/*/AGENT.md` (toutes sauf `faisabilite`/`publiciste`, qui n'orchestrent pas OTOIA) — RECOPIE À LA MAIN les **trois** tokens de la contrainte **CLAUDE.md §Architecture cible** « Voix Amélie QC (multilingual_v2) » : prénom persona (`Amélie`), qualificatif de marque (`QC`), modèle de voix ElevenLabs (`multilingual_v2`). Cette surface était **HORS de tout gate**.
**Tâche** : **Sprint 8 · buffer** (DevOps CI/CD · QA). Roadmap fonctionnellement
close ; poursuite de la série anti-dérive d'ANCRAGE à CLAUDE.md (classe
[[claude-md-constant-anchor-gate]]). **Même patron EXACT** que la persona/capabilities
`frontend/chat_otoia` ancrées sur §Architecture cible, la marque SEO org (§Entités) et
les tokens branding (#4) — appliqué à une **surface distincte encore ungated** : les 11
pieds de page de fiches, jamais confrontés à CLAUDE.md.
**Dérive silencieuse fermée** :
- `03_agents/{bim,crm,devops,erpnext_backend,frontend_console,ifc_speckle,mobile,
onapi_legal,qa,rendu,seo}/AGENT.md` — ligne « - Voix Amélie QC (multilingual_v2)
pour toute interaction OTOIA ».
- Source faisant autorité : **CLAUDE.md §Architecture cible** (ligne 30) « Voix
Amélie QC (multilingual_v2) ».
- Piège : le bloc « Chat OTOIA · IDENTITÉ de la persona » RE-DÉRIVE bien persona+voix
de CLAUDE.md mais ne confronte QUE le module `chat_otoia` (spec + `out/` + son propre
README + l'oracle du test) — **AVEUGLE aux 11 pieds de page** ; le bloc « configs
runtime » note même explicitement que le « QC » est « gardé en littéral — non gaté
ici ». Le jour où ElevenLabs déprécie `multilingual_v2` (→`multilingual_v3`) ou qu'on
renomme la persona/le qualificatif dans CLAUDE.md, ces 11 fiches annonceraient EN
SILENCE une voix/persona que le mandat ne prescrit plus, chacune affirmant orchestrer
« toute interaction OTOIA » avec le mauvais modèle. Aucune suite `tests/` (FONCTIONS
du builder, jamais la prose des fiches) n'attrape ce « vert trompeur ».
- **État courant** : **aucune valeur périmée** — les 11 pieds de page recoupent
CLAUDE.md §Architecture cible exactement (anti-invention #6, rien à réécrire). Le
défaut est la **surface ungated**.
**Gate ajouté** (`ci/check_readme_claims.sh`, nouveau bloc « Fiches agents · pied de
page voix » après le bloc persona/capabilities Chat OTOIA) : on RE-DÉRIVE le triplet
(persona · qualif · voix) de CLAUDE.md §Architecture cible **INDÉPENDAMMENT** du parse
persona amont (dont la regex fige `QC` en dur — un renommage du qualificatif doit mordre
ICI, pas seulement via l'INTROUVABLE du bloc persona) ; pour CHAQUE fiche git-trackée
portant le pied de page, on exige ses **3 tokens == CLAUDE.md**. Une fiche avec prose
« interaction OTOIA » mais pied de page malformé échoue ; la **disparition totale** du
recensement échoue AUSSI (surface évaporée = régression #6). Direction fiche→CLAUDE.md.
**6 morsures vérifiées** : CLAUDE.md `multilingual_v2→v3` (mord les 11 fiches +, en
cascade, le bloc persona amont — 15 fails, l'ancre est vive) · CLAUDE.md qualif `QC→BC`
(mord les 11 pieds de page — bloc INDÉPENDANT, ne s'appuie pas sur le parse persona qui
fige QC) · fiche `seo` voix `v2→v1` (1 fail) · fiche `crm` persona `Amélie→Sophie`
(1 fail) · fiche `bim` pied de page malformé, parenthèses retirées (1 fail INTROUVABLE) ·
pied de page retiré de TOUTES les fiches (surface évaporée, 1 fail) ; restauré = green :
11 pieds de page == CLAUDE.md · 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é « Pied de
page Voix Amélie QC (multilingual_v2) des fiches agents ancré sur CLAUDE.md
§Architecture cible ») 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 ; le runtime réel
de la voix OTOIA reste côté VPS).
- **Auto-score 4Big** : 96/100.
## Session `20260801_170404` · Buffer S8 · Domaine QA/audit_4big : la colonne **« Fait vérifié »** de la table du barème (`qa/audit_4big/README.md:24,26`) — les **DEUX SEUILS STRUCTURELS** que le scorer applique réellement (`DOC` « ≥ **400 octets** » · `TESTS` « ≥ **8 méthodes** `def test_*` »), transcrits À LA MAIN — étaient **HORS de tout gate**. Le bloc BARÈME existant recompute la 2e colonne (**poids** : DOC 20 · CONTRAT 20 · TESTS 25 · CLI 15 · HANDOFF 20) mais son regex (`| \`DOC\` | 20 |`) est **AVEUGLE à la 3e cellule** ; ces deux nombres sont DATA-DERIVED de `quality_spec.json[thresholds]` (`min_doc_bytes`/`min_test_methods`).
**Tâche** : **Sprint 8 · buffer** (DevOps CI/CD · QA). Roadmap fonctionnellement