/uat — la recette utilisateur complète/uat — the full user acceptance test

Le skill /uat exécute une recette complète de l'application générée : il vérifie que chaque rôle peut faire exactement ce qu'il doit pouvoir faire (et rien de plus), sur deux axes — l'API et l'interface réelle — puis produit un rapport HTML unique avec toutes les métriques. The /uat skill runs a full acceptance pass over the generated app: it verifies that every role can do exactly what it should (and nothing more), on two axes — the API and the real UI — then produces a single-file HTML report with every metric.

Le pipeline en 5 étapesThe 5-step pipeline

ÉtapeStep Ce qui se passeWhat happens
1 · PlanPlan Un plan de test déterministe (.plantest.yml) est généré depuis la surface VIVANTE de l'app : le menu et le RBAC en base, les pages enregistrées, les contrôleurs — pas depuis la doc, depuis la réalitéA deterministic test plan (.plantest.yml) is generated from the app's LIVE surface: the DB menu and RBAC, registered pages, controllers — not from docs, from reality
2 · ProvisioningProvisioning Un tenant UAT dédié + un utilisateur par rôle sont créés via l'API admin (identifiants dans un fichier gitignoré)A dedicated UAT tenant + one user per role are created through the admin API (credentials in a gitignored file)
3 · Axe APIAPI axis Chaque endpoint × chaque rôle : statut attendu (200 pour l'autorisé, 403 pour l'interdit), durée, taille de réponseEvery endpoint × every role: expected status (200 when allowed, 403 when denied), duration, response size
4 · Axe UIUI axis Un vrai Chromium piloté comme un utilisateur : page de login, clics dans la sidebar, clics de ligne, vraies soumissions de formulaires sur données marquées UAT — temps de chargement, poids et erreurs console par pageA real Chromium driven like a user: login page, sidebar clicks, row clicks, real form submits on UAT-marked data — load time, weight and console errors per page
5 · RapportReport Rapport HTML mono-fichier, partageable tel quel avec le clientSingle-file HTML report, shareable as-is with the customer

Tout-en-un : uat-run enchaîne les 5 étapes (avec démarrage de l'app via ss dev up et gate de dérive du plan). Prérequis unique : npx playwright install chromium, une fois. All-in-one: uat-run chains the 5 steps (booting the app via ss dev up, with a plan-drift gate). Single prerequisite: npx playwright install chromium, once.

La recette élargieThe wider acceptance toolbox

  • /validate-featurevalidation ciblée d'UNE fonctionnalité (compile + tests + smoke API) — plus léger qu'un UAT complet.focused validation of ONE feature (compile + tests + API smoke) — lighter than a full UAT.
  • /smartstack-entity-auditaudit d'intégrité de la base vivante : chaque colonne *Id sans contrainte FK est détectée et classée (critique / exemptée / à examiner).integrity audit of the live database: every *Id column lacking an FK constraint is detected and classified (critical / exempt / review).
  • /reviewrevue de code multi-catégories (sécurité, architecture, performance…).multi-category code review (security, architecture, performance…).

Dans quel cas ?Which situation, which command?

Je suis dans ce cas…I am in this situation… …alors je fais…then I do
« Avant la livraison, prouver que chaque rôle voit juste »"Before delivery, prove every role sees the right things" /uat (l'axe API suffit pour les permissions ; l'axe UI ajoute l'expérience réelle)/uat (the API axis covers permissions; the UI axis adds the real experience)
« Le client veut un rapport de recette »"The customer wants an acceptance report" /uat — le rapport HTML se partage tel quel/uat — the HTML report is shareable as-is
« Je viens de finir UNE fonctionnalité »"I just finished ONE feature" /validate-feature
« Doute sur l'intégrité des données en base »"Doubts about data integrity in the database" /smartstack-entity-audit
« Une relecture sécurité avant la PR vers main »"A security pass before the PR to main" /review