DOC
Audit pré-release complet avec Black Emperor
Lancer un audit exhaustif de code, performance et accessibilité avant release
Audit pré-release complet avec Black Emperor
Contexte
Vous êtes prêt à shipper mais vous voulez une garantie : audit complet du code, performance web et accessibilité WCAG 2.1 AA. Black Emperor en mode pre-release lance trois audits en parallèle (code-auditor, perf-auditor, a11y-auditor), consolide les résultats et génère un GO/NO-GO explicite.
Prérequis
- Projet compilé et testable (
npm run builddoit fonctionner) - Tous les fichiers
.mdcritiques doivent exister :docs/spec.md,docs/todo.md - Accès aux outils :
ghCLI (GitHub), optionnel mais recommandé - État du git propre (pas de changements non stashés) ou acceptez la vérification
Étapes
1. Invoquer Black Emperor en mode pré-release
/ulk:blackemperor mode=release
# ou
pre-release
# ou
/ulk:pre-release
2. Phase 1 : Vérification du contexte
Black Emperor vérifie :
- L’existence et le format de
docs/todo.md - L’état du répertoire (git clean ou dirty)
- La présence des dépendances d’audit
Affichage attendu :
🎬 Black Emperor — Mode PRE-RELEASE
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Todo : ✅ docs/todo.md (Kanban, 47 items)
Git state : ✅ clean (main, a3f8c2d)
Dependencies: ✅ (code-auditor, perf-auditor, a11y-auditor détectés)
Audit cible : Violations WCAG 2.1 AA + Core Web Vitals + sécurité code
Durée estimée : 90–120 min
Parallélisme : code + perf + a11y simultanément
3. Phase 2 : Audits parallèles
Black Emperor lance trois sous-agents :
Code Auditor :
- Scan des vulnérabilités (OWASP)
- Qualité du code (complexity, dead code)
- Types TypeScript (coverage, any leaks)
- Patterns potentiellement dangereux
Perf Auditor :
- Bundle size vs budget cible
- Core Web Vitals (LCP, INP, CLS)
- Requests N+1 et lazy loading
- Temps de réponse API
A11y Auditor :
- WCAG 2.1 AA criteria (keyboard, aria, color contrast)
- Automatisé (axe-core) + manuel
- Critères critiques vs recommandations
Chaque agent retourne un rapport structuré.
4. Phase 3 : Consolidation et scoring
Black Emperor produit une matrice de complétude :
╔════════════════════════════════════════════════════════════╗
║ AUDIT PRE-RELEASE — Résumé Exécutif ║
╠════════════════════════════════════════════════════════════╣
║ ║
║ Code Audit : 8/10 (2 critiques détectées) ║
║ Performance : 7/10 (LCP 3.2s → objectif 2.5s)║
║ Accessibility (WCAG AA) : 9/10 (1 contraste insuffisant) ║
║ ║
║ Score global : 8/10 (Bon, 1 blocker) ║
║ ║
╠════════════════════════════════════════════════════════════╣
║ GO/NO-GO : 🟡 CONDITIONAL GO ║
║ Raison : 2 critiques code (auth bypass risk) à fixer ║
╚════════════════════════════════════════════════════════════╝
5. Phase 4 : Création des tâches
Black Emperor ajoute automatiquement à docs/todo.md :
- Todos pour les violations critiques (blocked state)
- Recommandations pour les améliorations (todo state)
- Lien vers le rapport détaillé
docs/reports/audit-pre-release-YYYYMMDD.md
Exemple de sortie
📊 Rapport d'Audit — pre-release-20260414
Code Security
❌ [CRITICAL] SQL injection possible dans lib/db.ts:42
❌ [CRITICAL] Exposed API key in env.example
⚠️ [WARNING] Unused dependency: lodash (70KB unused)
Performance
✅ Bundle size : 145 KB (budget: 200 KB) → OK
⚠️ LCP : 3.2 s (target: 2.5 s) → Optimize image loading
✅ CLS : 0.08 (target: <0.1) → OK
⚠️ INP : 150 ms (target: 200 ms) → borderline
Accessibility (WCAG 2.1 AA)
✅ Keyboard navigation
✅ Screen reader support
⚠️ Color contrast (button-danger): 3.5:1 (target: 4.5:1)
✅ Form labels
Go/No-Go Decision
→ 2 CRITICAL fixes required before ship
→ 3 RECOMMENDED improvements (post-release OK)
→ Add 2–3 hours to fix critiques et redéployer
Variantes
- Variante A : Focus uniquement critiques (Mode Rapide) — Ajoutez
--critical-onlypour skipper les recommandations et réduire le temps à ~45 min - Variante B : Audit sans modification des docs — Ajoutez
--no-todo-updatesi vous voulez les rapports sans modifierdocs/todo.md - Variante C : Comparaison pré/post (Regression Testing) — Si un audit antérieur existe, Black Emperor compare et reporte l’évolution des scores
Agents enchaînés
Flux linéaire mais avec parallélisme interne :
blackemperor (18) mode=release
├─ code-auditor (02) → Phase parallèle
├─ perf-auditor (07) → Phase parallèle
├─ a11y-auditor (06) → Phase parallèle
└─ [consolidation] → matrice + GO/NO-GO + rapport → docs/reports/
Après le GO : optionnel de lancer ship mode ou 2b3 (08) pour simplification finale.
Troubleshooting
| Symptôme | Cause probable | Résolution |
|---|---|---|
| ”todo.md format not recognized” | Format legacy au lieu de Kanban | Black Emperor convertit automatiquement via kanban-converter, ou éditez manuellement en Kanban |
| Audits qui timeout (>2h) | Projet très volumineux (>1000 fichiers) | Fragmentez : code audit seul, puis perf, puis a11y en sessions séparées |
| A11y report incomplet | Outils manquants (axe-core, pa11y) | Black Emperor propose installation automatique, sinon npm install -D axe-core pa11y |
| Performance metrics inconsistent | Dev mode vs production build | Utilisez le build npm run build et vérifiez les fichiers .next/ ou dist/ |
Voir aussi
./01-bruce-from-scratch.md— Démarrer un projet avec Bruce (entrée préalable)./02-blackemperor-pre-release.md— Cette fiche./06-perf-auditor.md— Audit performance avancé (Core Web Vitals en détail)./05-a11y-audit.md— Audit WCAG 2.1 AA completagents/orchestrators/18-blackemperor.md— Documentation complète de Black Emperoragents/_shared/auditor-base.md— Base commune à tous les auditors