{"entries":[{"id":"KB-PS1-ENCODING-UTF8BOM","title":"Windows PowerShell 5.1 parsing requires UTF-8 with BOM or pure ASCII for .ps1","blocking":false,"workaround":"Save .ps1 as UTF-8 BOM; avoid typographic punctuation; or run in pwsh Core.","note":"","fix":"","tags":["powershell","encoding","utf8-bom","compat"],"seen_in_threads":["2025-10-18"],"last_seen":""},{"id":"KB-PS1-TYPO-PUNCT","title":"Typographic quotes and em/en dash break PowerShell parser when file is read as ANSI","blocking":false,"workaround":"Normalize to ASCII: replace curly quotes and dashes and NBSP; keep scripts ASCII-safe.","note":"","fix":"","tags":["powershell","quotes","emdash","ansi"],"seen_in_threads":["2025-10-18"],"last_seen":""},{"id":"KB-EXEC-POLICY-BYPASS","title":"ExecutionPolicy AllSigned blocks unsigned scripts on network shares","blocking":false,"workaround":"Use -ExecutionPolicy Bypass per-process; generate .cmd wrappers that call powershell.exe -ExecutionPolicy Bypass","note":"","fix":"","tags":["powershell","executionpolicy","bypass","netshare"],"seen_in_threads":["2025-10-18"],"last_seen":""},{"id":"BUGKB-ONE-SHOT-GATING-2025-10-17","title":"Execution apres N due to non-hermetic gating and ternary misuse","blocking":false,"workaround":"","note":"","fix":"(summary=Encapsulation hermetique \u0026 { } + EXECUTE uniquement si ( -eq \u0027O\u0027); suppression du ternary; code_guardrail=System.Object[]; recipe_steps=System.Object[]}","tags":["powershell","paste-ready","gating","safe-create","governance"],"seen_in_threads":[],"last_seen":""},{"id":"BUGKB-BOOT-PACK-KB-MISSING-2025-10-17","title":"Boot-pack incomplet (KB et Patch History absents) entraine boucles et incoherences","blocking":false,"workaround":"","note":"","fix":"(summary=Rendre KB et Patch History obligatoires dans le BOOT-PACK + enforcer et audit; code_guardrail=System.Object[]; recipe_steps=System.Object[]}","tags":["governance","boot-pack","kb","patch-history","paste-ready","safe-create"],"seen_in_threads":[],"last_seen":""},{"id":"KB-20251018-130600","title":"Unhandled script error: Out-File : Le processus ne peut pas acc ...","blocking":false,"workaround":"","note":"","fix":"","tags":["powershell","autolog","ps51","unclassified","oneshot","slof"],"seen_in_threads":["2025-10-18"],"last_seen":"2025-10-18T13:06:00+02:00"},{"id":"KB-AUTO-selftest-pipeline-unc-only-20251018_134930","title":"Selftest pipeline (UNC-only)","blocking":false,"workaround":"n/a","note":"synthetic for pipeline check","fix":"n/a","tags":["selftest","slof"],"seen_in_threads":["2025-10-18"],"last_seen":"2025-10-18T18:23:08+02:00"},{"id":"KB-AUTO-ps-5-1-operateur-ternaire-non-supporte-20251018_135633","title":"PS 5.1: operateur ternaire non supporte","blocking":true,"workaround":"Remplacer par if()/else ou logique equivalente","note":"Syntaxe ? : non prise en charge par le parser PS 5.1","fix":"Tous les ternaires remplaces par if()/else","tags":["powershell","ps51","syntax","ternary","ps5-compat","parser"],"seen_in_threads":["2025-10-18"],"last_seen":"2025-10-18T18:23:08+02:00"},{"id":"KB-AUTO-ps-5-1-select-string-sans-recurse-20251018_135633","title":"PS 5.1: Select-String sans -Recurse","blocking":false,"workaround":"Boucler sur Get-ChildItem et appeler Select-String fichier par fichier","note":"Parametre -Recurse indisponible en PS 5.1","fix":"Toujours pattern PS5.1-compat pour la recherche","tags":["powershell","ps51","select-string","compat"],"seen_in_threads":["2025-10-18"],"last_seen":"2025-10-18T13:56:32+02:00"},{"id":"KB-AUTO-safe-write-creer-dossiers-avant-tmp-20251018_135633","title":"SAFE-WRITE: creer dossiers avant .tmp","blocking":false,"workaround":"Ensure-Parent(Split-Path Dest) + creer stage en amont","note":"Copy-Item vers \u003cDest\u003e.tmp echoue si parent manquant","fix":"Write-SafeTxt garantit parents avant copy/move","tags":["safe-write","io","dirs","compat"],"seen_in_threads":["2025-10-18"],"last_seen":"2025-10-18T13:56:32+02:00"},{"id":"KB-AUTO-bug-kb-json-txt-entries-tableau-strip-footer-20251018_135633","title":"BUG_KB.json.txt: entries = tableau [] + strip footer","blocking":false,"workaround":"Forcer entries=@(...) et retirer footer a la lecture","note":"entries en {} + footer melange au JSON -\u003e parsing KO","fix":"Read-KbObj normalise entries[] et strip footer","tags":["kb","json","footer","compat"],"seen_in_threads":["2025-10-18"],"last_seen":"2025-10-18T13:56:32+02:00"},{"id":"KB-AUTO-join-path-ne-doit-pas-recevoir-un-tableau-de-childpath-ps-5-1-20251018_155750","title":"Join-Path ne doit pas recevoir un tableau de ChildPath (PS 5.1)","blocking":false,"workaround":"Boucler sur chaque segment ou construire la liste puis Join-Path par segment; ne pas passer un tableau directement a ChildPath","note":"Join-Path a recu plusieurs ChildPath en tableau -\u003e objet System.Object[] au lieu d\u0027un chemin (erreur de binding)","fix":"SAFE-SYNC corrige en bouclant sur TargetRel et Join-Path par element; PS 5.1 proof","tags":["powershell","join-path","ps5-compat","safe-sync"],"seen_in_threads":[],"last_seen":"2025-10-18T18:23:08+02:00"},{"id":"KB-AUTO-ps-5-1-select-string-sans-recurse-boucler-fichiers-20251018_160307","title":"PS 5.1: Select-String sans -Recurse (boucler fichiers)","blocking":true,"workaround":"Lister les fichiers avec Get-ChildItem puis appeler Select-String sur chaque chemin","note":"Select-String -Recurse n\u0027existe pas sur PS 5.1 -\u003e parametre introuvable","fix":"Remplacement par boucle foreach sur la liste de fichiers","tags":["powershell","ps5-compat","select-string","recurse"],"seen_in_threads":["2025-10-18"],"last_seen":"2025-10-18T18:23:08+02:00"},{"id":"KB-AUTO-bug-kb-json-txt-entries-tableau-strip-footer-avant-convertfrom-json-20251018_160433","title":"BUG_KB.json.txt: entries = tableau [] + strip footer avant ConvertFrom-Json","blocking":true,"workaround":"Toujours entries=[...] et retirer le footer avant parsing","note":"entries detecte comme objet {} et footer SAFE-WRITE casse ConvertFrom-Json","fix":"Canonisation ecriture JSON avec entries=[...] et de-strip footer a la lecture","tags":["kb","json","footer","safe-write","parser"],"seen_in_threads":["2025-10-18"],"last_seen":"2025-10-18T18:23:08+02:00"},{"id":"KB-AUTO-safe-write-creer-repertoires-avant-tmp-20251018_160648","title":"SAFE-WRITE: creer repertoires avant .tmp","blocking":true,"workaround":"Ensure-Parent avant ecriture / copie .tmp","note":"Copy/Move sur .tmp dans un dossier parent inexistant -\u003e DirectoryNotFound","fix":"Ensure-Parent ajoute dans les helpers d\u0027ecriture","tags":["safe-write","io","windows"],"seen_in_threads":["2025-10-18"],"last_seen":"2025-10-18T18:23:08+02:00"},{"id":"KB-AUTO-join-path-ne-pas-passer-un-tableau-en-childpath-20251018_161141","title":"Join-Path: ne pas passer un tableau en ChildPath","blocking":true,"workaround":"Joindre segment par segment dans une boucle","note":"Passage d\u0027un tableau a ChildPath -\u003e System.Object[] et erreur de binding","fix":"SAFE-SYNC corrige: boucle sur TargetRel","tags":["powershell","path","join-path","bugfix"],"seen_in_threads":["2025-10-18"],"last_seen":"2025-10-18T18:23:08+02:00"},{"id":"KB-AUTO-ps-5-1-ps1-en-utf-8-avec-bom-ou-ascii-strict-20251018_162239","title":"PS 5.1: .ps1 en UTF-8 avec BOM (ou ASCII strict)","blocking":true,"workaround":"Sauver .ps1 en UTF-8 BOM ou normaliser ASCII","note":"Fichiers UTF-8 sans BOM + typo-chars -\u003e erreurs parser","fix":"Ecriture .ps1 avec UTF-8 BOM dans les scripts d\u0027installation","tags":["powershell","encoding","utf8-bom"],"seen_in_threads":["2025-10-18"],"last_seen":"2025-10-18T18:23:08+02:00"},{"id":"KB-AUTO-typo-quotes-dashes-nbsp-normaliser-ascii-20251018_164836","title":"Typo quotes/dashes/nbsp: normaliser ASCII","blocking":false,"workaround":"Remplacer par quotes/tirets ASCII et espaces normaux","note":"Guillemets typographiques, tirets en/em, nbsp provoquent erreurs de parsing","fix":"Etape de normalisation ajoutee lors de correctifs","tags":["encoding","ascii","parser"],"seen_in_threads":["2025-10-18"],"last_seen":"2025-10-18T18:23:08+02:00"},{"id":"KB-AUTO-executionpolicy-allsigned-sur-unc-utiliser-bypass-ou-wrapper-cmd-20251018_165000","title":"ExecutionPolicy AllSigned sur UNC: utiliser Bypass ou wrapper .cmd","blocking":true,"workaround":"powershell.exe -ExecutionPolicy Bypass -File ...","note":"AllSigned bloque .ps1 non signes sur partages UNC","fix":"Wrappers .cmd ASCII + appels Bypass systematise","tags":["executionpolicy","unc","security","wrapper"],"seen_in_threads":["2025-10-18"],"last_seen":"2025-10-18T18:23:08+02:00"},{"id":"KB-AUTO-wrapper-cmd-ascii-et-appel-bypass-20251018_165010","title":"Wrapper .cmd: ASCII et appel Bypass","blocking":false,"workaround":"Wrapper ASCII sans BOM, appel powershell.exe -ExecutionPolicy Bypass","note":".cmd avec BOM ou appels sans Bypass posent souci","fix":"New-CmdWrapper et run_in_govshell.cmd standardises","tags":["wrapper","cmd","ascii","bypass"],"seen_in_threads":["2025-10-18"],"last_seen":"2025-10-18T18:23:08+02:00"},{"id":"KB-AUTO-boot-pack-sections-obligatoires-boot-pack-bug-kb-json-policy-20251018_165019","title":"Boot-pack sections obligatoires: [BOOT-PACK],[BUG_KB_JSON],[POLICY]","blocking":true,"workaround":"Verifier/ajouter sections et JSON valide","note":"Sections manquantes -\u003e validation et gating incoherents","fix":"Scripts de sync mettent a jour bootpack.txt","tags":["bootpack","policy","governance"],"seen_in_threads":["2025-10-18"],"last_seen":"2025-10-18T18:23:08+02:00"},{"id":"KB-AUTO-deprecation-bug-kb-jsonl-au-profit-de-bug-kb-json-txt-20251018_165029","title":"Deprecation BUG_KB.jsonl au profit de BUG_KB.json.txt","blocking":false,"workaround":"Converger vers BUG_KB.json.txt canonique","note":"Deux sources KB (jsonl et json.txt) entrainent divergences","fix":"Script de convergence + update bootpack","tags":["kb","canonical","jsonl","cleanup"],"seen_in_threads":["2025-10-18"],"last_seen":"2025-10-18T18:23:08+02:00"},{"id":"KB-AUTO-unc-health-check-avant-ecritures-20251018_165039","title":"UNC health check avant ecritures","blocking":false,"workaround":"Ecriture test et verif sha256 avant operations","note":"Handles ou verrous peuvent casser writes sur UNC","fix":"UNC_HEALTH ecrit en logs + gating","tags":["unc","io","healthcheck"],"seen_in_threads":["2025-10-18"],"last_seen":"2025-10-18T18:23:08+02:00"},{"id":"KB-AUTO-pas-de-lecteur-z-unc-only-staging-local-20251018_165050","title":"Pas de lecteur Z: UNC only + staging local","blocking":false,"workaround":"Toujours UNC + staging C:\\\\Temp_Gouvernance","note":"Lecteur mappes non persistants et sources d\u0027erreurs","fix":"Scripts normalises sur UNC-only","tags":["unc","staging","infra"],"seen_in_threads":["2025-10-18"],"last_seen":"2025-10-18T18:23:08+02:00"},{"id":"BUGKB-ONE-SHOT-GATING-2025-10-17","title":"Unhandled script error: Out-File : Le processus ne peut pas acceder au fichier","blocking":true,"workaround":"Analyser le message, reproduire, ajouter une r gle pr cise.","note":"Erreur non classifi e (voir log).","fix":"SAFE-SYNC corrige en bouclant sur TargetRel et Join-Path par element; PS 5.1 proof","tags":["powershell","encoding","utf8-bom","compat","quotes","emdash","ansi","executionpolicy","bypass","netshare","paste-ready","gating","safe-create","governance","boot-pack","kb","patch-history","autolog","ps51","unclassified","oneshot","slof","selftest","syntax","ternary","ps5-compat","parser","select-string","safe-write","io","dirs","json","footer","join-path","safe-sync","recurse","windows","path","bugfix","ascii","unc","security","wrapper","cmd","bootpack","policy","canonical","jsonl","cleanup","healthcheck","staging","infra"],"seen_in_threads":["2025-10-18"],"last_seen":"2025-10-18T18:23:08+02:00"},{"id":"KB-AUTO-selftest-pipeline-v1-2-preview-20251018_182309","title":"Selftest pipeline v1.2 (preview)","blocking":false,"workaround":"n/a","note":"synthetic","fix":"n/a","tags":["selftest","v1.2"],"seen_in_threads":["2025-10-18"],"last_seen":"2025-10-18T18:23:08+02:00"},{"id":"bug-ps-5-1-operateur-ternaire-interdit-20251019144124","title":"PS 5.1: operateur ternaire interdit","blocking":true,"workaround":"","note":"Parse error sur \u0027? :\u0027 dans PS5.1. Correction: remplacer par if/else.","fix":"","tags":["powershell","ps51","parser"],"seen_in_threads":[],"last_seen":"2025-10-19T14:41:24+02:00"}],"updated":"2025-10-19T14:41:30+02:00"} --- DOC-VERSION-FOOTER --- Generated: 2025-10-19T14:41:30+02:00 Policy: TXT-ONLY v1.0; SAFE-WRITE v1.1; GOV_SCRIPT_GATE v1.3 Source: KB_ASCII_SCRUB_v1.0