52 KiB
Fiche SK-T3 — Niveau N5 — Modèle prévu fable-top | utilisé fable
Objet : arbre de compétences des sous-agents — pour chaque type de tâche (SK-T1, 45 types), un agent personnalisé
(rôle × niveau) et des skills préchargés. Lot SK, préalable à U0 (doc 27). Date : 2026-10-08.
Lecture seule : seul ce fichier est écrit ; aucun skill ni agent créé, rien installé, aucun git, aucune compilation.
Sources : SK-T1-TACHES.md, SK-T2-SKILLS-WEB.md, mémoire feedback-subagents-by-task et lifeplay-build-pitfalls,
gabarit sandbox_addon_migration_ff11aeab.plan.md, ~/.claude/agents/*.md, .cursor/skills/lifeplay-debug-build/,
doc 27 § Orchestration et § Lots, UA-SYNTHESE.md, et la page officielle https://code.claude.com/docs/en/sub-agents
(relue le 2026-10-08 pour les champs de frontmatter ; voir § 10).
Conventions : établi / estimé / incertain comme dans UA-SYNTHESE ; les décisions sont marquées [Dx] et
regroupées en § 9 : elles appartiennent à l'utilisateur, ce document recommande.
1. Résumé
- Trois couches de skills : (1) socle de méthode agnostique
sk-*(7 skills courts) ; (2) domaine génériqueue-*,git-*,debug-*(9 skills, dont 5 adaptés du catalogue sous MIT) ; (3) projetlp-*(12 skills LifePlay). Couches 1–2 dans~/.claude/skills/(hors dépôt, versionnées à part) ; couche 3 dans le dépôt addon privé, rendue visible au jeu par une jonction vers.claude/skills(déjà ignoré par git,.gitignore:72). Rien n'entre dans le dépôt public. - Agents par rôle, pas par rôle × niveau : 12 agents de rôle
lp-*, chacun avec son modèle/effort par défaut, ses outils restreints (audits et validations sansEdit) et 2 à 4 skills préchargés ; les 3 agents de niveau existants (opus-xhigh,opus-max,fable-top) restent les agents d'escalade et reçoivent le socle. Le niveau descend par la surchargemodelde l'outil Agent (établi) ; il monte par l'agent d'escalade (l'effort n'est pas surchargeable à l'appel : établi). - Tous les types sont couverts (§ 4 : 49 types au recompte de l'arbre SK-T1, la fiche en annonçait 45) ; 4 types restent à l'orchestrateur (A1–A3, C2, A4 partiel) et gagnent un skill
sk-orchestrateinvoqué dans la session principale. - 28 skills à produire (§ 5) : 17 à écrire, 6 à adapter (quodsoler ×3, obra ×2, nicoforclaude ×1), 5 à reprendre (Cursor, mémoire, docs 10/13/20). Taille cible : SKILL.md ≤ 120 lignes (≈ 1 500 jetons), annexes à un niveau. Budget par agent : ≤ 4 skills préchargés, ≤ 6 000 jetons.
- Méthode : la fiche gagne une rubrique 2b « Agent + skills » ; en-tête « Modèle prévu | utilisé | agent | skills » ;
4 indicateurs (taux de
-fix, escalades, échecs fabriqués détectés, durée) relevés dans l'EVAL de chaque lot. - Rédaction SK-T4 en 4 vagues calées sur U0–U8 (V1 avant U0 : socle,
lp-build,lp-lot, 4 agents) ; SK-T5 = 8 tests, dont le témoinsk-probequi tranche l'application deskills:par l'application de bureau (incertain). Effort total estimé 3,5 à 5 séances. - 13 décisions à trancher (§ 9), dont l'emplacement de la couche projet, le droit d'écriture des agents d'audit et l'adoption (ou non) des skills tiers dès V1.
2. Architecture en couches et emplacements
2.1 Couches
| Couche | Préfixe | Contenu | Réutilisable hors LifePlay | Qui la porte |
|---|---|---|---|---|
| 1 — Socle de méthode | sk- |
preuve établi/estimé/incertain, interdits et arrêt, compte rendu et handoff, recomptage, comparabilité, protocole instantané/journal/retour arrière (forme générique), shell Windows, orchestration (grille a–f, fiche 9 rubriques) | oui, tel quel | utilisateur (méthode agnostique, mémoire feedback-subagents-by-task) |
| 2 — Domaine générique | ue-, git-, debug- |
C++ / UBT / Build.cs, cuisson et empaquetage UE, patron de commandlet, Python éditeur, git par phases multi-dépôts, débogage systématique, vérification avant clôture, lecture d'un plantage UE | oui, pour tout projet UE / git | utilisateur ; partie adaptée du catalogue (R1–R4) |
| 3 — Projet LifePlay | lp- |
pièges de build, chemins et commandes, commandlets LP*, mesure A/B, mods et contrat figé, publication PUB, docs et journal, lots et instantanés, environnement 5.5/5.8, chaînes de contenu, debug build (Cursor) |
non | dépôt addon privé (règle sandbox) |
Règle de dépendance : une couche ne cite que les couches inférieures (3 → 2 → 1). Un skill lp-* renvoie au skill
ue-* pour le général et ne contient que l'écart LifePlay. Les contenus de jeu (noms de personnages, textes, assets
adultes) ne figurent dans aucun skill : seuls des chemins, commandes, options et numéros d'erreur (ERR-xxx).
2.2 Emplacements (établi : doc skills § 1.2 de SK-T2 ; .gitignore du jeu l. 72 /.claude/)
| Couche | Emplacement canonique | Visibilité dans une session « jeu » | Publication | Versionnage |
|---|---|---|---|---|
| 1 + 2 | %USERPROFILE%\.claude\skills\<nom>\ (inexistant aujourd'hui, à créer) |
toujours (skills personnels) | jamais (hors dépôt) | [D2] dépôt git privé claude-method à la racine de ~/.claude/skills et ~/.claude/agents (ou copie dans l'addon Tools/claude/) |
| 3 | D:\Game\LifePlay-Sandbox\Tools\claude\skills\<nom>\ (dépôt addon privé, commité) |
par jonction D:\Game\LifePlay-master 5.5\.claude\skills → ce dossier (option a) ; ou --add-dir D:\Game\LifePlay-Sandbox (option b : « .claude/skills/ du dossier ajouté », SK-T2 § 1.2) ; ou copie dans ~/.claude/skills (option c) |
jamais : /.claude/ ignoré côté jeu (établi) ; l'addon est privé |
commit addon, comme le reste de l'atelier ; la copie 5.8 reçoit la même jonction (U0-T3) |
| Agents | ~/.claude/agents/ pour tous (les 3 existants y sont) [D4] ; variante : agents lp-* dans .claude/agents du jeu par la même jonction |
toutes les sessions | jamais | même dépôt que la couche portée |
Recommandation : option a (jonction) pour la couche 3 : un seul chemin canonique, préchargement par skills: sans
dépendre de --add-dir (dont la prise en charge par le préchargement n'est pas documentée : incertain, test T5c), et
aucune copie à synchroniser. La jonction se crée une fois par copie de travail (5.5, 5.8) ; git check-ignore le
confirme (test T5h). Option b en secours si la jonction gêne un outil (robocopy P4 : exclure .claude).
Règle de priorité en cas d'homonymie (« enterprise > personal > project », établi) : sans objet si les noms sont
préfixés (sk-, ue-, lp-) et uniques.
2.3 Coût en contexte (estimé)
Niveau 1 (nom + description) ≈ 100 jetons × 28 skills ≈ 2 800 jetons dans toute session, orchestrateur compris :
acceptable. Préchargement : chaque agent reçoit le contenu complet de ses skills: → budget ≤ 6 000 jetons par agent
(≤ 4 skills de ≤ 1 500 jetons), le détail en annexes lues à la demande (reference.md, checklist.md).
Après compaction, 5 000 jetons par skill dans 25 000 au total (établi) : le budget de 4 skills reste sous la limite.
3. Agents
3.1 Options évaluées
| Option | Description | Nombre | Avantages | Inconvénients |
|---|---|---|---|---|
| A. Rôle × niveau | un fichier par couple (12 rôles × 3–4 niveaux) | 36–48 | niveau exact à chaque appel | explosion ; 12 corps dupliqués ; maintenance à chaque génération de modèles |
| B. Niveau seulement | les 5 agents de niveau (haiku, sonnet, xhigh, max, fable) ; les skills de rôle sont nommés dans la fiche et invoqués par l'outil Skill |
5 | déjà en place | le préchargement n'est pas garanti (l'agent peut ne pas invoquer le skill) ; general-purpose ne précharge rien (établi) ; pas de restriction d'outils par rôle |
| C. Rôle avec niveau par défaut + escalade par agent de niveau | un agent par rôle (model/effort = niveau habituel, tools restreints, skills préchargés) ; descente par surcharge model de l'outil Agent ; montée par les agents opus-xhigh / opus-max / fable-top (socle préchargé, skill de rôle nommé dans la fiche -fix) |
12 + 3 | nombre borné ; outils et skills garantis au niveau nominal ; escalade existante réutilisée | à l'escalade, le skill de rôle n'est pas préchargé (à invoquer) ; la surcharge model ne change pas effort (comportement à tester, T5d) |
D. Rôle avec model: inherit |
un agent par rôle, modèle de la session | 12 | simple | tout tourne en Opus high : pas de N0/N1, coût |
Recommandation : C. Deux compléments : (1) les 3 rôles qui montent le plus souvent (impl, debug, cart) ont une
variante -max (même corps, effort: max) pour éviter de perdre le préchargement à l'escalade N4 ; (2) fable-top
reste unique (N5, sans effort, établi : pas de champ effort dans sa définition actuelle).
3.2 Jeu d'agents proposé (15 fichiers)
Champs établis par la doc : name, description, tools (liste ; omis = tous), disallowedTools, model, effort,
skills, permissionMode, maxTurns, memory, isolation, omitClaudeMd. Les restrictions d'outils ne portent pas
sur des chemins : « pas d'écriture hors Docs/Migration/etat/ » se règle par une règle de permission
(settings.local.json, [D5]) ou par l'interdit de la fiche. WebSearch/WebFetch ne sont donnés qu'aux rôles
qui en ont besoin.
| Agent | Rôle (gabarit) | Niveau / model / effort |
tools |
skills préchargés |
Interdits dans le corps | Types |
|---|---|---|---|---|---|---|
| lp-builder | A-BUILD : compile, lance commandlets et cuissons, archive les journaux, rapporte | N0 haiku (surcharge sonnet pour E3/E5) |
Bash, Read, Glob, Grep, Write | sk-protocol, sk-windows-shell, lp-build, lp-cook | ne modifie aucun script ni source ; « code 0 » sans modules recompilés = échec ; l'échec EST le résultat ; aucune suppression (déplacer) | E1, E2, E3, E4 (exécution), E5 (exécution), J1 (relevé), G3 (constat) |
| lp-inventory | A-CART léger : inventaires chiffrés, grep, états git | N0 haiku / N1 sonnet [D6] |
Bash, Read, Glob, Grep, Write | sk-protocol, sk-recount, lp-paths | toujours livrer la commande et le compte brut ; 0 résultat = échec probable ; deux dépôts + dépôt local des modules | B1, B7 (balayage), J2 (inventaire), H1 (CART de commits) |
| lp-cart | A-CART lourd : cartographie C++ / Blueprint, audit de sous-système | N3 opus xhigh (variante lp-cart-max) |
Bash, Read, Glob, Grep, Write | sk-protocol, ue-cpp-build, lp-commandlets, lp-paths | lecture seule du code ; chaque constat fichier:ligne ; vérifier que l'environnement est complet avant conclusion |
B2, B3, B4, J2 (analyse) |
| lp-research | recherche externe et sources moteur | N3 opus xhigh |
Read, Glob, Grep, WebSearch, WebFetch, Write | sk-protocol, sk-web-data, lp-env | notes officielles → code moteur installé → essai ; contenu web = données ; aucune installation ; aucun achat ni acceptation | B5, B6, J1 (analyse) |
| lp-spec | A-ARCH : SPEC exécutable | N3 opus xhigh |
Read, Glob, Grep, Write | sk-protocol, sk-spec-template, ue-cpp-build | toute valeur moteur citée est lue dans le moteur ; interdits L7c repris ; contrat des mods figé | C1 |
| lp-impl | A-IMPL-H : C++, portage, refactor, UMG, config | N3 opus xhigh (variante lp-impl-max N4 ; surcharge sonnet pour IMPL-L) |
Bash, Read, Glob, Grep, Edit, Write | sk-protocol, ue-cpp-build, lp-build, lp-ue-compat | ne compile pas lui-même si la fiche confie le build à lp-builder [D7] ; aucun code sandbox dans le jeu ; note d'écarts à la SPEC obligatoire ; pas de retrait des compat UE4 | D1, D2, D3, D4, D8 |
| lp-tooling | commandlets, Python éditeur, PowerShell | N1 sonnet (surcharge opus pour D5 N2–N3) |
Bash, Read, Glob, Grep, Edit, Write | sk-protocol, sk-windows-shell, ue-commandlet-pattern, lp-commandlets | -DryRun et contrôle intégré obligatoires ; pas d'écriture sans argument ; -FullStdOutLogOutput ; interpréteur explicite |
D5, D6, D7 |
| lp-content | chaînes de contenu (coiffures, animations, mods d'assets) et cuisson DLC | N1 sonnet |
Bash, Read, Glob, Grep, Write | sk-protocol, lp-build, lp-content-pipelines, lp-mods | atelier dans l'addon seulement ; Mods/ vide avant commit/build ; licences CC BY ; LPAnimTwist après recuisson |
D9, E4 (pilotage), E5 (pilotage) |
| lp-validator | A-VAL : VAL statique, smoke, diff, preuve par l'échec | N1 sonnet (surcharge opus pour un écart inexpliqué) |
Bash, Read, Glob, Grep, Write | sk-protocol, sk-recount, debug-verification, lp-val-profiles | aucune modification de code ni de doc validée ; relire toutes les IMPL amont ; diff lu intégralement ; inventaire de toute modification d'une copie jetable | F1, F2, F4, F6 (N1 min.), A2 (contre-vérification déléguée), B7 (recompte) |
| lp-measure | mesure runtime A/B, profilage, préparation des tests utilisateur | N1 sonnet (surcharge opus pour G5 / écart) |
Bash, Read, Glob, Grep, Write | sk-protocol, sk-comparability, lp-measure, lp-debug-build | jamais UnrealEditor -game ; check de comparabilité avant toute conclusion ; retour arrière proposé, jamais lancé ; question « existe-t-il déjà ? » |
F3, F5 (préparation), G5 |
| lp-debugger | diagnostic : sémantique moteur, runtime, panne d'outillage, plantage | N3 opus xhigh (variante lp-debugger-max N4) |
Bash, Read, Glob, Grep, Edit, Write | sk-protocol, debug-systematic, lp-build, lp-diag-options | ordre : préexistant ? → conditions → mesure → correctif ; 3 correctifs ratés → remise en cause de l'hypothèse ; aucun correctif sans cause mesurée | G1, G2, G3 (cause), G4 |
| lp-integrator | A-INT : commits par phase, pins, simulation de publication, opérations sur l'arbre | N1 sonnet (N2 orchestrateur pour H3/H5 arbitrage) |
Bash, Read, Glob, Grep, Write | sk-protocol, git-phase-commits, lp-git, lp-publish | jamais de push, jamais de filter-branch sans sauvegarde .git et gel ; déplacer, pas supprimer ; identité vérifiée dans chaque dépôt ; Mods/ vide ; règle de permission Bash(git push*) refusée [D5] |
H1, H2, H3 (exécution), H4 (simulation), H5 (exécution) |
| lp-writer | A-DOC : journal, registre, docs numérotées, fiches, mémoire | N1 sonnet (surcharge opus pour une synthèse I2 N4) |
Read, Glob, Grep, Edit, Write | sk-protocol, lp-doc, lp-lot | docs en français ; une entrée CHG par changement avec retour arrière ; pas de réécriture du passé ; VAL ≠ DOC | I1, I2, I3, A5 (mise en forme de l'EVAL) |
| opus-xhigh (existant) | escalade N3 générique | opus xhigh |
(tous, inchangé) | + sk-protocol, sk-recount | inchangés ; la fiche -fix nomme le skill de rôle à invoquer |
tout type en -fix depuis N1/N2 |
| opus-max (existant) | escalade N4 ; synthèses | opus max |
(tous) | + sk-protocol, sk-recount, sk-estimate | inchangés | A4, A5 (synthèse), -fix depuis N3 |
| fable-top (existant) | N5 | fable |
(tous) | + sk-protocol, sk-estimate | inchangés | A4 (porte), -fix depuis N4, enjeu maximal |
Compléments :
maxTurns: lp-builder et lp-inventory ≤ 40 (tâches bornées) ; les autres sans limite [D8].memory: non utilisé en V1 (une mémoire d'agent persistante risque de contredire la fiche) ; à reconsidérer pour lp-debugger (project) après SK-T5 [D9].permissionMode: laissé par défaut ; aucunbypassPermissions(R6).isolation: worktree: utile pour F6 (preuve par l'échec sur copie jetable) mais le projet UE (14 Go,Contenthors git) ne s'y prête pas : non retenu.- Descriptions déclenchantes : à la troisième personne, mots-clés du type (ex. lp-builder : « Compile, lance une commandlet ou une cuisson LifePlay et rapporte le journal ; à utiliser pour toute fiche BUILD/E1–E5 ; ne corrige rien »).
- Corps : chaque agent reprend le corps actuel des agents de niveau (« tu rapportes, l'orchestrateur décide… ») plus ses interdits de rôle ; ≤ 25 lignes.
- Orchestrateur (N2, session principale) : pas d'agent ; invoque
/sk-orchestrateau début de chaque lot (A1–A3, C2).
4. Table types → agent / skills / niveau / escalade
Niveau par défaut = celui de SK-T1 ; « Esc. » = chemin d'escalade (motif écrit dans la fiche -fix).
| Type | Agent (surcharge model) |
Skills préchargés (+ à nommer dans la fiche) | Niveau | Esc. |
|---|---|---|---|---|
| A1 Fiches | orchestrateur | /sk-orchestrate (invoqué) | N2 | — |
| A2 Contre-vérification | orchestrateur ; délégation à lp-validator pour un recompte lourd | sk-recount (+lp-val-profiles) | N2 | lp-validator (opus) |
| A3 Suivi / coordination | orchestrateur ; lp-writer pour tenir les registres | sk-orchestrate, lp-lot | N2 (+N1) | — |
| A4 Synthèse / porte | opus-max ; fable-top si enjeu maximal | sk-protocol, sk-estimate | N4–N5 | fable-top |
| A5 Évaluation | opus-max (synthèse) + lp-writer (tableaux) | sk-estimate, lp-doc (+gabarit EVAL dans lp-lot) | N4 | fable-top |
| B1 Inventaire | lp-inventory | sk-recount, lp-paths | N0–N1 | lp-inventory (sonnet) → lp-cart |
| B2 Carto C++ | lp-cart (sonnet pour un module isolé) |
ue-cpp-build, lp-paths | N1–N3 | lp-cart-max |
| B3 Carto Blueprint / assets | lp-cart (localiser : lp-inventory) | lp-commandlets (dump) | N1–N3 | lp-cart-max |
| B4 Audit sous-système | lp-cart | sk-protocol, lp-commandlets, (+lp-mods pour le contrat) | N1–N4 | lp-cart-max → fable-top |
| B5 Recherche externe / moteur | lp-research | sk-web-data, lp-env | N3–N4 | opus-max |
| B6 Catalogue / navigateur | lp-research (opus, effort xhigh hérité) |
sk-web-data (règles navigateur) | N2 | — |
| B7 Conformité | lp-inventory (balayage) + lp-validator (recompte) ; arbitrage orchestrateur + utilisateur | lp-publish (catégories interdites, non-reproduction) | N1 + N2 | opus-xhigh |
| C1 SPEC | lp-spec | sk-spec-template, ue-cpp-build | N2–N4 | opus-max (+/lp-spec skills nommés) |
| C2 Plan de chantier | orchestrateur + utilisateur ; opus-max pour un plan lourd | sk-orchestrate (gabarit phases 0–5) | N2–N4 | opus-max |
| D1 C++ runtime | lp-impl (sonnet si IMPL-L bornée) |
ue-cpp-build, lp-ue-compat (patron sous-système garde) | N2–N3 | lp-impl-max |
| D2 Refactor / extraction | lp-impl | ue-cpp-build, lp-build (règles jeu / addon dans lp-ue-compat) | N3 | lp-impl-max |
| D3 Portage d'API / compat | lp-impl | ue-cpp-build, lp-ue-compat (table API retirée → remplaçant, banc UE4/UE5) | N3 | lp-impl-max |
| D4 Slate / UMG | lp-impl | ue-cpp-build, lp-ue-compat (+ue-umg-slate nommé) | N2–N3 | lp-impl-max |
| D5 Commandlets éditeur | lp-tooling (opus pour un correctif Blueprint) |
ue-commandlet-pattern, lp-commandlets | N2–N3 | lp-impl |
| D6 Python éditeur | lp-tooling | ue-commandlet-pattern (§ pythonscript), lp-commandlets | N1–N2 | lp-impl |
| D7 PowerShell | lp-tooling | sk-windows-shell, lp-build | N1 | lp-tooling (opus) |
| D8 Configuration | lp-impl (sonnet) |
lp-ue-compat (verrous), ue-cook-package (diff Base*.ini) |
N1–N2 | lp-impl |
| D9 Chaînes de contenu | lp-content | lp-content-pipelines, lp-mods | N1–N3 | lp-impl |
| E1 Compilation UBT | lp-builder | lp-build | N0 | lp-builder (sonnet) → lp-debugger (G3) |
| E2 Commandlets en lot | lp-builder | lp-build, lp-commandlets (nommé) | N0–N1 | lp-tooling |
| E3 Cuisson / empaquetage | lp-builder (sonnet) |
lp-cook (check-list nouvelle partie + Continuer) | N0–N1 | lp-debugger |
| E4 Cuisson DLC des mods | lp-content (pilotage) + lp-builder (exécution) | lp-mods, lp-cook | N1 | lp-impl (garde C++) |
| E5 Réenregistrement de masse | lp-content (pilotage par lots) + lp-builder | lp-commandlets (LPResavePackages), lp-lot (sauvegarde) | N1 + N0 | lp-debugger (G4) |
| F1 VAL statique | lp-validator | debug-verification, lp-val-profiles | N0–N2 | lp-validator (opus) |
| F2 Smoke / non-régression | lp-validator | lp-val-profiles (exclusions, références) | N0–N1 | lp-measure |
| F3 Mesure A/B | lp-measure | sk-comparability, lp-measure | N1–N3 | lp-measure (opus) → lp-debugger |
| F4 Diff indépendant | lp-validator | lp-val-profiles (profils de diff) | N1 | lp-validator (opus) |
| F5 Validation visuelle / en jeu | lp-measure (préparation) + utilisateur | sk-comparability, lp-measure (consignes de test, captures) | N1 + utilisateur | — |
| F6 Preuve par l'échec | lp-validator (jamais haiku) |
sk-protocol (§ anti-contournement), lp-build | N1 min. | lp-validator (opus) |
| G1 Sémantique moteur | lp-debugger | debug-systematic, lp-diag-options (+lp-ue-compat nommé) | N3–N4 | lp-debugger-max |
| G2 Défaut runtime | lp-debugger | debug-systematic, lp-diag-options | N2–N3 | lp-debugger-max |
| G3 Panne de build / outillage | lp-builder (constat) → lp-debugger (cause) | lp-build (catalogue symptôme → cause) | N1–N2 | lp-debugger |
| G4 Plantage | lp-debugger | debug-systematic, ue-crash-reading (nommé) | N3 | lp-debugger-max |
| G5 Performance / profilage | lp-measure (opus) |
lp-debug-build (Cursor repris), lp-measure | N1–N3 | lp-debugger |
| H1 Commits par phase | lp-integrator | git-phase-commits, lp-git | N1 | orchestrateur |
| H2 Multi-dépôts / pin | lp-integrator | lp-git (ordre addon → pin → jeu, identités) | N1 | orchestrateur |
| H3 Réécriture d'historique | lp-integrator (exécution) ; arbitrage orchestrateur + utilisateur | lp-git (sauvegarde, gel), lp-publish | N1 + N2 | — |
| H4 Publication / simulation | lp-integrator (simulation) ; push = utilisateur | lp-publish | N1 | — |
| H5 Opérations destructives | lp-integrator (N1–N2 min.) ; orchestrateur pour l'arbitrage | sk-change-safety, lp-lot (instantané), lp-paths (fichiers à préserver) | N1–N2 | orchestrateur |
| I1 Journal CHG / ERR | lp-writer | lp-doc (gabarits de lignes) | N1 | — |
| I2 Docs numérotées | lp-writer (opus pour une synthèse) |
lp-doc | N1 (N4) | opus-max |
| I3 Fiches / mémoire | lp-writer | lp-doc, lp-lot (gabarits CART/SPEC/IMPL/BUILD/VAL/INT/EVAL) | N1 | — |
| J1 Chaîne d'outils | lp-builder (relevé) → lp-research (analyse) | lp-env | N0–N3 | opus-max |
| J2 Chemin moteur multi-version | lp-inventory (inventaire) → lp-impl sonnet (point unique) |
lp-env, lp-paths | N1 | lp-impl |
Contrôle (recompte, sk-recount appliqué) : l'arbre SK-T1 § 1 contient 49 types (A5 + B7 + C2 + D9 + E5 + F6 + G5 + H5 + I3 + J2), et non 45 comme l'annonce la fiche SK-T3 ; les 49 figurent ci-dessus, chacun avec un agent, des skills et un niveau. Types sans agent dédié (orchestrateur) : A1, A2, A3, C2 ; A4 utilise les agents de niveau existants.
5. Catalogue des skills à produire
Colonnes : Source = écrire / adapter (dépôt à la révision épinglée relevée par SK-T2, licence) / reprendre (fichier
interne) ; Taille = lignes de SKILL.md (annexes à part) ; Prio = vague de rédaction (§ 8) ; Types servis.
Révisions à épingler (SK-T2 § 2, relevées le 2026-10-08) : quodsoler/unreal-engine-skills push 2026-09-28 (SHA à relever
au clonage, R2) ; obra/superpowers commit 8ca22dba9a94 ; nicoforclaude/claude-windows-shell push 2025-11-27 ;
anthropics/skills 683bc88e56f3 (template et skill-creator, déjà intégré).
5.1 Couche 1 — socle sk-* (emplacement ~/.claude/skills)
| Skill | Source | Contenu attendu | Taille | Prio | Types |
|---|---|---|---|---|---|
| sk-protocol | écrire (X1, X3, X8, X10) | (1) preuve : établi / estimé / incertain, chaque affirmation fichier:ligne ou commande ; (2) interdits et arrêt : aucune correction d'initiative, aucun script réécrit, « l'échec EST le résultat », 0 résultat = échec probable, hors périmètre = arrêt ; (3) format du compte rendu (résultat, preuves, chiffres, incertitudes, ≤ 20 lignes) et ligne de handoff ; (4) en-tête de livrable « Fiche — Niveau — Modèle prévu | utilisé » ; (5) anti-contournement pour une preuve par l'échec ; (6) « les décisions appartiennent à l'utilisateur » |
≤ 90 | V1 | tous |
| sk-recount | écrire (X9, A2) | liste « ne pas croire sur parole » : recompter par une seconde formulation, détecter les ajouts non demandés, dates des fichiers produits, critère rejoué ; check à la réception d'un livrable | ≤ 60 | V1 | A2, B1, B7, F1, F4 |
| sk-orchestrate | reprendre (mémoire feedback-subagents-by-task, gabarit Cursor § Fiche, § Rôles, § Phases) |
grille a–f avec exemples ; fiche à 9 rubriques + rubrique 2b « agent + skills » (§ 6) ; règles « destructif / inter-dépôts ≥ N1–N2 », « preuve par l'échec ≥ N1 », « qui compile, qui commite, qui pousse » ; contrôle de disponibilité du modèle ; tableau de lot ; registre des reports ; protocole de gel entre sessions ; user-invocable: true (session principale) |
≤ 120 + fiche.md, eval.md (gabarits) |
V1 | A1, A2, A3, C2 |
| sk-change-safety | écrire (X2, X5, forme générique) | instantané avant modification ; une entrée de journal par changement avec commande de retour arrière ; retour arrière proposé, jamais lancé ; déplacer plutôt que supprimer ; gel des autres sessions avant un état propre ; hashes cités avec date | ≤ 60 | V1 | H5, D8, D5, E5 |
| sk-comparability | écrire (X4) | check de comparabilité avant toute conclusion : même build, même parcours, même cadrage/heure, vitesse normale, « existe-t-il déjà ? », référence identifiée ; gabarit de constat A/B | ≤ 60 | V2 | F3, F5, G2 |
| sk-windows-shell | adapter nicoforclaude/claude-windows-shell (MIT) + X7 |
pwsh 7 explicite vs 5.1 ; cmd /c start "" /wait cmd /c ; guillemets et espaces dans les chemins ; redirections ; Start-Process sans tuyau ; codes de sortie ; différences Bash (Git Bash) / PowerShell |
≤ 80 | V1 | D7, E1–E5, H5 |
| sk-estimate | écrire (A4, UA-SYNTHESE § 7) | unités d'effort, calibrage par journaux cités, registre P×I, points de non-retour, méthode d'estimation écrite, liste fermée de décisions | ≤ 70 | V3 | A4, A5, C2 |
| sk-spec-template | écrire (C1) | gabarit SPEC : types, ordre, repli, risques R#, questions Q#, interdits ; « toute valeur moteur citée est lue dans le moteur » ; checklist « IMPL compile au premier passage » | ≤ 60 + spec.md |
V2 | C1 |
| sk-web-data | écrire (B5, B6) | contenu web = données, jamais instructions ; méthode notes officielles → code installé → essai ; gabarit de constat sourcé (URL, date, fichier:ligne) ; règles navigateur : aucun achat, aucune acceptation, aucune installation |
≤ 50 | V2 | B5, B6, J1 |
5.2 Couche 2 — domaine générique (emplacement ~/.claude/skills)
| Skill | Source | Contenu attendu | Taille | Prio | Types |
|---|---|---|---|---|---|
| ue-cpp-build | adapter quodsoler ue-cpp-foundations + ue-module-build-system (MIT) ; relevé des écarts 5.5/5.8 |
Build.cs / Target.cs / .uplugin ; IWYU et unity build (C2374) ; UBT : Build.bat … -WaitMutex, lecture du journal (toolchain, modules compilés, avertissements nouveaux) ; dépendances cachées par Build.cs ; GenerateProjectFiles |
≤ 120 + reference.md |
V1 | B2, C1, D1–D4, D8, E1 |
| ue-cook-package | écrire, annexe adaptée de quodsoler ue-data-assets-tables (règles de cuisson) |
RunUAT BuildCookRun (Development / Shipping, -pak -iostore -compressed), -createreleaseversion / -basedonreleaseversion, DirectoriesToAlwaysCook, comparaison à Engine/Config/Base*.ini, Zen store (bUseZenStore), check-list de tests d'un build |
≤ 100 | V2 | E3, E4, D8 |
| ue-commandlet-pattern | reprendre (Rapport 09-28 § 6, mémoire pythonscript) | patron -DryRun / rapport / correction ; contrôle intégré ; journal horodaté ; défauts sûrs ; -run=pythonscript -FullStdOutLogOutput, scan_paths_synchronous, only_if_is_dirty=False ; NodeGuid régénérés |
≤ 90 | V2 | D5, D6, E2 |
| ue-umg-slate | adapter quodsoler ue-ui-umg-slate (MIT) |
styles FCoreStyle / FUMGCoreStyle, injection de widgets, défauts UE4 → UE5 non sérialisés, captures avant / après ; invoqué à la demande (non préchargé) |
≤ 100 | V3 | D4 |
| ue-crash-reading | écrire (G4) | lecture d'un Saved/Crashes : pile, LogStreaming, AsyncLoading2, BulkData ; plantages bénins connus ; reproduction minimale ; invoqué à la demande |
≤ 60 | V3 | G4 |
| git-phase-commits | écrire (s'inspirer de obra finishing-a-development-branch, sans l'adopter) |
un commit par phase en fin de lot ; message = titre de lot + CHG ; contrôle d'arbre par SHA avant / après ; identité vérifiée (git config user.email) ; jamais de push ; sauvegarde .git → filtre → rev-list --objects → simulation ; multi-dépôts : commit dépendance → pin → dépôt principal |
≤ 90 | V2 | H1–H4 |
| debug-systematic | adapter obra/superpowers systematic-debugging (MIT, copié seul, sans hook ni using-superpowers) |
4 phases, cause racine d'abord, « 3 correctifs ratés → remettre l'hypothèse en question », une hypothèse à la fois, preuve avant correctif ; ajout : ordre « préexistant ? → conditions → mesure → correctif » | ≤ 120 | V2 | G1–G4 |
| debug-verification | adapter obra/superpowers verification-before-completion (MIT, copié seul) |
aucune clôture sans preuve rejouée ; verdicts PASS / PASS-STATIC / FAIL / BLOCKED-* ; relire toutes les IMPL amont ; points à confirmer → cases de VAL |
≤ 70 | V1 | F1, F2, F6 |
5.3 Couche 3 — projet lp-* (emplacement : dépôt addon privé, jonction vers .claude/skills)
| Skill | Source | Contenu attendu | Taille | Prio | Types |
|---|---|---|---|---|---|
| lp-build | reprendre mémoire lifeplay-build-pitfalls telle quelle + E1/G3 de SK-T1 |
éditeur fermé, une compilation à la fois ; Makefile.bin après test sans addon (déplacer) ; DLL périmées de l'addon (dates, déplacer) ; preuve de chargement (ligne de journal) ; BuildMod via cmd /c start ; commandes exactes 5.5 et 5.8 (Tools/Engine.ps1 après U2) ; catalogue symptôme → cause ; compte rendu : code, modules recompilés, avertissements nouveaux |
≤ 120 + symptoms.md |
V1 | E1, E2, G3, D7, F6 |
| lp-cook | écrire (E3, mémoire packaging-test-paths, ERR-026, CHG-110, O2) |
script exact (liberté basse) : BuildDebug.ps1 / RunUAT ; dossier neuf ; Mods/ vide ; DirectoriesToAlwaysCook ; NO_LOGGING ; check-list : nouvelle partie (liste des villes) + Continuer + mods + sauvegarde ; nombre de paquets attendu ; référence Releases/<version> |
≤ 100 | V2 | E3, E4 |
| lp-mods | reprendre UA-MODS (contrat), doc 20, SB/DC | contrat figé (surfaces, .lpmod, GI.ModEnableds, avertissement de version) ; BuildMod.ps1 -dlcname -basedonreleaseversion ; comparaison SHA-256 (DC3-VAL) ; tests T1–T7 ; risque R1 (mod 5.5 dans 5.8) ; aucun contenu de mod reproduit |
≤ 100 | V3 | E4, D9, B4, U7 |
| lp-commandlets | écrire (B3, D5, E2 ; doc 09) | catalogue des commandlets LP* (dump, fix, resave, check, test) et options ; journal etat/<Lot>_<Cmd>_<horodatage>.txt ; RunCommandlet.ps1 ; identifier les nœuds par nom de fonction ; LPAnimCatalog sans argument réécrit ; liste des commandlets retirées en U2 (D3) |
≤ 100 + catalogue.md |
V1 | B3, D5, D6, E2, E5 |
| lp-measure | reprendre mémoire runtime-measurement, doc 03 § 3.5, 10 § 3.3–3.4, compare-before-rollback |
protocole A/B LogStats.ps1 -Compare ; build Development empaqueté seulement ; index SPAWN > 0 ; même parcours ; consignes de test utilisateur (lieu, durée, actions, captures même cadrage) ; référence 5.8 = LifePlay_Build_5.5_DC4 (D5) ; retour arrière proposé |
≤ 100 | V2 | F3, F5, G2, G5 |
| lp-debug-build | reprendre .cursor/skills/lifeplay-debug-build/ (SKILL.md + reference.md) tel quel |
dual-build, sessions A/B/C, CollectDebugArtifacts.ps1, pièges (-csvCaptureFrames), conventions C++ non-Shipping |
105 (existant) | V2 | G5 |
| lp-diag-options | écrire (doc 09 § 4, G2) | options -LPDump*, -LPTrace*, -LPDumpEvery, LPDumpFunction -Exec, commandes console LifePlay.* ; ordre de diagnostic ; vitesse du jeu |
≤ 70 | V2 | G1, G2 |
| lp-git | écrire (H1–H5, mémoire github-publication, sandbox-not-committed) |
trois dépôts (jeu public, addon privé, Content/Modules/.git local) ; identité noreply dans chacun ; ordre addon → pin → jeu ; Mods/ vide ; fichiers à écarter (LPSandboxMeasure*.cpp à la racine) ; gel ; hashes datés |
≤ 90 | V2 | H1, H2, H3, H5 |
| lp-publish | écrire (PUB1/PUB2, doc 10 § 6, B7) | catégories interdites, balayage historique complet (rev-list --objects, chaînes des .uasset), règle de non-reproduction, .claude/ et McpAutomationBridge ignorés, gh auth status, ls-remote, tags v1.0–v1.5, verdict par catégorie, « rien n'est poussé sans accord » |
≤ 90 | V3 | B7, H3, H4 |
| lp-doc | écrire (I1–I3, CHG-246) | gabarits de lignes CHG / ERR (statuts), numérotation et index Docs/Migration, bandeau « historique 4.27 », docs en français, en-tête de fiche obligatoire, gabarits CART/SPEC/IMPL/BUILD/VAL/INT/EVAL (annexe) |
≤ 90 + gabarits.md |
V1 | I1, I2, I3, A5 |
| lp-lot | écrire (doc 10 § 1–2, A3) | Snapshot.ps1 -Lot / Restore.ps1 (proposé) ; arborescence etat/<projet>/<lot>/ ; registre des reports ; fichiers à préserver (.mcp.json, 10 § 1.7) ; copie de travail 5.8 ; FAIL-TRACE si modèle non tracé |
≤ 80 | V1 | A3, H5, E5, I3 |
| lp-paths | écrire (B1, J2) | chemins des dépôts et dossiers (jeu, addon, builds de référence, moteurs 5.5/5.8, journaux etat/) ; requêtes types d'inventaire par dépôt (suivi / ignoré / non suivi) ; espace dans LifePlay-master 5.5 |
≤ 60 | V1 | B1, B2, J2, H5 |
| lp-env | écrire (J1, UA-OUTILS, UA-SYNTHESE R8–R9) | exigences 5.8 ; coexistence VS 2022 / 2026, ToolchainVersion par projet (14.38 / 14.50), MSVC banni ; Zen commun ; Tools/Engine.ps1 ; relevés avant premier lancement 5.8 |
≤ 70 | V1 (U0) | J1, J2, B5 |
| lp-ue-compat | écrire (D1, D3, U9 ; docs 10 § 3.6, UA-SYNTHESE § 2 U3) | compat UE4 gardée (P2) : LPStringCompat, LPMeshCompat, LPNavigationHelpers ; table API 5.5 → 5.8 (:127, :198, C4996) ; patron sous-système garde (GameInstanceSubsystem + FTSTicker, ScanPathsSynchronous sous WITH_EDITOR) ; règles jeu / addon ; verrous de config L7c ; LPTestStringCompat à rejouer |
≤ 110 + api-table.md |
V1 (U3) | D1–D4, D8, G1 |
| lp-content-pipelines | reprendre docs 13 § 4 et 20, mémoire pose-transfer |
HairPipeline.ps1, AnimPipeline.ps1, RetargetPack.py, ordre recuisson → LPAnimTwist → LPAnimEval, licences CC BY, atelier dans l'addon ; aucun nom d'asset de jeu |
≤ 80 | V3 | D9, E4 |
| lp-val-profiles | écrire (F1, F2, F4) | verdicts nuancés ; liste d'exclusions de diff (dates, 20 images, NodeGuid, positions, EdGraph_N) ; références (SB2-REF, streetmap_5.5.csv, relevé CompileAllBlueprints 5.5) ; smoke -nullrhi ; SHA-256 |
≤ 80 | V2 | F1, F2, F4, F6 |
Total : 9 + 8 + 16 = 33 skills (dont 1 existant repris tel quel) ; 21 à écrire, 6 adaptés, 6 repris de contenus
internes. Note : le résumé § 1 arrondit à « 28 » hors les 5 skills de V3 facultatifs (ue-umg-slate, ue-crash-reading,
sk-estimate, lp-mods détaillé, lp-content-pipelines) qui peuvent attendre U7.
Règles de contenu communes : description à la troisième personne avec mots-clés déclencheurs ; corps ≤ 120 lignes ;
annexes à un seul niveau avec table des matières au-delà de 100 lignes ; chemins avec / ; pas d'information datée
dans le corps (dates dans un CHANGELOG du skill) ; avis de licence conservé dans le dossier d'un skill adapté (R4) ;
aucun script embarqué en V1 (le cas échéant, allowed-tools: Bash(${CLAUDE_SKILL_DIR}/scripts/x *) seulement, R6).
6. Méthode mise à jour
6.1 Fiche de tâche : rubrique 2b « Agent + skills »
2. Complexité : a b c d e f = total → Nx (motif)
2b. Agent : <lp-xxx | opus-xhigh | …> (model surchargé : <…> | aucun) — skills préchargés : <liste du frontmatter>
— skills à invoquer : <liste nommée dans la fiche, si non préchargés> — outils retirés : <…>
En-tête de livrable : Fiche <P#-Tn> — Niveau <Nx> — Modèle prévu <…> | utilisé <…> — Agent <…> — Skills <…>.
Le sous-agent recopie la liste des skills effectivement présents dans son contexte (preuve du préchargement : le
marqueur de sk-protocol, § 7). Sans cette ligne : FAIL-TRACE à l'EVAL (règle existante étendue).
6.2 Choix par l'orchestrateur (algorithme)
- Classer la tâche dans un type SK-T1 (A1…J2) → ligne de la table § 4 → agent et niveau par défaut.
- Noter a–f ; si le niveau calculé < défaut de l'agent → surcharge
modelvers le bas (haiku/sonnet) seulement si la tâche ne suit aucun mécanisme (limites N0) ; si > défaut → agent d'escalade ou variante-max, avec le skill de rôle nommé dans la fiche. - Vérifier que les outils de l'agent suffisent (ex. lp-validator n'a pas
Edit: une VAL qui doit corriger est une fiche IMPL) et que le budget de skills préchargés est ≤ 4 (sinon nommer les autres). - Contrôler la disponibilité du modèle (Fable bloqué en VQ, 26 § 4) : niveau indisponible → niveau supérieur.
- Recopier dans la fiche uniquement ce que les skills ne contiennent pas (état de départ, commandes du lot) : la rubrique 5 « pièges » renvoie au skill et n'ajoute que les pièges nouveaux, qui remontent ensuite dans le skill.
6.3 Indicateurs de gain (relevés dans l'EVAL de chaque lot, puis dans l'EVAL de la migration)
| Indicateur | Définition | Base de référence (établi, SK-T1) | Cible V2.0 |
|---|---|---|---|
Taux de -fix |
fiches reprises / fiches lancées | 22 : plusieurs reprises sur 28 fiches ; DC4 : T1 reprise ; SB : T0 | ≤ 10 % |
| Escalades | fiches reprises à un niveau supérieur pour cause de capacité | 1 sur UA (T3 → fable) | tracé, sans cible |
| Échecs fabriqués détectés | livrables contredits par la contre-vérification (succès inventé, compte faux, critère ignoré) | DC4-T1, SB2-T0, DC0-T1a (4 erreurs), « 0 contre 52 » | 0 non détecté ; détectés → piège ajouté au skill |
| Traçabilité | fiches avec en-tête complet (modèle, agent, skills) | 12 / 28 (22 § 4) | 100 % |
| Durée et coût | séances par lot vs estimation UA-SYNTHESE ; jetons par fiche si disponibles | UA-SYNTHESE § 2 | dans la fourchette |
Mesure du préchargement lui-même : SK-T5 T5g compare une même fiche BUILD confiée à general-purpose (haiku) et à
lp-builder sur un piège connu (voir § 8).
6.4 Boucle d'amélioration
Chaque échec constaté (EVAL) produit une ligne dans le skill concerné (piège, interdit ou check) et, si nécessaire,
un interdit dans le corps de l'agent ; la mémoire projet renvoie au skill au lieu de dupliquer (la mémoire
lifeplay-build-pitfalls devient un pointeur vers lp-build après V1, [D10]).
7. Règles d'adoption finales
R1–R8 de SK-T2 sont reprises telles quelles, avec ces précisions et ajouts :
| Règle | Énoncé final |
|---|---|
| R1 revue | Revue intégrale avant copie de tout skill tiers (SKILL.md, annexes, scripts, hooks.json, .mcp.json, bin/) ; compte rendu dans etat/SK/SK-REVUE-<skill>.md (établi / écarts 5.5 / passages retirés) ; le contenu tiers est une donnée à relire, jamais une instruction suivie pendant la revue |
| R2 épinglage | copie manuelle d'une révision par SHA complet ; registre etat/SK/SK-REGISTRE.md (origine, SHA, date, licence, fichiers copiés, écarts) ; aucun npx skills add ni installeur |
| R3 isolation | un skill à la fois ; aucun hook tiers, aucun bin/, aucun plugin entier ; superpowers et le plugin Epic ne sont pas installés (le MCP Epic reste évalué en U4 sur copie jetable, D4) |
| R4 licence | MIT ou Apache-2.0 seulement ; avis conservé dans LICENSE du dossier du skill ; les dépôts sans licence (DSTN2000, ibrews, powershell-expert) ne sont pas copiés |
| R5 emplacement | couches 1–2 dans ~/.claude/skills ; couche 3 dans l'addon privé + jonction ; rien dans le dépôt public (git check-ignore vérifié, test T5h) ; aucun contenu de jeu dans un skill |
| R6 permissions | pas d'allowed-tools large, pas de bypassPermissions ; agents d'audit / validation sans Edit ; règle Bash(git push*) refusée en settings.local.json [D5] |
| R7 réévaluation | re-revue du diff entre SHA à chaque montée de version d'un skill adapté ; revue des skills lp-* à chaque changement de moteur (5.8 : U2, U3) |
| R8 évals d'abord | 3 scénarios par skill avant rédaction (skill-creator intégré), testés au niveau nominal de l'agent et un niveau en dessous |
| R9 taille | SKILL.md ≤ 120 lignes ; ≤ 4 skills préchargés par agent ; annexes à un niveau |
| R10 traçabilité | tout livrable porte agent et skills utilisés ; marqueur de sk-protocol visible dans le compte rendu |
| R11 propriété | la couche 1–2 est maintenue par l'utilisateur (méthode) ; la couche 3 par le lot en cours (une ligne par piège nouveau) ; aucune modification de skill par un sous-agent pendant une fiche |
| R12 langue | skills et agents en français (langue des fiches et des docs) ; descriptions avec les mots-clés anglais usuels (build, cook, commit) pour le déclenchement [D11] |
| R13 rédaction | une ligne de skill n'entre que si l'agent ne peut ni la savoir ni l'apprendre par un outil ; ce qui se déduit du nom, de la signature ou du contexte se coupe ; description terminée par « Pas pour : … » vers le skill voisin ; relecture de la seule description avant remise (lot UES1, 2026-10-15, d'après le plugin Epic 3.1.1, MIT) |
8. Plan SK-T4 (rédaction) et SK-T5 (tests), effort
8.1 SK-T5 — tests (avant V1, sur un skill témoin ; 0,5 séance, N1 + orchestrateur)
| Test | Objet | Méthode | Résultat attendu | Tranche |
|---|---|---|---|---|
| T5a | skills: appliqué par l'application de bureau (incertain, SK-T2 § 5) |
skill ~/.claude/skills/sk-probe/SKILL.md imposant la phrase « SK-PROBE-OK » ; agent ~/.claude/agents/sk-probe-agent.md (model: haiku, skills: [sk-probe]) ; lancer avec une consigne neutre (« dis bonjour ») depuis l'application de bureau, puis depuis la CLI |
marqueur présent dans les deux cas | le mécanisme entier |
| T5b | tools restreint |
agent sans Edit/Write chargé d'éditer un fichier de brouillon |
refus ou impossibilité rapportée | agents d'audit |
| T5c | préchargement depuis la jonction .claude/skills → addon, et depuis --add-dir |
sk-probe-lp placé dans l'addon, jonction créée ; même test que T5a ; variante sans jonction avec --add-dir |
marqueur présent (jonction) ; --add-dir : à constater |
emplacement couche 3 ([D1]) |
| T5d | surcharge model de l'outil Agent sur un agent de rôle : effort du frontmatter conservé ? |
agent opus+xhigh lancé avec model: sonnet ; demander à l'agent de rapporter modèle et effort perçus (indicatif) ; comparer la durée |
comportement noté ; si l'effort est ignoré, documenter | règle de descente § 6.2 |
| T5e | skill de plugin dans skills: (plugin:skill) |
skills: [anthropic-skills:skill-creator] sur l'agent témoin |
chargé ou avertissement | catalogue (utiliser les intégrés ou copier) |
| T5f | coût en contexte | agent avec 4 skills de 120 lignes ; relever l'usage de jetons au premier tour (/cost ou rapport) |
≤ 6 000 jetons | R9 |
| T5g | gain réel | même fiche E1 (compilation avec un Makefile.bin périmé préparé exprès, ou une DLL addon antidatée) confiée à general-purpose (haiku) puis à lp-builder |
lp-builder signale le piège ; l'autre rend « code 0 » |
justification du lot |
| T5h | rien dans le dépôt public | git -C "D:/Game/LifePlay-master 5.5" check-ignore -v .claude/skills/sk-probe-lp/SKILL.md ; git status --porcelain vide |
ignoré | R5 |
Si T5a échoue dans l'application de bureau mais réussit en CLI : repli = option B (skills nommés dans la fiche + invocation obligatoire au premier tour, vérifiée par le marqueur), et signalement de l'écart.
8.2 SK-T4 — rédaction en vagues (calées sur U0–U8 et sur les priorités SK-T1 § 4)
| Vague | Avant le lot | Skills | Agents | Priorités SK-T1 couvertes | Effort (séances) | Niveaux |
|---|---|---|---|---|---|---|
| V1 | U0 | sk-protocol, sk-recount, sk-orchestrate, sk-change-safety, sk-windows-shell, debug-verification, ue-cpp-build (adapté), lp-build, lp-commandlets, lp-doc, lp-lot, lp-paths, lp-env, lp-ue-compat | lp-builder, lp-inventory, lp-validator, lp-impl (+-max), lp-writer, lp-cart ; socle ajouté aux 3 agents existants | 2 (A2/A3), 3 (E1/G3), 5 (F6), 10 (B1), U3 (D3) | 1,5 – 2 | N1 rédige les skills repris / écrits à partir des lignes SK-T1 (une fiche par groupe de 3–4 skills) ; N3 pour ue-cpp-build (revue R1 + écarts 5.5/5.8) et lp-ue-compat ; orchestrateur relit chaque skill contre R9–R12 |
| V2 | U4 | sk-comparability, sk-spec-template, sk-web-data, ue-cook-package, ue-commandlet-pattern, git-phase-commits, debug-systematic (adapté), lp-cook, lp-measure, lp-debug-build (repris), lp-diag-options, lp-git, lp-val-profiles | lp-spec, lp-research, lp-tooling, lp-measure, lp-debugger (+-max), lp-integrator | 1 (F5/F3/G2), 4 (E3), 6 (B5/B4), 7 (D5/F4), 9 (H1–H4) | 1 – 1,5 | N1 + N3 (debug-systematic revue R1) |
| V3 | U7 | sk-estimate, ue-umg-slate (adapté), ue-crash-reading, lp-mods, lp-publish, lp-content-pipelines | lp-content | 8 (D4), U7–U8 (E4, H4, B7) | 0,5 – 1 | N1 ; N3 pour ue-umg-slate (revue) |
| V4 | U8 (EVAL) | révision de tous les skills avec les pièges de U0–U7 ; évals skill-creator ; mise à jour de la mémoire (pointeurs) |
ajustement des niveaux par défaut d'après l'EVAL | — | 0,5 | N1 + orchestrateur |
Chaque vague : fiche SK-T4-Vn (N1) → relecture orchestrateur (R9–R12, aucun contenu de jeu, licence) → test T5a-like
sur un agent de la vague → commit addon (couche 3) et commit du dépôt claude-method (couches 1–2, [D2]) ;
aucun commit dans le dépôt du jeu (rien n'y change : .claude/ ignoré) hormis etat/SK/* (docs du lot, publiables :
elles ne contiennent aucun contenu de jeu).
Effort total SK-T4 + SK-T5 : 3,5 – 5 séances (estimé : 33 skills × 0,05–0,1 séance de rédaction N1 + 6 revues R1 à 0,15 + 15 agents × 0,02 + tests 0,5 + relectures orchestrateur ≈ 25 % ; méthode UA-SYNTHESE § 7). V1 seule (prérequis de U0) : 1,5–2 séances. Alternative plus courte [D12] : V1 réduite à sk-protocol, sk-orchestrate, lp-build, lp-lot, lp-env + lp-builder/lp-validator/lp-impl (≈ 0,75 séance), le reste glissant en V2.
9. Décisions à soumettre à l'utilisateur (liste fermée)
| # | Décision | Options | Recommandation | Conséquence |
|---|---|---|---|---|
| D1 | Emplacement et exposition de la couche 3 (lp-*) |
(a) addon + jonction .claude/skills ; (b) addon + --add-dir ; (c) copie dans ~/.claude/skills |
(a), (b) en secours selon T5c | (a) un chemin canonique, rien dans le public ; (c) synchronisation manuelle, skills LifePlay visibles dans tous les projets |
| D2 | Versionnage des couches 1–2 | (a) dépôt git privé claude-method couvrant ~/.claude/skills + ~/.claude/agents ; (b) dossier Tools/claude/ de l'addon, copié vers ~/.claude ; (c) non versionné |
(a) | (a) réutilisable pour d'autres projets, historique ; (b) lie la méthode à LifePlay |
| D3 | Option d'agents | B (niveaux seuls), C (rôles + escalade), A, D | C avec 2 variantes -max (impl, debugger) et 1 (cart) |
15 fichiers ; voir § 3.1 |
| D4 | Emplacement des agents lp-* |
(a) ~/.claude/agents (tous) ; (b) .claude/agents du jeu par jonction (projet) |
(a) en V1 (simple ; avertissement bénin si un skill lp-* manque dans un autre projet) |
(b) séparation propre, mais deux emplacements |
| D5 | Règles de permission d'appui | (a) settings.local.json du jeu : refuser Bash(git push*), Bash(git filter-branch*), Bash(Remove-Item*) ; (b) interdits de fiche seulement |
(a) | (a) la règle vaut aussi pour l'orchestrateur ; à exclure du public (settings.local.json déjà ignoré, .gitignore:37) |
| D6 | Niveau par défaut de lp-inventory |
(a) haiku ; (b) sonnet |
(b) (4 erreurs DC0-T1a, décomptes faux) ; haiku par surcharge pour un git ls-files simple |
coût légèrement supérieur, moins de -fix |
| D7 | lp-impl compile-t-il lui-même ? |
(a) non : build par lp-builder (propriétaire unique, journal archivé) ; (b) oui pour la boucle erreurs → correctif de U3 (N3 compile, 4–8 cycles) |
(b) pour U3 seulement (boucle courte, 8–12 min par build), (a) ailleurs | (b) exige lp-build préchargé dans lp-impl (prévu) |
| D8 | maxTurns |
(a) 40 pour builder/inventory ; (b) aucune limite | (a) | évite une boucle de N0 sur un échec |
| D9 | memory d'agent |
(a) aucune en V1 ; (b) project pour lp-debugger |
(a) | (b) risque de consignes périmées hors fiche |
| D10 | Mémoire projet après V1 | (a) lifeplay-build-pitfalls devient un pointeur vers lp-build ; (b) duplication maintenue |
(a) | une seule source ; la mémoire reste le point d'entrée |
| D11 | Langue des skills | (a) français ; (b) anglais ; (c) français + mots-clés anglais dans la description | (c) | déclenchement et lisibilité |
| D12 | Périmètre de V1 | (a) V1 complète (14 skills, 1,5–2 séances) ; (b) V1 réduite (5 skills, 0,75 séance) | (a) si U0 peut attendre une semaine ; sinon (b) | (b) : lp-ue-compat et ue-cpp-build arrivent avant U3 au plus tard |
| D13 | Adoption des skills tiers dès V1 | (a) ue-cpp-build (quodsoler) adapté en V1 après revue R1 ; (b) tout écrire soi-même en V1, adapter en V2 |
(a) | (a) 0,15 séance de revue ; (b) contenu UE moins complet mais 0 dépendance |
10. Établi / estimé / incertain
Établi (source citée)
- Champs de frontmatter d'un agent personnalisé (page officielle sub-agents, relue le 2026-10-08) :
name,description,tools(omis = tous les outils de sous-agent),disallowedTools,model(sonnet/opus/haiku/fable/ID/inherit),effort(low…max, selon le modèle),skills(« full skill content is injected », « Subagents can still invoke unlisted … skills through the Skill tool »),permissionMode,maxTurns,memory(user/project/local),mcpServers,hooks,background,isolation,color,omitClaudeMd. - « Built-in agents don't preload skills » ; ordre de résolution du modèle : paramètre
modelde l'appel > frontmatter >CLAUDE_CODE_SUBAGENT_MODEL> modèle de la session ; aucun paramètreeffortà l'appel n'est documenté. - Emplacements et priorité des agents : managed >
--agents>.claude/agents(projet) >~/.claude/agents> plugin. .gitignoredu jeu :/.claude/(l. 72) et.claude/settings.local.json(l. 37) ignorés ;~/.claude/skillsinexistant ;~/.claude/agentscontient les 3 agents de niveau sanstoolsniskills; aucun plugin installé (installed_plugins.jsonvide) ;.cursor/skills/lifeplay-debug-build= SKILL.md (105 l.) + reference.md.- Addon : dépôt privé séparé,
.gitignoreignore.cursor/mais pas.claude/niTools/(horsTools/debug/out/). - Les 45 types, échecs et priorités (SK-T1) ; le catalogue, licences et révisions (SK-T2) ; aucune contradiction entre SK-T1/SK-T2 et la doc officielle n'a été relevée (SK-T2 § 1.4 est conforme à la page relue).
Estimé (méthode)
- Nombre de skills (33) et tailles (≤ 120 lignes) : dérivés des colonnes « Skill » de SK-T1 regroupées par couche.
- Coût en contexte (≈ 1 500 jetons par skill de 120 lignes, ≤ 6 000 par agent ; 2 800 jetons de métadonnées) : ratio ≈ 12 jetons par ligne de Markdown français.
- Effort SK-T4/T5 : 3,5–5 séances (§ 8.2, barème UA-SYNTHESE § 7).
- Gains attendus (§ 6.3) : cibles posées, non mesurées.
Incertain (test qui tranche)
- Application de
skills:par l'application de bureau → T5a (la doc décrit la CLI ; même moteur présumé). - Préchargement d'un skill situé sous une jonction
.claude/skillsou sous un dossier--add-dir→ T5c. - Conservation de l'
effortdu frontmatter quand l'outil Agent surchargemodel→ T5d. - Acceptation d'un nom
plugin:skilldansskills:→ T5e. - Coût réel en jetons du préchargement → T5f ; gain réel sur un piège connu → T5g.
- Écarts 5.5/5.8 et contenu exact des skills quodsoler (Markdown seul ?) → revue R1 avant adaptation.