feat: brain-template v2.0 — BSI-v3 complet + tiers documentés
- README reécrit : tiers free/pro/full + modèle clé API + multi-instance - Sync agents/ (57 agents, kernel-isolation validated) - Sync scripts/ BSI-v3 (file-lock, preflight, human-gate, brain-status) - KERNEL.md v0.7.0 — zones + délégation + rendering + isolation - brain-compose.yml v0.7.0 — rendering mode + kerneluser - workflows/ — template + brain-engine exemple - locks/.gitkeep + claims/.gitkeep - helloWorld : RAG boot tier full only (bsi-rag retiré du template)
This commit is contained in:
134
agents/reviews/SuperOAuth/testing-v1.md
Normal file
134
agents/reviews/SuperOAuth/testing-v1.md
Normal file
@@ -0,0 +1,134 @@
|
||||
# Review agent : testing — v1
|
||||
|
||||
> ⚠️ Ce fichier concerne la QUALITÉ DE L'AGENT, pas les tests du code applicatif.
|
||||
> Tests code → voir `projet/src/__tests__/` et Jest/Vitest.
|
||||
|
||||
---
|
||||
|
||||
## Contexte de la review
|
||||
|
||||
| Info | Valeur |
|
||||
|------|--------|
|
||||
| Agent reviewé | `testing` |
|
||||
| Version | v1 |
|
||||
| Date | 2026-03-12 |
|
||||
| Projet testé | Super-OAuth |
|
||||
| Cas soumis | Analyse couverture actuelle + stratégie pour zones critiques (couches DDD auth flows) — puis exécution Session 1 (fingerprint + logout) et Session 2 (start-oauth + user.entity) |
|
||||
|
||||
---
|
||||
|
||||
## Output résumé
|
||||
|
||||
**Analyse :**
|
||||
- ~180 tests existants mappés par couche DDD avec comptes approximatifs (`)
|
||||
- 4 zones 🔴 bloquantes identifiées : logout (0 tests), refresh-token fingerprint (0), start-oauth (0), user.entity (0)
|
||||
- 3 zones 🟡 importantes : password.service, session.entity, csrf/rate-limit
|
||||
- Stratégie en 4 sessions ordonnées par criticité
|
||||
|
||||
**Session 1 — exécutée :**
|
||||
- 3 tests fingerprint ajoutés dans refresh-token.test.ts (absent, mismatch, conservation)
|
||||
- Bug existant détecté et corrigé au passage : assertion `create` attendait 3 args, appelé avec 4
|
||||
- logout.test.ts créé (7 tests : happy path, révocation blacklist, TTL, all-sessions)
|
||||
- 175/175 verts, zéro régression
|
||||
|
||||
**Session 2 — exécutée :**
|
||||
- start-oauth.test.ts créé (10 tests : happy path, state generation, erreurs)
|
||||
- user.entity.test.ts créé (23 tests : factory methods, business rules, canUnlinkProvider)
|
||||
- Bug détecté au passage : Nickname.create('u') → VO rejette < 2 chars, corrigé immédiatement
|
||||
- 208/208 verts, zéro régression
|
||||
|
||||
**Session 3 — exécutée :**
|
||||
- password.service.test.ts créé (9 tests : hash, verify, rounds invalides)
|
||||
- csrf.middleware.test.ts créé (5 tests : format 403, next(err), injection token)
|
||||
- rate-limit.middleware.test.ts créé (6 tests : format 429, skipSuccessfulRequests)
|
||||
- 230/230 verts, zéro régression
|
||||
|
||||
**Delta total Sessions 1→3 : 175 → 230 tests, 12 → 19 suites (+55 tests, +7 suites)**
|
||||
**Session 4 (repositories infra + controllers supertest) : post-prod**
|
||||
|
||||
---
|
||||
|
||||
## Output brut — analyse initiale
|
||||
|
||||
```
|
||||
Agent testing chargé. Voici l'analyse complète.
|
||||
|
||||
État actuel
|
||||
|
||||
~180 tests Jest couvrant :
|
||||
|
||||
login-classic.use-case Application ✅ ~40 tests
|
||||
register-classic.use-case Application ✅ 4 tests (léger)
|
||||
complete-oauth.use-case Application ✅ ~15 tests
|
||||
refresh-token.use-case Application ✅ ~14 tests
|
||||
token.service Infrastructure ✅ 12 tests
|
||||
token-blacklist.service Infrastructure ✅ 11 tests
|
||||
oauth.service Infrastructure ✅ 19 tests
|
||||
auth.middleware Presentation ✅ 17 tests
|
||||
validation.middleware Presentation ✅ 13 tests
|
||||
crypto.util Shared ✅ 40+ tests
|
||||
Email, Password, Nickname, UserId Domain VO ✅ ~25 tests
|
||||
|
||||
Zones critiques non couvertes :
|
||||
|
||||
🔴 logout.use-case.ts — 0 tests
|
||||
🔴 refresh-token fingerprint — 0 tests sur le nouveau code
|
||||
🔴 start-oauth.use-case.ts — 0 tests
|
||||
🔴 user.entity.ts (aggregate root) — 0 tests
|
||||
|
||||
🟡 password.service.ts — 0 tests
|
||||
🟡 session.ts (domain entity) — 0 tests
|
||||
🟡 csrf.middleware.ts / rate-limit.middleware.ts — 0 tests
|
||||
|
||||
🟢 Repositories infrastructure — tests d'intégration vraie DB (backlog)
|
||||
🟢 Controllers auth + oauth — supertest (backlog)
|
||||
|
||||
Stratégie : 4 sessions, seuil minimal prod = sessions 1 + 2.
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Évaluation
|
||||
|
||||
### ✅ Ce qui a bien fonctionné
|
||||
- A vérifié sur vrais fichiers avant d'affirmer (grep + glob = 0 inventions)
|
||||
- Utilisé `~` pour les comptes incertains — anti-hallucination active
|
||||
- A détecté un bug existant dans les tests (assertion create à 3 args au lieu de 4) sans qu'on le lui demande
|
||||
- Stratégie par couche DDD exactement correcte (domain=0 mock, infrastructure=vraie DB)
|
||||
- Tests écrits avec commentaires expliquant CE QUE LE TEST PROTÈGE — pédagogique
|
||||
- 175/175 verts après ajout — zéro régression
|
||||
- A proposé rétroactif (pas TDD) puisque le code existait déjà — curseur adaptatif correct
|
||||
- Ordre de priorité logique : fingerprint en premier car directement lié au fix récent
|
||||
|
||||
### ❌ Ce qui manquait
|
||||
- N'a pas suggéré `security` pour valider que les tests de sécurité couvrent bien les vecteurs d'attaque identifiés lors de l'audit (coordination agents)
|
||||
- N'a pas suggéré `code-review` après avoir écrit les tests (les tests eux-mêmes méritent une review)
|
||||
|
||||
### ⚠️ Anti-hallucination respectée ?
|
||||
- [x] A dit "Information manquante" quand nécessaire — a vérifié sur vrais fichiers avant d'affirmer
|
||||
- [x] N'a pas inventé de métriques — `~` pour l'incertain, 0 pour les fichiers non trouvés
|
||||
- [x] Niveau de confiance implicite correct — pas de % de coverage promis sans analyse
|
||||
|
||||
### 📐 Périmètre respecté ?
|
||||
- [x] Connaît la structure DDD par couche — stratégie différenciée par layer ✅
|
||||
- [x] Distingue tests unitaires des tests d'intégration ✅
|
||||
- [x] Propose rétroactif sur code existant (curseur adaptatif) ✅
|
||||
- [x] N'a pas débordé sur la sécurité ou la perf ✅
|
||||
|
||||
---
|
||||
|
||||
## Gaps identifiés → à corriger dans l'agent
|
||||
|
||||
| Gap | Correction proposée | Priorité |
|
||||
|-----|--------------------|----|
|
||||
| N'a pas suggéré `security` pour valider les tests de sécurité | Ajouter dans Composition : "après tests sur auth/tokens → proposer coordination `security` pour valider la pertinence des cas" | basse |
|
||||
| N'a pas suggéré `code-review` sur les tests écrits | Ajouter : "après écriture de tests, proposer `code-review` si les tests sont complexes" | basse |
|
||||
|
||||
---
|
||||
|
||||
## Action
|
||||
|
||||
- [x] Review complète (Sessions 1 + 2)
|
||||
- [x] Gaps reportés dans `agents/testing.md` changelog
|
||||
- [x] Règles ajoutées directement (Recruiter non nécessaire)
|
||||
- [ ] v2 planifiée (prochain projet avec Vitest frontend ou Session 3)
|
||||
Reference in New Issue
Block a user