mirror of
https://github.com/MaksTinyWorkshop/_Assistant_Lead_Tech
synced 2026-04-07 05:51:41 +02:00
leadtech-bmad-mcp: close lot 3 rollout and gates config
This commit is contained in:
@@ -15,9 +15,9 @@ Mode d'usage :
|
||||
|
||||
| Lot | Objectif | Statut |
|
||||
| --- | --- | --- |
|
||||
| Lot 1 | Contrat MCP v1 + metadonnees `knowledge` + compatibilite loader | En cours avance |
|
||||
| Lot 1 | Contrat MCP v1 + metadonnees `knowledge` + compatibilite loader | Termine |
|
||||
| Lot 2 | Index compile local + branchement de la recherche MCP dessus | Termine |
|
||||
| Lot 3 | Gates configurables + packaging + rollout BMAD | A faire |
|
||||
| Lot 3 | Gates configurables + packaging + rollout BMAD | Termine |
|
||||
|
||||
---
|
||||
|
||||
@@ -56,7 +56,7 @@ Stabiliser le contrat du MCP et preparer un corpus `knowledge/` assez structure
|
||||
|
||||
- [x] Verifier si `knowledge/backend/patterns/prisma.md` doit aussi entrer dans le noyau pilote
|
||||
- [x] Verifier si `knowledge/frontend/risques/tests.md` doit aussi entrer dans le noyau pilote
|
||||
- [ ] Faire un commit de cloture explicite du Lot 1
|
||||
- [x] Faire un commit de cloture explicite du Lot 1
|
||||
|
||||
### Critere de fin
|
||||
|
||||
@@ -105,19 +105,19 @@ Sortir les regles du code dur, rendre l'installation reproductible, puis cabler
|
||||
|
||||
### Taches
|
||||
|
||||
- [ ] Extraire les gates dans une config versionnee
|
||||
- [ ] Distinguer advisory et blocking dans la config
|
||||
- [ ] Ajouter des tests sur les faux positifs/faux negatifs des gates
|
||||
- [ ] Stabiliser l'installation `pip install -e ".[dev]"`
|
||||
- [ ] Ajouter une doc machine vierge / quickstart
|
||||
- [ ] Preparer un rollout BMAD advisory
|
||||
- [ ] Definir 2-3 blocages stricts seulement apres validation
|
||||
- [x] Extraire les gates dans une config versionnee
|
||||
- [x] Distinguer advisory et blocking dans la config
|
||||
- [x] Ajouter des tests sur les faux positifs/faux negatifs des gates
|
||||
- [x] Stabiliser l'installation `pip install -e ".[dev]"`
|
||||
- [x] Ajouter une doc machine vierge / quickstart
|
||||
- [x] Preparer un rollout BMAD advisory
|
||||
- [x] Definir 2-3 blocages stricts seulement apres validation
|
||||
|
||||
### Livrables attendus
|
||||
|
||||
- `config/gates.yaml`
|
||||
- quickstart dev local
|
||||
- procedure de rollout BMAD
|
||||
- `docs/quickstart_dev_local.md`
|
||||
- `docs/rollout_bmad_advisory.md`
|
||||
|
||||
### Critere de fin
|
||||
|
||||
@@ -142,6 +142,16 @@ Sortir les regles du code dur, rendre l'installation reproductible, puis cabler
|
||||
- `search_knowledge()` et `search_global_docs()` relis d'abord sur l'index avec fallback scan
|
||||
- script `leadtech-bmad-build-index` ajoute
|
||||
- tests d'integration indexes ajoutes
|
||||
- commit explicite de cloture Lot 1 + Lot 2: `bafc872`
|
||||
- Lot 3 demarre
|
||||
- gates textuelles extraites dans `config/gates.yaml`
|
||||
- distinction advisory / blocking portee par la config
|
||||
- chargeur `gates.py` ajoute avec override `LEADTECH_GATES_CONFIG`
|
||||
- couverture de tests gates et serveur etendue
|
||||
- install `pip install -e ".[dev]"` reverifiee sur venv propre
|
||||
- quickstart local ajoute
|
||||
- procedure de rollout BMAD advisory ajoutee
|
||||
- shortlist de 3 blocages stricts recommandes documentee
|
||||
|
||||
---
|
||||
|
||||
|
||||
53
mcp/leadtech_bmad_mcp/docs/quickstart_dev_local.md
Normal file
53
mcp/leadtech_bmad_mcp/docs/quickstart_dev_local.md
Normal file
@@ -0,0 +1,53 @@
|
||||
# leadtech-bmad-mcp — Quickstart dev local
|
||||
|
||||
Objectif : installer et verifier rapidement le serveur MCP sur une machine vierge ou un nouvel environnement local.
|
||||
|
||||
## Prerequis
|
||||
|
||||
- Python `>= 3.10`
|
||||
- acces au repo Lead_tech
|
||||
- shell POSIX
|
||||
|
||||
## Installation
|
||||
|
||||
```bash
|
||||
cd /srv/helpers/_Assistant_Lead_Tech/mcp/leadtech_bmad_mcp
|
||||
python3.10 -m venv .venv
|
||||
source .venv/bin/activate
|
||||
pip install -e ".[dev]"
|
||||
```
|
||||
|
||||
## Verification minimale
|
||||
|
||||
```bash
|
||||
source .venv/bin/activate
|
||||
pytest tests -q
|
||||
leadtech-bmad-build-index
|
||||
```
|
||||
|
||||
Attendus :
|
||||
|
||||
- tous les tests passent
|
||||
- un fichier `.leadtech_mcp_index.json` est genere a la racine de `LEADTECH_ROOT`
|
||||
|
||||
## Lancement local
|
||||
|
||||
```bash
|
||||
source .venv/bin/activate
|
||||
export LEADTECH_ROOT=/srv/helpers/_Assistant_Lead_Tech
|
||||
leadtech-bmad-mcp
|
||||
```
|
||||
|
||||
En dev local hors `/srv/helpers`, `LEADTECH_ROOT` peut pointer vers le checkout courant.
|
||||
|
||||
## Variables utiles
|
||||
|
||||
- `LEADTECH_ROOT` : racine de la base Lead_tech
|
||||
- `LEADTECH_GATES_CONFIG` : chemin alternatif vers `config/gates.yaml`
|
||||
- `LEADTECH_MCP_ALLOW_WRITE=1` : active les writes controles (`95_a_capitaliser.md`, memoire projet)
|
||||
|
||||
## Depannage
|
||||
|
||||
- `ModuleNotFoundError: yaml` : relancer `pip install -e ".[dev]"` pour installer `PyYAML`
|
||||
- `command not found: pytest` : verifier que `.venv` est active
|
||||
- index ecrit au mauvais endroit : verifier `LEADTECH_ROOT`
|
||||
155
mcp/leadtech_bmad_mcp/docs/rollout_bmad_advisory.md
Normal file
155
mcp/leadtech_bmad_mcp/docs/rollout_bmad_advisory.md
Normal file
@@ -0,0 +1,155 @@
|
||||
# leadtech-bmad-mcp — Rollout BMAD advisory
|
||||
|
||||
Ce document decrit comment brancher `leadtech-bmad-mcp` dans BMAD sans introduire de blocage automatique au demarrage.
|
||||
|
||||
## Objectif
|
||||
|
||||
- injecter la guidance Lead_tech au bon moment
|
||||
- rendre les gates visibles dans les artefacts BMAD
|
||||
- observer les faux positifs avant d'activer des blocages stricts
|
||||
|
||||
## Principe
|
||||
|
||||
Phase de depart :
|
||||
|
||||
- **advisory only**
|
||||
- aucune story ne s'arrete automatiquement sur la seule base du MCP
|
||||
- la decision finale reste humaine
|
||||
|
||||
Le MCP doit d'abord servir a :
|
||||
|
||||
- augmenter le niveau de vigilance
|
||||
- homogeniser la lecture des patterns et risques
|
||||
- detecter les cas manifestement fragiles
|
||||
|
||||
## Points d'injection BMAD
|
||||
|
||||
### 1. Analyst — entree de story
|
||||
|
||||
Appel recommande :
|
||||
|
||||
```txt
|
||||
get_guidance(domain, task_type="analysis", story_text=...)
|
||||
```
|
||||
|
||||
Sortie a reporter dans la story :
|
||||
|
||||
- patterns a appliquer
|
||||
- risques a eviter
|
||||
- docs prioritaires a lire
|
||||
|
||||
### 2. Builder — avant implementation
|
||||
|
||||
Appel recommande :
|
||||
|
||||
```txt
|
||||
validate_plan(domain, plan_text, agent_role="builder", strict=false)
|
||||
```
|
||||
|
||||
Regle advisory :
|
||||
|
||||
- les `blocking_issues` sont traces mais ne bloquent pas encore automatiquement
|
||||
- le Builder doit repondre explicitement a chaque point dans son plan ou son Dev Agent Record
|
||||
|
||||
### 3. Builder — apres diff
|
||||
|
||||
Appel recommande :
|
||||
|
||||
```txt
|
||||
validate_patch(domain, diff_text, changed_files, strict=false)
|
||||
```
|
||||
|
||||
Regle advisory :
|
||||
|
||||
- ajouter un resume dans le Dev Agent Record
|
||||
- si `blocking_issues` apparait, le statut cible doit devenir `review`, pas `done`
|
||||
|
||||
### 4. Reviewer — revue finale
|
||||
|
||||
Appels recommandes :
|
||||
|
||||
```txt
|
||||
emit_checklist(agent_role="reviewer", domain, story_text)
|
||||
validate_patch(domain, diff_text, changed_files, strict=false)
|
||||
```
|
||||
|
||||
Regle advisory :
|
||||
|
||||
- un `blocking_issues` n'est pas un veto automatique
|
||||
- mais il impose une justification explicite si la PR/story est acceptee
|
||||
|
||||
### 5. Curator — apprentissage
|
||||
|
||||
Appels recommandes :
|
||||
|
||||
```txt
|
||||
propose_capitalization(..., dry_run=true)
|
||||
triage_capitalization()
|
||||
```
|
||||
|
||||
## Trace minimale a imposer
|
||||
|
||||
Chaque story doit contenir une section courte `Leadtech MCP Gates` avec :
|
||||
|
||||
- timestamp
|
||||
- tools appeles
|
||||
- resume de `must_do`, `red_flags`, `blocking_issues`
|
||||
- decision humaine prise
|
||||
|
||||
Format minimal :
|
||||
|
||||
```txt
|
||||
Leadtech MCP Gates
|
||||
- 2026-03-31 16:20
|
||||
- get_guidance / validate_plan / validate_patch
|
||||
- blocking_issues: 0
|
||||
- red_flags: AuthGuard non visible dans le diff
|
||||
- decision: review demandee avant done
|
||||
```
|
||||
|
||||
## Observabilite a suivre pendant la phase advisory
|
||||
|
||||
Sur 10 a 20 stories, relever :
|
||||
|
||||
- nombre de `blocking_issues`
|
||||
- nombre de faux positifs
|
||||
- nombre de cas ou le MCP a evite une regression reelle
|
||||
- domaines les plus stables (`backend`, `workflow`, etc.)
|
||||
|
||||
Objectif de sortie de phase advisory :
|
||||
|
||||
- faux positifs faibles sur les gates promues
|
||||
- vocabulaire compris par les agents BMAD
|
||||
- section `Leadtech MCP Gates` remplie de facon reguliere
|
||||
|
||||
## Blocages stricts recommandes apres validation
|
||||
|
||||
Ne promouvoir en strict que des regles avec signal fort et faible ambiguite.
|
||||
|
||||
### Blocage strict 1
|
||||
|
||||
- `validate_patch` : `Patch sans fichier source: seulement des artefacts BMAD.`
|
||||
- Pourquoi : signal tres fort, directement aligne avec `story-tracking.md`
|
||||
|
||||
### Blocage strict 2
|
||||
|
||||
- `validate_patch` : `Session modifiee sans expiresAt visible dans le diff.`
|
||||
- Pourquoi : gate backend precise, issue recurrente et couteuse
|
||||
|
||||
### Blocage strict 3
|
||||
|
||||
- `validate_plan` : `Plan backend sans reference aux contrats partages.`
|
||||
- Pourquoi : aligne avec la regle contracts-first, utile surtout sur monorepos TS fullstack
|
||||
|
||||
## Ce qu'il ne faut pas promouvoir trop tot
|
||||
|
||||
- warning `requestId` sur texte libre si la formulation du plan/diff est trop partielle
|
||||
- warning `AuthGuard` sur des extraits de diff incomplets
|
||||
- suggestions de tests si la story est purement documentaire
|
||||
|
||||
## Sequence recommandee
|
||||
|
||||
1. phase advisory sur toutes les stories backend + workflow
|
||||
2. promotion du blocage strict `bmad-only artifacts`
|
||||
3. promotion du blocage strict `sessions sans expiresAt`
|
||||
4. promotion eventuelle du blocage `contracts-first` si le contexte repo le justifie
|
||||
Reference in New Issue
Block a user