??param([switch]$Preview,[switch]$Write) # chemins $here = $PSScriptRoot; if(-not $here){ $here = Split-Path -Parent $MyInvocation.MyCommand.Path } $registry = Split-Path -Parent $here $rulesDir = Join-Path $registry 'rules' $target = Join-Path $rulesDir 'DEVLOCK-DEBUGKIT-RULE_v1.0.txt' # safe write helper (profil-aware encodage/BOM) . (Join-Path $here 'safe_write_text_v1.0.ps1') # contenu ASCII (pas d'accents ni d'em-dash pour eviter tout mojibake pendant le dev) $lines=@( '=== DEV-LOCK + DEBUG-KIT -- RULE v1.0 ===', 'File : DEVLOCK-DEBUGKIT-RULE_v1.0.txt', ('Date : {0}' -f (Get-Date -Format s)), 'Format : TXT-ONLY (UTF-8 no BOM, CRLF)', 'Scope : Tous projets gouvernes (HUB, SEEDBOX)', '', '# OBJECTIF', 'Garantir un traitement systematique et tra?able de chaque bug remonte, sans dependance au shell, et sans commits tant que la session nest pas finalisee. Source de verite = assertions dans [KB_GUARD_ASSERTS] (mode asserts-only).', '', '# INVARIANTS', '- TXT-ONLY ; SAFE-WRITE ; pas dedition manuelle des fichiers gouvernance.', '- Gate asserts-only avant tout Write.', '- DEV-LOCK : aucun commit tant que la session est active.', '- Ingest pack obligatoire quand BootPack/KB changent.', '', '# DECLENCHEUR (OBLIGATOIRE)', 'A CHAQUE bug remonte par lutilisateur :', '-> Lassistant declenche DEBUG-KIT + passage en DEV-LOCK.', '', '# PROCEDURE (7 ETAPES)', '1) Nouveau shell -> lancer le launcher', '2) Choisir F (Dev-Lock) et nommer la session', '3) Lancer le profil en Preview', '4) Logger le bug (L) via le coach', '5) Retester jusqua correction', '6) Finaliser la session (K), commit autorise', '7) Regenerer KB_GUARD_ASSERTS et relancer Preview global', '' ) $text = ($lines -join "`r`n") Write-Host ('== WRITE DEVLOCK-DEBUGKIT-RULE ==') Write-Host ('Target : '+$target) if($Preview -and -not $Write){ Write-Host 'Mode PREVIEW: aucune ecriture.'; exit 0 } if($Write){ if(!(Test-Path $rulesDir)){ New-Item -ItemType Directory -Force -Path $rulesDir | Out-Null } $res = SafeWrite-Text -Path $target -Content $text Write-Host ('Backup : '+$res.bak) Write-Host ('SHA tmp/fin: {0} / {1}' -f $res.shaTmp,$res.shaFinal) Write-Host 'STATUS=WRITE-OK' exit 0 } Write-Host 'Aucun switch specifie. Utilise -Preview ou -Write.'; exit 1