アップデート 2.11
2026/6/5
v2.11.0BETA
Seymour
🧠 AI ASSEMBLER PRODUCTIZED (実用可能な monster-AI エディター):
- codec の「AIを 100%自由に編集」がFEATUREとなった。
FfxLib/Ai+Modules/MonsterAiEditorレーンの新機能: - Behavior library (
AiSnippetLibrary): バイト列が実証済みコーパスのイディオムにMIRRORなるパラメータ化テンプレート — linear (force-cmd/perform-cmd/grant-field/set-stat/raw-call) および conditional (RNG 1-in-K回転, on-event force-commandは counter/phase 用)。 - Pre-flight validator (
AiValidator): opcode∈48, HasOperand vs 0x80, ぶら下がった branch/entrypoint (どちらかを名前で示し、不透明な throw ではなく), operand の範囲, RT0 self-check, Rebuild dry-run, grow/shrink;SaveAssemblerは防御的になった (エラー時は書き込みを拒否)。 - Friendly command selector (
AiCommandId): performCommandの operand ↔ name を(cat<<12)|idによりCommandCharacter/CommandMonster1_Dictionary上で対応付け; UIドロップダウン (生の hex は不要)。 - New codec primitives (
AiScript_File):GrowWorkerJumpTable(worker の jump-tableにスロットを追加し、NEW分岐を可能にする) +AppendGuardedAction(エントリーポイントにガード付きアクションを先頭追加し、元のハンドラーを保持) +OperandKindOf。 - UI を
MonsterAiEditorに追加: Behavior Library カード + Validate ボタン/レポート + command dropdown。 - Gate
AiScriptLab --ai2PASS (実コーパス, 361): jump-grow 898/898 ワーカー, guarded-action 692/692 (最初+最後のエントリーポイント) + synthetic sentinel 1/1, validator clean 346/346, AiCommandId 620/620, positive-catch 8/8/8 (エディター経路経由の jumpOOB)。元の--RT0 ゲートは 361/361 完全維持。 - A 4 エージェントによる敵対的レビューで 2 件のバグを発見・修正 (one-past-end sentinel self-loop;
OperandKindのドロップ エディターの保存経路で発生), 現在はゲートで固定。Docs:docs/reverse/FFX_AI_JUMPTABLE_GROW_PROVEN_2026-06-05.md+docs/ai/FFX_AI_ASSEMBLER_PRODUCTIZED_2026-06-05.md。 - ⚠️ 構造は OFFLINEで実証済み; in-game behaviour (RT2) は Halyson の OK待ち (probe)。テンプレート "heal ally < 25% HP" と "enrage on turn N" は NOTとして出荷済み (HP-field / turn-counterアンカーではなくbyte-confirmed)。
SUCESSOR_FFX_HD_MODELOS_MASTER_2026-06-05.mdを完了。 - Textures (manifest-driven):
extract-texture-batchをRuntimeTools/PhyreModelExportLabで拡張し--from-manifestを追加。これは<id>.ahwin32g_fileNames[](権威アセットマニフェスト) を読み取り、 ゲームがロードする EXACTテクスチャを抽出する。305 PNGs (pc/npc/sum), プロヴェナンス・マップtexture-provenance-map.json, 0 silent mismatch。RE:ahwin32は読み取り可能な Cヘッダーであり — cross-refs (c906←c106,c908←c108,c806←c805) を AND multi-texture (c101+c101_01,n238+n238_hair,n356←n238_hair) として解決し、IDAはない。 Bonus find: NPC rig-inheritance key =0x6NNNin the.chr(nXXX→kNNN map, 222/222 valid)。 Docdocs/reverse/FFX_AHWIN32_ASSET_MANIFEST_2026-06-05.md。 - Bake (mesh+texture+anim): driver
work/_scratch_mgrp/bake_cast.pyをphyre_chr_gate経由で実行。Static 253/253 (キャスト全体にテクスチャ適用済み, clean)。Animated: sum は固有モーション, npc はskl/<base>を継承。 - Visual QA (workflow, 21 vision agents): 248 animated を F3Dでトリアージ — 157 clean / 58 torsion / 33 exploded。33 件に Bind picker (rest/A1) を適用しても直らなかった。
- 🔧 スクリュー CORRECTION (2026-06-06): F3D はスキン付きアニメーションで LYINGだった。 スクリュー の診断 (mesh
EXPLODE_RATIO≈1.0, 成長なし) と真実に即した Eevee レンダリングにより、"exploded"のものにも 完全な胴体 があり、 伸びているのは手足/アクセサリだけだと判明した。Re-QA (スクリューレンダリングを 8 エージェントで確認) 175 clean (71%) / 59 torsion (24%) / 14 exploded (6%) に訂正 — 20 モデルを救済, オフライン・ベイクは常に ~94% usable だった。 14 件の本物 = 11 Aeons + 3 npc (non-humanoidリグ; mocap/parent-map REが必要)。ルールを更新: BLENDER画面が判定し, F3Dは嘘をつく。パイプラインwork/_scratch_mgrp/blender_{diagnose,render_anim,batch_render}.py。 - 🎯 RETARGET SOLVED via
--retarget-delta(2026-06-06): 175→215 clean (87%)。phyre_chr_gateフラグを新設し、継承モーションを frame0 から npc の RESTへの delta として適用 (M=restLocal·inv(m0)·mf)。これにより、ベースの比率を押し付けず npc の比率を維持する。IDA REにより.chr@0x30remap はすでに適用済みと判明 — 原因は remap ではなく rest-pose retarget (docFFX_INHERITED_MOTION_REMAP_RUNTIME_2026-06-06.md)。 破損品 73 件のパイロット+バッチ + スクリュー re-QA + per-model keep-best: +40 clean, 44 件を救済, ZERO リグレッション (リグレッションになるため 1 件は維持)。NPC animated = 200/222 clean (90%), 0 exploded; 8 Aeonsは依然 exploded (mesh immune → mocap)。MASTER §2.4の"A1-universal"を、A1のリスクなしで解決する。 - 🐉 WHOLE CASTをオフラインで完了 (2026-06-06): 498/643 clean (77%), 90% usable。truthful-Blender-QA + retarget-delta + keep-bestを残りへ拡張: obj/wep/pc (46 clean/55, party clean) AND 340 MONSTERS。旧 monster QA (bbox) は "0 explosions" と主張した = 嘘; 真実に即した スクリュー QA (29 エージェント) は 実際の破損品 127 件を発見; 継承済み 66 件への retarget-delta → 36 件を昇格, monsters 206→237 clean。アニメーション合計 (643): 498 clean / 86 torsion / 51 exploded / 8 blank。 残差 (9%) = divergent mesh / degenerate bind → mocap/mesh-RE, retarget ではない。
- obj/wep/pc (2026-06-06): 同じパイプラインを拡張 — static obj 110/110 + wep 79/79 + pc 34/49 (pc の 15 件の失敗 =
c8xxスロットに PS2.chrがない)。HDキャスト全体の static = 476 モデル。obj/wep は主に rigid (sparse anim 25/7); 画面 spot-check: f001/w001/c004=Auron clean。 - Gallery
work/cast_hd_gallery.html(model-viewer, static/anim 切り替え, sum/npc/obj/wep/pc フィルター)。すべてwork/内 (gitignored): COMMANDSだけがコード。No csproj bump (lab/RE は RuntimeTools内)。 online sweep + ライセンス確認 (VBF, Phyre, kernel.bin, ATEL, FMOD, TM2, FMV) と editor NuGets。確認済みの主な発見: External File Loader (ffgriever, BSD-2) は再パックなしで loose-file、Kaitai Struct (C# runtime MIT) は C#+JSリーダーの生成に利用可能、 fahrenheit (MIT, C#) は hook+DLL mod framework、そして FFXDataParser は NO LICENSEを持つ (study only) ことを確認。tested?列はまだ❌— ローカルコーパスとの oracle テストは保留中で、計画はドキュメント自体に含まれる。Doc-only: no csproj bump (lab/RE doc-onlyルール)。 58のパッケージ化済みドシエ;- ドシエごとに 1 つのマニフェスト;
- Git-safeの
docs/history/DOSSIÊ FFX 01-06-2026/下ミラーコピーを 1 つ; - GitHubのサイズ制限によりブロックされた、単一の巨大な外部バイナリについての除外レポートを 1 つ。
- 個別の workshop-range知識ベース;
- 集約されたマスター・アトラスを 1 つ;
- ルート
KNOWLEDGE_BASE.mdを単一のエントリーポイントとして; - 正式なマージ計画を 1 つ;
Pt6/Pt9dependent-workshopsの付録を 1 つ;- プロジェクトの正式な技術ファミリー・ライン。
merge in docsExtras nowExtras laterfrozen researchhistorical cleanupps3dataffx_ps2- エグゼクティブ向けクローズアウト
- child-workshopコンペンディウム
- runtime/AIアトラス
- 後継ブートストラップ
- 簡易マチュリティ・ボード
Extras nowの判定Extras laterの判定- 凍結した調査範囲
- 導出された
Pt67の製品上の役割 ps3dataとffx_ps2の分離- プロヴェナンス・ルールブック
- 必須の引用要素 ### 追加
important.bina_ability.binReadNo-Edit Byte IdentityRereadFFXProjectEditor/FfxLib/Text/*における加法的なテキストトークン契約- 純粋な検証 / round-trip意思決定ユーティリティ
TextLabTools/TextContractHarnessを最初の production-sideスモーク・コンシューマーとしてdocs/history/BATTLE_AI_FRONTIER_2026-05-31.mddocs/history/MODELVIEWER_BINDING_FRONTIER_2026-05-31.mddocs/history/PT23_TO_PT34_KNOWLEDGE_BASE.mddocs/history/PT23_TO_PT34_CHANGELOGS.mddocs/history/PT23_TO_PT34_BRANCH_MAP.mddocs/history/PT23_TO_PT45_CODE_KNOWLEDGE_BASE.mddocs/history/PT23_TO_PT45_CHANGELOGS.mddocs/history/PT23_TO_PT45_BRANCH_MAP.mdKNOWLEDGE_BASE.mddocs/history/PT2_TO_PT11_KNOWLEDGE_BASE.mddocs/history/PT12_TO_PT22_KNOWLEDGE_BASE.mddocs/history/PT23_TO_PT45_KNOWLEDGE_BASE.mddocs/history/PT2_TO_PT45_MASTER_KNOWLEDGE_BASE.mddocs/history/PT6_PT9_DEPENDENT_WORKSHOPS_ANNEX.mddocs/history/NON_FFX_EDITOR_THREADS_ANNEX.mddocs/history/PT_FAMILY_LINES_ANNEX.mddocs/history/OFFICIAL_MERGE_PLAN_2026-05-31.mddocs/history/PS3DATA_FULL_TREE_RESEARCH_PLAN.mddocs/history/PS2_FULL_TREE_RESEARCH_PLAN.mddocs/history/PT50_TO_PT58_ABSORPTION_PLAN.mddocs/history/PT52_TO_PT58_CLOSEOUT_REPORT_2026-05-31.mddocs/history/PT50_PT51_HISTORICAL_CLEANUP_2026-05-31.mddocs/history/PT6_TEMPORARY_CLOSEOUT_2026-05-31.mddocs/history/PT6_CHILD_WORKSHOPS_COMPENDIUM.mddocs/history/PT6_RUNTIME_AI_DISCOVERY_ATLAS.mddocs/history/PT6_SUCCESSOR_BOOTSTRAP.mdhistory/pt23-battleai-structurehistory/pt24-exactlaunch-seamhistory/pt25-selectorbank-materializationhistory/pt26-battlestate-diffhistory/pt27-routereplay-truthhistory/pt28-battlecapacity-prephistory/pt29-keyitem-crashfixhistory/pt30-autoability-crashfixhistory/pt31-geometryviewport-blockhistory/pt32-chrcarrier-decodehistory/pt33-aislice-payloadhistory/pt34-legacybridge-narrowing### 変更CurrentWorkspaceOverviewCurrentMonsterEditorCurrentItemsCurrentBattleExplorerCurrentLiveBattleLabCurrentStringExplorerEncodeSafeDecodeOnlyRawPreserveUnknownRiskReuseOriginalBytesReencodeAllowedBlockedExtras / ps3dataラインの運用ラッパー- 知識を保持した有用な
Pt6 / Pt23AI micro-workshopsで、archive-safeステータスを持つもの merge nowmerge laterExtras/read-onlyknowledge onlyPt56,Pt52,Pt54,Pt58= 現在ソフトウェア内にある攻撃Pt57とPt53/Pt55の一部 = 後で攻撃、依然として read-onlyPt53,Pt55,Pt57= 過大主張を避けた積極的な調査Pt50,Pt51= クリーンなソースとして数える前の履歴整理MagicPackageViewerBatEffPackageViewerMagicEffectCrosswalkExplorernever blind merge### 検証済み- 目的
- ユーティリティ
- マージ可能性
- per-workshopミニ・チェンジログ
binding truth言語owner/target/parentage/commitに対する強い絞り込みPt6とPt23のガードレール基盤formation 0..7enemy actor rows 0..10rawMonsterId -> corpuscomposition truthvsactor-surface truthPt46 / AIBlobParityGrammarLabPt47 / AIRuntimeDispatchLabPt48 / SafeAIMicroProbeLabこれらは writer や patcher の主張がなくても、runtime/AIレガシーの一部となる。- old-waveベース
Pt2..Pt11 - middle-waveベース
Pt12..Pt22 - heavy-waveベース
Pt23..Pt45 - memory/runtime/binding/guardrails を含む単一の集約アトラス 1 つ
Pt6のサテライトPt9のサテライト- production-sideの例外
Pt29/30 Model Viewer / BindingBattle / AI / Runtime TruthText SafetyKernel / ShopTooling / Safety / ReleaseProduction Crashfixes### 注記 ### 計画 ### バックログTextSourceCapabilityIndex*StringExplorerUIの配線0x10 + 0x120x13### ブロック中 ## [v2.13.0] - 2026-06-05 ### 追加 ### 注記 ## [v2.12.0] - 2026-06-05 ### 追加FfxLib/BattleMap/BattleArenaPositionWriter.csre-stampsにより、各 actor の X/Y/Zを chunk3 のアンカー配列へ IN PLACE (on-field monsters = pointer+0x20; party/aeon/staging もroleにより) 書き込む。value-only: ヘッダー/ポインター/カウント/他のチャンクには決して触れず、 Wをそのまま保持する。battle→scene 変換は IDENTITY (IDA-proven, v2.10.0.1) なので、シーン空間で選んだ座標はそのまま書き込まれる。slot-safeと同じFormationSlotWriterパターン (ガード + backup-onceWriteLooseFile)。 ### 検証済み RT0 (no-edit == byte-identical) 862/862, POSITION-ONLY (差分は+0x20配列に限定) 862/862, RE-READ 862/862, + SAVE LIFECYCLE (一時コピーでの no-edit/edit/restore) PASS。 BiancaCatalogLab + AuroraChamberLab + BattleArenaPositionLab (以前は除外)。完全な CI PASS (7/7 ゲート): ReverseHarness, AiScriptLab, FormationSlotLab, AbilityCommandLab + 新しい 3 つ。 ### 保留 ## [v2.11.1] - 2026-06-05 ### 追加 ボックスと、(2) 言語フィルター(英語/日本語のチェックボックス、デフォルトは英語)が追加された — 以前は JP と EN が SAME リストにまとめて出力されていた(日本語が先頭で、日本語の壁になっていた)。EventExplorer_DataModel(allTextRows+ApplyTextFilter、English-first)と axaml(検索 TextBox+ JP/US CheckBoxes)をリファクタリングした。NOT は書き込み処理に影響しない(Tier 1 は--event-rt0397/397+edit 12/12 のまま)。 ### 注記 ## [v2.10.0.1] - 2026-06-05 ### 実証済み (RE / IDA, オフライン) chunk3 (battle-local) の座標を VERBATIM actor の world node — no flip-Z, scale, orに 回転としてコピーする; Yだけが per-actor model-heightを得る (actor+0x534)。.dae.phyrescene == raw Phyre vertex frame 1:1 なので、P_scene(X,Y,Z) = P_battle(X,Y,Z) (s=1, R=I, T=0)。実証された連鎖:FFX_Battle_AreaChunk_GetSetPosition(0x7AC000; chunk3 base0x112A9B0; 4 floats をそのままコピー; actor world pos @+0x3B0) →FFX_Battle_ResolveActorPlacement(0x7A9AE0) →FFX_Battle_GetActorByIndex(0x794030, stride0xF90== RT2 enemy)。flip-Zという推測は、off-field staging 行 (party-back Z≈-168) を含めたことによるアーティファクトだった。ドキュメント:docs/reverse/FFX_AURORA_BATTLE_TO_SCENE_TRANSFORM_IDA_PROVEN_2026-06-05.md(+ rename-queueは実際の.i64について)。 ### 変更 (Aurora Chamber — 正直さ) DISPROVEN/comparisonとなる;aurora-actors.jsoncoordSpace=scene_world_identity_ida_proven。 ### 保留 (新しいコードなしで既存の probe 経由の READ)。SPIRA FORGEは一時停止のまま。 ## [v2.10.0] - 2026-06-05 ### 追加 container) はもはや read-onlyではない。cutscene/event dialogue の編集が BUTTONになった。FfxLib/Event/Event_File.Write.cs(新規): byte-faithful EV01コンテナの再パック — すべてのチャンクを re-alignedから0x40まで処理し、絶対オフセットテーブル + EOFターミネーターを再計算 (magic +0xFFFFFFFFセンチネルを保持)。No-edit = VERBATIMを保証; 編集済みテキストはTextTable_File.Writeを再利用 (chunks JP=1/EN=4); ATEL script (0), ふめい 2 および FTCX (3) は byte-for-byteを保持。Tier 2 hookScriptChunkOverride(re-stitchによる編集済み chunk-0)。Event_File.cs: raw header + text tables をキャプチャ; null-pointer field-stringエントリ (8 files) にも対応し、 チャンクを verbatim で保持 (文書化された text-editable frontier)。TextTable_File.Writeadditive overload (includeTrailingPadding): internal padding なしで table+pool を出力 (コンテナを re-padsから 0x40へ)。NOTは--textstr-rt0を壊さない (デフォルト = legacy behavior)。Modules/EventExplorerが dialogue EDITORになった: 編集可能な JP/EN文字列 (TwoWay TextBox) + "Save dialogue" ボタンで、re-packsを実行し.ebpを書き込む。 (FfxLib/Ai/AiScript_File.cs、read-onlyを donor として使用) event script を読み書きできることを証明 (同じ AiFileファミリー)。- Byte-local operand PATCH PROVEN (12/12): 1 つの chunk-0 operand を編集すると、そのバイトだけが変わる; コンテナ re-stitchesは他の場所でも同一であり; re-readが新しい operand を保持する。
- GROW (AppendCode) は 文書化された frontier: donor
AppendCode(battle 用に構築, descriptors は DATA内) は、event scripts が使用する header-resident descriptors ([0x38..scriptStart)) を移動しない — event-awareの移動が必要 (AI Assembler レーンと調整)。 ### 検証済み 397/397; byte-local operand patch 12/12。Editor は 0 errors でビルド。 (0 breaks), EOF==filesize,0xFFFFFFFFsentinel。ドキュメントはdocs/reverse/FFX_EVENT_*_2026-06-05.md内。 ### 正直さ / 保留 未完了。オフライン byte-RT0による検証を優先; 編集済み dialogue の in-game RT2は引き続き推奨。 ## [v2.9.0] - 2026-06-05 ### 追加 btlmap scene catalog) を MapViewerに結合し、chunk3 から actor coordinatesを取り出す。Aurora と Bianca に捧げる。💛 - Scene Picker は
BattleMapCatalog_File/BattlefieldSceneResolver(read-only) を消費 — area と map-keyでシーンを一覧/選択。 - Render は
PhyreMapExportLab(btlmap scene の on-demand glTF export) を駆動し、FFXMapViewerWebを?catalog=/?map=/?actors=deep-link経由で開く — per-scene mini-catalog であり、共有catalog.jsonには決して触れず、app.jsを書き換えない。 - Coordinatesは新しい
FfxLib/BattleMap/BattleArenaAnchors_File.csreader (pure/Avalonia-free) 経由: chunk3 (96B area-record, pointers+0x10..+0x2C, live monsters+0x20, 16B XYZW Y-up elements) をデコードし、 battle-localアンカーを列挙して JSONを Encounter Authoring 用に出力する。?actors=のアンカー・ギズモ + "pick"モード (y=0 plane raycast → world coords)。Non-intrusive (hookswindow.ffxMapViewerDebug; no-ops は?actors/pickなし;app.jsは決して編集しない)。 ### 検証済み klyt00_00/sins02_00/mihn00_00 == doc-proven coords); コーパス 862/862 clean (0 NaN/Inf, W==0 on live monsters); deterministic; BIANCA→scene→battle→anchors パイプラインで、マッピング済みシーン 52/52 がアンカーを持つ。 10,804 triangles,gatePass: true)。Editor は 0 errors でビルド (分離した HEAD worktree で検証)。 ### 正直さ / 保留 UNCALIBRATED** (P_scene = R·s·P_battle + T; flip-Z/yaw-180は未解決) — アンカーは raw battle-localであり、 engine-exactではない。Probe のキャリブレーション = Wave 3 (Halyson の OKが必要)。SPIRA FORGEは PAUSEDのまま; Aurora は CONSUMES MapViewer + BIANCA (read-only/additive) のみで、ハブは起動しない。 ## [v2.8.0] - 2026-06-05 ### 追加 (HDps3data/btlmapの 25 areas / 56 scenesをカタログ化 —<area>NN_<variant>とmdl/d3d11/<leaf>.dae.phyreを備える) +FfxLib/BattleMap/BattlefieldSceneResolver.cs。Pure/Avalonia-freeで、 エディターへコンパイル (0 errors)。 "azit03")** であり、NOTはbattlefieldu16 (これはマップ間で共有される global arena id —bf=1061は nagi/test/tori/zzzz にまたがる)。Doc:docs/reverse/FFX_BATTLEFIELD_SCENE_BRIDGE_2026-06-05.md。 pointer+0x20にある** (float32 X,Y,Z,W; Y-up; W=0; 16-byte stride; formation slot ↔ entry)。Party+0x10, aeon+0x18, camera+0x2C。Doc:docs/reverse/FFX_BATTLE_FORMATION_POSITION_CHUNK3_DECODED_2026-06-05.md。 (-- export --ps3-root <ps3data> --area btlmap/azit/azit03_a)。Actor-overlay計画 + probe の座標キャリブレーション (DESIGN):docs/ai/FFX_AURORA_COORDINATE_SYSTEM_AND_CALIBRATION_2026-06-05.md(Halyson の OKを使う probe のみ)。 ### 検証済み deterministic; primary model が正確に 1 つあるシーン 56/56; 説明不能な見落とし 0の bridge (22 HD-orphan maps = cut/PS2-only EXPECTED; orphan scene 4 件 bika04/grid00/nagi03/sfia00 = boss/story EXPECTED)。 ### 保留 DINPUT8 probe には Halyson の OKが必要で、SPIRA FORGEは PAUSED。 ## [v2.7.1] - 2026-06-05 ### 追加 / 検証済み WeaponNameTable, MacroDictionary, NameDescriptionTextTable, NameDescriptionTextPrefixTable, BtlTextTable, SphereGrid, ShopGearCatalog, BukiGetTreasureCatalog, AlBhedDictionary, PointerScriptTable, BattleTextTable, ShopTable。Preserve-only パターン (WriteIdentityは lossy-rebuildのものに適用)。新しい gate-sweepTools/Wave1Rt0.cs。 ## [v2.7.0] - 2026-06-05 ### 追加 AiFile partition を DIFFERENT長のものに置き換え、AiFileを 16 パディングし、後続セクションをシフトして ヘッダーのセクションポインターを書き換える (m###.bin)。AiFileは verbatimで書き込み (codeLengthの clobber なし)。AI Assembler UIは現在 SAVES grow/shrink に対応 (以前は length-preservingのみ)。clobber の原因を文書化し、設計で修正 (Option B: 最小限のサーフェスで、NOTはMonster_File.Writeに触れる →--monster-rt0は 361/361 を維持)。 VMのサイズを worker counts + per-worker datalen (16 単位に丸めて) から決め (NOT partition/DeclaredLength/codeLength)、in-fileポインターを信頼する → grow のリロケーションが尊重され、末尾パディングは安全。 (黄金律: rename-queue。) ### 検証済み (insert → grow-aware splice → re-read clean + tail/header を verbatim で保持 + 16-aligned + 冪等)、 SHRINK 346/346 (non-targeted instr を削除 → 負の delta → re-read clean + tail を保持)。--monster-rt0361/361 (リグレッションなし)。コーパスのアライメント: 16/32/64/128/256, trailing pad 0。 (free-edit)"** カードを、編集可能な instruction list (opcode/operand/remove) + Insert/Save Structural + preview とともに表示。スクリーンショットwork/spira_forge_qa/monster_ai_assembler_v01.png。 ### 保留 — Halyson の明示的な OKの下で。オフライン + REは byte/game-safetyを証明する; in-game画面が最終的な判定者となる。 ## [v2.6.0] - 2026-06-05 ### 追加 (insert / remove / modify) を扱い、byte-localの operand editor 上に配置。再構築された AiFileはAiScript_File.Rebuildから生成 (RT0-proven: old→new マップにより entrypoints + jump tables をリロケート)。編集可能なリスト (opcode/operand hex + remove checkbox), insert-after-selected, delta preview。Save は length-preserving編集でのみ有効 (codeLengthは変更なし) → byte-safeによるSpliceAiFileIntoMonstersplice。GROW/SHRINKは LAB (正直なメッセージ): loose-file save には header-aware monster relayout + alignment padding + in-game proof が必要。 --ctbbase-rt0→CtbBase_File(ctb_base.bin), preserve-only。--mixtable-rt0→MixTable_File(prepare.bin), preserve-only。--aiasm-rt0→ AI Assembler の構造的 save (no-edit Rebuild + relayout + splice byte-identical) を証明し、コーパスの AiFile→WorkerFileアライメントを測定。 ### 検証済み length-preservingの編集は byte-safe。Grow=LAB (原因:Monster_Fileの 0x34ヘッダーがAiFile[0..4)と重なり =codeLength、長さの変更で WorkerFileアライメントが壊れる; コーパスは 16/32/64/128/256-aligned, trailing pad 0)。 ### ブロック中 / LAB ## [v2.5.0] - 2026-06-05 ### 追加 controls (Open Spector,Capture Next Frame,Export Last Capture) と、最初のMaterial Debugパネルを公開するようになった。 これはロードされた glTFマテリアルのライブインベントリ、セレクター、ファクトチップ、および per-slotテクスチャカード (map,normalMap,aoMap,envMapなど) を備える。 ### 検証済み controls が表示され、Material Debugパネルにロード済み glTFの内容が表示された。Frame preview unavailable/Texture preview unavailable on this source surfaceへ縮退する。 ## [v2.4.4] - 2026-06-05 ### 追加 選択可能なバトルが表示されるようになった。1 つ選ぶとFieldContext.SelectedBattleIdへ publish され、Formation Editor は そのバトルへ直接ジャンプする (formation をロード)。共有 spine を通じてマスタープランの"ゾーンをクリックして formation を交換"を実現し、 shell の配線は不要。FieldContextにSelectedBattleId/SelectBattleを追加。 ### 検証済み フォルダーのない BattleIdsが 37 件、参照されないフォルダーが 37 件 (special/event battles) — handoff は 存在するものだけに絞り込む。 Editor がロード済みバトルへジャンプ)。スクリーンショットwork/spira_forge_qa/handoff_encounter_to_formation_v04.png。 ## [v2.4.3.1] - 2026-06-05 ### 逆検証 / 証明 仮説 (CONTINUE_AQUI_PERNAS_HD): "52m_skeletonMatrices→ 79 ジョイント" のマップは Phyre ファイル内にある, IDA 内にはない.- スキンパレットは
PMatrix4[0..51]である (PMeshの field 12 からリンク); livem_skeletonMatricesと一致し byte-for-byte (maxDist=0.00000). - スロット→node map is the
intat offset 12 of eachPSkeletonJointBounds[j](52 slots → 52 nodes, bijection). m_defaultPoseからm_matrixParentsまでの合成で作成済みの inverse-bind EXACTLY を再現:0/52ノードが 分岐する. したがって--hd-defpose+--hd-parentsがすでにゲーム本来のバインドである.- 過去のコイルの原因:
--hd-defpose/--hd-parentsなしでベイクするとinvBind = PMatrix4[52+b]にフォールバックし (raw LOCAL 行列) → メッシュが破綻する. defpose+parents のレシピが修正方法であり すでにギャラリーのデフォルトである. - 新しい read-only probes:
work/_scratch_mgrp/phyre_palette_probe(パレットを特定し, バインドが正確であることを証明し,node_to_slot.jsonを出力) およびphyre_legs_probe(matcher; coincident-translation の落とし穴を示す). ### 検証済み c007 (Rikku) — 強制休止, 戦闘 (id5_c4318 t0.0–0.9), 深いしゃがみ姿勢でのふくらはぎ4方向, および multi-clip (c4333/c4365/c4886). 数値上: leg-joint の local/world 行列は完全な剛体 (scale=1, det=+1, ortho 0.0000). IDA はない. 完全な証明はdocs/reverse/FFX_HD_SKIN_PALETTE_DECODED_LEGS_NOT_BIND_2026-06-05.mdにある. ## [v2.4.3] - 2026-06-05 ### 追加 byte-gated されたことのない writer を対象に, さらに4つの具体的な editable-base 系統を閉じる: --keyitem-rt0(Tools/KeyItemRt0) →KeyItem_File(important.bin), preserve-only writer (元の バイト列を複製し + re-stamps のみPrimerByte10/OrderingByte13を処理する).--treasure-rt0(Tools/TreasureRt0) →Treasure_File(takara.bin), full-decode round-trip (1エントリ4バイト).--customization-rt0(Tools/CustomizationRt0) →Customization_Filegear kaizou.bin + aeon sum_grow.bin (ヘッダの prefix/tail + re-emits デコード済みエントリを保持).--autoability-rt0(Tools/AutoAbilityRt0) →AutoAbility_File.WriteAbilities(a_ability.bin, DATA section), preserve-only writer. (arms_rate.binは read contract を満たすためだけに読み; NOT による arms_rate の書き込み および NOT によるWriteAbilitiesAndText/text repack のカバー). ### 検証済み takara.bin (503エントリ, 2012 B), kaizou.bin (125) + sum_grow.bin (77), a_ability.bin (134エントリ, 19590 B). No-edit save = byte-identical; edit = byte-local (Monster/Encounter を閉じたのと同じ preserve-only パターン). 歴史的な注意書き "important.bin/a_ability.bin は mutation-safe writer の主張についてブロック" を部分的に解除: field (data-section) の編集は証明済み; text-pool repack は未主張のまま (同じ monmagic-style ドリフト リスク — このゲートの対象外). ## [v2.4.2] - 2026-06-05 ### 追加 インライン表示 (e.g.[m003 - Murussu, m003 - Murussu, m009 - Dingo]). Lazy-loaded + キャッシュ済み + 上限付き (≤90 表示可能 バトル; 全一覧ではエリアでの絞り込みを求める). Read-only; masterplan の "出現するモンスターで塗り分けたゾーンを 表示" をエディターに取り込む (encounter↔formation の融合を可視化). ## [v2.4.1] - 2026-06-05 ### 追加 production helper として抽出 (slot-only guard + backup-once.spiraforge.bak+ write). Formation Editor で使用され (PersistSnapshot) AND が headless gate でテスト済み — エディターとテストで同じコードを使用し, 重複なし. ### 検証済み read-only を遵守): (a) no-edit Save = disk byte-identical + backup==original; (b) edit Save = slot-only を disk 上に書き込み + reread の一致 + backup を保持; (c) backup からの復元 = byte-identical. PASS. v0.2 の honesty gap を閉じる (in-app save が disk 上で証明済み, 可逆). Corpus は引き続き 858/858;offline_ciの4ゲート PASS. ## [v2.4.0] - 2026-06-05 ### 追加 Entries/Groups/Formations (VARIABLE の件数 + create tables) から生成し, 新しい dataOffsets を割り当て, chunk0 + chunk table を再構築し, block-sharing + padding を保持. Gate は--encounter-rebuild-rt0. 「 "CREATE ENCOUNTERS" の構造的 基盤. ### 検証済み (4096/4096)** + grow-test (formation を1つ追加, end 0x1000→0x1002, 2 chunks intact) 有効. ; trailing padding のドリフトを修正. 正直な注記: StringExplorerhelp_txt.binの登録 はこの抽出では DEAD (ファイルなし) — writer は実際の field-string (spcodedic.bin) で証明済み. ## [v2.3.2] - 2026-06-05 ### 追加 (Ability_Command.ReadList→WriteList) を、KernelCommandsはすでに Save に使用しているが、byte-gated されたことはなかった. editor project (deep dep tree) を参照し, static FfxLib methods のみを呼び出す.offline_ci.ps1に組み込み. ### 検証済み (1 byte) 4/4. PASS. これは "new Black magic" という構想機能 (command.bin に存在) の証明済み基盤である. ### ブロック 元データはテキストを 共有/dedup する一方WriteListre-appends (FfxEncoding.WriteBytesIntoTextFileのみ 追加する; command/item は pure-append → 一致する). リスク: KernelCommands' MonMagic Save はファイルを肥大化させる — dedup-aware writer が合格するまでゲートする. Audit + fix target:docs/reverse/FFX_ABILITY_WRITER_AUDIT_2026-06-05.md. ## [v2.3.1] - 2026-06-04 ### 追加 EOF を越える (kino03_*,mihn05_*,cdsp00_02): past-EOF chunk (およびそれ以降) を存在しないものとして扱い ファイル全体を拒否することなく; 先行するチャンク (formation @2 を含む) は有効なまま. これらのバトルは Formation Editor で編集可能になった. ### 検証済み re-read 858/858 PASS. 以前の843は変更なし. ## [v2.3.0] - 2026-06-04 ### 追加 モンスター (16 bytes) をBattle_File.WriteWithFormationSlots経由で交換し, byte-safe slot-only.FieldContextspine を利用 (Hub で選択した field area の pre-filters battles). Monster picker (Monster_Dictionary+ Empty, raw high nibble を保持). Save は workspace loose-file に.spiraforge.bakbackup +AssertSlotOnlyDiffguard をByteSnapshotEditorSession経由で書き込む (Undo/Discard). Offline, probe なし. (-BtlRootparam). read-only members をBattle_Fileに追加 (FormationChunkOffset/FormationSlotsOffset/FormationSlotsLength). ### 検証済み (当時 reader で解析不能だった15件の btl_* — v2.3.1 で修正). ## [v2.2.0] - 2026-06-04 ### 追加field_tokenをキーとする spine. Field picker は bridge CSV から供給され (ps3data-map-btlmap-fieldid-bridge.csv, 357 fields, structural-candidate). field を選択するとFieldContext(observable singleton) に公開され, 2 consumer が read-only に反応: map deep-link (FFXMapViewerWeb 用の?map=map/<area>/<field>) + encounter peek (btl.binをEncounterTable_File経由で読み, area↔map の結合候補). CSV は csproj<Content>経由で出力にコピー. Offline; picker は project なしで動作. writer なし, probe なし. ### 検証済み Screenshotwork/spira_forge_qa/field_hub_v01.png. ## [v2.1.1] - 2026-06-04 ### 検証済み--player-rt0gate:ply_save.bin(3098) +ply_rom.bin(2161) -> no-edit RT0 byte-identical. (Writers は以前から存在していた slot-only; 現在は gated.) ## [v2.1.0] - 2026-06-04 ### 追加btl.binbyte-for-byte と re-stamps を保持し, 編集可能なフィールドのみ (tableId/Unknown0C, groupBattlefield/Danger/TotalWeight, formationId/Weight) を対象とする.--encounter-rt0gate を editor に追加. ### 検証済み ## [v2.0.0] - 2026-06-04 > NEW ERA — MAJOR. エディターは「オフラインのファイル編集」から PROVEN LIVE RUNTIME EDITING へ移行した: > AI のバイトコードを RAM で編集し、挙動が 画面上で 変わるのを確認できる。クラッシュせず、元に戻せる — > プロジェクトの 最高目標 #1 が実現した。MAJOR = 新たな 能力クラス(契約/セーブ/ビルドを壊す変更ではなく、 > 追加と堅牢化だけを行った)。-betaは、RT2/God-Mode がまだガード付きの UI として製品化されていないため。 > Claude Code/VSCode の波と、2つ目のCodexアカウントとの統合の節目。 ### ハイライト 画面上で変化 — フレイムプリン ファイガ→サンダガ。クラッシュせず、元に戻せる。チェーン:enemy-list(0xD34460) ->MemoryChr.Ptr_script_chunks(+0xF78) -> ライブ AiFile === diskm0NN.binbyte-identical。 グローバル能力を実行する — モンスターがそれを「所有」している必要はない。証拠: 画面上で スコル spat イフリート's 地獄の火炎 を確認。 データ復活(死亡フラグ+KO)まで、すべてMemoryChr+プローブ経由で行える。 ### 追加 offset** (+delta) -> 有効なより大きい AiFile ("ADD AI" への道, byte-local budget を超える). jump labels + inferred worker type), operand editing + loose-file Save.FFX_MUSIC_SYSTEM_AND_MOD_IDEA(Music Remapper),FFX_AI_BYTECODE_OPCODE_TABLE_PROVEN,CODEX_MAPVIEWER_WATCH_JARVIS,FFX_MAP_DEVELOPMENT_TOOL_MASTERPLAN(Spira Forge). ### 変更 / 検証済み StatSheet/Loot + header Signature/Padding を保持 (Padding はAiFile[0..3]と重複). ### ブロック / 保留 (正直な記載) (game-closed rebuild). Player を発見:FFX_FmodMusic_PlayTrackByIndex(181 tracks); PS2 SPU FIFO は HD 上で stub. ### Labs から吸収 / Multi-agent 2nd Codex account との統合 (MapViewer / model-texture lane): exporter が material-role を公開 signals (TextureSampler1/normalMap/reflection/water/PhyreWaterShader), external-viewer の比較 (glTF-Sample-Viewer を oracle として; gap は exporter-side で証明済み, shell ではない), および Spira Forge の masterplan kickoff. Multi-agent の coordination はdocs/ai/CODEX_MAPVIEWER_WATCH_JARVIS.mdに記録. ## [v1.7.0] - 2026-06-04 ### 追加AppendCode: 命令を末尾に追加 + data section を再配置.Rebuild: 命令を ANYWHERE 単位で insert/remove/modify + AUTOMATICALLY がすべての jumps + entrypoints (old→new linker map) + data section を再配置. Orphan branch (removed instr) -> 正直なエラー. ### 検証済み workers が解決し, post-insertion entrypoint は自動で0x2D1→0x2D4に再配置; grow-test (AppendCode) RT0. ## [v1.6.0] - 2026-06-04 ### 検証済み StatSheet/Loot + headerSignature/Paddingを保持 (Padding はAiFile[0..3]と重複). ## [v1.5.0] - 2026-06-04 ### 検証済み / ブロック swap BLOCKED** (FMOD API__thiscall, probe cdecl-only). DocFFX_MUSIC_SYSTEM_AND_MOD_IDEA(Music Remapper). ## [v1.4.0] - 2026-06-04 ### 検証済み (live) ability を実行 — monster はそれを "own" する必要がない. Proof: 画面上で スコル spat イフリート's 地獄の火炎 を確認. ## [v1.3.1] - 2026-06-04 ### 修正 / 検証済み (live) flags). Auto-scan (Scanstatus) を live で切り替え. ## [v1.3.0] - 2026-06-04 ### 検証済み (live) (POINTER_BATTLE_ENEMY_LIST 0xD34460, stride0xF90) + probe. ## [v1.2.0] - 2026-06-04 ### 追加 jump labels) + operand editing + loose-file Save. ## [v1.1.0] - 2026-06-04 ### 検証済み (🏆 HEADLINE — supreme goal #1) 画面上で挙動が変化 (フレイムプリン ファイガ→サンダガ), クラッシュなし, 可逆. Chain:enemy-list 0xD34460->MemoryChr.Ptr_script_chunks +0xF78-> live AiFile === diskm0NN.binbyte-identical. Doc:docs/reverse/FFX_AI_RT2_LIVE_EDIT_PROVEN_2026-06-04.md. ## [v1.0.0] - 2026-06-01 エディターを実際の読解, 検証, および knowledge-navigation プラットフォームとして成熟させるマイルストーン.Extrasの product surface が十分あり, runtime, AI, および body-playback の難所が未解決でも正直な1.0を正当化できる. ### ハイライトPS2 KnowledgeTextures (TM2 + TXC/CLT/FMT/SPS2 support lane)BIN-FTC AtlasProject / PipelineMagic EffectsPresentation ContainersBattle Corpus Crosswalk### 追加MagicPackageViewerBatEffPackageViewerMagicEffectCrosswalkExplorerFtcHeaderInspectorBinSidecarGraph- shell 内の
Signature Group TxcCltPairExplorer- cold
fmt/sps2metadata ### 変更 ### 検証済み read-onlydo not promote- 該当する場合は
no runtime proof - 該当する場合は
pipeline/support only### 注記 magic solvedAI solvedModelViewer playback solved- 広範な書き込み処理の承認 ## [v0.11.0-beta.2] - 2026-06-01
Extrasのmainラインにおける、実際の製品としての発展。 ### ハイライト masterffx_ps2ps3dataPS2 KnowledgeTextures (TM2)BIN-FTC AtlasProject / Pipeline### 追加ExtrasSourceResolverExtrasEvidenceBadgeModelExtrasProvenanceModelExtrasReadonlyBoundaryModelExtrasFileOpenServiceCdIndexExplorerProjectDescriptorViewerAbmapSupportGraphdocs/history/PT52_BIN_FTC_FILE_MEANING_GUIDE_2026-06-01.mddocs/history/PT53_BATTLE_MAGIC_FILE_MEANING_GUIDE_2026-06-01.mddocs/history/PT54_PROJECT_ABMAP_FILE_MEANING_GUIDE_2026-06-01.mddocs/history/PT56_TEXTURE_PALETTE_FILE_MEANING_GUIDE_2026-06-01.mddocs/history/PT57_PRESENTATION_CONTAINER_FILE_MEANING_GUIDE_2026-06-01.mddocs/history/PT58_FFX_PS2_OWNERSHIP_AND_LINKAGE_GUIDE_2026-06-01.md### 変更 ### 検証済み- 書き込み処理なし
- 再パックなし
- 最終デコードの主張なし
- 静的な調査と実行時の証拠を混在させない ### 注記
kernel -> mag_* -> bat_eff## [v0.10.0-beta.1] - 2026-05-31 厳選したワークショップ取り込みの最初の大きな波を受けた Main-branch 統合ベータ版。 ### ハイライト ### 追加Shop ExplorerFfxLib/ShopAssets/Shopitem_shop.binとarms_shop.bin向けのガード付き書き込み処理NameDescriptionTextPrefixTable_Filereader + no-edit guard(important.bin向け)reader + no-edit guard(a_ability.bin向け) ### 変更 ### 検証済み ### 保留 ### ブロック ## [v0.9.0-beta.1] - 2026-05-31 実際のエディターとその周辺エコシステムの本当の規模を正面から受け入れた、最初のバージョン。 ### メインブランチのハイライト ### メインに存在する本番サーフェス ### ワークショップからの取り込みTextLabTools;ProductionAuditTools;- 保守的なテキスト/モンスターハーネスとリリース。
PlayerGrowthEditor;CtbBaseEditor;MixTableEditor;- 後に
KeyItemEditorを支えた歴史的なライン。 AutoAbilityEditor;AutoAbility_File.csとArms_Rate.csに由来する保守的なパーサー。Shop Explorer;FfxLib/Shop;Assets/Shop;item_shop.binとarms_shop.bin向けのガード付き書き込み処理。 ### ガバナンスとバージョン管理 ### 検証済み ### 依然としてブロック中 ### それでもまだベータ版である理由 ## 歴史的な意味の再構成 重要な編集上の注記: ## [v0.8.0-beta.1] - 歴史的な再構成(pre-Git 正式な SemVer) エコシステムがすでに、複数の専門フロントを同時に稼働させる大規模なモジュラーエディターとして動作している段階。 ### この段階のメインサーフェス ### エコシステムからの圧力 ### まだ不足しているもの ## [v0.7.0] - 歴史的な再構成(pre-Git 正式な SemVer) メインラインが「モジュールを増やす」段階から「証拠を増やす」段階へ移る節目。 ### 追加 ### 変更 ### まだ安全ではない ## [v0.6.0] - 歴史的な再構成(pre-Git 正式な SemVer) カーネルラインと、二次システムの保守的な堅牢化が約束ではなくなり、本格的なエディターの一部になる節目。 ### 追加 ### 変更 ### まだ不足しているもの ## [v0.5.0] - 歴史的な再構成(pre-Git 正式な SemVer) 力強いKernelTablesLabの波の節目。 ### 追加 ### 変更 ### まだ不足しているもの ## [v0.4.0] - 歴史的な再構成(pre-Git 正式な SemVer) プロジェクトが実際の基準に基づいて、テキスト上で「はい」と「いいえ」を言えるようになる節目。 ### 追加 ### 変更proven reader;conservative writer;blocked; ### まだ不足しているもの ## [v0.3.0] - 歴史的な再構成(pre-Git 正式な SemVer) エディターが単なるファイルブラウザーではなくなり、AI、ランタイム、および high-value のゲームプレイ領域に触れ始める節目。 ### 追加 ### 変更 ### まだ不足しているもの ## [v0.2.0] - 歴史的な再構成(pre-Git 正式な SemVer) エディターが大規模で目に見えるシステムへ構造的に拡張する節目。 ### 追加 ### 変更 ### まだ不足しているもの ## [v0.1.0] - 歴史的な再構成(pre-Git 正式な SemVer) 使い捨てのプロトタイプをはるかに超え、実際のエディターがすでに存在していたことを示す、誠実な最小マイルストーン。 ### 追加 ### 変更 ### まだ不足しているもの ## [baseline-2026-05-31] - 2026-05-31 本番をGitへ取り込む、誠実な初期インポート。 ### 追加 ### 保持されたもの ### 検証済み ### 注記 ## ワークショップ「Mini-Version」の歴史 注記: ## [pt2-v0.3.0-superseded.1] - 2026-05-31 ### 目的 ### 発展 ### メインブランチの結果 ### 最終ステータス ## [pt3-v0.8.0-freeze.1] - 2026-05-31 ### ミッション ### 進化 ### メインブランチの結果 ### 最終ステータス ## [pt4-v0.5.0-hold.1] - 2026-05-31 ### ミッション ### 進化 ### メインブランチの結果 ### 最終ステータス ## [pt5-v0.9.0-final.1] - 2026-05-31 ### ミッション ### 進化 ### メインブランチの結果 ### 最終ステータス ## [pt6-v0.7.0-beta.1] - 2026-05-31 ### ミッション ### 進化 ### メインブランチの結果 ### 最終ステータス ## [pt7-v0.9.0-final.1] - 2026-05-31 ### ミッション ### 進化 ### メインブランチの結果 ### 最終ステータス ## [pt8-v0.7.0-freeze.1] - 2026-05-31 ### ミッション ### 進化 ### メインブランチの結果Shop Explorer;FfxLib/Shop;Assets/Shop;- ガードレールを
docs/history/PT8_SHOP_GUARDRAILS.mdに記録. ### 最終ステータス ## [pt9-v0.6.0-alpha.1] - 2026-05-31 ### ミッション ### 進化 ### メインブランチの結果 ### 最終ステータス ## [pt10-v0.2.0-final.1] - 2026-05-31 ### ミッション ### 進化 ### メインブランチの結果 ### 最終ステータス ## [pt11-v0.3.0-blocked.1] - 2026-05-31 ### ミッション ### 進化 ### メインブランチの結果 ### 最終ステータス ## [pt12-v0.3.0-package.1] - 2026-05-31 ### ミッション ### 進化 ### メインブランチの結果 ### 最終ステータス ## [pt13-v0.3.0-package.1] - 2026-05-31 ### ミッション ### 進化 ### メインブランチの結果 ### 最終ステータス ## [pt14-v0.2.0-architecture.1] - 2026-05-31 ### ミッション ### 進化 ### メインブランチの結果 ### 最終ステータス ## [pt15-v0.2.0-architecture.1] - 2026-05-31 ### ミッション ### 進化 ### メインブランチの結果 ### 最終ステータス ## [pt16-v0.2.0-architecture.1] - 2026-05-31 ### ミッション ### 進化 ### メインブランチの結果 ### 最終ステータス ## [pt17-v0.3.0-guardrail.1] - 2026-05-31 ### ミッション ### 進化 ### メインブランチの結果 ### 最終ステータス ## [pt18-v0.3.0-governance.1] - 2026-05-31 ### ミッション ### 進化 ### メインブランチの結果 ### 最終ステータス ## [pt19-v0.3.0-surface.1] - 2026-05-31 ### ミッション ### 進化 ### メインブランチの結果 ### 最終ステータス ## [pt20-v0.2.0-strategy.1] - 2026-05-31 ### ミッション ### 進化 ### メインブランチの結果 ### 最終ステータス ##v2.227.0.0(2026-08-08) — Visual QA インフラ: FREE モデルをverboo_router.pyに配置 (正直な制限 + パワー比較). MINOR. Lane Jarvis-CLINE. [previous:v2.226.0.0] ##v2.226.0.0(2026-08-08) — Visual QA インフラ: OpenCode Go 統合 (gpt-5.6-luna) +descモード + 人間向けにした UX プロンプト + レポート修正. MINOR. Lane Jarvis-CLINE. [previous:v2.225.2.0] ##v2.225.2.0(2026-08-06) — F7 Monster AI Swap: status-on-ability を RAM 経由で. MINOR. Lane Jarvis-HOOK. [previous:v2.225.1.0] ##v2.225.1.0(2026-08-06) — Treasure マップ: ATEL ヘッダー解析 + 用語集修正. PATCH. Lane Jarvis-CLINE. [prev:v2.225.0.0]
v2.11.0BETA
Seymour
🧠 AI ASSEMBLER PRODUCTIZED (実用的な monster-AI エディター):
- codec の "AI を 100% 自由に編集する"ことが, FEATURE になった.
FfxLib/Ai+Modules/MonsterAiEditorレーンの新機能: - Behavior library (
AiSnippetLibrary): バイトが MIRROR の実証済みコーパスイディオムに従うパラメーター化テンプレート — linear (force-cmd/perform-cmd/grant-field/set-stat/raw-call) と conditional (RNG 1-in-K rotate, カウンター/フェーズ用の on-event force-command). - Pre-flight validator (
AiValidator): opcode∈48, HasOperand と 0x80, dangling branch/entrypoint (不透明な throw にせずどちらかを名前で示す), operand ranges, RT0 self-check, Rebuild dry-run, grow/shrink;SaveAssemblerは防御的になり (エラー時の書き込みを拒否). - 使いやすいコマンドセレクター (
AiCommandId): performCommand operand と名前を,(cat<<12)|idによってCommandCharacter/CommandMonster1_Dictionary上で対応付け; UI dropdown (raw hex は不要). - 新しい codec プリミティブ (
AiScript_File):GrowWorkerJumpTable(worker の jump-table にスロットを追加 — NEW ブランチを有効化) +AppendGuardedAction(元のハンドラーを保持しながら, エントリポイントにガード付きアクションを前置) +OperandKindOf. - UI を
MonsterAiEditorに: Behavior Library カード + Validate ボタン/レポート + command dropdown. - Gate
AiScriptLab --ai2PASS (実コーパス, 361): jump-grow 898/898 workers, guarded-action 692/692 (first+last entrypoint) + synthetic sentinel 1/1, validator clean 346/346, AiCommandId 620/620, positive-catch 8/8/8 (エディターパス経由の jumpOOB). 元の--RT0 ゲートは 361/361 intact. - A の 4-agent adversarial review で 2 件のバグを発見し修正 (one-past-end sentinel self-loop;
OperandKindを落とし エディターの保存パスで), 現在はゲートによって固定されている. Docs:docs/reverse/FFX_AI_JUMPTABLE_GROW_PROVEN_2026-06-05.md+docs/ai/FFX_AI_ASSEMBLER_PRODUCTIZED_2026-06-05.md. - ⚠️ 構造は OFFLINE として実証済み; in-game の挙動 (RT2) は Halyson の OK (probe) 待ち. テンプレート "heal ally < 25% HP" と "enrage on turn N" は NOT として出荷済み (HP-field / turn-counter anchor は byte-confirmed ではない).
- テクスチャ (manifest-driven):
extract-texture-batchのRuntimeTools/PhyreModelExportLabに--from-manifestを追加,<id>.ahwin32g_fileNames[](権威あるアセットマニフェスト) を読み, ゲームがロードする EXACT テクスチャを抽出. 305 PNGs (pc/npc/sum), プロヴナンスマップtexture-provenance-map.json, 0 silent mismatch. RE:ahwin32は読み取り可能な C ヘッダーであり — cross-refs (c906←c106,c908←c108,c806←c805) AND multi-texture (c101+c101_01,n238+n238_hair,n356←n238_hair) を IDA なしで解決. 追加の発見: NPC rig-inheritance key =0x6NNNin the.chr(nXXX→kNNN map, 222/222 valid). Docdocs/reverse/FFX_AHWIN32_ASSET_MANIFEST_2026-06-05.md. - ベイク (mesh+texture+anim): driver
work/_scratch_mgrp/bake_cast.pyviaphyre_chr_gate. Static 253/253 (キャスト全体をテクスチャ化, clean). Animated: sum own motion, npc inheritsskl/<base>. - ビジュアル QA (workflow, 21 vision agents): 248 animated を F3D 経由でトリアージ — 157 clean / 58 torsion / 33 exploded. Bind picker (rest/A1) は 33 件を修正しなかった.
- 🔧 スクリュー CORRECTION (2026-06-06): F3D はスキンアニメーションで LYING だった. スクリュー の診断 (mesh
EXPLODE_RATIO≈1.0、成長なし)+真実に即したEeveeレンダーにより、「exploded」状態のものも 本体は無傷で、 伸びていたのは手足やアクセサリだけだと判明した。Re-QA(スクリューのレンダーを8エージェントが確認)により、175 clean (71%) / 59 torsion (24%) / 14 exploded (6%) へ訂正された — 20モデルを救済し、オフラインベイクは常に 約94%が使用可能だった。 本物の14件は 11体のAeon+3体のnpc(non-humanoidリグ。mocap/parent-map REが必要)。ルールを更新: BLENDERの画面が判定し、F3Dは嘘をつく。パイプラインwork/_scratch_mgrp/blender_{diagnose,render_anim,batch_render}.py。 - 🎯 RETARGET SOLVED(
--retarget-delta経由、2026-06-06): 175→215 clean (87%)。 新しいphyre_chr_gateフラグで、継承モーションを frame0からnpcのRESTへ差分として適用(M=restLocal·inv(m0)·mf)し、ベースの比率を押し付けずにnpcの比率を保つ。IDA RE により、.chr@0x30remap はすでに適用済みだと判明した — 原因はremapではなく rest-pose retarget(docFFX_INHERITED_MOTION_REMAP_RUNTIME_2026-06-06.md)。 本当にぶっ壊れた73体を対象にしたパイロット+バッチ+スクリュー re-QA+per-model keep-best: +40 clean、44件を救済、ZEROの回帰(回帰するため1件は維持)。NPC animated = 200/222 clean (90%)、0 exploded; 8体のAeonはなおexploded (メッシュ側では対処できないためmocapへ)。MASTER §2.4 の「A1-universal」を、A1のリスクなしに解決する。 - 🐉 WHOLE CASTをオフラインで完了(2026-06-06): 498/643 clean (77%)、90%が使用可能。 truthful-Blender-QA+ retarget-delta+keep-bestを残りにも拡張: obj/wep/pc(46 clean/55、party clean)AND 340 MONSTERS を対象にした。旧 モンスター QA(bbox)は「0 explosions」と主張した = 嘘; 真実に即した スクリュー QA(29エージェント)が 実際にぶっ壊れた個体127件を発見; retarget-delta を継承済み66件に適用 → 36件を昇格し、モンスターは206→237 cleanとなった。アニメーション合計(643): 498 clean / 86 torsion / 51 exploded / 8 blank. 残り (9%) = divergent mesh / degenerate bind → mocap/mesh-RE, retarget ではない.
- obj/wep/pc (2026-06-06): 同じパイプラインを拡張 — static obj 110/110 + wep 79/79 + pc 34/49 (15 pc failures =
c8xxのダミースロットで, PS2.chrがない). HD cast static 全体 = 476 models. obj/wep は主に rigid (sparse anim 25/7); 画面 spot-check: f001/w001/c004=Auron clean. - Gallery
work/cast_hd_gallery.html(model-viewer, static/anim toggle, sum/npc/obj/wep/pc filter). すべてwork/(gitignored) にあり: コードなのは COMMANDS のみ. No csproj bump (lab/RE in RuntimeTools). editor NuGets. 審査済みの主な発見: External File Loader (ffgriever, BSD-2) loose-file repack なし, Kaitai Struct (C# runtime MIT) で C#+JS readers を生成, fahrenheit (MIT, C#) hook+DLL mod framework, そして FFXDataParser has NO LICENSE (study only) であることを確認.tested?column は依然❌— ローカルコーパスに対する oracle test は保留で, 計画は doc 自体に記載. Doc-only: no csproj bump (lab/RE doc-only rule). 58packaged dossiers;- dossier ごとに 1 manifest;
- Git-safe のミラーコピーを
docs/history/DOSSIÊ FFX 01-06-2026/配下に 1 つ; - GitHub size limits によりブロックされた, 単一の巨大な外部バイナリについての除外レポート.
- 個別の workshop-range ナレッジベース;
- 集約されたマスターアトラス 1 つ;
- 単一のエントリポイントとしてのルート
KNOWLEDGE_BASE.md; - 公式マージ計画 1 つ;
Pt6/Pt9dependent-workshops annex;- プロジェクトの正式な技術ファミリーライン.
merge in docsExtras nowExtras laterfrozen researchhistorical cleanupps3dataffx_ps2- エグゼクティブ向けクローズアウト
- child-workshop compendium
- runtime/AI atlas
- successor bootstrap
- 短い maturity board
Extras nowverdictExtras laterverdict- 凍結された研究境界
- 導出された
Pt67の製品上の役割 ps3dataとffx_ps2の分離- プロヴナンスのルールブック
- 必須の引用ファセット ### 追加
important.bina_ability.binReadNo-Edit Byte IdentityRereadFFXProjectEditor/FfxLib/Text/*における追加的なテキストトークン契約- 純粋な検証 / round-trip 意思決定ユーティリティ
- 最初の production-side smoke consumer としての
TextLabTools/TextContractHarness docs/history/BATTLE_AI_FRONTIER_2026-05-31.mddocs/history/MODELVIEWER_BINDING_FRONTIER_2026-05-31.mddocs/history/PT23_TO_PT34_KNOWLEDGE_BASE.mddocs/history/PT23_TO_PT34_CHANGELOGS.mddocs/history/PT23_TO_PT34_BRANCH_MAP.mddocs/history/PT23_TO_PT45_CODE_KNOWLEDGE_BASE.mddocs/history/PT23_TO_PT45_CHANGELOGS.mddocs/history/PT23_TO_PT45_BRANCH_MAP.mdKNOWLEDGE_BASE.mddocs/history/PT2_TO_PT11_KNOWLEDGE_BASE.mddocs/history/PT12_TO_PT22_KNOWLEDGE_BASE.mddocs/history/PT23_TO_PT45_KNOWLEDGE_BASE.mddocs/history/PT2_TO_PT45_MASTER_KNOWLEDGE_BASE.mddocs/history/PT6_PT9_DEPENDENT_WORKSHOPS_ANNEX.mddocs/history/NON_FFX_EDITOR_THREADS_ANNEX.mddocs/history/PT_FAMILY_LINES_ANNEX.mddocs/history/OFFICIAL_MERGE_PLAN_2026-05-31.mddocs/history/PS3DATA_FULL_TREE_RESEARCH_PLAN.mddocs/history/PS2_FULL_TREE_RESEARCH_PLAN.mddocs/history/PT50_TO_PT58_ABSORPTION_PLAN.mddocs/history/PT52_TO_PT58_CLOSEOUT_REPORT_2026-05-31.mddocs/history/PT50_PT51_HISTORICAL_CLEANUP_2026-05-31.mddocs/history/PT6_TEMPORARY_CLOSEOUT_2026-05-31.mddocs/history/PT6_CHILD_WORKSHOPS_COMPENDIUM.mddocs/history/PT6_RUNTIME_AI_DISCOVERY_ATLAS.mddocs/history/PT6_SUCCESSOR_BOOTSTRAP.mdhistory/pt23-battleai-structurehistory/pt24-exactlaunch-seamhistory/pt25-selectorbank-materializationhistory/pt26-battlestate-diffhistory/pt27-routereplay-truthhistory/pt28-battlecapacity-prephistory/pt29-keyitem-crashfixhistory/pt30-autoability-crashfixhistory/pt31-geometryviewport-blockhistory/pt32-chrcarrier-decodehistory/pt33-aislice-payloadhistory/pt34-legacybridge-narrowing### 変更CurrentWorkspaceOverviewCurrentMonsterEditorCurrentItemsCurrentBattleExplorerCurrentLiveBattleLabCurrentStringExplorerEncodeSafeDecodeOnlyRawPreserveUnknownRiskReuseOriginalBytesReencodeAllowedBlockedExtras / ps3dataライン向けの運用ラッパー- 知識と archive-safe ステータスを維持した有用な
Pt6 / Pt23AI micro-workshops merge nowmerge laterExtras/read-onlyknowledge onlyPt56,Pt52,Pt54,Pt58= 現在ソフトウェアにある攻撃Pt57とPt53/Pt55の一部 = 後で攻撃, 依然として read-onlyPt53,Pt55,Pt57= 過大な主張を避けた積極的な研究Pt50,Pt51= クリーンなソースとして数える前の歴史的クリーンアップMagicPackageViewerBatEffPackageViewerMagicEffectCrosswalkExplorernever blind merge### 検証済み- 目的
- 有用性
- マージの可能性
- per-workshop ミニ changelog
binding truthの言語owner/target/parentage/commitに対する強力な絞り込みPt6とPt23のガードレール基盤formation 0..7enemy actor rows 0..10rawMonsterId -> corpuscomposition truthとactor-surface truthの比較Pt46 / AIBlobParityGrammarLabPt47 / AIRuntimeDispatchLabPt48 / SafeAIMicroProbeLabwriter や patcher の主張がなくても, runtime/AI レガシーの一部として扱う.- old-wave base
Pt2..Pt11 - middle-wave base
Pt12..Pt22 - heavy-wave base
Pt23..Pt45 - memory/runtime/binding/guardrails をまとめた単一の集約アトラス
Pt6のサテライトPt9のサテライト- production-side の例外
Pt29/30 Model Viewer / BindingBattle / AI / Runtime TruthText SafetyKernel / ShopTooling / Safety / ReleaseProduction Crashfixes### 注記 ### 計画 ### バックログTextSourceCapabilityIndex*StringExplorerUI wiring0x10 + 0x120x13### ブロック ## [v2.13.0] - 2026-06-05 ### 追加 ### 注記 ## [v2.12.0] - 2026-06-05 ### 追加FfxLib/BattleMap/BattleArenaPositionWriter.csre-stamps は chunk3 anchor array 内の各 actor の X/Y/Z を更新する IN PLACE (on-field monsters = pointer+0x20; party/aeon/staging もroleによる), value-only: ヘッダー/pointers/count/other chunks には決して触れず, W を逐語的に保持. battle→scene transform は IDENTITY (IDA-proven, v2.10.0.1) なので, scene space で選んだ座標を逐語的に書き込む.FormationSlotWriter(guard + backup-onceWriteLooseFile) と同じ slot-safe パターン. ### 検証済み RT0 (no-edit == byte-identical) 862/862, POSITION-ONLY (差分は+0x20array に限定) 862/862, RE-READ 862/862, + SAVE LIFECYCLE (一時コピー上で no-edit/edit/restore) PASS. BiancaCatalogLab + AuroraChamberLab + BattleArenaPositionLab (以前は除外). 完全な CI PASS (7/7 gates): ReverseHarness, AiScriptLab, FormationSlotLab, AbilityCommandLab + 新しい 3 つ. ### 保留 ## [v2.11.1] - 2026-06-05 ### 追加 ボックスと、(2) 言語フィルター(英語/日本語のチェックボックス、デフォルトは英語)が追加された — 以前は JP と EN が SAME リストにまとめて出力されていた(日本語が先頭で、日本語の壁になっていた)。EventExplorer_DataModel(allTextRows+ApplyTextFilter、English-first)と axaml(検索 TextBox+ JP/US CheckBoxes)をリファクタリングした。NOT は書き込み処理に影響しない(Tier 1 は--event-rt0397/397+edit 12/12 のまま)。 ### 注記 ## [v2.10.0.1] - 2026-06-05 ### 証明済み (RE / IDA, offline) chunk3 (battle-local) の座標を VERBATIM としてアクターの world node — no flip-Z, scale, or rotation にコピーする; Y だけが per-actor model-height (actor+0x534) を得る。.dae.phyrescene == raw Phyre vertex frame 1:1 なので、P_scene(X,Y,Z) = P_battle(X,Y,Z) (s=1, R=I, T=0)。証明済みのチェーン:FFX_Battle_AreaChunk_GetSetPosition(0x7AC000; chunk3 base0x112A9B0; 4 floats を verbatim にコピー; actor world pos @+0x3B0) →FFX_Battle_ResolveActorPlacement(0x7A9AE0) →FFX_Battle_GetActorByIndex(0x794030, stride0xF90== RT2 enemy)。flip-Z の推測は、off-field staging rows (party-back Z≈-168) を含めたことによるアーティファクトだった。ドキュメント:docs/reverse/FFX_AURORA_BATTLE_TO_SCENE_TRANSFORM_IDA_PROVEN_2026-06-05.md(+ 実際の rename-queue 用の.i64)。 ### 変更 (Aurora Chamber — honesty) anchors を scene coords に直接プロットする (default はすでに identity) ため、flip-Z toggle は DISPROVEN/comparison になる;aurora-actors.jsoncoordSpace=scene_world_identity_ida_proven。 ### 保留 (既存の probe 経由の READ、新規コードなし)。SPIRA FORGE は一時停止のまま。 ## [v2.10.0] - 2026-06-05 ### 追加 container) はもはや read-only ではない。 カットシーン/イベントの会話編集は、今や BUTTON。FfxLib/Event/Event_File.Write.cs(new): byte-faithful EV01 container の repack — すべての chunk を re-aligned から0x40へ、absolute offset table + EOF terminator を再計算する (magic +0xFFFFFFFFsentinel は保持)。No-edit = VERBATIM を保証; 編集済みテキストはTextTable_File.Writeを再利用する (chunks JP=1/EN=4); ATEL script (0)、ふめい 2 および FTCX (3) は byte-for-byte を保持。Tier 2 hookScriptChunkOverride(re-stitch of edited chunk-0)。Event_File.cs: raw header + text tables を取得する; null-pointer field-string entries (8 files) は chunk を verbatim で保持して許容する (文書化された text-editable frontier)。TextTable_File.Writeadditive overload (includeTrailingPadding): internal padding なしで table+pool を出力する (container は re-pads から 0x40 へ)。NOT は--textstr-rt0を壊すか (default = legacy behavior)。Modules/EventExplorerは dialogue EDITOR になった: 編集可能な JP/EN strings (TwoWay TextBox) + "Save dialogue" button が re-packs し、.ebpを書き込む。 event script を読み取り/編集することを証明する (FfxLib/Ai/AiScript_File.cs、read-only を donor として使用) (同じ AiFile family)。- Byte-local operand PATCH PROVEN (12/12): 1つの chunk-0 operand を編集すると、その bytes だけが変わる; the container re-stitches は他所にも同一に存在し、re-read が新しい operand を保持する。
- GROW (AppendCode) は 文書化された frontier: donor
AppendCode(battle 用に構築、descriptors は DATA 内) は event scripts が使用する header-resident descriptors ([0x38..scriptStart)) を relocate しない — event-aware relocation が必要 (AI Assembler lane と調整)。 ### 検証済み round-trip 12/12** (string を swap → repack → re-read: edited string は一致、untouched chunks は verbatim、idempotent)。 397/397; byte-local operand patch 12/12。Editor builds 0 errors。 (0 breaks), EOF==filesize,0xFFFFFFFFsentinel。Docs indocs/reverse/FFX_EVENT_*_2026-06-05.md。 ### 誠実性 / 保留 text-editable yet)。Tier 2 = patch proven; append/grow + structural authoring = Tier 3, documented not closed。Verification は offline byte-RT0 を優先; 編集済み dialogue の in-game RT2 は引き続き推奨。 ## [v2.9.0] - 2026-06-05 ### 追加 btlmap scene catalog) を MapViewer に接続し、actor coordinates を chunk3 から取り出す。Aurora & Bianca に捧ぐ。💛 - Scene Picker は
BattleMapCatalog_File/BattlefieldSceneResolver(read-only) を使用する — area と map-key で scenes を一覧/選択する。 - Render は
PhyreMapExportLab(btlmap scene の on-demand glTF export) を駆動し、FFXMapViewerWebを?catalog=/?map=/?actors=deep-link 経由で 開く — per-scene mini-catalog であり、共有catalog.jsonには決して触れず、app.jsを書き換えない。 - Coordinates は新しい
FfxLib/BattleMap/BattleArenaAnchors_File.csreader (pure/Avalonia-free) 経由で、 chunk3 (96B area-record, pointers+0x10..+0x2C, live monsters+0x20, 16B XYZW Y-up elements) を decode し、 battle-local anchors を一覧化して Encounter Authoring 用に JSON を export する。?actors=の anchor gizmos + "pick" mode (y=0 plane raycast → world coords)。Non-intrusive (hookswindow.ffxMapViewerDebug; no-ops without?actors/pick;app.jsは決して編集しない)。 ### 検証済み klyt00_00/sins02_00/mihn00_00 == doc-proven coords); corpus 862/862 clean (0 NaN/Inf, W==0 on live monsters); deterministic; BIANCA→scene→battle→anchors pipeline 52/52 mapped scenes が anchors を保持する。 10,804 triangles,gatePass: true)。Editor builds with 0 errors (isolated HEAD worktree で検証)。 ### 誠実性 / 保留 UNCALIBRATED** (P_scene = R·s·P_battle + T; flip-Z/yaw-180 は未解決) — anchors は raw battle-local であり、 engine-exact ではない。Probe calibration = Wave 3 (Halyson の OK が必要)。SPIRA FORGE は PAUSED のまま; Aurora は CONSUMES MapViewer + BIANCA (read-only/additive) のみ、hub は決して起動しない。 ## [v2.8.0] - 2026-06-05 ### 追加 (HDps3data/btlmapの 25エリア/56シーンをカタログ化 —<area>NN_<variant>はmdl/d3d11/<leaf>.dae.phyreを伴う)+FfxLib/BattleMap/BattlefieldSceneResolver.cs。Pure/Avalonia-freeで、エディターにコンパイル(エラー0)。 "azit03")、NOT はbattlefieldu16(これは 全体で共有されるアリーナID で、マップ間共通 —bf=1061は nagi/test/tori/zzzz にまたがる)。ドキュメント:docs/reverse/FFX_BATTLEFIELD_SCENE_BRIDGE_2026-06-05.md。 (float32 X,Y,Z,W; Y-up; W=0; 16バイト刻み; formation slot ↔ entry)。Party+0x10、aeon+0x18、camera+0x2C。ドキュメント:docs/reverse/FFX_BATTLE_FORMATION_POSITION_CHUNK3_DECODED_2026-06-05.md。 (-- export --ps3-root <ps3data> --area btlmap/azit/azit03_a)。Actor-overlay の計画+プローブ座標キャリブレーション (DESIGN):docs/ai/FFX_AURORA_COORDINATE_SYSTEM_AND_CALIBRATION_2026-06-05.md(HalysonのOKを使うプローブのみ)。 ### 検証済み マップ=cut/PS2-only EXPECTED;孤立シーン4件 bika04/grid00/nagi03/sfia00=boss/story EXPECTED)。 ### 保留 DINPUT8 プローブには HalysonのOKが必要で、SPIRA FORGE は PAUSED。 ## [v2.7.1] - 2026-06-05 ### 追加 / 検証済み WeaponNameTable, MacroDictionary, NameDescriptionTextTable, NameDescriptionTextPrefixTable, BtlTextTable, SphereGrid, ShopGearCatalog, BukiGetTreasureCatalog, AlBhedDictionary, PointerScriptTable, BattleTextTable, ShopTable。Preserve-only pattern (WriteIdentityfor the lossy-rebuild ones)。New gate-sweepTools/Wave1Rt0.cs。 ## [v2.7.0] - 2026-06-05 ### 追加 AiFile partition を DIFFERENT length のものに置き換え、AiFile を 16-pads し、後続の sections を shifts して、 header section pointers を書き換える (m###.bin)。AiFile は verbatim で書き込む (codeLength の clobber なし)。 AI Assembler UI は grow/shrink を SAVES できるようになった (以前は length-preserving only)。clobber の原因は文書化し、設計で修正済み (Option B: 最小限の surface、NOT はMonster_File.Writeに触れない →--monster-rt0は 361/361 のまま)。 VM のサイズを worker counts + per-worker datalen (round 16) から決める (NOT partition/DeclaredLength/codeLength) ほか、 in-file pointers を信頼する → grow relocation が尊重され、trailing pad is safe。 (golden rule: rename-queue.) ### 検証済み (insert → grow-aware splice → re-read clean + tail/header は verbatim で保持 + 16-aligned + idempotent)、 SHRINK 346/346 (non-targeted instr を remove → negative delta → re-read clean + tail は保持)。--monster-rt0は 361/361 (regression なし)。Corpus alignment: 16/32/64/128/256, 0 trailing pad。 (free-edit)" card が、編集可能な instruction list (opcode/operand/remove) + Insert/Save Structural + preview とともに描画された。Screenshotwork/spira_forge_qa/monster_ai_assembler_v01.png。 ### 保留 — Halyson の明示的な OK のもとで実施する。Offline + RE が byte/game-safety を証明する; in-game screen が final arbiter となる。 ## [v2.6.0] - 2026-06-05 ### 追加AiScript_File.Rebuildから生成する (RT0-proven: old→new map により entrypoints + jump tables を relocate)。Editable list (opcode/operand hex + remove checkbox)、insert-after-selected、delta preview。Save は length-preserving edits に対してのみ有効 (codeLength unchanged) → byte-safe splice はSpliceAiFileIntoMonster経由。GROW/SHRINK は LAB (honest message): loose-file save には header-aware monster relayout + alignment padding + in-game proof が必要。 --ctbbase-rt0→CtbBase_File(ctb_base.bin), preserve-only。--mixtable-rt0→MixTable_File(prepare.bin), preserve-only。--aiasm-rt0→ AI Assembler structural save を証明 (no-edit Rebuild + relayout + splice byte-identical) し、corpus AiFile→WorkerFile alignment を測定。 ### 検証済み length-preserving editing は byte-safe。Grow=LAB (cause:Monster_Fileの 0x34 header がAiFile[0..4)=codeLength と重なり、length change が WorkerFile alignment を壊す; corpus は 16/32/64/128/256-aligned, 0 trailing pad)。 ### ブロック / LAB ## [v2.5.0] - 2026-06-05 ### 追加 操作(Open Spector、Capture Next Frame、Export Last Capture)と、最初のMaterial Debugパネル(読み込んだ glTF マテリアルのライブ一覧、セレクター、事実チップ、per-slot テクスチャカード (map、normalMap、aoMap、envMapなど)付き)を公開する。 ### 検証済み ## [v2.4.4] - 2026-06-05 ### 追加 selectable battles を一覧表示するようになった; 1つ選ぶとFieldContext.SelectedBattleIdに publish され、Formation Editor はその battle に 直接ジャンプする (formation をロード)。shared spine を通じて、masterplan の「ゾーンをクリックして、フォーメーションを入れ替える」を実現し、shell plumbing は不要。FieldContextにSelectedBattleId/SelectBattleが追加された。 ### 検証済み ## [v2.4.3.1] - 2026-06-05 ### 反転 / 証明 hypothesis (CONTINUE_AQUI_PERNAS_HD) を反証する: "52m_skeletonMatrices→ 79 joints" map は Phyre file 内に存在する、 IDA 内ではない。- skin palette は
PMatrix4[0..51](PMeshfield 12 からリンク); livem_skeletonMatricesと等しく、 byte-for-byte (maxDist=0.00000)。 - slot→node map is the
intat offset 12 of eachPSkeletonJointBounds[j](52 slots → 52 nodes, bijection). m_defaultPoseからm_matrixParentsまでを合成すると、作成済みの inverse-bind EXACTLY が再現される:0/52nodes は 乖離する。したがって--hd-defpose+--hd-parentsはすでにゲーム本来の bind である。- 過去の coil の根本原因は、
--hd-defpose/--hd-parentsなしで bake するとinvBind = PMatrix4[52+b]にフォールバックすること (raw LOCAL matrix) → mesh が破綻する。defpose+parents recipe が修正であり、すでに gallery のデフォルト になっている。 - 新しい read-only probes:
work/_scratch_mgrp/phyre_palette_probe(palette を特定し、bind が完全一致することを証明し、node_to_slot.jsonを出力) とphyre_legs_probe(matcher; coincident-translation pitfall を示す)。 ### 検証済み c007 (Rikku) — forced rest、battle (id5_c4318 t0.0–0.9)、deep crouch での4つの calf angle、および multi-clip で確認。数値上も、 leg-joint local/world matrices は完全な rigid (scale=1, det=+1, ortho 0.0000) である。 IDA はない。完全な証明はdocs/reverse/FFX_HD_SKIN_PALETTE_DECODED_LEGS_NOT_BIND_2026-06-05.md。 ## [v2.4.3] - 2026-06-05 ### 追加 --keyitem-rt0(Tools/KeyItemRt0) →KeyItem_File(important.bin)、preserve-only writer (original bytes を複製し、re-stamps はPrimerByte10/OrderingByte13のみ)。--treasure-rt0(Tools/TreasureRt0) →Treasure_File(takara.bin)、full-decode round-trip (4 bytes/entry)。--customization-rt0(Tools/CustomizationRt0) →Customization_Filegear kaizou.bin + aeon sum_grow.bin (header prefix/tail を保持し、re-emits decoded entries を保持)。--autoability-rt0(Tools/AutoAbilityRt0) →AutoAbility_File.WriteAbilities(a_ability.bin, DATA section)、preserve-only writer。(read contract を満たすためだけにarms_rate.binを読む; arms_rate は NOT write し、NOT はWriteAbilitiesAndText/text repack をカバーする)。 ### 検証済み takara.bin (503 entries, 2012 B)、kaizou.bin (125) + sum_grow.bin (77)、a_ability.bin (134 entries, 19590 B)。 No-edit save = byte-identical; edit = byte-local (Monster/Encounter を完了させたのと同じ preserve-only pattern)。 過去の注意書き「important.bin/a_ability.bin は mutation-safe writer claims では blocked」を部分的に解消: field (data-section) の編集は証明済みだが、text-pool repack は未主張のまま (同じ monmagic-style drift risk — この gate の範囲外)。 ## [v2.4.2] - 2026-06-05 ### 追加 inline 表示 (e.g.[m003 - Murussu, m003 - Murussu, m009 - Dingo])。Lazy-loaded + cached + capped (≤90 visible battles; full list の場合は area で filter するよう求める)。Read-only; masterplan の「そこに出現する monsters が描かれた zones」を editor に取り込む (encounter↔formation fusion を可視化)。 ## [v2.4.1] - 2026-06-05 ### 追加 (PersistSnapshot) 使用し、headless gate で AND tested — editor と test で同じコードを使い、重複なし。 ### 検証済み disk 上の slot-only + reread match + backup preserved; (c) backup から restore = byte-identical。PASS。 v0.2 honesty gap を解消 (in-app save は disk 上で証明済み、reversible)。Corpus は引き続き 858/858;offline_ci4 gates PASS。 ## [v2.4.0] - 2026-06-05 ### 追加 基盤。** ### 検証済み (4096/4096)** + grow-test (formation を1つ追加、末尾 0x1000→0x1002、2 chunks intact) は valid。 ## [v2.3.2] - 2026-06-05 ### 追加 (Ability_Command.ReadList→WriteList)。KernelCommandsはすでに Save に使用しているが、byte-gated されたことはなかった。 editor project (deep dep tree) を参照し、static FfxLib methods だけを呼び出す。offline_ci.ps1に接続。 ### 検証済み (1 byte) 4/4。PASS。 これは「new Black magic」夢の feature (command.bin に存在) の証明済み基盤。 ### ブロック ## [v2.3.1] - 2026-06-04 ### 追加 (kino03_*,mihn05_*,cdsp00_02): past-EOF chunk (およびそれ以降) を存在しないものとして扱い、 file 全体を reject する代わりに earlier chunks (formation @2 を含む) は有効なままにする。これらの battle は Formation Editor で編集可能になった。 ### 検証済み re-read 858/858 PASS。以前の843は変更なし。 ## [v2.3.0] - 2026-06-04 ### 追加FieldContextspine を利用する (Hub が選択した field area 別の pre-filters battles)。Monster picker (Monster_Dictionary+ Empty、raw high nibble を保持)。Save は loose-file workspace を、.spiraforge.bakbackup +AssertSlotOnlyDiffguard 付きで書き込み、ByteSnapshotEditorSession(Undo/Discard) 経由で実行する。Offline、probe なし。 (FormationChunkOffset/FormationSlotsOffset/FormationSlotsLength)。 ### 検証済み (当時、reader が parse できなかった15個の btl_* — v2.3.1 で修正)。 ## [v2.2.0] - 2026-06-04 ### 追加 spine。Field picker は bridge CSV から供給される (ps3data-map-btlmap-fieldid-bridge.csv, 357 fields, structural-candidate)。field を選択するとFieldContext(observable singleton) に publish され、2つの consumers が read-only に反応する: map deep-link (FFXMapViewerWeb 用の?map=map/<area>/<field>) + encounter peek (btl.binをEncounterTable_File経由で読み、area↔map join の候補)。CSV は csproj<Content>経由で output にコピー。 Offline; picker は project なしで実行する。writer なし、probe なし。 ### 検証済み Screenshotwork/spira_forge_qa/field_hub_v01.png。 ## [v2.1.1] - 2026-06-04 ### 検証済み (Writers はすでに存在していた slot-only が、今や gated。) ## [v2.1.0] - 2026-06-04 ### 追加Battlefield/Danger/TotalWeight, formationId/Weight) を保持。Editor 内の--encounter-rt0gate。 ### 検証済み ## [v2.0.0] - 2026-06-04 > NEW ERA — MAJOR。 エディターは「offline file editing」から PROVEN LIVE RUNTIME EDITING へ移行した: > AI bytecode を RAM で編集し、クラッシュなし・reversible で、挙動が 画面上 で変わることを確認 — > プロジェクトの supreme goal #1 を実現した。MAJOR = 新しい capability class (contract/save/build の破壊ではなく、追加して harden しただけ)。-betaは、RT2/God-Mode がまだ gated UI に productize されていないため。 > Claude Code / VSCode wave + 2nd Codex account との union のマイルストーン。 ### ハイライト ->MemoryChr.Ptr_script_chunks(+0xF78) -> live AiFile === diskm0NN.binbyte-identical。 ### 追加 jump labels + inferred worker type)、operand editing + loose-file Save。FFX_MUSIC_SYSTEM_AND_MOD_IDEA(Music Remapper)、FFX_AI_BYTECODE_OPCODE_TABLE_PROVEN、CODEX_MAPVIEWER_WATCH_JARVIS、FFX_MAP_DEVELOPMENT_TOOL_MASTERPLAN(Spira Forge)。 ### 変更 / 検証済み StatSheet/Loot + header Signature/Padding を保持 (Padding はAiFile[0..3]と重なっていた)。 ### ブロック / 保留 (honest) (game-closed rebuild)。Player が発見された:FFX_FmodMusic_PlayTrackByIndex(181 tracks); PS2 SPU FIFO は HD 上で stubbed。 ### Labs / Multi-agent から吸収 2nd Codex account との union (MapViewer / model-texture lane): exporter は今や material-role signals (TextureSampler1/normalMap/reflection/water/PhyreWaterShader)、external-viewer comparison (glTF-Sample-Viewer を oracle とする; gap は exporter-side で証明済み、shell の問題ではない)、および Spira Forge masterplan の kickoff を公開する。Multi-agent coordination はdocs/ai/CODEX_MAPVIEWER_WATCH_JARVIS.mdに記録。 ## [v1.7.0] - 2026-06-04 ### 追加AppendCode: 末尾に instructions を append + data section を relocate。Rebuild: instruction の ANYWHERE を insert/remove/modify + AUTOMATICALLY がすべての jumps + entrypoints (old→new linker map) + data section を relocate。Orphan branch (removed instr) → honest error。 ### 検証済み workers が resolve し、post-insertion entrypoint は自動的に0x2D1→0x2D4へ relocate; grow-test (AppendCode) RT0。 ## [v1.6.0] - 2026-06-04 ### 検証済み StatSheet/Loot + headerSignature/Paddingを保持 (Padding はAiFile[0..3]と重なっていた)。 ## [v1.5.0] - 2026-06-04 ### 検証済み / ブロック swap BLOCKED** (FMOD API__thiscall, probe cdecl-only)。DocFFX_MUSIC_SYSTEM_AND_MOD_IDEA(Music Remapper)。 ## [v1.4.0] - 2026-06-04 ### 検証済み (live) ability を実行する — monster はそれを "own" する必要がない。証明: 画面上の スコル spat イフリート's 地獄の火炎。 ## [v1.3.1] - 2026-06-04 ### 修正 / 検証済み (live) flags) を改良。Auto-scan (Scanstatus) を live で toggle。 ## [v1.3.0] - 2026-06-04 ### 検証済み (live) (POINTER_BATTLE_ENEMY_LIST 0xD34460, stride0xF90) + probe 経由。 ## [v1.2.0] - 2026-06-04 ### 追加 jump labels) + operand editing + loose-file Save。 ## [v1.1.0] - 2026-06-04 ### 検証済み (🏆 HEADLINE — supreme goal #1) 挙動が画面上で変化 (フレイムプリン ファイガ→サンダガ)、クラッシュなし、reversible。Chain:enemy-list 0xD34460->MemoryChr.Ptr_script_chunks +0xF78-> live AiFile === diskm0NN.binbyte-identical。 Doc:docs/reverse/FFX_AI_RT2_LIVE_EDIT_PROVEN_2026-06-04.md。 ## [v1.0.0] - 2026-06-01 エディターが本格的な reading、validation、knowledge-navigation platform へ成熟した節目であり、runtime、AI、body-playback bosses がまだ未解決でも、Extrasproduct surface を十分に備え、誠実な1.0を正当化できる。 ### ハイライトPS2 KnowledgeTextures (TM2 + TXC/CLT/FMT/SPS2 support lane)BIN-FTC AtlasProject / PipelineMagic EffectsPresentation ContainersBattle Corpus Crosswalk### 追加MagicPackageViewerBatEffPackageViewerMagicEffectCrosswalkExplorerFtcHeaderInspectorBinSidecarGraph- shell 内の
Signature Group TxcCltPairExplorer- cold
fmt/sps2metadata ### 変更 ### 検証済み read-onlydo not promote- 該当する場合は
no runtime proof - 該当する場合は
pipeline/support only### メモ magic solvedAI solvedModelViewer playback solved- 広範な writer の認可 ## [v0.11.0-beta.2] - 2026-06-01
Extrasラインにおける、mainの実際のプロダクト進化. ### ハイライト masterffx_ps2ps3dataPS2 KnowledgeTextures (TM2)BIN-FTC AtlasProject / Pipeline### 追加ExtrasSourceResolverExtrasEvidenceBadgeModelExtrasProvenanceModelExtrasReadonlyBoundaryModelExtrasFileOpenServiceCdIndexExplorerProjectDescriptorViewerAbmapSupportGraphdocs/history/PT52_BIN_FTC_FILE_MEANING_GUIDE_2026-06-01.mddocs/history/PT53_BATTLE_MAGIC_FILE_MEANING_GUIDE_2026-06-01.mddocs/history/PT54_PROJECT_ABMAP_FILE_MEANING_GUIDE_2026-06-01.mddocs/history/PT56_TEXTURE_PALETTE_FILE_MEANING_GUIDE_2026-06-01.mddocs/history/PT57_PRESENTATION_CONTAINER_FILE_MEANING_GUIDE_2026-06-01.mddocs/history/PT58_FFX_PS2_OWNERSHIP_AND_LINKAGE_GUIDE_2026-06-01.md### 変更 ### 検証済み- writer なし
- repack なし
- 最終的な decode の主張なし
- cold research と runtime proof の混在なし ### メモ
kernel -> mag_* -> bat_eff## [v0.10.0-beta.1] - 2026-05-31 Main-branch の、キュレーション済みワークショップ取り込みの最初の大きな波を経た統合 beta. ### ハイライト ### 追加Shop ExplorerFfxLib/ShopAssets/Shopitem_shop.binとarms_shop.bin用のガード付き writerNameDescriptionTextPrefixTable_Filereader + no-edit guard(important.bin用)reader + no-edit guard(a_ability.bin用) ### 変更 ### 検証済み ### 保留 ### ブロック中 ## [v0.9.0-beta.1] - 2026-05-31 エディターとその周辺エコシステムの実際の規模を、初めて誠実に前提とする version. ### メインブランチのハイライト ### メインに存在する本番サーフェス ### ワークショップから取り込まれたものTextLabTools;ProductionAuditTools;- 保守的な text/monster harness と release.
PlayerGrowthEditor;CtbBaseEditor;MixTableEditor;- 後に
KeyItemEditorを支えた歴史的ライン. AutoAbilityEditor;AutoAbility_File.csとArms_Rate.csからの保守的な parser.Shop Explorer;FfxLib/Shop;Assets/Shop;item_shop.binとarms_shop.bin用のガード付き writer. ### ガバナンスとバージョニング ### 検証済み ### 引き続きブロック中 ### これがなおベータである理由 ## 履歴上の意味論的再構成 重要な編集上の注記: ## [v0.8.0-beta.1] - 歴史的再構成(pre-Git 公式 SemVer) エコシステムがすでに大規模なモジュール型エディターとして動作し、複数の専門フロントが同時に稼働している段階. ### この段階のメインサーフェス ### エコシステムからの圧力 ### 未対応 ## [v0.7.0] - 歴史的再構成(pre-Git 公式 SemVer) メインラインが「より多くの module」から「より多くの proof」へ移行する段階. ### 追加 ### 変更 ### まだ安全ではない ## [v0.6.0] - 歴史的再構成(pre-Git 公式 SemVer) kernel ラインと secondary system の保守的な hardening が、約束ではなく本格的なエディターの一部になる段階. ### 追加 ### 変更 ### 未対応 ## [v0.5.0] - 歴史的再構成(pre-Git 公式 SemVer) 強力なKernelTablesLabwave の段階. ### 追加 ### 変更 ### 未対応 ## [v0.4.0] - 歴史的再構成(pre-Git 公式 SemVer) プロジェクトが、実際の基準に基づいて text で「yes」と「no」を言えるようになる段階. ### 追加 ### 変更proven reader;conservative writer;blocked; ### 未対応 ## [v0.3.0] - 歴史的再構成(pre-Git 公式 SemVer) エディターが単なる file browser ではなくなり、AI、runtime、high-value gameplay surface に触れ始める段階. ### 追加 ### 変更 ### 未対応 ## [v0.2.0] - 歴史的再構成(pre-Git 公式 SemVer) エディターが大規模で目に見える system へ構造的に拡張する段階. ### 追加 ### 変更 ### 未対応 ## [v0.1.0] - 歴史的再構成(pre-Git 公式 SemVer) 実際のエディターがすでに存在し、使い捨ての prototype をはるかに上回っていた、誠実な最小 milestone. ### 追加 ### 変更 ### まだ不足しているもの ## [baseline-2026-05-31] - 2026-05-31 本番をGitへ取り込む、誠実な初期インポート。 ### 追加 ### 保持されたもの ### 検証済み ### 注記 ## ワークショップ「Mini-Version」の歴史 注記: ## [pt2-v0.3.0-superseded.1] - 2026-05-31 ### 目的 ### 発展 ### メインブランチでの結果 ### 最終ステータス ## [pt3-v0.8.0-freeze.1] - 2026-05-31 ### 目的 ### 発展 ### メインブランチでの結果 ### 最終ステータス ## [pt4-v0.5.0-hold.1] - 2026-05-31 ### 目的 ### 発展 ### メインブランチでの結果 ### 最終ステータス ## [pt5-v0.9.0-final.1] - 2026-05-31 ### 目的 ### 発展 ### メインブランチでの結果 ### 最終ステータス ## [pt6-v0.7.0-beta.1] - 2026-05-31 ### 目的 ### 発展 ### メインブランチでの結果 ### 最終ステータス ## [pt7-v0.9.0-final.1] - 2026-05-31 ### 目的 ### 発展 ### メインブランチでの結果 ### 最終ステータス ## [pt8-v0.7.0-freeze.1] - 2026-05-31 ### 目的 ### 発展 ### メインブランチでの結果Shop Explorer;FfxLib/Shop;Assets/Shop;docs/history/PT8_SHOP_GUARDRAILS.mdに guardrail を記録. ### 最終ステータス ## [pt9-v0.6.0-alpha.1] - 2026-05-31 ### 目的 ### 発展 ### メインブランチでの結果 ### 最終ステータス ## [pt10-v0.2.0-final.1] - 2026-05-31 ### 目的 ### 発展 ### メインブランチでの結果 ### 最終ステータス ## [pt11-v0.3.0-blocked.1] - 2026-05-31 ### 目的 ### 発展 ### メインブランチでの結果 ### 最終ステータス ## [pt12-v0.3.0-package.1] - 2026-05-31 ### 目的 ### 発展 ### メインブランチでの結果 ### 最終ステータス ## [pt13-v0.3.0-package.1] - 2026-05-31 ### 目的 ### 発展 ### メインブランチでの結果 ### 最終ステータス ## [pt14-v0.2.0-architecture.1] - 2026-05-31 ### 目的 ### 発展 ### メインブランチでの結果 ### 最終ステータス ## [pt15-v0.2.0-architecture.1] - 2026-05-31 ### 目的 ### 発展 ### メインブランチでの結果 ### 最終ステータス ## [pt16-v0.2.0-architecture.1] - 2026-05-31 ### 目的 ### 発展 ### メインブランチでの結果 ### 最終ステータス ## [pt17-v0.3.0-guardrail.1] - 2026-05-31 ### 目的 ### 発展 ### メインブランチでの結果 ### 最終ステータス ## [pt18-v0.3.0-governance.1] - 2026-05-31 ### 目的 ### 発展 ### メインブランチでの結果 ### 最終ステータス ## [pt19-v0.3.0-surface.1] - 2026-05-31 ### 目的 ### 発展 ### メインブランチでの結果 ### 最終ステータス ## [pt20-v0.2.0-strategy.1] - 2026-05-31 ### 目的 ### 発展 ### メインブランチでの結果 ### 最終ステータス