アップデート 2.77
2026/6/10
v2.77.0BETAMINOR
Seymour
SIN Chain Builder Gate 3:AiScriptLab 検証ブリッジ(`SinApplyPlan`)――プランを検証し、read-only は適用しない;NOT は書き込み用に SIN のまま
- レーン BLOCKED(Jarvis-NEMESIS/MAGIC)。SIN Chain Builder の Gate 3 を開き、SIN の SHINRYU preview-only
SinApplyPlan(Gate 2)を受け取り、AiScriptLab/AiValidator-compatible チェックを実行する。それでも モンスターをロードせず、Rebuild/Spliceを行わず、AEON の diff も、ディスクへの書き込みも、何の適用も行わない。問いはただ1つ――「この preview-only プランは構造的に受け入れ可能か(出力されるバイトコードは well-formed か)、そして適用までに残る正直なブロッカー/警告/エラーは何か?」。新しいクラスをFfxLib/Ai/Sinに追加:SinPlanValidator(Validate(SinApplyPlan) → SinPlanValidationResult、AiScript_Fileの静的テーブルとAiStackModelとプランだけを読む)、SinPlanValidationResult(プランレベルでAiValidationReportの語彙を再現:Errors/Blockers/Warnings/Infos、StructurallyValid=Error なし、ApplyAcceptable=Gate 3 では構造上 false)およびSinAiScriptLabBridge(low-level チェックを緩いAiInstructionストリームに対して行い、AiScriptFileなし)。チェック(SOUND のオフライン部分集合で、AiValidator自身が使うものと同一): (1) すべての opcode が実証済み48種(AiScript_File.IsKnownOpcode)に含まれる;(2)HasOperandが0x80のサイズ規則(IsOperandBearing)と一致――不一致ならEmit()がストリームを mis-sizes;(3) per-instruction RT0(Emit()が同じ opcode+operand の re-decodes と一致);(4) statement-level によるスタックバランスをAiStackModelで確認(線形ボディは net 0、ガードは D7/POPXNCJMP 用に boolをちょうど1つ残す)。 3つのパイロットの判定: すべて 構造的に有効な BUT apply-BLOCKED(preview-only)――SIN-006/SIN-009(線形)は net 0 でバランスし、SIN-010(HP-guard)は bool をちょうど1つと net-0 アクションを残す。SHINRYU の DIV/MUL に関する指摘は EXPLICITLY 対応(NEMESIS の判断=EXPECTED BLOCKER として残し、NOT 修正は行わない):方向は実証済み(345体のモンスター調査による0x16=DIV/0x17=MUL+IDAFFX_Atel_InterpretWorkerOpcodes@0x864180+FFXDataParser)なので、AiSnippetLibraryのMULが0x16に束縛されているのは確認済みのバグ――ただし 完全な整合(定数の修正+re-validate EVERY の利用側:MonsterAiEditor、AiAutomation、--aiasm-rt0/--ai2/--ai3+re-prove RT0/RT2)は、read-only 検証ゲート外の 専用 PATCH で行う(RT2 は Gate 3 では禁止)。それが Error ではなく BLOCKER でなければならない理由を示す構造的な洞察:AiStackModelは BOTH DIV と MUL に対して net -1 になるため、スタックは同じように釣り合い、バイトは re-parses のままで、間違った算術を検出できるのは RT2 だけ。バリデーターは完全な証拠付きの Warning + Blocker として表面化し、ゲートは HP% レシピが ブロックされたままで、NOT は黙って修正されていないことを確認する(プランナーは引き続き0x16を出力し、AiSnippetLibraryは変更なし)。追加の(non-breaking)拡張:SinPlannedStepにGuardOps/BodyOps(プランナーがすでに計算した生のAiInstruction)を持たせ、バリデーターがプランナーの生成物を 正確に検査できるようにした(単一の情報源;デフォルトは空なので、すべての Gate-2 構築箇所はコンパイルを継続し、--sin-dryrun-rt0は PASS のまま)。新しい read-only ゲート--sin-validate-rt0: 3つのパイロットを検証し、structurally-valid+apply-NOT-acceptable+正直なブロッカー+未達の昇格ラダー+候補からauthoring-readyへの昇格なしを表明し、さらに(SIN-010)DIV/MUL ブロッカーが存在して not-fixed であることも確認する。決定的な検証。MINOR(NEW の実行可能な機能:バリデーター+ゲート)。対象範囲/正直さ: SIN は BLOCKED のまま書き込み用――Gate 3 はプランを検証するだけで、適用はしない;「DESIGN 用にクリーンでも、WRITING 用に開放されたわけではない」――そして clean-structure も書き込みを開放しない。writer/save/NOT/Rebuilddiff/backup/Splice/AEON/button/RT2 を行わず、UI、NOT もmonster_*.bin/runtime/Aurora/native-menu/Blitzball/Shop/Mix/Sphere/Common(ANIMA)やMonsterAiEditorに触れない。ビルドは0 errors;--sin-validate-rt0+--sin-dryrun-rt0(Gate 2、回帰なし)+--aicmdmeta-rt0+--spiraatlas-rt0+--aiasm-rt0(AiScriptLab、実際のコーパス上で346/346 RT0)はすべて PASS。ドキュメント: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