PRE-ACCEPTANCE LINTER CHECKLIST v1.0 — PS 5.1 (lecture-seule) But - Valider manuellement qu’un BootPack est sain avant d’exécuter l’acceptance Gate. - Zéro devinette : on coche, ou on corrige. A) Structure BootPack (OBLIGATOIRE) [ ] Une seule occurrence de [BUG_KB_JSON]. [ ] Une seule occurrence de [BUG_KB_JSON_POINTER]. [ ] Fences du snapshot EXACTS : ligne seule “```” avant et après le JSON (sans langage). [ ] JSON entre fences parsable (ConvertFrom-Json OK), multi‑ligne recommandé. [ ] AUCUN BOM U+FEFF dans le JSON embarqué (vérifier visuellement si doute). [ ] Pas d’autres blocs [BUG_KB_JSON] résiduels en fin de fichier. B) Pointeur (OBLIGATOIRE) [ ] Clés CANONIQUES : “Path=”, “SHA256=”, “Entries=”. (Tolérance lecture “:”, écriture “=”.) [ ] Path au format UNC non quoté (ex: \DS-918\…); guillemets acceptés. [ ] Test-Path OK (raw), OU dequoted, OU fallback \?\UNC. [ ] SHA256 = 64 hexdigits (MAJUSCULES recommandé), calculable sur le fichier KB pointé. [ ] Entries = nombre réel d’entrées dans la KB pointée. C) Encodage & EOL (OBLIGATOIRE) [ ] BootPack (.txt) : UTF‑8 sans BOM (CRLF recommandé; LF accepté). [ ] Scripts .ps1 : UTF‑8 AVEC BOM; ASCII‑safe (pas de typographiques), PS 5.1 strict. [ ] BUG_KB.json.txt : UTF‑8 sans BOM. (Ce contenu, une fois embarqué, ne doit pas injecter de BOM.) D) Sémantique & attentes (RAPPEL) - acceptance (kb_bootpack_acceptance_v1.x.ps1) lit UNIQUEMENT le snapshot embarqué. - selftest (acceptance_selftest_v1.x.ps1) lit la KB EXTERNE via le pointeur. - Cas “normal après ingest non reconstruit” : selftest.entries = N+1, acceptance.entries = N. - Cas “BootPack à jour” : acceptance/json_entries = selftest/json_entries = Entries, ptr_sha_match=True, ptr_entries_note=Entries. E) Commandes de vérif (lecture-seule) 1) Acceptance (snapshot embarqué) : powershell -NoProfile -ExecutionPolicy Bypass -File "\\DS-918\chatgpt\ChatGPT-Gouvernance-Projets\_registry\scripts\kb_bootpack_acceptance_v1.1.ps1" ` -Root "\\DS-918\chatgpt\ChatGPT-Gouvernance-Projets\_registry" 2) Selftest (KB pointée + diag) : powershell -NoProfile -ExecutionPolicy Bypass -File "\\DS-918\chatgpt\ChatGPT-Gouvernance-Projets\_registry\scripts\acceptance_selftest_v1.0.ps1" ` -BootPackPath "\\DS-918\chatgpt\ChatGPT-Gouvernance-Projets\_registry\bootpack\bootpack.txt" 3) SHA de la KB pointée : Get-FileHash -LiteralPath "\\DS-918\chatgpt\ChatGPT-Gouvernance-Projets\_registry\bug_kb\BUG_KB.json.txt" -Algorithm SHA256 | ` Select-Object -ExpandProperty Hash F) Règles de décision (quand reconstruire OFFLINE, pas via acceptance/selftest) [ ] Rebuild si acceptance.entries != selftest.json_entries. [ ] Rebuild si ptr_sha_match=False alors que selftest.KbSha est correct. [ ] Rebuild si ptr_entries_note != selftest.json_entries. [ ] Rebuild si duplication d’un des blocs ou fences incorrects. [ ] Rebuild si quelconque BOM interne détecté dans le JSON embarqué. G) Synonymes proscrits (remplacer par CANONIQUE) - “embedded/inline KB” -> SNAPSHOT ([BUG_KB_JSON]) - “pointer block / kb ptr” -> POINTEUR ([BUG_KB_JSON_POINTER]) - “hash/digest” -> SHA256 - “record count / notes” -> Entries Version: 1.0 — 2025-11-02