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:
2026-03-16 23:26:38 +01:00
parent 0b0e6649c2
commit 878886cd51
110 changed files with 7656 additions and 680 deletions

View 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)