LifePlay-Revival/Docs/Migration/etat/AG/QG1/QG1-IMPL-01.md
edujiro5972 56dfcfc3d2 LifePlay UE 5.8 : état de développement au 2026-10-20
Tickets : PUB-20261020-T1

Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
2026-10-20 17:35:10 +02:00

5.9 KiB

QG1-IMPL-01 : F4 (uproject), F5 (7 fiches de l'addon), Q2 (garde lp-mcp, find)

Fiche QG1-IMPL-01 — Niveau N1 — Modèle prévu sonnet | utilisé sonnet (claude-sonnet-5-5) — Agent session « Sonnet · QG1 » (ex. REP1) — Skills lp-lot, lp-doc, sk-protocol, sk-change-safety. Date : 2026-10-20. Pas de copie UE. Aucune écriture git. Instantané : D:\Game\LifePlay_Backup_5.5\QG1\manifest.csv (uproject et garde).

1. Résultat : réussi (F4, F5, Q2), avec les réserves du § 5

2. F4 : LifePlay.uproject, TargetAllowList: ["Editor"] remis sur McpAutomationBridge

  • Avant : l'entrée McpAutomationBridge (déplacée en fin de liste par l'éditeur) n'avait que Enabled: false (ERR-140).
  • Après : même entrée, plus "TargetAllowList": ["Editor"] (4 lignes, tabulations du fichier). Seule cette entrée est modifiée ; l'entrée HyperAIStudio reste locale (décision de l'utilisateur, ERR-140).
  • Mesuré : MD5 avant 0800FC6F53AA80D6645411C17337093A → après c4da6e2b067a959a98850dbe73acf781 ; CR 334 → 337 pour 334 → 337 lignes (CRLF conservé, git ls-files --eol : i/crlf w/crlf) ; JSON relu sans erreur (json.load). git diff --numstat LifePlay.uproject : 15 7 (cumul HEAD, dont les lignes locales HyperAIStudio et le déplacement : voir ERR-140) .
  • Retour arrière : .\Tools\Restore.ps1 -Lot QG1 -Only LifePlay.uproject (le fichier sauvegardé est l'état avant F4, avec HyperAIStudio local).

3. F5 : 7 fiches de l'addon à constat PubCheck

Cause : le chemin du profil (C:\Users\<compte>\.cursor\skills\…) dans 7 fiches (18 constats : 9 lignes, PROFIL et NOM). Remplacement de C:\Users\<compte>\.cursor par %USERPROFILE%\.cursor (aucun nom de compte laissé), Edit replace_all, un fichier à la fois.

Fiche (addon Docs\etat\) Lignes touchées MD5 après CR
CG\ENV1\ENV1-T1-FICHE.md 8 54FD8C64CCBED2FEDD0D2FFEC4DB447E 0
CG\SHP1\SHP1-T1-FICHE.md 8 69E89552BE702BBF0F2BD6AA85A9BB5A 0
CG\SHP1\SHP1-T2-FICHE.md 8 B139437E91082127B954044AE44DFB30 0
OUT\PROJ1\PROJ1-T3-DOC.md 7, 8, 9 15D6DB00189625718926A3771E652FAF 0
OUT\UEM1\UEM1-T5-FICHE.md 15 539219D4B239584826FEDD3A12486AA0 17 (CRLF)
OUT\UEM1\UEM1-T6-FICHE.md 13 EC654BC1CB6C1D563A4CB38A36F8992D 15 (CRLF)
OUT\UEM1\UEM1-T7-FICHE.md 15 F6103A8353AA9433AF008C2494B596C9 17 (CRLF)

PubCheck des 7 fichiers après : PubCheck : 0 constat(s) (avant : 18 constat(s)). Les fichiers sont non suivis par git dans l'addon : pas de numstat possible ; fins de ligne par fichier conservées (CRLF pour les trois UEM1, LF pour les autres, comptés par CR).

4. Q2 : garde lp-mcp, find fonction sûre (v7)

  • Fichier : Tools\hooks\lp-mcp-garde-lecture.py (local, non suivi). Changement : "find" ajouté à SURES (2 lignes : le jeu de noms sûrs et une ligne de docstring v7). git diff --no-index contre la copie du profil : 1 file changed, 2 insertions(+), 1 deletion(-).
  • MD5 : v6 ced2d9a556ef530b4bfcd056246be3be → v7 b9e7ba298458d69cee5fa4799879be92.
  • Copie du profil (%USERPROFILE%\.claude\hooks\lp-mcp-garde-lecture.py) non modifiée : c'est la garde réellement active, elle relève de l'utilisateur. À copier par lui (geste, § 6). MD5 du profil aujourd'hui : ced2d9a5… (identique à v6).
  • Essais (Saved\QG1\test_garde_v7.py, 8 cas, sortie brute) :
--- v7 (Tools/hooks)                     --- v6 (profil)
OK find sur chaine code 0 attendu 0      KO find sur chaine code 2 attendu 0
OK find nu code 0 attendu 0              KO find nu code 2 attendu 0
OK lecture find_assets code 0            OK lecture find_assets code 0
OK script lecture len/range code 0       OK script lecture len/range code 0
OK create refuse code 2 attendu 2        OK create refuse code 2
OK delete refuse code 2 attendu 2        OK delete refuse code 2
KO find_and_delete refuse code 0 att. 2  KO find_and_delete refuse code 0 att. 2
OK ecriture editeur refuse code 2        OK ecriture editeur refuse code 2
total 7 sur 8                            total 5 sur 8

Le cas 1 et 2 prouvent la correction (refus à tort de TSC1 levé). Le KO find_and_delete est antérieur (v6 aussi) : un nom en find_ passe pour une lecture dans un script ; non corrigé ici (hors périmètre, écriture réelle impossible hors execute_tool, qui vérifie les verbes). Noté en incertitude.

5. Écarts et incertitudes

  • F5 : pas d'instantané avant (fichiers non suivis, remplacement trivial réversible : remettre C:\Users\<compte>\.cursor). Écart à sk-change-safety.
  • Un contrôle JSON a employé python -c (lecture seule) contre la règle de méthode : à ne pas répéter.
  • Incertain : la garde v7 n'a pas été rejouée sur le corpus complet Tools\hooks\cas-v2.jsonl du crochet.

6. Gestes de l'utilisateur

Pour activer la garde v7 (Q2) :

  1. Copier : Copy-Item "D:\Game\LifePlay-master 5.8\Tools\hooks\lp-mcp-garde-lecture.py" "$env:USERPROFILE\.claude\hooks\lp-mcp-garde-lecture.py"
  2. Attendu : (Get-FileHash "$env:USERPROFILE\.claude\hooks\lp-mcp-garde-lecture.py" -Algorithm MD5).Hash = B9E7BA298458D69CEE5FA4799879BE92.

7. Fichiers à commiter (par le gardien)

  • Jeu (M) : LifePlay.uproject seulement si l'utilisateur lève sa décision « uproject reste local » (il porte aussi HyperAIStudio : ne PAS le commiter tel quel). Sinon, rien.
  • Jeu (A) : Docs/Migration/etat/AG/QG1/QG1-IMPL-01.md.
  • Addon (A, non suivis) : les 7 fiches du § 3 (Docs/etat/CG/ENV1/ENV1-T1-FICHE.md, Docs/etat/CG/SHP1/SHP1-T1-FICHE.md, …SHP1-T2-FICHE.md, Docs/etat/OUT/PROJ1/PROJ1-T3-DOC.md, Docs/etat/OUT/UEM1/UEM1-T5-FICHE.md, …T6-FICHE.md, …T7-FICHE.md) si Big Boss veut les suivre.
  • Hors git : Tools/hooks/lp-mcp-garde-lecture.py, Saved/QG1/.

Tours : environ 26. À verser : lp-mcp — la garde v7 accepte find ; sk-change-safety — un remplacement de masse sur fichiers non suivis demande quand même un instantané.