16 KiB
Fiche MAPDL1-AUTO-SPEC — Niveau N3 — Modèle prévu opus medium | utilisé claude-opus-5-5 — Agent session « Medium · MAPDL1 » — Skills sk-protocol, lp-city, lp-lot, lp-commandlets
MAPDL1-AUTO : l'automate des villes reprises, exécuté par ProduirePack (2026-10-22)
Consignes de l'utilisateur :
- dans la session MAPDL1, citée mot pour mot : « même processus, automatiser la chaine de production, il y a 280 villes à traiter. je veux que des modèles plus réduits les prennent en charge » ;
- relayée par Big Boss, citée : « mapdl1 doit construire son automate en premier » ;
- Moscou 1.0.1 est validée (« ok pour moscow »).
Demande de Big Boss : suivre le modèle PROD1 de STM1. Un agent Sonnet exécute sans rien décider et s'arrête au premier écart ; MAPDL1 ne garde que le diagnostic. Pas de roue de plus.
Rien n'a été exécuté dans UE : pas de jeton pour cette fiche. Il n'y a eu que des essais à blanc et des arrêts négatifs.
1. Décision : ProduirePack.ps1 porte la recette, sans modification
Tools\ProduirePack.ps1 (STM1, MD5 005AF412653505CF5CA9047D6BCD496F) n'est pas touché. Ses types d'étapes suffisent pour toute la partie sous jeton :
| Étape d'une ville reprise | Type ProduirePack |
|---|---|
| manifeste des archives, montage, version, démontage | packville (Archives, Monter, Version, Demonter) |
import en DryRun, puis import réel (LPImportLegacyStreetMap) |
commandlet, avec 13 contrôles egal sur la ligne TOTAUX et « reste 4 octets » |
maillage (LPBuildCityStatic -Flat -CompareStreetMap Londres) |
commandlet, contrôles -> CONFORME et triangles en fourchette |
3D classique (LPBuildCityStatic -BuildingsOnly … StreetMapClassic) |
commandlet, bâtiments egal, triangles en fourchette |
| ligne « From version » du CREDITS | remplacer (ancre trouvée une seule fois, fins de ligne gardées) |
| cuisson, archive | cuisson (3 paquets), archive (octets en fourchette, 6 fichiers, CREDITS identique, archive antérieure inchangée) |
Deux opérations restent hors moteur, avant la recette, faites par mes outils existants et contrôlés : l'extraction du zip et la lecture des totaux (RepriseCarte -Etape Lire), puis le squelette du pack (RepriseCarte -Etape Creer). Elles n'ont pas besoin de ProduirePack, qui n'a aucun type pour un zip ou pour NewMod.ps1. Rien n'est donc à demander à STM1.
LPCheckStreetMap (relecture) n'a pas d'option -Report, ce qui le rend incompatible avec le type commandlet. Il n'entre donc pas dans la recette. La relecture depuis le disque est assurée par l'étape classique : elle recharge l'UStreetMap écrit, et son nombre de bâtiments est contrôlé egal. Les routes et nœuds relus ne sont pas recontrôlés, ce qui est un léger recul par rapport à RepriseCarte -Etape Importer.
2. Outils (hors ProduirePack.ps1)
| Fichier | État | MD5 | Octets | Liens |
|---|---|---|---|---|
Tools\RecetteCarte.ps1 |
neuf : écrit la recette d'une ville (-Mode Nouvelle ou Classic) avec les valeurs attendues calculées ; ne lance rien |
DF48FF7495741B376DEB2050853DD732 |
13 087 | 1 : lien à poser (Big Boss) |
Tools\ProduireCartes.ps1 |
réécrit en place : pilote de lot (préparation hors moteur, recette, puis ProduirePack -Recette) ; arrêt au premier écart (-ArretApres 1) ; -JetonUE obligatoire hors -ABlanc |
5C95203B54CF781145F0907E5A1890AC, puis 5762C6EC7ED9F4964D4E1632BF64F5C9 (§ 6 bis) |
11 285 | 2, gardé |
Tools\RepriseCarte.ps1 |
inchangé depuis MAPDL1-PROD-CONSIGNE (tirets, Biysk_Fixed) |
2042423AE3F52D1E928E831D021F2077 |
24 533 | 2 |
Tools\LireCarteUE4.py |
inchangé | 6BA579413D32AC23128C28980EF0308F |
11 626 | 2 |
- Tous sont en ASCII et LF ; l'analyse syntaxique donne 0 erreur.
- Instantanés :
MAPDL1-AUTO(RecetteCarte.ps1absent ;ProduireCartes.ps1à2CAEFFE9…; CREDITS de Tokyo à3E2BA6B0…). - L'écriture en place a été préparée sur une copie, contrôlée, puis écrite par
WriteAllBytes.fsutilmontre toujours les deux noms.
Source modifiée : ModSources\lpm_city_tokyo\Module\CREDITS.txt, passé de LF à CRLF (décision de Big Boss « à la prochaine version »), MD5 3E2BA6B0… devenu F5671904024C1FE7E02554E5FF159207, 18 CR pour 18 LF. PackVille -Etape Version exige le CRLF.
3. Valeurs attendues (calculées, et non mesurées après coup)
Formules établies sur les 10 villes produites. Mesure comparée au calcul à partir des totaux de LireCarteUE4.py :
| Ville | Maillage mesuré | Calcul | Écart |
|---|---|---|---|
| Tokyo | 1 792 923 | 1 792 923 | 0,000 % |
| Manila | 371 403 | 371 403 | 0,000 % |
| Bangalore | 2 717 119 | 2 717 119 | 0,000 % |
| NYC | 2 037 417 | 2 037 440 | −0,001 % |
| Moscow | 1 074 679 | 1 074 703 | −0,002 % |
| Mumbai | 2 141 445 | 2 141 526 | −0,004 % |
| Shanghai | 694 387 | 694 428 | −0,006 % |
| Seoul | 1 119 432 | 1 119 518 | −0,008 % |
| Beijing | 863 661 | 863 788 | −0,015 % |
| MexicoCity | 1 289 772 | 1 290 344 | −0,044 % |
| Moscow (classique) | 809 182 | 809 262 | −0,010 % |
- classique = 3 × points_bâtiments − 2 × bâtiments (toit de n − 2 triangles et 2 triangles par mur).
- maillage = classique + 2 × (points_routes − routes) + (points_parcs − 2 × parcs).
- L'écart est toujours négatif ou nul : une triangulation peut échouer, jamais en ajouter. Les bornes vont donc de −1 % à +0,5 % (
-Tolerance). - Bâtiments :
egal(même nombre que l'ancienne carte). - 13 totaux de l'import :
egal, et « reste 4 octets ». - Archive :
- mode Classic : archive 1.0.0 plus 12 à 30 octets par triangle classique (Moscou : 20,1) ;
- mode Nouvelle : 25 à 50 octets par triangle de maillage, plus 12 à 30 par triangle classique (vague 1 : 33 à 40 octets par triangle de maillage).
- Cuisson : 3 paquets ; 6 fichiers installés ; en mode Classic, 1 archive antérieure au manifeste, MD5 identique.
3D éclairée ou -ClassicUnlit : laissé en paramètre (ProduireCartes -ClassicUnlit, ou -UnlitAuDela N). Par défaut, éclairée, validée sur Moscou. Le nombre de triangles est le même avec ou sans éclairage, puisque les murs comptent toujours 2 triangles. Le non éclairé ne fait que partager les sommets : moins de sommets et un fichier plus petit. Ce n'est pas mesuré. Cela corrige mon estimation précédente d'un maillage « à peu près moitié moins » lourd.
4. Recettes écrites (vague 1, passage en 1.0.1 avec 3D classique)
Dossier Docs\Migration\etat\REL\MAPDL1\AUTO\, <pack>-1.0.1.recette.json, 8 étapes : archives, monter, classique, version, credits, demonter, cuisson, archive.
| Ville | Bâtiments | Triangles classique attendus | Archive attendue (o) | MD5 de la recette |
|---|---|---|---|---|
| Tokyo | 129 240 | 1 590 176 – 1 614 271 | 86 881 957 – 115 794 259 | BCE9842ABD2EE0400A72A3D134289534 |
| Manila | 31 844 | 346 384 – 351 633 | 19 075 484 – 25 373 378 | 97FDE579ECBB6036A63BB799D4C87193 |
| Mumbai | 115 936 | 1 907 735 – 1 936 642 | 94 153 427 – 128 839 535 | F9805DB2AF835874B66EBAE7DEAD49C9 |
| Shanghai | 22 106 | 397 183 – 403 201 | 31 277 686 – 38 499 196 | 4CCA2295FF4AC4C696939B4A14840091 |
| Seoul | 41 044 | 623 317 – 632 763 | 51 169 353 – 62 502 405 | 22FB2D8522EF64495540F6C29EDA1DB5 |
| MexicoCity | 72 207 | 1 051 650 – 1 067 585 | 60 514 732 – 79 635 646 | 196864C4F3672C87C2A2230797E7B44F |
| NYC | 90 028 | 1 929 615 – 1 958 853 | 91 082 221 – 126 166 147 | 92FEC8B814DFF1EA75879042EDB67021 |
| Beijing | 35 862 | 552 179 – 560 546 | 38 860 089 – 48 899 715 | 372F8A759DD1045DD03C5C7CC9023105 |
| Bangalore | 239 071 | 2 494 946 – 2 532 749 | 128 091 093 – 173 453 757 | ECA9422CCB83E4F1C1F99C44AF560948 |
Les recettes fixent par MD5 PackVille, RunCommandlet, ArchivePack, UeState, BuildMod et ModSource. Les entrées fixées par SHA-256 sont totaux-python.txt et le Content\StreetMap\<Ville>.uasset du pack.
Le totaux-python.txt de Tokyo a été recréé hors moteur (LireCarteUE4.py) : P2 avait été fait à la main.
5. Essais (sans jeton)
| Essai | Résultat |
|---|---|
Recette Manila, ProduirePack -ABlanc, pendant que PROD1 tenait l'éditeur |
arrêt code 3 : « editeur, commandlet ou compilation de cette copie en cours » (garde UeState) ; outils et entrées conformes avant l'arrêt |
Les 9 villes, ProduireCartes -SeulementClassic -ABlanc, UE libre |
9 × « plan conforme », code 0 : outils (MD5), entrées (SHA-256), UeState, Mods\ vide, Content\ propre ; ancre du CREDITS trouvée une fois, CRLF gardé |
ProduirePack sans -JetonUE ni -ABlanc |
code 3 |
| Recette falsifiée (SHA-256 d'entrée à 0) | arrêt code 2, l'entrée nommée |
ProduireCartes sans -JetonUE |
code 3 |
Moscou en -SeulementClassic |
« deja » (archive 1.0.1 présente) |
Annan et Pre-Saint-Gervais (-ABlanc) |
« zip absent », sautées, code 0 |
RecetteCarte : Moscou Classic (Classic déjà fait), Manila sans -Remplacer, Manila Nouvelle (carte déjà importée), ville inconnue |
quatre refus, code 2 chacun, message explicite |
Motifs des contrôles sur les vrais rapports (Manila import-ecriture.md, static.md ; Moscou classic.md, ArchivePack, journal de cuisson) |
tous trouvés ; routes= ne capture pas points_routes=, batiments= ne capture pas points_batiments= |
Non éprouvé (il faut le jeton) :
- la boucle réelle ;
- le mode
Nouvelleen réel (aucun nouveau zip sur le disque) ; - le contrôle
au manifeste, N MD5 identiquessur une vraie archive 1.0.1 (il n'est pas affiché sans--manifeste).
La première exécution des 9 villes sert d'épreuve.
6. Brève de l'exécutant (à donner telle quelle)
Fiche MAPDL1-AUTO-EXEC- — Niveau N1 — Modèle prévu sonnet — Agent lp-builder — Skills sk-protocol, lp-build
Objet : exécuter le lot de villes reprises par l'automate, sans rien décider.
Préalable : Big Boss t'a donné le jeton UE par un message explicite ;
pwsh -NoProfile -File "D:\Game\LifePlay-master 5.8\Tools\UeState.ps1" -Kind Editeurrend 0 ;D:\Game\LifePlay-master 5.8\Mods\est vide. Sinon : arrête-toi et rends compte.Commande unique, en arrière-plan, depuis
D:\Game\LifePlay-master 5.8, avec la liste de villes que donne Big Boss :
- vague 1 (3D classique) :
pwsh -NoProfile -File "D:/Game/LifePlay-master 5.8/Tools/ProduireCartes.ps1" -Villes Manila,Shanghai,Beijing,Seoul,MexicoCity,NYC,Mumbai,Tokyo,Bangalore -SeulementClassic -VersionPack 1.0.1 -Max 5 -JetonUE(environ 30 à 45 min) ;- nouvelles villes :
pwsh -NoProfile -File "D:/Game/LifePlay-master 5.8/Tools/ProduireCartes.ps1" -Toutes -Max 5 -JetonUE(1 lot de 5 villes par jour, décision de l'utilisateur).Chemin du script : absolu, entre guillemets, avec des barres obliques. Dans Git Bash,
Tools\ProduireCartes.ps1sans guillemets perd ses antislashs, d'où le code 64 de pwsh dans MAPDL1-AUTO-EXEC-1.Pendant : attends la notification de fin, sans sonder. Ne lance rien d'autre dans UE.
À la fin :
- recopie telle quelle la sortie de la commande et son code ;
- recopie les lignes de
Docs\Migration\etat\REL\MAPDL1\PRODUCTION.csvajoutées pendant ta fiche ;- pour la dernière ville, recopie la dernière ligne de son
RAPPORT.md(le chemin est dans la colonnerapport).Interdits :
- modifier une recette, un outil ou une source ;
- relancer après un arrêt ;
- utiliser
-Depuis;- installer un pack ou lancer le jeu ;
- commit, tag ou push ;
- supprimer quoi que ce soit.
Si le code n'est pas 0 : ne corrige rien. Copie la ligne
**ARRET …**ou**ECART …**, la ville et le chemin du rapport. Le diagnostic revient à MAPDL1.Compte rendu (livrable
Docs\Migration\etat\REL\MAPDL1\MAPDL1-AUTO-EXEC-<n>.md) :
- code ;
- villes conformes, sautées et en échec ;
- pour chaque archive : nom, octets et SHA-256 (colonnes du CSV) ;
Mods\vide, et UeState à 0.Rends le jeton à Big Boss.
6 bis. Rythme de l'utilisateur : 1 lot de 5 villes par jour
Décision de l'utilisateur, citée par Big Boss : « on fera 1 lot de 5 villes par jours. je ne veux pas être bloqué sur ce sujet. commençons par les ville déjà téléchargé et à refaire ».
Ordre de la vague 1 en 1.0.1, par risque croissant (triangles classiques attendus, puis bâtiments) :
| Lot | Villes (dans l'ordre) | Triangles classiques |
|---|---|---|
| Lot 1 | Manila, Shanghai, Beijing, Seoul, MexicoCity | 350 k, 401 k, 558 k, 630 k, 1,06 M |
| Lot 2 | NYC, Mumbai, Tokyo, Bangalore | 1,95 M, 1,93 M, 1,61 M (129 240 bâtiments), 2,52 M (239 071 bâtiments) |
La même commande sert les deux jours. Elle saute les villes déjà en 1.0.1 :
pwsh -NoProfile -File Tools\ProduireCartes.ps1 -Villes Manila,Shanghai,Beijing,Seoul,MexicoCity,NYC,Mumbai,Tokyo,Bangalore -SeulementClassic -VersionPack 1.0.1 -Max 5 -JetonUE
Essai à blanc (sans -JetonUE, avec -ABlanc) : les 5 villes du lot 1 sont planifiées, toutes « plan conforme », puis « limite -Max 5 atteinte », code 0.
Reprise d'un lot :
-
une ville terminée (archive
<pack>-1.0.1-…zipprésente) est sautée (« deja ») et ne compte pas dans-Max; essai : Moscou ; -
une ville coupée en cours n'est pas reprise d'elle-même. Les gardes l'arrêtent proprement :
LPBuildCityStaticrefuse unClassic/<Ville>existant (« existe deja »,LPBuildCityStaticCommandlet.cpp:171-173), ce qui donne le code 1 ;PackVille -Etape Versionne trouve plus « 1.0.0 », ce qui donne le code 2 ;- le démontage se fait dans le
finallyde ProduirePack.
Rien n'est écrasé ni compté deux fois. La reprise se fait par
ProduirePack -Depuis <étape>, d'aprèsetat.json, sur le diagnostic de MAPDL1 et une instruction écrite de Big Boss.
Zips absents (mode nouvelles villes) :
- une ville sans zip est sautée sans échec ni ligne au rapport, et ne compte pas dans
-Max; le lot prend la suivante qui a son zip ; - la sortie se termine par « zips absents (sautees, sans echec) : N » ;
- essai
-Toutes -Max 5 -ABlanc: 10 villes « deja », 266 zips absents, 0 traitée, code 0.
Changement en place de ProduireCartes.ps1 pour ce point : une ville sans zip n'écrit plus de ligne « saute » au CSV ; en lot -Toutes, il y en aurait eu plus de 200 par jour. Nouveau MD5 : 5762C6EC7ED9F4964D4E1632BF64F5C9, lien gardé, même MD5 sur les deux noms. Instantané : MAPDL1-AUTO.
7. Suite
- Big Boss pose le lien physique de
Tools\RecetteCarte.ps1vers l'addon. - Sur l'accord de l'utilisateur et le jeton, l'agent Sonnet joue la vague 1 en 1.0.1 (§ 6).
- MAPDL1 relit les rapports et écrit
MAPDL1-AUTO-FIN. En cas d'arrêt, unMAPDL1-DIAGest écrit avant toute reprise. - Ensuite, les nouvelles villes : par lots de 20, au rythme des zips téléchargés par l'utilisateur (geste de l'utilisateur,
MAPDL1-PROD-CONSIGNE§ 5).
Fichiers
À commiter :
- A
Docs/Migration/etat/REL/MAPDL1/MAPDL1-AUTO-SPEC.md - A
Docs/Migration/etat/REL/MAPDL1/AUTO/*.recette.json(9) - A
Docs/Migration/etat/REL/MAPDL1/AUTO/PROD-*-ABLANC/RAPPORT.md(rapports à blanc)
Hors git :
Tools\(3 fichiers) ;ModSources\lpm_city_tokyo\Module\CREDITS.txt;LifePlay_Data.
À verser :
lp-city§ 7 : la production des villes reprises se fait parRecetteCarte.ps1, puisProduirePack.ps1; le pilote de lot estProduireCartes.ps1. Les triangles se calculent à l'avance (formules du § 3).lp-commandlets:LPCheckStreetMapn'a pas-Report; il est inutilisable dans une recette ProduirePack.