Mise à jour 2.77
10/06/2026
v2.77.0BETAMINOR
Seymour
SIN Chain Builder Gate 3 : pont de validation AiScriptLab pour le `SinApplyPlan` (lecture seule) — valide les plans, n'applique PAS ; SIN reste BLOQUÉ pour l'écriture
- Ouvre Gate 3 du SIN Chain Builder : il prend le
SinApplyPlanpreview-only de SHINRYU (Gate 2) et exécute des vérifications AiScriptLab/AiValidatorcompatibles dessus, toujours sans charger un monstre, sansRebuild/Splice, sans un diff AEON, sans disque et sans rien appliquer. Il répond à exactement une question : « ce plan preview-only est-il structurellement acceptable (le bytecode qu'il émettrait est bien formé), et quels sont les bloqueurs/avertissements/erreurs honnêtes qui restent entre lui et une application ? ». Nouvelles classes dansFfxLib/Ai/Sin:SinPlanValidator(Validate(SinApplyPlan) → SinPlanValidationResult, lit seulement les tables statiquesAiScript_File+AiStackModel+ le plan),SinPlanValidationResult(miroir du vocabulaireAiValidationReportau niveau du plan :Errors/Blockers/Warnings/Infos,StructurallyValid= pas d'Erreur,ApplyAcceptable= false par construction à Gate 3) etSinAiScriptLabBridge(les vérifications de bas niveau sur un fluxAiInstructionlâche, sansAiScriptFile). Vérifications (le sous-ensemble hors ligne SOUND, identique à ce queAiValidatorlui-même utilise) : (1) chaque opcode ∈ les 48 prouvés (AiScript_File.IsKnownOpcode) ; (2)HasOperandest d'accord avec la règle de taille0x80(IsOperandBearing) — sinonEmit()mal-dimensionne le flux ; (3) RT0 par instruction (Emit()re-décode vers le même opcode+opérande) ; (4) équilibre de pile au niveau de la déclaration viaAiStackModel(un corps linéaire net 0 ; une garde laisse exactement 1 bool pour D7/POPXNCJMP). Verdict pour les 3 pilotes : tous structurellement valides MAIS apply-BLOQUÉS (preview-only) — SIN-006/SIN-009 (linéaire) équilibrent à net 0 ; SIN-010 (garde HP) laisse exactement 1 bool + une action net-0. Le finding DIV/MUL de SHINRYU géré EXPLICITEMENT (décision NEMESIS = garder comme BLOQUEUR ATTENDU, ne PAS corriger) : la direction est prouvée (0x16=DIV/0x17=MULvia un recensement de 345 monstres + IDAFFX_Atel_InterpretWorkerOpcodes@0x864180+ FFXDataParser), donc leAiSnippetLibrarydeMULlié à0x16est un bug confirmé — mais la réconciliation complète (corriger la constante + re-valider CHAQUE consommateur :MonsterAiEditor,AiAutomation,--aiasm-rt0/--ai2/--ai3+ re-prouver RT0/RT2) est un PATCH dédié hors d'une porte de validation en lecture seule (et RT2 est interdit pour Gate 3). L'aperçu structurel prouvant pourquoi il doit être un BLOQUEUR et non une Erreur :AiStackModeldonne net -1 pour DIV et MUL → la pile s'équilibre de manière identique, l'octet se re-parse, et seul RT2 attrape la mauvaise arithmétique. Le validateur le présente comme un Avertissement + Bloqueur avec toute la preuve, et la porte confirme que la recette HP% reste bloquée et n'a PAS été corrigée silencieusement (le planificateur émet toujours0x16,AiSnippetLibraryintact). Extension additive (non cassante) :SinPlannedStepa gagnéGuardOps/BodyOps(lesAiInstructions bruts que le planificateur avait déjà calculés) pour que le validateur inspecte exactement ce que le planificateur a produit (source unique de vérité ; défaut vide → chaque site de construction Gate-2 continue de compiler et--sin-dryrun-rt0reste PASS). Nouvelle porte en lecture seule--sin-validate-rt0: valide les 3 pilotes et affirme structurellement-valide + apply-NON-acceptable + bloqueurs honnêtes + l'échelle de promotion non satisfaite + aucun candidat→authoring-ready + (SIN-010) le bloqueur DIV/MUL présent et non-corrigé ; validation déterministe. (NOUVELLE capacité exécutable : validateur + porte). Périmètre/honnêteté : SIN reste BLOQUÉ pour l'écriture — Gate 3 valide des plans, il n'applique pas de plans ; "Clean for DESIGN is not unlocked for WRITING" — et une structure propre ne déverrouille pas l'écriture non plus. Il ne fait PAS écrivain/save/Rebuild/Splice/diff AEON/backup/RT2/bouton/UI ; il ne touche PASmonster_*.bin/runtime/Aurora/native-menu/Blitzball/Shop/Mix/Sphere/Common(ANIMA) ou l'MonsterAiEditor. Build 0 erreur ;--sin-validate-rt0+--sin-dryrun-rt0(Gate 2, sans régression) +--aicmdmeta-rt0+--spiraatlas-rt0+--aiasm-rt0(AiScriptLab, 346/346 RT0 sur le corpus réel) tous PASS. Docs :docs/ai/SIN_NEMESIS_AISCRIPTLAB_VALIDATION_RESULT_2026-06-10.md+docs/ai/HANDOFF_NEMESIS_SIN_AEON_DIFF_GATE_NEXT_2026-06-10.md
v2.76.0