# gov_dev_coach_v1.0.ps1 - PS 5.1-safe, TXT-ONLY # Coach interactif qui déroule les 7 étapes gouvernance pour une session de debug/test. param([string]$FeatureName="(à nommer)") $registry = Split-Path -Parent (Split-Path -Parent $MyInvocation.MyCommand.Definition) $launcher = Join-Path $registry 'scripts\gov_profile_launcher_v1.8.cmd' $bp = Join-Path $registry 'bootpack\bootpack.txt' function ReadText([string]$p){ if(Test-Path $p){ [IO.File]::ReadAllText($p,[Text.UTF8Encoding]::new($false)) } else { '' } } function SuggestSessionName([string]$feature){ $raw=ReadText $bp $proj=[regex]::Match($raw,'(?mi)^\s*PROJECT:\s*(.+)$').Groups[1].Value.Trim() if([string]::IsNullOrWhiteSpace($proj)){ $proj='PROJECT' } $slug=$feature; if([string]::IsNullOrWhiteSpace($slug)){ $slug='debug' } $slug=$slug -replace '[^A-Za-z0-9\-_ ]',''; $slug=$slug -replace '\s+','_' return ($proj+'__'+$slug) } function RecommendedProfile(){ $raw=ReadText $bp $proj=[regex]::Match($raw,'(?mi)^\s*PROJECT:\s*(.+)$').Groups[1].Value.Trim().ToUpper() if($proj -like 'SEEDBOX*'){ return 'SEEDBOX' } else { return 'HUB' } } $sessionName = SuggestSessionName $FeatureName $profile = RecommendedProfile() Write-Host "=== GOV DEV COACH - mode guidé ===" Write-Host "1) Ouvre un **nouveau shell** et lance le launcher :" Write-Host " $launcher" Write-Host " (le coach peut l'ouvrir pour toi) (O/N) ?" $a = Read-Host if($a -in @('O','o','Y','y')){ Start-Process -FilePath $launcher | Out-Null } Write-Host "`n2) Dans le launcher : tape **F** (Start Dev Session)" Write-Host " Quand le nom est demandé, saisis exactement :" Write-Host " $sessionName" Write-Host "`n3) Toujours dans le launcher : tape **1** (Preview)" Write-Host " Puis choisis le profil recommandé : $profile" Write-Host "`n4) Logue le bug initial : tape **L** (Log DEV BUG)" Write-Host " Utilise ces valeurs (cohérentes gouvernance) :" Write-Host " - Résumé court : $sessionName - premier échec" Write-Host " - Composant/zone : script_dev (ou nom de ton script)" Write-Host " - Détails : symptôme + extrait d'erreur (bref) + contexte (fichier/cas de test)" Write-Host "`n5) Corrige/teste ton script autant que nécessaire (tu peux boucler en Preview)." Write-Host "`n6) Quand c'est bon : tape **X** (Finalize Session)" Write-Host " Cela exporte un ingest pack (PENDING) et produit des suggestions d'asserts." Write-Host "`n7) Applique automatiquement les ASSERTS manquants au BootPack :" Write-Host " .\\scripts\\apply_kb_guard_asserts_v1.0.cmd -Write" Write-Host " Puis retourne dans le launcher : **1** Preview → **4** Validate (asserts-only) → **U** Release DevLock → **2** Write." Write-Host " (Le pack d'ingestion post-Write sera exporté automatiquement si BootPack/KB ont changé.)" Write-Host "`n=== Raccourcis utiles ===" Write-Host " - Appliquer asserts en simulation : apply_kb_guard_asserts_v1.0.cmd -Preview" Write-Host " - Appliquer asserts réel : apply_kb_guard_asserts_v1.0.cmd -Write" Write-Host " - Ouvrir le launcher : $launcher"