Audit — pilier growth-web
Onzieme tour de la rotation (docs/team/roster.md, @codebase-auditor). Lecture seule sur le code. Ce tour differe des six precedents : les six piliers restants ont ete audites en une passe, a la demande. La profondeur…
Onzieme tour de la rotation (
docs/team/roster.md, @codebase-auditor).Lecture seule sur le code. Ce tour differe des six precedents : les six piliers restants ont ete audites en une passe, a la demande. La profondeur par pilier est donc moindre, et chaque document dit ou il s'arrete. La sonde commune est la meme partout : les invariants que le roster declare pour le pilier.
Perimetre :
src/app/(marketing)/**(hors intelligence et marketplace),content/**,messages/**,src/lib/seo,sitemap.ts,llms.txt.Etat du depot :
origin/maina3e23edb7, 27 aout 2026.
Ce qui a ete verifie
| Sonde | Resultat |
|---|---|
| Invariant — les six langues portent les memes cles | respecte — 9 221 cles dans chacune, exactement |
| Invariant — « aucun tiret cadratin ni demi-cadratin dans la copy » | violé |
Occurrences dans messages/ | 2 393 sur six langues |
… dont fr.json | 374 chaines (370 cadratins, 4 demi-cadratins) |
| Garde verifiant cette regle | aucune |
messages/CLAUDE.md restate-t-il la regle | non |
L'invariant i18n est tenu de facon remarquable : 9 221 cles dans les six fichiers, au caractere pres. Aucun autre pilier de la rotation n'a produit un resultat aussi net sur une contrainte de completude.
Constat 1 — la regle de copie la plus stricte du depot est violee 2 393 fois, et rien ne la verifie
Severite : faible (cosmetique), mais elle touche la premiere ligne que lisent les visiteurs et les crawlers.
→ backlog/growth-web/0069
docs/team/roster.md:292 :
« Regle de copie stricte : aucun tiret cadratin ni demi-cadratin dans la copy UI ou marketing »
messages/ est la copie UI et marketing. Denombrement :
| Fichier | Occurrences |
|---|---|
de.json | 475 |
en.json | 444 |
fr.json | 425 |
pt.json | 410 |
it.json | 342 |
es.json | 297 |
| Total | 2 393 |
Ce sont de vraies chaines de copie, pas des artefacts. Echantillon fr.json :
meta.home.description— « BoostEcom est le systeme d'exploitation IA de l'e-commerce Shopify. Connecte un store, definis une vision, et ** : ** … ». C'est la meta description de la page d'accueil : la phrase que voient tous les moteurs et tous les crawlers IA.agents.registry.atlas.bio— « Atlas est l'agent fondateur de la plateforme BoostEcom ** : ** le systeme d'exploitation de votre boutique ».
Aucune garde : ni script dans scripts/, ni claim dans
check-doc-claims.mjs, ni mention dans messages/CLAUDE.md. La regle vit
dans un seul document que rien ne relie a la copie qu'elle regit.
Pourquoi la regle ne peut pas etre appliquee telle qu'elle est ecrite
Un cas du denombrement mérite d'etre isole, parce qu'il change ce que devrait faire un correctif :
pricing.cards.rows.dailyBonus.values.free = "—"
La chaine est un tiret cadratin, seul. C'est un usage typographique legitime : le tiret de tableau qui veut dire « sans objet ». Une garde qui interdit le caractere sans distinguer les usages casserait cette cellule, ou forcerait a l'ecrire autrement pour de mauvaises raisons.
L'invariant vise clairement le tiret comme ponctuation de phrase, la tournure qui fait sonner un texte comme genere. Il ne vise pas le tiret comme glyphe. Ecrit en absolu (« aucun »), il ne distingue pas les deux, et c'est ce qui le rend inapplicable en l'etat autant que sa violation le rend inopérant.
Ce que cet audit n'a pas couvert
- Les deux autres moities de l'invariant de copie, « pas de tournures
It's not just X, it's Y ni Whether you're A or B » : non sondees. Elles
demandent une lecture, pas un
grep. sitemap.tsetllms.txt— la regle « une page publique nouvelle y entre » n'a pas ete verifiee page par page.sitemap.tsa ete lu, mais seulement pour l'invariantintelligencedu tour precedent.content/**(MDX) — non ouvert, alors que c'est la surface editoriale principale et donc la plus exposee a la meme regle.src/lib/seo, les JSON-LD, l'OG : non ouverts.- La qualite de la traduction : la sonde compte des cles, elle ne lit pas ce qu'elles disent. Six fichiers equilibres peuvent porter six textes mauvais.