# Log Phase 2 partielle — Leadtech MCP

Suivi cumulatif des stories qui ont declenche au moins un gate Leadtech MCP en mode strict.

## Statut

- **Phase** : 2 partielle (strict cible)
- **Demarree le** : 2026-05-07
- **Stories observees** : 0 / 10 minimum avant evaluation Phase 3 (la story TEST-OBS-001 ci-dessous est une validation de chaine, hors decompte)
- **Derniere mise a jour** : 2026-06-24
- **Note** : chaine MCP validee bout-en-bout le 2026-06-24 (serveur teste, gates Phase 2 OK, MCP declare dans Claude Code pour app-alexandrie et RL799_V2). Le compteur produit demarre a la premiere VRAIE story.

## Tableau recap

| # | Date | Projet | Story | Domaine | Tools strict | Blocking | Faux+ | Vrai+ | Override | Decision |
| --- | --- | --- | --- | --- | --- | --- | --- | --- | --- | --- |
| T0 | 2026-06-24 | _(validation chaine)_ | TEST-OBS-001 | backend | validate_plan, validate_patch | 2 | 0 | 2 | non | n/a (story factice) |

_(T0 = validation de chaine, hors decompte des 10 stories produit. Le decompte reel commence a la ligne 1.)_

Legendes :

- **Tools strict** : tools appeles en `strict=true` (ex: `validate_plan`, `validate_patch`)
- **Blocking** : nombre de `blocking_issues` automatiques declenches
- **Faux+** : nombre de blocking_issues juges faux positifs apres analyse humaine
- **Vrai+** : nombre de blocking_issues qui ont evite une regression reelle
- **Override** : oui / non
- **Decision** : accepted | overridden | rejected

## Compteurs par regle (auto-mise-a-jour manuelle)

| Regle | Source | Declenchements | Faux+ | Vrai+ | Status |
| --- | --- | --- | --- | --- | --- |
| Patch sans fichier source: artefacts BMAD seuls | `server.py` hardcode | 0 | 0 | 0 | strict actif |
| `backend_session_expires_at` | `gates.yaml` | 1 | 0 | 1 | strict actif |
| `backend_contracts` | `gates.yaml` strict_only | 1 | 0 | 1 | strict actif via dev-story |
| `backend_request_id` (plan) | `gates.yaml` | 0 | 0 | 0 | advisory (candidat Phase 3) |
| `backend_request_id` (patch) | `gates.yaml` | 0 | 0 | 0 | advisory (candidat Phase 3) |
| `backend_auth_guard` | `gates.yaml` | 0 | 0 | 0 | advisory (candidat Phase 3) |
| `parallel_dependencies` | `gates.yaml` | 0 | 0 | 0 | advisory |
| `test_strategy` | `gates.yaml` | 0 | 0 | 0 | advisory |
| `tests_visible_in_diff` | `gates.yaml` strict_only | 0 | 0 | 0 | advisory |

## Notes detaillees

_(coller ici un releve par story, en utilisant `template_releve_story.md`. Les plus recentes en haut.)_

---

# Releve story 2026-06-24 — (validation chaine) — TEST-OBS-001

> Story factice destinee a valider la chaine MCP <-> BMAD 6.9 bout-en-bout. **Hors decompte des 10 stories produit.**

## Contexte

- **Date debut** : 2026-06-24
- **Date cloture** : 2026-06-24
- **Projet** : aucun (simulation du cycle dev-story, MCP appele directement)
- **Story** : TEST-OBS-001 — Ajouter l'endpoint de creation de session utilisateur
- **Domaine** : `backend`
- **Agents intervenus** : simulation dev-story (get_guidance + validate_plan + validate_patch strict)

## Tools MCP appeles

| Tool | Mode | Quand | Resultat |
| --- | --- | --- | --- |
| `get_guidance` | advisory | entree story | confidence=HIGH, 8 must_do, 4 red_flags, 12 matched_docs |
| `validate_plan` | strict=true | avant impl | 1 blocking_issue |
| `validate_patch` | strict=true | apres diff | 1 blocking_issue |

## Findings auto agreges

- `blocking_issues` (count: 2) :
  - `backend_contracts` — "Plan backend sans reference aux contrats partages." (via validate_plan)
  - `backend_session_expires_at` — "Session modifiee sans expiresAt visible dans le diff." (via validate_patch)
- `matched_docs` les plus utiles : `knowledge/backend/patterns/contracts.md`, `knowledge/backend/patterns/nestjs.md`

## Evaluation humaine

### Faux positifs

Aucun.

### Vrais positifs (regression evitee)

- **Regle** : `backend_contracts` — le plan ne reference aucun contract Zod partage (viole Contracts-First / No-DTO).
- **Regle** : `backend_session_expires_at` — la session est creee sans `expiresAt` (viole la regle "Sessions avec TTL").

### Override humain

- **Override applique ?** : non (story factice, pas de cloture reelle)

### Decision finale

- n/a — story de validation de chaine. Les 2 gates se sont declenches comme attendu sur un cas volontairement non conforme.

## Apprentissage

- **A capitaliser ?** : non (comportement attendu, deja documente dans le contrat MCP)
- **Observation chaine** : serveur MCP operationnel sur Mac (py3.10 venv), handshake 7 tools / 6 resources OK, gates Phase 2 discriminants (0 faux+ sur plan conforme teste en parallele). MCP declare dans Claude Code pour app-alexandrie et RL799_V2 (actif a la prochaine session ouverte dans ces projets).

---

<!-- Coller chaque nouveau releve au-dessus de cette ligne -->

---
