10 KiB
Fiche UES1-RECH-01 — Niveau N1 — Modèle prévu sonnet | utilisé claude-sonnet-5-5 — Agent lp-validator — Skills sk-protocol, lp-validate, sk-recount
UES1-RECH-01 : scénarios de déclenchement des clauses « Pas pour » (SK-ARBRE R8, idée A3) (2026-10-15)
Hors gabarit : la RECH n'a pas de gabarit dans lp-doc/gabarits.md ; sections libres, tête commune reprise.
0. Méthode et niveau de preuve
- Niveau de preuve : estimé. Analyse sur texte seulement : aucun appel de modèle, aucun essai de sélection réelle.
Je lis les descriptions avant (instantané
D:\Game\LifePlay_Backup_5.5\UES1-addon58\Tools\claude\skills\<skill>\SKILL.md, ligne 3) et après (addon actuel), plus les descriptions des skills voisins telles que listées dans la session, et je dis quel skill un agent choisirait en lisant ces seules descriptions. Le choix réel d'un modèle peut différer. - 6 skills × 3 demandes = 18 scénarios : (N) nette, (L) limite, (V) doit aller au voisin nommé par « Pas pour ».
- Essai qui trancherait (incertain → établi) : donner à
claude -p(modèle réel lu dansmodelUsage) la liste des descriptions avant, puis après, avec chaque demande, et compter le skill invoqué, 5 passes par demande. - Changement de description :
lp-mcp(clause + ligneTriggers -),lp-commandlets,lp-build,lp-validate,lp-repo(clause seule).lp-doc: description inchangée (diff de l'IMPL : hunk71a72-76, ligne 3 intacte), seule la section « Rédiger un skill » est nouvelle ; ses scénarios testent donc si cette section est atteignable. - Verdict par scénario : améliore / ne change pas / dégrade (le choix avant → après).
1. lp-mcp
Après : « … Pas pour : un commandlet ou un script pythonscript éditeur fermé (lp-commandlets), une compilation (lp-build). Triggers - MCP, unreal-mcp, Blueprint, BP_, Accessed None, call_tool, toolset. » Voisins : lp-commandlets, lp-build ; concurrent hors LifePlay : unreal-mcp (plugin Epic, déclencheurs BP_, .uproject, « in my game »).
| # | Demande | Avant | Après | Effet |
|---|---|---|---|---|
| N | « Le journal PIE montre 40 Accessed None sur BP_Person ; trie-les et pose une garde IsValid par MCP, l'éditeur est ouvert. » | lp-mcp (« Accessed None », « petit correctif Blueprint par MCP ») |
lp-mcp |
ne change pas. Le plugin unreal-mcp couvre aussi « edit a Blueprint », mais lp-mcp nomme « Accessed None » et la copie 5.8. |
| L | « Le toolset MSVC 14.50 n'est pas trouvé par UBT, que faire ? » | lp-build (« toolset MSVC » dans sa description) |
lp-build |
ne change pas, risque noté : le mot nu « toolset » est maintenant un déclencheur de lp-mcp ; la clause « Pas pour : une compilation (lp-build) » le compense. Faible dégradation possible si le modèle ne lit que Triggers -. |
| L' | « Ajoute un jeu d'outils MCP qui lit les noms d'événements d'un Blueprint. » | create-toolset (plugin) : lp-mcp sans mot « toolset » |
create-toolset ou lp-mcp (déclencheur « toolset », corps : references/toolset.md) |
améliore si le plugin Epic est désactivé (geste de l'utilisateur prévu) : lp-mcp devient atteignable ; sinon ne change pas (le plugin décrit exactement ce cas). |
| V | « Lance LPDumpFunction -Pins sur BP_Person, l'éditeur est fermé. » | lp-commandlets ou lp-mcp (« lecture … de Blueprint ») |
lp-commandlets (lp-mcp : « Pas pour … commandlet … éditeur fermé ») |
améliore |
(Le scénario L est la demande « limite » demandée par la fiche ; L' est un cas additionnel dû à la ligne Triggers - toolset.)
2. lp-commandlets
Après : « … Pas pour : un Blueprint lu ou corrigé éditeur ouvert par MCP (lp-mcp), une compilation (lp-build). » Voisins : lp-mcp, lp-build.
| # | Demande | Avant | Après | Effet |
|---|---|---|---|---|
| N | « Écris un script pythonscript qui resauvegarde tous les assets du dossier Maps, éditeur fermé. » | lp-commandlets |
lp-commandlets |
ne change pas |
| L | « Je veux lire le graphe de la fonction Foo de BP_Person ; je ne sais pas si je dois ouvrir l'éditeur. » | lp-mcp ou lp-commandlets (« dump », « lecture de Blueprint ») |
lp-commandlets si éditeur fermé, lp-mcp si ouvert : la distinction passe par l'état de l'éditeur, nommée des deux côtés |
améliore (frontière explicite) ; le « je ne sais pas » reste ambigu, l'agent doit poser la question |
| V | « L'éditeur est ouvert avec le MCP : corrige l'Accessed None de BP_Person en ajoutant un IsValid. » | lp-mcp ; lp-commandlets attire par « fix » |
lp-mcp |
améliore légèrement (lp-commandlets écarte le cas « éditeur ouvert par MCP ») |
3. lp-build
Après : « … Complète ue-cpp-build ; ne corrige rien. Validation : lp-validate. Pas pour : les règles C++ UE générales (ue-cpp-build), un commandlet seul (lp-commandlets). » Voisins : ue-cpp-build, lp-commandlets (autre voisin non nommé : lp-ue-compat).
| # | Demande | Avant | Après | Effet |
|---|---|---|---|---|
| N | « Build.ps1 s'arrête sur C2374 en compilant LifePlayEditor 5.8 ; recompile et donne le résumé compté. » | lp-build |
lp-build |
ne change pas |
| L | « Comment j'appelle RunCommandlet.ps1 pour lancer LPTestStringCompat ? » | lp-build (qui nomme RunCommandlet.ps1) ou lp-commandlets ou lp-validate (§ 3 du corps) |
lp-commandlets (« un commandlet seul ») ; lp-validate reste possible si la demande vient d'une VAL |
améliore : le piège « RunCommandlet.ps1 dans la description de lp-build » est désamorcé |
| V | « Explique-moi BuildSettingsVersion et IncludeOrderVersion dans un Target.cs, sans lien avec notre build. » | ue-cpp-build ou lp-build (« pièges de compilation ») |
ue-cpp-build (« règles C++ UE générales ») |
améliore |
4. lp-validate
Après : « … Pas pour : recompter un livrable hors fiche VAL (sk-recount), la preuve avant de clore sa propre tâche (debug-verification). » Voisins : sk-recount, debug-verification.
| # | Demande | Avant | Après | Effet |
|---|---|---|---|---|
| N | « Valide la fiche U3-VAL : recompte le build depuis le journal, rejoue LPTestStringCompat et la porte G-U3. » | lp-validate |
lp-validate |
ne change pas |
| L | « Le sous-agent dit avoir corrigé 12 fichiers ; vérifie son livrable et ses chiffres (pas de fiche VAL). » | lp-validate (« recompter », « contre-vérifier », « IMPL deliverable ») ou sk-recount |
sk-recount (« hors fiche VAL »), lp-validate encore possible via ses mots-clés |
améliore modérément : les triggers « recompter » et « contre-vérifier » restent dans lp-validate ; l'exclusion est une seule phrase en fin de description |
| V | « Avant de dire que j'ai fini mon correctif, quelle preuve dois-je rejouer ? » | debug-verification (« terminé », « PASS ») ou lp-validate (« PASS », « FAIL », « verifying ») |
debug-verification |
améliore |
5. lp-repo
Après : « … Triggers - commit, tag, pin, push, ticket, gardien, verrou, NUMEROS, ue5.8, lot/DC3-atelier, Content/Modules, LifePlay-Sandbox. Pas pour : la méthode générale du gardien unique hors LifePlay (sk-repo). » Voisin : sk-repo.
| # | Demande | Avant | Après | Effet |
|---|---|---|---|---|
| N | « Prépare le ticket au gardien : commit de l'addon 5.8, puis pin dans le jeu. » | lp-repo |
lp-repo |
ne change pas |
| L | « Comment un gardien unique et un verrou évitent-ils les collisions de commit entre agents ? » (sans dire LifePlay) | lp-repo ou sk-repo (mots communs : gardien, verrou, ticket) |
sk-repo si l'agent lit la clause « méthode générale » |
améliore légèrement ; reste ambigu, car « hors LifePlay » n'aide pas quand la question est générale mais posée dans le dépôt LifePlay |
| V | « Je monte le dépôt d'un autre projet : une seule session écrit dans git, quelle méthode ? » | lp-repo (triggers commit, tag, gardien, verrou) |
sk-repo |
améliore |
6. lp-doc (description inchangée, section « Rédiger un skill » ajoutée l. 72-76)
Description (avant = après) : « Formats documentaires LifePlay : entrée CHG …, ligne ERR …, docs numérotées …, fiches de lot, mémoire du projet. À utiliser pour consigner un changement, une erreur, créer ou renuméroter un document, ou mettre à jour un index. » Aucun mot « skill » ni « rédiger un skill ».
| # | Demande | Avant | Après | Effet |
|---|---|---|---|---|
| N | « Ajoute l'entrée CHG du lot UES1 au journal. » | lp-doc |
lp-doc |
ne change pas |
| L | « Rédige le nouveau skill lp-xyz et coupe ce qui est inutile. » | aucun skill LifePlay évident ; skill-creator (générique) possible |
idem : la section est invisible depuis la description, donc non atteinte par ce choix ; si lp-doc est chargé pour une autre raison (CHG), la règle est lue |
ne change pas ; la section n'apporte rien au déclenchement |
| V | « Écris un Agent Skill enregistré dans un plugin Unreal (dossier Skills/ du plugin). » | unreal-skill (plugin) |
unreal-skill |
ne change pas (le plugin décrit ce cas ; lp-doc n'a pas de « Pas pour », ni besoin) |
Observation : pour que la règle R13 atteigne les rédacteurs de skills, il faut soit citer « rédiger un skill » dans la description de lp-doc
(donc un nouveau R8), soit la lire par SK-ARBRE.md (R13) ; recommandation à l'orchestrateur, non appliquée ici.
7. Bilan
| Skill | N | L | V | Bilan |
|---|---|---|---|---|
| lp-mcp | ne change pas | ne change pas (risque « toolset ») | améliore | net positif |
| lp-commandlets | ne change pas | améliore | améliore | positif |
| lp-build | ne change pas | améliore | améliore | positif |
| lp-validate | ne change pas | améliore (modéré) | améliore | positif |
| lp-repo | ne change pas | améliore (léger) | améliore | positif |
| lp-doc | ne change pas | ne change pas | ne change pas | neutre ; section non atteinte par la description |
Aucune dégradation établie ; un risque estimé : le déclencheur nu « toolset » de lp-mcp face à « toolset MSVC » (lp-build, lp-env). |
||||
Pairs hors clause : lp-build / lp-ue-compat (erreurs C4996 5.8), lp-validate / lp-lot ; non traités (R11 : couche 1-2 sk-* non touchée, |
||||
donc aucune clause de retour côté sk-recount, debug-verification, sk-repo, ue-cpp-build). |
Tours : 13 / 30 (décompte propre ; FicheStats.py non lancé)