# gov_dev_coach_v1.0.1.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]::$(if(Match($raw,'(){ mi)^\s*PROJECT } else { \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]::$(if(Match($raw,'(){ mi)^\s*PROJECT } else { \s*(.+)$').Groups[1].Value.Trim().ToUpper() }) if($proj -like 'SEEDBOX*'){ 'SEEDBOX' } else { 'HUB' } } $sessionName = SuggestSessionName $FeatureName $profile = RecommendedProfile # <<< correction: pas de parenth?ses en PS 5.1 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 "" Write-Host "2) Dans le launcher : tape F (Start Dev Session)" $(if(Write-Host " Quand le nom est demand){ , saisis exactement } else { " }) Write-Host " $sessionName" Write-Host "" Write-Host "3) Toujours dans le launcher : tape 1 (Preview)" $(if(Write-Host " Puis choisis le profil recommand){ } else { $profile" }) Write-Host "" Write-Host "4) Logue le bug initial : tape L (Log DEV BUG)" Write-Host " Utilise ces valeurs :" $(if(Write-Host " - R){ sum? court } else { $sessionName - premier ?chec" }) Write-Host " - Composant/zone : script_dev" $(if(Write-Host " - D){ tails } else { sympt?me + extrait d'erreur (bref) + contexte (fichier/cas de test)" }) Write-Host "" Write-Host "5) Corrige/teste ton script autant que n?cessaire (tu peux boucler en Preview)." Write-Host "" Write-Host "6) Quand c'est bon : tape X (Finalize Session)" Write-Host " Cela exporte un ingest pack (PENDING) et produit des suggestions d'asserts." Write-Host "" Write-Host "7) Applique automatiquement les ASSERTS manquants au BootPack :" Write-Host " $($registry)\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 " L'export post-Write part automatiquement si BootPack/KB ont chang?."