STAKE_SUBMISSION_CHECKLIST.md
Checklist de soumission Stake Engine — exécutée par la validation du Factory avant tout Export. Chaque item est vérifié automatiquement quand c'est possible (✓ auto) ou pointé pour revue humaine (👁 humain). Basée sur le contrat RGS officiel + notre passage réel en review (TNF, approuvé).
A. Package math (ACP)
- [ ] ✓
index.json+books_<mode>.jsonl.zst+lookUpTable_<mode>_0.csvprésents, schéma valide - [ ] ✓ RTP par mode = cible déclarée (vérif exacte book↔LUT, méthode Fraction — outil
math-tools/verify) - [ ] ✓ 0 mismatch book↔LUT, poids uint64, LF endings, zstd valide
- [ ] ✓ Wincap déclaré ET atteignable (books cappés présents)
- [ ] ✓ Hit rates sains (pas de mode quasi-100 % non-payant — leçon TNF : EDGE-only retiré)
- [ ] ✓
math.meta.jsonrégénéré depuis publish_files (hash concordant) - [ ] ✓
REVIEW-EVENTS.mdgénéré : book IDs par mode pour perte / win / big win / wincap / bonus - [ ] 👁 Cohérence thématique modes ↔ jeu (labels, coûts)
B. Frontend — contrat RGS
- [ ] ✓
rgs_url/sessionID/lang/device/currency/sociallus de l'URL (jamais en dur) - [ ] ✓ Montants micro-unités partout ; mise ∈ [minBet, maxBet], divisible par stepBet ; sélecteur =
betLevels[]du RGS - [ ] ✓ authenticate → play → end-round discipliné ; end-round appelé sur tout gain avant nouveau bet
- [ ] ✓ Reprise de round actif depuis authenticate + checkpoints
bet/event - [ ] ✓ Tous les codes d'erreur mappés UI (
ERR_IPB/IS/GLE/ATE/VAL/LOC/GEN/MAINTENANCE) + erreurs en body 200 - [ ] ✓ Flags juridiction respectés :
disabledTurbo(bouton retiré),disabledFullscreen,socialCasino - [ ] ✓ Bet Replay fonctionnel (
replay=true, zéro appel wallet authentifié) - [ ] ✓ Statique only : aucun fetch hors RGS, pas de CDN externe, pas de
blob:(glTF en data-URI si 3D)
C. Frontend — conformité contenu
- [ ] ✓ Règles : RTP par mode (buy inclus), max win, clause malfunction, description des features
- [ ] ✓ Paytable complète, valeurs liées à la mise courante
- [ ] ✓ Confirmations : bonus buy + autoplay (avec conditions d'arrêt)
- [ ] ✓ Balance/mise/gain visibles en permanence, formatés par devise (XGC/XSC inclus)
- [ ] ✓ Mode social : 0 résidu de wording restreint (bet/pays/buy/cash/$) — scan auto UI + textes cuits 👁
- [ ] ✓ Pas de célébration de gain ≤ mise ; pas de near-miss hors maths
- [ ] ✓ i18n : langues déclarées complètes, fallback
enpropre - [ ] 👁 Rien qui vise les mineurs ; personnages fictifs (jamais un groupe réel — position Cool Kids)
D. Qualité & perf
- [ ] ✓ Budgets PERFORMANCE_BUDGET.md respectés (rapport perf joint)
- [ ] ✓ Smoke Playwright vert : landing → spin → gain → bonus → replay, en 5 viewports (portrait+landscape)
- [ ] ✓ 0 erreur console sur le parcours complet ; 0 asset 404
- [ ] ✓ Pièges Safari testés (filter+transform, background-clip+scale, clip-path+filter, audio unlock, AudioContext resume)
- [ ] ✓ Build prod SANS devtools (mock/forces/simulation absents du bundle — vérif par scan du bundle)
- [ ] ✓ Diff visuel vs baseline approuvée (pour une resoumission)
E. Packaging
- [ ] ✓ Zip frontend :
index.htmlà la RACINE +assets/(structure validée TNF v2) ;art-src/exclu - [ ] ✓ Zip math : contenu de
publish_files/à la racine - [ ] ✓ Thumbnails marketing (tile 512², portrait 3:4)
- [ ] ✓ Changelog + rapport de validation joints
- [ ] 👁 Validation humaine finale — l'Export ne publie JAMAIS en production tout seul
F. Post-soumission (process, hérité de l'expérience TNF)
- [ ] 👁 3 reviewers, moyenne arrondie ; seuil de publication 4,5/9 pts
- [ ] 👁 Si < seuil : traiter les tags reviewers comme un cahier des charges, corriger, Request Rerating (lock 3 jours)
- [ ] 👁 Feedback détaillé : ~24 h (3★) / ~1 semaine (2★)