更新 2.11
2026/6/5
v2.11.0BETA
Seymour
🧠 AI ASSEMBLER PRODUCTIZED(一個可用的 monster-AI 編輯器):
- 轉碼器的「AI 100% 自由編輯」成為了 FEATURE。
FfxLib/Ai+Modules/MonsterAiEditor工作線的新增內容: - 行為函式庫(
AiSnippetLibrary):參數化範本,其位元組 MIRROR 已驗證語料庫 的慣用模式 — 線性(force-cmd/perform-cmd/grant-field/set-stat/raw-call)與條件式 (RNG 1-in-K 輪替、on-event force-command 用於計數/階段)。 - Pre-flight 驗證器(
AiValidator):opcode∈48,HasOperand 與 0x80 對照,懸空分支/進入點 (顯示是哪一個名稱,而非不透明的拋錯)、運算元範圍、RT0 self-check、Rebuild dry-run, 擴增/縮減;SaveAssembler現在具有防禦性(遇到錯誤時拒絕寫入)。 - 友善的指令選擇器(
AiCommandId):透過 performCommand 將(cat<<12)|id運算元 ↔ 名稱 對應,範圍涵蓋CommandCharacter/CommandMonster1_Dictionary;UI 下拉選單(不再顯示原始十六進位)。 - 新增編解碼器原語(
AiScript_File):GrowWorkerJumpTable(為 worker 的 jump-table 新增槽位 — 可啟用 NEW 分支)+AppendGuardedAction(將一個受保護的動作插入進入點開頭,並保留 原始處理器)+OperandKindOf。 - UI 位於
MonsterAiEditor:行為庫卡片 + 驗證按鈕/報告 + 指令下拉選單。 - 把關
AiScriptLab --ai2PASS(真實語料,361):jump-grow 898/898 workers,guarded-action 692/692(第一個+最後一個進入點)+ 合成哨兵 1/1,驗證器乾淨 346/346,AiCommandId 620/620,positive-catch 8/8/8(透過編輯器路徑 jumpOOB)。原始--RT0 把關 361/361 完好。 - A 4 個代理的對抗式審查發現並修復 2 個錯誤(one-past-end 哨兵 self-loop;
OperandKind在編輯器儲存路徑上被 丟棄),現已由把關鎖定。文件: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(探測)。範本 「治療生命值 < 25% 的隊友 HP」與「回合時激怒 N」NOT 已出貨(HP-field / turn-counter 錨點未 byte-confirmed)。
SUCESSOR_FFX_HD_MODELOS_MASTER_2026-06-05.md已針對 sum/npc 關閉。 - 紋理(manifest-driven):
extract-texture-batch中的RuntimeTools/PhyreModelExportLab新增了--from-manifest,它會讀取<id>.ahwin32g_fileNames[](權威資產清單)並 擷取遊戲載入的 EXACT 紋理。305 個 PNG(pc/npc/sum),來源對照表texture-provenance-map.json, 0 筆無聲不符。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 鍵 =0x6NNN,位於.chr(nXXX→kNNN 對照,222/222 有效)。 文件docs/reverse/FFX_AHWIN32_ASSET_MANIFEST_2026-06-05.md。 - 烘焙(網格+紋理+動畫): 驅動器
work/_scratch_mgrp/bake_cast.py透過phyre_chr_gate完成。靜態 253/253(全部角色皆有紋理,乾淨)。動態:sum 使用自身動作,npc 繼承skl/<base>。 - 視覺 QA(工作流程,21 個視覺代理): 248 個動態模型透過 F3D 分類——157 乾淨 / 58 扭曲 / 33 爆開。在 33 個爆開模型上使用綁定選擇器(rest/A1)仍無法修復。
- 🔧 Blender CORRECTION(2026-06-06):F3D 在蒙皮動畫上 LYING。 Blender 診斷(網格
EXPLODE_RATIO≈1.0,無增長)+ 如實的 Eevee 渲染證明「爆開」的模型其實有完整的身體, 只是肢體/配件被拉長。Re-QA(8 個代理、Blender 次渲染)修正為 175 乾淨(71%)/ 59 扭曲(24%)/ 14 爆開(6%)——20 個模型獲救,離線烘焙一直以來都有 約 94% 可用。 真正的 14 個 = 11 隻召喚獸 + 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 乾淨(87%)。 新增phyre_chr_gate旗標 將繼承的動作以 相對於 frame0 的差量套用到 npc REST 上(M=restLocal·inv(m0)·mf), 保留 npc 自身的比例,而不是強加基底的。IDA RE 證明.chr@0x30重映射早已套用—— 問題出在 rest-pose 重定向,而非重映射(文件FFX_INHERITED_MOTION_REMAP_RUNTIME_2026-06-06.md)。 試點+批次處理 73 個 fudidos + Blender re-QA + per-model keep-best:+40 乾淨、44 個救回、ZERO 退化 (1 個因會退化而保留原樣)。NPC 已動畫 = 200/222 乾淨(90%)、0 個爆炸;仍有 8 個召喚獸 爆炸(網格不免疫 → 動態捕捉)。解決了 MASTER §2.4「A1-universal」,且無 A1 的風險。 - 🐉 WHOLE CAST 離線收尾(2026-06-06):498/643 乾淨(77%)、90% 可用。 將 truthful-Blender-QA + retarget-delta + keep-best 擴及其餘:obj/wep/pc(46 乾淨/55、party 乾淨)AND 那 340 個 MONSTERS。舊的 monster QA(bbox)宣稱「0 爆炸」=謊言;誠實的 Blender QA(29 個 agent)找出 127 個真正的 fudidos; retarget-delta 於 66 個繼承案例 → 36 個晉升,monster 206→237 乾淨。已動畫總計(643):498 乾淨 / 86 扭曲 / 51 爆炸 / 8 空白。 殘餘(9%)=分歧網格/退化綁定 → 交給 mocap/mesh-RE,而非重定向。
- obj/wep/pc(2026-06-06): 同一工作線擴展——靜態 obj 110/110 + wep 79/79 + pc 34/49 (15 個 pc 失敗 = 無
c8xxPS2 的 dummy.chr槽位)。HD 全體靜態角色 = 476 個模型。 obj/wep 大多 為剛體(稀疏動畫 25/7);畫面 spot-check:f001/w001/c004=Auron 乾淨。 - Gallery
work/cast_hd_gallery.html(model-viewer、靜態/動畫切換、sum/npc/obj/wep/pc 篩選)。全部在work/(已加入 gitignore): 只有 COMMANDS 屬於程式碼. 未調升 csproj 版本 (lab/RE 於 RuntimeTools).FFX_TOOLBOX_DISCOVERY_PLAYBOOK_2026-06-05.md的 §11 動態清單): 一次 線上掃描 + 對外部 FFX HD進行授權審查 PS2 工具 /VBF( Phyre, 核心.bin, ATEL, FMOD, TM2, FMV, 以及 ) editor NuGets. 已驗證的鍵值查找結果: 外部檔案載入器 (ffgriever, BSD-2) loose-file 無需重新封裝, Kaitai Struct (C# 執行期 MIT) 以產生 C#+JS 讀取器, fahrenheit (MIT, C#) 攔截+DLL 模組框架, 並確認 FFXDataParser 已 NO LICENSE (僅供研究).tested?欄位仍為❌— 對照基準測試以 本地語料庫尚待處理,計畫已包含於文件本身. Doc-only: 無 csproj 更新 (實驗室/RE doc-only 規則). 58已封裝的檔案集;- 每個檔案集一份資訊清單;
- 在
docs/history/DOSSIÊ FFX 01-06-2026/下有一份 Git-safe 鏡像副本; - 針對因 GitHub 大小限制而被擋下的單一大型外部二進位檔,提供一份排除報告.
- 分離的 workshop-range 知識庫;
- 一份彙整的總圖譜;
- 以根
KNOWLEDGE_BASE.md作為單一進入點; - 一份正式的合併計畫;
- 一個
Pt6/Pt9dependent-workshops 附錄; - 專案的正式技術工作線.
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 IdentityReread- 形式為:
FFXProjectEditor/FfxLib/Text/* - 中的附加文字權杖合約 round-trip decision utility
TextLabTools/TextContractHarnessas the first 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### 變更CurrentWorkspaceOverviewCurrentMonsterEditorCurrentItemsCurrentBattleExplorerCurrentLiveBattleLabCurrentStringExplorerEncodeSafeDecodeOnlyRawPreserveUnknownRiskReuseOriginalBytesReencodeAllowedBlocked- 類為以下兩者之一:
Extras / ps3data工作線的營運用包 - 裝具保存知識與
Pt6 / Pt23AI micro-workshops with preserved knowledge and archive-safe 官方的整併佇列現 merge nowmerge laterExtras/read-onlyknowledge onlyPt56、Pt52、Pt54、Pt58= 已在軟體中發動的攻擊Pt57與Pt53/Pt55= attack later, still read-onlyPt53、Pt55、Pt57= 積極研究但不過度宣稱Pt50、Pt51= 在被視為乾淨MagicPackageViewerBatEffPackageViewerMagicEffectCrosswalkExplorernever blind merge### 已驗證- 目具備最低限度的
- 來源紀錄:用途
- 效用合併可能性
- per-workshop mini changelog
binding truth語言- 針對
owner/target/parentage/commit - 的嚴格收斂
Pt6與Pt23 formation 0..7enemy actor rows 0..10rawMonsterId -> corpuscomposition truth與actor-surface truthPt46 / AIBlobParityGrammarLabPt47 / AIRuntimeDispatchLabPt48 / SafeAIMicroProbeLabas part of the runtime/AI legacy, even without writer or patcher claims.- old-wave base
Pt2..Pt11 - middle-wave base
Pt12..Pt22 - heavy-wave base
Pt23..Pt45 - 一份整合了記憶/執行環境/繫結/防護機制的單一彙整圖集
- 確附加為:
Pt6 - 的衛星項目
Pt9 - production-side exceptions
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 ### AddedFfxLib/BattleMap/BattleArenaPositionWriter.csre-stamps chunk3 錨點陣列中每個 actor 的 X/Y/Z IN PLACE(on-field 怪物 = 指標+0x20;亦支援隊伍/幻光獸/工作線 byrole),value-only:絕不觸碰 標頭/指標/計數/其他 chunk,並逐字保留 W。由於戰鬥→場景的座標轉換為 IDENTITY (IDA-proven、v2.10.0.1),在場景空間選取的座標會原樣寫入。與 slot-safe 相同的FormationSlotWriter模式 (防護檢查 + backup-onceWriteLooseFile)。 ### Validated RT0(no-edit == byte-identical)862/862、POSITION-ONLY(diff 僅限於+0x20陣列)862/862、RE-READ 862/862,以及 SAVE LIFECYCLE(在暫存副本上 no-edit/編輯/還原)PASS。 BiancaCatalogLab + AuroraChamberLab + BattleArenaPositionLab(先前被遺漏)。完整的 CI PASS(7/7 個閘門):ReverseHarness、AiScriptLab、FormationSlotLab、AbilityCommandLab 加上這 3 個新增項目。 ### Deferred 離線狀態證明 byte-safety;in-game 畫面纔是最終裁判。新增/移除怪物欄位(變動數量)= 結構性變更(Rebuild),下一步處理。 ## [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 + 編輯 12/12)。 ### 備註 翻譯注入,超出寫入器範圍)。文字搜尋僅在所選事件內進行。 ## [v2.10.0.1] - 2026-06-05 ### 已證實(RE / IDA,離線) 會將 chunk3(battle-local)座標VERBATIM複製到角色的世界node — no flip-Z, scale, or 旋轉;只有 Y 會獲得 per-actor model-height(actor+0x534)。由於.dae.phyre場景與原始 Phyre 頂點框架 1:1 對應,P_scene(X,Y,Z) = P_battle(X,Y,Z)(s=1,R=I,T=0)。已證實的鏈路:FFX_Battle_AreaChunk_GetSetPosition(0x7AC000;chunk3 基準0x112A9B0;原樣複製 4 個浮點數;角色世界 座標 @+0x3B0)→FFX_Battle_ResolveActorPlacement(0x7A9AE0)→FFX_Battle_GetActorByIndex(0x794030,間距0xF90== RT2 個敵人)。flip-Z 的猜測是把 off-field 暫存列(party-back Z≈-168)算進去所造成的假象。文件:docs/reverse/FFX_AURORA_BATTLE_TO_SCENE_TRANSFORM_IDA_PROVEN_2026-06-05.md(加上 rename-queue 以取得真實的.i64)。 ### 變更(Aurora Chamber — 誠實化) 現在直接以場景座標繪製錨點(預設原本就是恆等變換),而 flip-Z 開關變成 DISPROVEN/比較;aurora-actors.jsoncoordSpace=scene_world_identity_ida_proven。 ### 延後≈ chunk3(殘差約 0)+ 量測確切的 Y 項。Probe AUTHORIZED 由 Halyson 負責;僅待遊戲開啟 (透過現有 probe 的 READ,無需新程式碼)。SPIRA FORGE 維持暫停。 ## [v2.10.0] - 2026-06-05 ### 新增 容器)不再是 read-only。編輯過場動畫/事件對話現已是 BUTTON。FfxLib/Event/Event_File.Write.cs(新增): byte-faithful EV01 容器重新打包 — 每個 chunk re-aligned 到0x40,重新計算絕對偏移表 + EOF 終結符(保留 magic +0xFFFFFFFF哨兵)。No-edit = 保證為 VERBATIM;編輯後的文字重用TextTable_File.Write(chunks JP=1/EN=4);ATEL 腳本(0)、Unknown 2 與 FTCX(3)的 byte-for-byte 皆予保留。Tier 2 hookScriptChunkOverride(re-stitch 已編輯的 chunk-0)。Event_File.cs: 擷取原始標頭 + 文字表;可容忍 null-pointer field-string 條目(8 個檔案), 方式是原樣保留該 chunk(已記錄的 text-editable 邊界)。TextTable_File.Write附加式覆載(includeTrailingPadding): 輸出表+池而不含內部填充 (容器 re-pads 為 0x40)。NOT 破壞--textstr-rt0(預設 = 舊有行為)。Modules/EventExplorer成為對話 EDITOR: 可編輯的 JP/EN 字串(TwoWay TextBox)+ 一個 「儲存 對話」 按鈕,會 re-packs 並寫入.ebp。 (FfxLib/Ai/AiScript_File.cs,read-only 作為捐贈者使用)可讀取/編輯事件腳本(同一 AiFile 家族)。- Byte-local 運算元 PATCH PROVEN(12/12):編輯一個 chunk-0 運算元僅會改變那些位元組;容器 在其他位置re-stitches ;re-read 會帶有新的運算元.
- GROW (AppendCode) 是一個 已記錄的前沿領域: 供體
AppendCode(專為戰鬥而建, DATA 中的描述器) 並不會搬移 header-resident 事件腳本所使用的描述器 ([0x38..scriptStart)) — 需要 event-aware 搬移 (請與 AI 組譯器工作線協調). ### 已驗證 round-trip 12/12** (置換字串 → 重新封裝 → re-read: 編輯後的字串完全一致, 未更動的區塊逐位元組相同, 具冪等性). 397/397; byte-local 運算元修補 12/12. 編輯器建置 0 錯誤. (0 處中斷), EOF==filesize,0xFFFFFFFF哨兵值. 文件請見docs/reverse/FFX_EVENT_*_2026-06-05.md. ### 誠實原則 / 延後 text-editable 未). 第二級 = patch 已驗證; append/grow + 結構化編寫 = 第三級, 已記錄,但未 closed. 建議離線進行驗證 byte-RT0; in-game RT2 編輯後的對話仍建議加以檢查. ## [v2.9.0] - 2026-06-05 ### 新增 btlmap 場景目錄)與 MapViewer 接合,並從 chunk3 中抽取角色座標。謹獻給 Aurora 與 Bianca。💛 - 場景選擇器 可使用
BattleMapCatalog_File/BattlefieldSceneResolver(read-only)— 依區域與 map-key 列出/選取場景。 - 算繪 驅動
PhyreMapExportLab(btlmap 場景的 on-demand glTF 匯出),並透過FFXMapViewerWeb/?catalog=/?map=?actors=開啟 deep-link — 一個 per-scene mini-catalog,完全不會碰觸共用的catalog.json,也不會改寫app.js。 - 座標 透過新的
FfxLib/BattleMap/BattleArenaAnchors_File.cs讀取器(純/Avalonia-free):解碼 chunk3(96B area-record、指標+0x10..+0x2C、活動中怪物+0x20、16B XYZW Y-up 元素),列出 battle-local 錨點,並匯出 JSON 供遭遇編輯使用。 來自?actors=的錨點 gizmo,加上「選取」模式(y=0 平面射線投射 → 世界座標)。Non-intrusive(掛鉤window.ffxMapViewerDebug;無 no-ops 時?actors/pick;絕不編輯app.js)。 ### 已驗證 klyt00_00/sins02_00/mihn00_00 == doc-proven 座標);語料 862/862 全部乾淨(0 個 NaN/Inf,活動怪物上 W==0); 具決定性;BIANCA→場景→戰鬥→錨點管線 52/52 個已映射場景皆帶有錨點。 10,804 個三角面,gatePass: true)。編輯器以 0 個錯誤 建置(已在隔離的 HEAD 工作線中驗證)。 ### 誠實標註 / 延後項 UNCALIBRATED**(P_scene = R·s·P_battle + T;flip-Z/yaw-180 尚未解析)——錨點為原始 battle-local,而非 engine-exact。探針校正 = Wave 3(需要 Halyson 的 OK)。SPIRA FORGE 維持 PAUSED;Aurora 僅 CONSUMES MapViewer + BIANCA(read-only/加法疊加),絕不啟動 hub。 ## [v2.8.0] - 2026-06-05 ### 新增 (catalogs the 25 areas / 56 scenes of HDps3data/btlmap的 25 個區域 / 56 個場景建立目錄 —<area>NN_<variant>,包含mdl/d3d11/<leaf>.dae.phyre)+FfxLib/BattleMap/BattlefieldSceneResolver.cs. Pure/Avalonia-free, compiles into the editor (0 errors). "azit03"), NOT thebattlefieldu16(那是一個 全域競技場 id,跨地圖共用 —bf=1061遍佈 na gi/test/tori/zzzz)。文件: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,召喚獸+0x18,攝影機+0x2C。文件:docs/reverse/FFX_BATTLE_FORMATION_POSITION_CHUNK3_DECODED_2026-06-05.md。3D 管線已 場景 (-- export --ps3-root <ps3data> --area btlmap/azit/azit03_a). Actor-overlay plan + probe coordinate calibration (DESIGN):docs/ai/FFX_AURORA_COORDINATE_SYSTEM_AND_CALIBRATION_2026-06-05.md(probe only with Halyson's OK). ### 已驗證 具確定性;56/56 個場景各有一個主要模型;橋接0 個無法解釋的遺漏(22 張 HD-orphan 地圖 = 被砍/PS2-only EXPECTED;4 個孤兒場景 bika04/grid00/nagi03/sfia00 = BOSS/劇情 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 模式 (WriteIdentityfor the lossy-rebuild ones). New gate-sweepTools/Wave1Rt0.cs。 ## [v2.7.0] - 2026-06-05 ### 新增 將 AiFile 分區替換為 DIFFERENT 長度的分區,對 AiFile 進行 16 位元組填充,平移後續區段 並 重寫 標頭區段指標(m###.bin),以 原樣(verbatim)寫入 AiFile(不會破壞 codeLength)。 AI 組譯器 UI 現在支援 SAVES 增長/縮減(原先僅支援 length-preserving)。破壞原因已記錄並從設計上修復 (選項 B:最小介入面,NOT 觸碰Monster_File.Write→--monster-rt0維持 361/361)。 per-worker 的大小(NOT 分區/DeclaredLength/codeLength),並 信任 in-file 指標 → 增長時的重定位會被採用,且 尾端填充是安全的。(黃金法則:rename-queue。) ### 已驗證 (插入 → grow-aware splice → re-read 乾淨 + 尾端/標頭原樣保留 + 16 對齊 + 冪等), SHRINK 346/346(移除一條 non-targeted 指令 → 負增量 → re-read 乾淨 + 尾端保留)。--monster-rt0361/361(無退化)。語料對齊:16/32/64/128/256,尾端填充為 0。 (free-edit)」** 卡片已渲染,含可編輯的指令清單(opcode/operand/移除)+ 插入/結構化存檔 + 預覽。截圖work/spira_forge_qa/monster_ai_assembler_v01.png。 ### 延後處理 DINPUT8 探測(共用)強制觸發一場戰鬥——必須在 Halyson 明確的 OK 之下進行。離線與 RE 能證明位元組/game-safety;in-game 畫面纔是最終仲裁者。 ## [v2.6.0] - 2026-06-05 ### 新增 (插入 / 移除 / 修改) 的 byte-local 介面。重建後的 AiFile 來自AiScript_File.Rebuild(RT0-proven:透過舊→新對照表重新定位進入點與跳躍表)。可編輯清單 (opcode/運算元十六進位 + 移除勾選框)、insert-after-selected、差異預覽。僅對 length-preserving 編輯啟用儲存 (codeLength 不變) → 透過 byte-safe 進行SpliceAiFileIntoMonster接合。GROW/SHRINK 為 LAB (明確提示訊息):loose-file 儲存需要 header-aware 怪物重新佈局 + 對齊填充 + in-game 證明。 --ctbbase-rt0→CtbBase_File(ctb_base.bin)、preserve-only。--mixtable-rt0→MixTable_File(prepare.bin)、preserve-only。--aiasm-rt0→ 驗證 AI 組譯器結構性儲存 (no-edit 重建 + 重新佈局 + 接合 byte-identical) 並測量語料庫的 AiFile→WorkerFile 對齊。 ### 已驗證 length-preserving 編輯已 byte-safe。成長=LAB (原因:Monster_File的 0x34 標頭與AiFile[0..4)重疊 =codeLength,且長度變更會破壞 WorkerFile 對齊;語料庫為 16/32/64/128/256 對齊,無尾端填充)。 ### 已受阻 / LAB ## [v2.5.0] - 2026-06-05 ### 新增 控制(Open Spector、Capture Next Frame、Export Last Capture),並新增第一個Material Debug面板 內含已載入 glTF 材質的即時清單、選擇器、事實標籤,以及 per-slot 貼圖卡片 (map、normalMap、aoMap、envMap等)。 紀錄了已落地的內容、已驗證的內容,以及明確不在證明範圍內的項目。 ### 已驗證 控制項有出現,且Material Debug面板從已載入的 glTF 填入資料。 檢視器會降級為Frame preview unavailable/Texture preview unavailable on this source surface, 而不是假裝顯示有效的視覺證據。 ## [v2.4.4] - 2026-06-05 ### 新增 可選戰鬥;選擇其中一場後會發布至FieldContext.SelectedBattleId,陣型編輯器會直接 跳到該場戰鬥(載入其陣型)。透過共享主幹實現了總體規劃中的「點擊區域、切換陣型」, 無需任何殼層管線工程。FieldContext新增了SelectedBattleId/SelectBattle。 ### 已驗證 37 個 BattleIds 沒有對應資料夾 + 37 個資料夾從未被引用(特殊/事件戰鬥)— 交接機制只會過濾出 實際存在的項目。 編輯器跳至已載入的戰鬥)。截圖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的第 12 欄位連結而來);它等同於執行時期的m_skeletonMatricesbyte-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/52節點 會產生分歧。所以--hd-defpose+--hd-parents本來就是遊戲真正的綁定。 - 歷史上盤繞問題的根因:烘焙時若缺少
--hd-defpose/--hd-parents,就會退回invBind = PMatrix4[52+b](原始 LOCAL 矩陣)→ 網格因此爆開。defpose+parents 的作法就是解法,且已是圖庫的預設值。 - 新增 read-only 探針:
work/_scratch_mgrp/phyre_palette_probe(定位調色盤、證明綁定完全一致、 輸出node_to_slot.json)以及phyre_legs_probe(比對器;展示 coincident-translation 的陷阱)。 ### 已驗證 c007(Rikku)— 涵蓋強制休息、戰鬥(id5_c4318 t0.0–0.9)、深蹲時的 4 個小腿角度,以及 multi-clip (c4333/c4365/c4886)。數值上:leg-joint 的區域/世界矩陣皆為完美的剛體(scale=1、det=+1、正交 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 的寫入器,再關閉 4 個具體 editable-base 家族: --keyitem-rt0(Tools/KeyItemRt0)→KeyItem_File(important.bin)、preserve-only 寫入器(複製原始 位元組 + 僅 re-stampsPrimerByte10/OrderingByte13)。--treasure-rt0(Tools/TreasureRt0)→Treasure_File(takara.bin)、full-decode round-trip(每筆 4 位元組)。--customization-rt0(Tools/CustomizationRt0)→Customization_File裝備 kaizou.bin + 召喚獸 sum_grow.bin (保留標頭前綴/結尾 + re-emits 已解碼的條目)。--autoability-rt0(Tools/AutoAbilityRt0)→AutoAbility_File.WriteAbilities(a_ability.bin、DATA 區段)、preserve-only 寫入器。(僅讀取arms_rate.bin以滿足讀取合約;NOT 寫入 arms_rate,也NOT 涵蓋WriteAbilitiesAndText/text 重新封裝。) ### 已驗證 takara.bin(503 條目、2012 B)、kaizou.bin(125)+ sum_grow.bin(77)、a_ability.bin(134 條目、19590 B)。 No-edit 儲存 = byte-identical;編輯 = byte-local(與先前解決 Monster/Encounter 的 preserve-only 模式相同)。 部分解除歷史注意事項「important.bin/a_ability.bin 因 mutation-safe 寫入器宣告而受阻」: field(data-section)編輯現已獲得驗證;text-pool 重新封裝仍未宣告(同樣的 monmagic-style 漂移 風險 — 不在此閘門範圍內)。 ## [v2.4.2] - 2026-06-05 ### 新增 (e.g。[m003 - Murussu, m003 - Murussu, m009 - Dingo])。Lazy-loaded + 快取 + 上限(最多顯示 90 場 戰鬥;若為完整清單則會詢問是否依地區篩選)。Read-only;將總體計畫中「以該處 出現的怪物標示區域」的概念帶進編輯器(讓遭遇↔編隊的融合變得可見)。 ## [v2.4.1] - 2026-06-05 ### 新增 生產輔助工具(slot-only 防護 + backup-once.spiraforge.bak+ 寫入)。現已由編隊編輯器 (PersistSnapshot)使用,並由無頭閘門測試 AND —— 編輯器與測試使用相同程式碼,無重複。 ### 驗證 工作區/資產,並遵守 read-only):(a) no-edit 儲存 = 磁碟上的 byte-identical + 備份等於原始檔;(b) 編輯儲存 = 磁碟上的 slot-only + 重新讀取相符 + 備份保留;(c) 從備份還原 = byte-identical。PASS。 彌補了 v0.2 的誠實性缺口(in-app 儲存已證實寫入磁碟,且可復原)。語料庫仍為 858/858;offline_ci4 道閘門 PASS。 ## [v2.4.0] - 2026-06-05 ### 新增 Entries/Groups/Formations(VARIABLE 計數 + create 表)重建 chunk1、分配全新的 dataOffsets、重建 chunk0 與 chunk 表,並保留 block-sharing + 填充位。需通過--encounter-rebuild-rt0閘門。這是「CREATE ENCOUNTERS」的 結構性基礎。 ### 已驗證 (4096/4096)** + grow-test(新增 1 個 formation,結尾 0x1000→0x1002,2 個 chunk 完整)有效。 系列;修正了 結尾填充位 的偏移問題。誠實備註:StringExplorerhelp_txt.bin註冊 在這次擷取中為 DEAD(檔案不存在)—— 寫入器已在真實 field-string(spcodedic.bin)上驗證無誤。 ## [v2.3.2] - 2026-06-05 ### 新增 (Ability_Command.ReadList→WriteList),KernelCommands已用它進行 Save,但從未被 byte-gated。 參照編輯器專案(深層依賴樹),僅呼叫靜態 FfxLib 方法。已接入offline_ci.ps1。 ### 已驗證 (1 位元組)4/4。PASS。 這是「新黑魔法」夢想功能(位於 command.bin)的已驗證基礎。 ### 受阻 monmagic 原始檔共用/去重文字,而WriteListre-appends(FfxEncoding.WriteBytesIntoTextFile只會 附加;command/item 是 pure-append → 所以相符)。風險: KernelCommands 的 MonMagic Save 會使檔案膨脹 — 在 dedup-aware 寫入器通過之前先加上閘門。稽覈與修正目標:docs/reverse/FFX_ABILITY_WRITER_AUDIT_2026-06-05.md。 ## [v2.3.1] - 2026-06-04 ### 新增 EOF 之後的 btl_(kino03_*、mihn05_*、cdsp00_02):將 past-EOF 區塊(及之後)視為不存在,而非 拒絕整個檔案;較早的區塊(含 formation @2)保持有效。這些戰鬥現在可以在 隊形編輯器中編輯。 ### 已驗證 re-read 858/858 PASS。先前的 843 不變。 ## [v2.3.0] - 2026-06-04 ### 新增 8 隻怪物(16 位元組),採用 byte-safe slot-only。 使用FieldContext主幹(依中樞所選的場景區域共 pre-filters 場戰鬥)。怪物選擇器 (Monster_Dictionary+ 空位,保留原始高位半位元組)。儲存時會透過 loose-file(復原/捨棄)寫入工作線.spiraforge.bak,並附AssertSlotOnlyDiff備份 +ByteSnapshotEditorSession防護。離線運作,無探測。offline_ci.ps1(-BtlRoot參數)。在 read-only 上新增Battle_File成員 (FormationChunkOffset/FormationSlotsOffset/FormationSlotsLength)。 ### 已驗證 (15 btl_ unparseable by the reader at the time — fixed in v2.3.1.) ## [v2.2.0] - 2026-06-04 ### 新增 主軸。場景選擇器由橋接器 CSV 餵入資料(ps3data-map-btlmap-fieldid-bridge.csv,共 357 個 場景,structural-candidate)。選擇場景後會發布至FieldContext(可觀察單例),並由 2 個 消費端反應 read-only:地圖 deep-link(FFXMapViewerWeb 的?map=map/<area>/<field>)+ 遭遇預覽 (透過btl.bin讀取EncounterTable_File,候選區域↔地圖聯結)。CSV 透過 csproj<Content>複製到輸出。 離線運作;選擇器無需專案即可執行。無寫入器、無探測器。 ### 驗證 截圖work/spira_forge_qa/field_hub_v01.png。 ## [v2.1.1] - 2026-06-04 ### 驗證 byte-faithful 閘門實測--player-rt0:ply_save.bin(3098)+ply_rom.bin(2161)-> no-edit RT0 byte-identical。 (寫入器原本即已存在 slot-only;現在加上閘門。) ## [v2.1.0] - 2026-06-04 ### 新增btl.binbyte-for-byte 與 re-stamps 可編輯欄位(表格Id/Unknown0C,羣組Battlefield/Danger/TotalWeight,陣形Id/Weight)。編輯器中的--encounter-rt0閘門。 ### 驗證 ## [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 浪潮 + 與第二個 Codex 帳號結合的里程碑。 ### 亮點 在畫面上改變——Flame Flan Firaga→Thundaga,不當機、可復原。鏈路:enemy-list(0xD34460) ->MemoryChr.Ptr_script_chunks(+0xF78)-> 即時 AiFile === 磁碟m0NN.binbyte-identical。 全域能力——怪物不需要「擁有」它。證明:一隻 Skoll 在畫面上吐出 Ifrit 的 Hellfire。 資料復活(死亡旗標 + KO),全部透過MemoryChr+ 探針完成。 ### 新增 偏移量**(+delta)-> 一個有效的更大 AiFile(即「ADD AI」的路徑,超出 byte-local 預算)。 跳轉標籤 + 推斷的工作線類型)、運算元編輯 + loose-file 儲存。FFX_MUSIC_SYSTEM_AND_MOD_IDEA(音樂重新映射器)、FFX_AI_BYTECODE_OPCODE_TABLE_PROVEN,CODEX_MAPVIEWER_WATCH_JARVIS、FFX_MAP_DEVELOPMENT_TOOL_MASTERPLAN(Spira Forge)。 ### 變更 / 驗證 StatSheet/戰利品 + 保留檔頭 Signature/Padding(Padding 與AiFile[0..3]重疊)。 ### 已封鎖 / 已延期 (誠實) (game-closed 重建). 玩家發現:FFX_FmodMusic_PlayTrackByIndex(181 首曲目); PS2 SPU FIFO 在 HD 上為虛設. ### 自 Labs 吸收 / Multi-agent 與第二個 Codex 帳號的整合 (MapViewer / model-texture 工作線): 匯出器現在可輸出 material-role signals (TextureSampler1/normalMap/reflection/water/PhyreWaterShader), external-viewer 比較 (glTF-Sample-Viewer 作為 oracle; 已證實為間隙 exporter-side, 而非殼層), 且 Spira Forge 總體規劃 已啟動. Multi-agent 協調事項已記錄於docs/ai/CODEX_MAPVIEWER_WATCH_JARVIS.md. ## [v1.7.0] - 2026-06-04 ### 新增AppendCode: 在結尾附加指令 + 並重定位資料區段.Rebuild: 插入/移除/修改指令 ANYWHERE + AUTOMATICALLY 會重定位所有 跳躍 + 進入點 (舊→新連結映射) + 資料區段. 孤立分支 (被移除的指令) -> 會誠實地報錯. ### 已驗證 工作線解析, post-insertion 進入點已重定位0x2D1→0x2D4自行處理; grow-test (AppendCode) RT0. ## [v1.6.0] - 2026-06-04 ### 已驗證 StatSheet/Loot + 保留標頭Signature/Padding(Padding 與AiFile[0..3]重疊). ## [v1.5.0] - 2026-06-04 ### 已驗證 / 已封鎖 切換 BLOCKED** (FMOD API__thiscall, 探測 cdecl-only). 文件FFX_MUSIC_SYSTEM_AND_MOD_IDEA(Music Remapper). ## [v1.4.0] - 2026-06-04 ### 已驗證 (即時) 能力 — 怪物不需要'擁有"" 該能力. 證明: 一隻 Skoll 噴出 Ifrit'的 Hellfire 在畫面上. ## [v1.3.1] - 2026-06-04 ### 已修正/已驗證(即時) 旗標)。Auto-scan(Scan狀態)已即時切換。 ## [v1.3.0] - 2026-06-04 ### 已驗證(即時) (POINTER_BATTLE_ENEMY_LIST 0xD34460,步距0xF90)+ 探測。 ## [v1.2.0] - 2026-06-04 ### 新增 跳躍標籤)+ 運算元編輯 + loose-file 儲存。 ## [v1.1.0] - 2026-06-04 ### 已驗證(🏆 HEADLINE — 最高目標 #1) 畫面上行為隨之改變(Flame Flan Firaga→Thundaga),無當機、可復原。鏈結:enemy-list 0xD34460->MemoryChr.Ptr_script_chunks +0xF78-> live AiFile === diskm0NN.binbyte-identical. 文件:docs/reverse/FFX_AI_RT2_LIVE_EDIT_PROVEN_2026-06-04.md。 ## [v1.0.0] - 2026-06-01 編輯器作為真正的讀取、驗證與 knowledge-navigation 平臺的成熟里程碑,具備足夠的Extras產品成熟度,足以支持誠實的1.0,儘管執行期、AI 與 body-playback 頭目部分仍未完成。 ### 重點摘要PS2 KnowledgeTextures (TM2 + TXC/CLT/FMT/SPS2 support lane)BIN-FTC AtlasProject / PipelineMagic EffectsPresentation ContainersBattle Corpus Crosswalk### 新增MagicPackageViewerBatEffPackageViewerMagicEffectCrosswalkExplorerFtcHeaderInspectorBinSidecarGraphSignature Groupin the shellTxcCltPairExplorer- 冷
fmt/sps2中繼資料 ### 變更 ### 驗證 read-onlydo not promoteno runtime proof適用處為pipeline/support onlywhere applicable ### 說明magic solvedAI solvedModelViewer playback solved- 廣泛的作者授權 ## [v0.11.0-beta.2] - 2026-06-01 Real product evolution for the
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/Shop- 適用於
item_shop.bin與arms_shop.bin NameDescriptionTextPrefixTable_Filereader + no-edit guard的important.binreader + 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;- guarded writer for
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)— 視覺 QA 基礎架構:在 FREE 中加入 opencodeverboo_router.py模型(誠實揭露限制 + 能力比較)。MINOR。工作線 Jarvis-CLINE。[前一版本:v2.226.0.0] ##v2.226.0.0(2026-08-08)— 視覺 QA 基礎架構:OpenCode Go 整合(gpt-5.6-luna)+desc模式 + 人性化 UX 提示詞 + 報告修正。MINOR。工作線 Jarvis-CLINE。[previous:v2.225.2.0] ##v2.225.2.0(2026-08-06) — F7 怪物 AI 替換:透過 status-on-ability 實現 RAM。MINOR。工作線 Jarvis-HOOK。[先前:v2.225.1.0] ##v2.225.1.0(2026-08-06) — 寶物 Map:ATEL 標頭解析 + 詞彙表修正。PATCH。工作線 Jarvis-CLINE。[prev:v2.225.0.0]
v2.11.0BETA
Seymour
— 🧠 AI ASSEMBLER PRODUCTIZED(可實際使用的 monster-AI 編輯器):
- 編解碼器的「AI 100% 自由編輯」成為 FEATURE。
FfxLib/Ai+Modules/MonsterAiEditor工作線的新增內容: - 行為程式庫(
AiSnippetLibrary):參數化範本,其位元組 MIRROR 經驗證語料 慣用法 —— 線性(force-cmd/perform-cmd/grant-field/set-stat/raw-call)與條件式 (RNG 1-in-K 輪替、用於計數/階段的 on-event force-command)。 - Pre-flight 驗證器(
AiValidator):opcode∈48、HasOperand 與 0x80 比對、懸空分支/進入點 (指出名稱為何,而非不透明的例外擲出)、運算元範圍、RT0 self-check、Rebuild dry-run、 放大/縮小;SaveAssembler現在具備防禦性 (遇到錯誤時拒絕寫入). - 友善的命令選擇器 (
AiCommandId): performCommand 運算元 ↔ 名稱透過(cat<<12)|idoverCommandCharacter/CommandMonster1_Dictionary; UI 下拉選單 (不再顯示原始十六進位). - 新的編解碼基元 (
AiScript_File):GrowWorkerJumpTable(為 worker 新增插槽's jump-table — 啟用 NEW 分支) +AppendGuardedAction(將受防護的動作前置到進入點, 並保留 原始處理器) +OperandKindOf. - UI 位於
MonsterAiEditor:行為庫卡片 +驗證按鈕/報告 +命令下拉選單. - 閘門
AiScriptLab --ai2PASS (真實語料, 361): jump-grow 898/898 個工作執行者, guarded-action 692/692 (第一個+最後一個進入點) + 合成哨兵 1/1, 驗證器通過 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/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(探測)。範本 "heal ally < 25% HP" 與 "enrage on turn N" NOT 已交付(HP-field / turn-counter 錨點未byte-confirmed)。 sum/npc 已結案。
- 貼圖(manifest-driven):
extract-texture-batch中的RuntimeTools/PhyreModelExportLab新增了--from-manifest,它會讀取<id>.ahwin32g_fileNames[](權威資產清單)並 擷取遊戲所載入的 EXACT 貼圖。305 張 PNG(pc/npc/sum),來源對照texture-provenance-map.json, 0 筆靜默不符。RE:ahwin32是可讀的 C 標頭——無需 cross-refs 即可解析c906←c106(c908←c108,c806←c805,AND)multi-texturec101+c101_01(n238+n238_hair,n356←n238_hair,IDA)。 額外發現: NPC rig-inheritance 按鍵 =0x6NNN位於.chr(nXXX→kNNN 地圖, 222/222 有效). 文件docs/reverse/FFX_AHWIN32_ASSET_MANIFEST_2026-06-05.md. - 烘焙 (網格+貼圖+動畫): 驅動器
work/_scratch_mgrp/bake_cast.py透過phyre_chr_gate. 靜態 253/253 (全員皆有貼圖, 正常). 有動畫: 加總自身動作, npc 繼承skl/<base>. - 視覺 QA (工作流程, 21 個視覺代理): 248 個動畫已透過 F3D 分類 — 157 個正常 / 58 個扭轉 / 33 爆開. 綁定選取器 (重置/A1) 對 33 沒有修復效果.
- 🔧 Blender CORRECTION (2026-06-06): F3D 是 LYING 出在蒙皮動畫上. Blender 診斷 (網格
EXPLODE_RATIO≈1.0, 無增長) + 忠實的 Eevee 渲染證明瞭 "爆開" 的部分其實有 完整的身體, 只是一條肢體/飾品被拉伸. Re-QA (8 個 agent 超過 Blender 渲染) 修正為 175 個乾淨的 (71%) / 59 扭轉 (24%) / 14 損毀 (6%) — 20 個模型獲救, 離線烘焙從來都只有 ~94% 可用. 14 個真正的 = 11 幻光獸 + 3 個 NPC (non-humanoid 骨架綁定; 需要動作捕捉/parent-map RE). 規則已更新: 此 BLENDER畫面決定, F3D謊言. 管線work/_scratch_mgrp/blender_{diagnose,render_anim,batch_render}.py. - 🎯 RETARGET SOLVED透過
--retarget-delta(2026-06-06): 175→215 個乾淨 (87%). 新增phyre_chr_gate旗標 將繼承的動作以 相對於 frame0 的增量套用到 npc 的 REST (M=restLocal·inv(m0)·mf), 保留 npc 原本的比例,而不是強加基礎模型的'. IDA RE 證實.chr@0x30重對映其實早已套用—— 問題出在 rest-pose 重定向, 而非重對映 (文件FFX_INHERITED_MOTION_REMAP_RUNTIME_2026-06-06.md). 試駕+一批 73 個 fudidos + Blender re-QA + per-model keep-best: +40 個乾淨, 44 個搶救回來, ZERO 退化 (1 個保留,因為會造成退化). NPC 動態 = 200/222 個乾淨 (90%), 0 個爆掉; 8 隻召喚獸 還是爆了 (工作線免疫 → 動作捕捉). 解決了 MASTER §2.4 "A1-universal" 而不必承受 A1' 的風險. - 🐉 WHOLE CAST 已於線下關閉 (2026-06-06): 498/643 個乾淨 (77%), 90% 個可用. 擴充 truthful-Blender-QA + retarget-delta + keep-best 其餘部分: obj/wep/pc (46 清理/55, 隊伍清理) AND 340 MONSTERS. 舊的 怪物 QA (bbox) 宣稱 "0 爆炸" = 是謊言; 屬實 Blender QA (29 個代理) 找到 127 個真實 fudidos; retarget-delta 於 66 條繼承的工作線上 → 36 條已升級, 怪物 206→237 乾淨. 總計已套動畫 (643): 498 乾淨 / 86 扭曲 / 51 爆炸 / 8 空白. 殘留 (9%) = 發散網格 / 退化綁定 → 動態捕捉/mesh-RE, 非重定向.
- obj/wep/pc (2026-06-06): 同一管線延伸 — 靜態 obj 110/110 + wep 79/79 + pc 34/49 (15 pc 失敗 = dummy
c8xx槽位,沒有 PS2.chr). 整個 HD 角色羣靜態 = 476 個模型. obj/wep 大多 為剛體 (稀疏動畫 25/7); screen spot-check: f001/w001/c004=Auron 已清理. - Gallery
work/cast_hd_gallery.html(model-viewer, 靜態/動畫切換, 統計/npc/obj/wep/pc 篩選). 全部位於work/(已加入 gitignore): 只有 COMMANDS 是程式碼. 未提升 csproj 版本 (lab/RE 位於 RuntimeTools). ): 的動態清單, 線上 掃描 + 授權審核 外部 FFX HD/PS2 工具(VBF、Phyre、核心.bin、ATEL、FMOD、TM2、FMV)以及 編輯器 NuGets。已審核的重要發現:External File Loader (ffgriever, BSD-2) loose-file 無需重新打包,Kaitai Struct(C# 執行期 MIT)可產生 C#+JS 讀取器, fahrenheit(MIT、C#)hook+DLL 修改框架,以及確認 FFXDataParser 具有 NO LICENSE(僅供研究)。tested?欄位仍是❌——對本機 語料庫的驗證測試尚待進行,計畫已包含於文件本身。Doc-only:未提升 csproj 版本(lab/RE doc-only 規則)。 58打包的檔案卷宗;- 每個卷宗一份資訊清單;
- 在 Git-safe 下一份
docs/history/DOSSIÊ FFX 01-06-2026/鏡像副本; - 一份排除報告,針對因 GitHub 大小限制而受阻的單一巨型外部二進位檔。
- 獨立的 workshop-range 知識庫;
- 一份彙整的總圖集;
- 以根
KNOWLEDGE_BASE.md作為單一進入點; - 一份官方合併計畫;
- 一份
Pt6/Pt9dependent-workshops 附錄; - 專案的正式技術家族工作線。
merge in docsExtras nowExtras laterfrozen researchhistorical cleanupps3dataffx_ps2- 執行收尾
- child-workshop 彙編
- 執行期/AI 圖集
- 後繼者啟動
- 收尾:簡短成熟度看板
Extras now裁定Extras later裁定凍結- 的研究邊
- 界衍生的
Pt67產品角色 ps3data與ffx_ps2的切分- 來源規則手冊
- 強制引用面向 ### 新增
important.bina_ability.binReadNo-Edit Byte IdentityReread- 為:
FFXProjectEditor/FfxLib/Text/* - 中的附加文字權杖合約 round-trip decision utility
TextLabTools/TextContractHarnessas the first 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### 變更CurrentWorkspaceOverviewCurrentMonsterEditorCurrentItemsCurrentBattleExplorerCurrentLiveBattleLabCurrentStringExplorerEncodeSafeDecodeOnlyRawPreserveUnknownRiskReuseOriginalBytesReencodeAllowedBlocked- 分類為以下兩種:
Extras / ps3data工作線的操作性 - 包裝保留知識與
Pt6 / Pt23AI micro-workshops with preserved knowledge and archive-safe 官方吸收佇列現 merge nowmerge laterExtras/read-onlyknowledge onlyPt56、Pt52、Pt54、Pt58= 立即在軟體中進行攻擊Pt57與Pt53/Pt55= attack later, still read-onlyPt53、Pt55、Pt57= 不過度宣稱的積極研究Pt50、Pt51= 在被視為乾淨MagicPackageViewerBatEffPackageViewerMagicEffectCrosswalkExplorernever blind merge### 已驗證- 項目的最低來
- 源記錄:用途效
- 用合併可能性
- per-workshop mini changelog
binding truth語言- 針對
owner/target/parentage/commit - 的強力收斂
Pt6與Pt23 formation 0..7enemy actor rows 0..10rawMonsterId -> corpuscomposition truth與actor-surface truthPt46 / AIBlobParityGrammarLabPt47 / AIRuntimeDispatchLabPt48 / SafeAIMicroProbeLabas part of the runtime/AI legacy, even without writer or patcher claims.- old-wave base
Pt2..Pt11 - middle-wave base
Pt12..Pt22 - heavy-wave base
Pt23..Pt45 - 單一彙整圖集,包含記憶體/執行時/繫結/防護措施
- 確附加為:
Pt6 - 的衛星工作線
Pt9 - production-side exceptions
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 在 chunk3 錨點陣列中的 X/Y/Z, IN PLACE(on-field 怪物 = 指標+0x20;也包括依role的隊伍/幻光獸/預備配置),value-only:絕不碰觸 標頭/指標/數量/其他區塊,W 原樣保留。由於戰鬥→場景的轉換是 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/編輯/還原)PASS。 BiancaCatalogLab + AuroraChamberLab + BattleArenaPositionLab(先前被遺漏)。完整的 CI PASS(7/7 個關卡):ReverseHarness、AiScriptLab、FormationSlotLab、AbilityCommandLab + 3 個新增項目。 ### 延後處理 離線;in-game 畫面是最終裁決者。新增/移除怪物欄位(改變數量)= 結構性(重建),下一步。 ## [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 + 編輯 12/12)。 ### 備註 翻譯注入,超出寫入器範圍)。文字搜尋僅限於所選事件內。 ## [v2.10.0.1] - 2026-06-05 ### 已證實(RE / IDA,離線) 會將 chunk3(battle-local)座標 VERBATIM 原樣複製到角色的世界 node — no flip-Z, scale, or 旋轉;只有 Y 會獲得一個 per-actor model-height(actor+0x534)。由於.dae.phyre場景與原始 Phyre 頂點幀 1:1 對應,P_scene(X,Y,Z) = P_battle(X,Y,Z)(s=1,R=I,T=0)。已證實的推導鏈:FFX_Battle_AreaChunk_GetSetPosition(0x7AC000;chunk3 基準0x112A9B0;逐字複製 4 個浮點數;角色世界 座標位於 @+0x3B0)→FFX_Battle_ResolveActorPlacement(0x7A9AE0)→FFX_Battle_GetActorByIndex(0x794030,步距0xF90== RT2 敵人)。flip-Z 的猜測是因誤將 off-field 暫存列納入所致(party-back Z≈-168)。文件:docs/reverse/FFX_AURORA_BATTLE_TO_SCENE_TRANSFORM_IDA_PROVEN_2026-06-05.md(另有 rename-queue 記錄真實的.i64)。 ### 變更(Aurora Chamber — 誠實性修正) 直接以場景座標繪製錨點(預設本來就是單位矩陣),且 flip-Z 切換變為 DISPROVEN/comparison;aurora-actors.jsoncoordSpace=scene_world_identity_ida_proven。 ### 延後處理≈ chunk3(殘差約為 0)+ 量測精確的 Y 項。由 Halyson 進行 AUTHORIZED 探測;僅待遊戲開啟 (透過現有探測進行 READ,無需新增程式碼)。SPIRA FORGE 仍維持暫停。 ## [v2.10.0] - 2026-06-05 ### 新增 容器)不再受限於 read-only。編輯過場動畫/事件對話現已成為 BUTTON。FfxLib/Event/Event_File.Write.cs(新增): byte-faithful EV01 容器重新封裝——每個區塊 re-aligned 至0x40,並重新計算絕對偏移表 + EOF 結束符(保留 magic +0xFFFFFFFF哨兵值)。No-edit = 保證 VERBATIM;編輯後的文字重複使用TextTable_File.Write(區塊 JP=1/EN=4);ATEL 腳本(0)、Unknown 2 與 FTCX(3)的 byte-for-byte 皆予保留。Tier 2 hookScriptChunkOverride(re-stitch 已編輯的 chunk-0)。Event_File.cs: 擷取原始標頭 + 文字表;對於 null-pointer field-string 項目(8 個檔案)具備容錯能力, 方式為原樣保留該區塊(已記錄的 text-editable 邊界)。TextTable_File.Write加法重載(includeTrailingPadding): 輸出表格+字串池,不含內部填充 (將容器從 re-pads 改為 0x40). NOT 是否會破壞--textstr-rt0(預設= 舊版行為).Modules/EventExplorer變成了對話視窗 EDITOR: 可編輯的 JP/EN 字串 (TwoWay TextBox) + 一個 "儲存 對話" 按鈕,它會 re-packs 並寫入.ebp. (FfxLib/Ai/AiScript_File.cs, 使用 read-only 作為捐贈來源) 讀取/編輯事件腳本 (同一 AiFile 系列).- Byte-local 運算元 PATCH PROVEN (12/12): 編輯單一 chunk-0 運算元只會更動那些位元組; 容器 re-stitches 在其他地方完全相同; 該 re-read 帶有新的運算元.
- GROW (AppendCode) 是一個 有文件記載的前沿領域: 該捐贈
AppendCode(為戰鬥而建, 描述資料位於 DATA) 不會重新定位事件腳本所使用的 header-resident 描述符 ([0x38..scriptStart)) —— 需要重新定位 event-aware (請與 AI 組譯器工作線協調). ### 已驗證 round-trip 12/12** (交換字串 → 重新打包 → re-read: 編輯後字串一致, 未更動區塊逐位元組保留, 冪等). 397/397; byte-local 運算元修補 12/12. 編輯器建置 0 錯誤. (0 中斷), EOF==檔案大小,0xFFFFFFFF哨兵值. 文件見docs/reverse/FFX_EVENT_*_2026-06-05.md. ### 誠實揭露 / 延後 text-editable). Tier 2 = 修補 已驗證; 附加/擴增 + 結構撰寫 = Tier 3, 已記錄但未 結案. 驗證建議離線進行 byte-RT0; in-game RT2 已編輯對話仍建議進行. ## [v2.9.0] - 2026-06-05 ### 新增內容 btlmap 場景目錄) 至 MapViewer,並將 角色座標 從 chunk3. 中解放 謹將此獻給 Aurora & Bianca. 💛 - 場景選擇器 使用
BattleMapCatalog_File/BattlefieldSceneResolver(read-only) — 清單/依區域與 map-key.選取場景 - Render 工作線推動
PhyreMapExportLab(on-demand glTF 匯出 btlmap 場景),並透過FFXMapViewerWeb/?catalog=/?map=deep-link 開啟?actors=—— 這是一個 per-scene mini-catalog,,完全不碰共用catalog.json,也不改寫app.js. - 座標 ,透過全新的
FfxLib/BattleMap/BattleArenaAnchors_File.cs讀取器 (純/Avalonia-free): 解碼 chunk3 (96B area-record, 指標+0x10..+0x2C, 存活怪物+0x20, 16B XYZW Y-up 元素), 列出 battle-local 錨點與匯出 JSON 供遭遇編寫使用. 從?actors=取得錨點 gizmo + 一個 "pick" 模式 (y=0 平面射線檢測 → 世界座標). Non-intrusive (hookswindow.ffxMapViewerDebug; no-ops 不含?actors/pick; 絕不修改app.js). ### 已驗證 klyt00_00/sins02_00/mihn00_00 == doc-proven 座標); 語料庫 862/862 無異常 (0 個 NaN/Inf, W==0 個位於實際怪物上); 具確定性; BIANCA→場景→戰鬥→錨點 管線 52/52 已映射的場景皆帶有錨點. 10,804 個三角形,gatePass: true). 編輯器以 0 個錯誤 建置成功 (已在隔離的 HEAD worktree 中驗證). ### 誠實揭露 / 暫緩事項 UNCALIBRATED** (P_場景 = R·s·P_戰鬥 + T; flip-Z/yaw-180 未解決) — 錨點是原始的 battle-local, 而非 engine-exact. 探針校準 = 第三波 (需要 Halyson' 的 OK). SPIRA FORGE 保持 PAUSED; 僅限 Aurora CONSUMES MapViewer + BIANCA (read-only/累加式), 絕不啟動中樞. ## [v2.8.0] - 2026-06-05 ### 新增 (收錄25 個區域 / 56 個場景 的 HDps3data/btlmap—<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. 指標+0x20(float32 X,Y,Z,W; Y-up; W=0; 16-位元組間距; 隊形槽位 ↔ 項目). 隊伍+0x10, 召喚獸+0x18, 攝影機+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). ### 已驗證 確定性; 56/56 個場景各恰有一個主要模型; 橋接於 0 個無法解釋的遺漏 (22 HD-orphan 對應 = 剪下/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 模式(WriteIdentityfor the lossy-rebuild ones). New gate-sweepTools/Wave1Rt0.cs。 ## [v2.7.0] - 2026-06-05 ### 新增 會將 AiFile 分區替換為長度為 DIFFERENT 的分區, 16-填充之後AiFile, 會使後續區段位移並 重寫 標頭區段指標 (m###.bin),原樣寫入 AiFile 逐位元組 (不會 codeLength 破壞).此 AI 組譯器 UI 現在 SAVES 可成長/縮減 (先前 length-preserving 僅限). 破壞原因已記錄 + 已依設計修正 (選項 B:最小影響面, 不會 NOT 觸碰Monster_File.Write→--monster-rt0維持 361/361). VM 自 工作執行緒數 + per-worker datalen (對齊 16) (NOT 分區/DeclaredLength/codeLength)並 信任 in-file 指標 → 成長重定位會被採用且 尾端填充是安全的. (黃金法則: rename-queue.) ### 已驗證 (插入 → grow-aware 拼接 → re-read 清理 + 尾部/標頭逐字保留 + 16 對齊 + 冪等), SHRINK 346/346(移除一條 non-targeted 指令 → 負增量 → re-read 清理 + 尾部保留)。--monster-rt0361/361(無迴歸)。語料對齊:16/32/64/128/256,0 尾端填充。 (free-edit)」** 卡片已渲染,含可編輯指令清單(opcode/運算元/移除)+ 插入/結構性儲存 + 預覽。螢幕截圖work/spira_forge_qa/monster_ai_assembler_v01.png。 ### 延後項目 DINPUT8 探釋(共用)強制觸發戰鬥 — 須在 Halyson 明確 OK 下進行。離線 + RE 已證明位元組/game-safety;in-game 畫面纔是最終裁決。 ## [v2.6.0] - 2026-06-05 ### 新增 針對完整指令(插入 / 移除 / 修改)的 byte-local 介面。重建後的 AiFile 來自AiScript_File.Rebuild(RT0-proven:透過舊→新對應表重新定位進入點與跳躍表)。可編輯清單 (操作碼/運算元十六進位 + 移除勾選框)、insert-after-selected、差異預覽。僅在 length-preserving 編輯時才啟用儲存(codeLength 不變)→ 透過 byte-safe 進行SpliceAiFileIntoMonster拼接。GROW/SHRINK 為 LAB(顯示誠實訊息):loose-file 儲存需要 header-aware 怪物重新佈局 + 對齊填充 + in-game 證明。 --ctbbase-rt0→CtbBase_File(ctb_base.bin),preserve-only。--mixtable-rt0→MixTable_File(prepare.bin),preserve-only。--aiasm-rt0→ 驗證 AI 組譯器結構化儲存(no-edit 重建 + 重新佈局 + 拼接 byte-identical) 並測量語料庫的 AiFile→WorkerFile 對齊。 ### 已驗證 length-preserving 編輯為 byte-safe。Grow=LAB(原因:Monster_File的 0x34 標頭與AiFile[0..4)重疊 =codeLength,且長度變更會破壞 WorkerFile 對齊;語料為 16/32/64/128/256 對齊,無尾部填充)。 ### 受阻 / LAB ## [v2.5.0] - 2026-06-05 ### 新增 控制項(Open Spector、Capture Next Frame、Export Last Capture),以及第一個Material Debug面板, 提供已載入 glTF 材質的即時清單、選擇器、事實籤標,與 per-slot 貼圖卡片 (map、normalMap、aoMap、envMap等)。 記錄了哪些內容已落實、哪些已通過驗證,以及哪些明確不在證明範圍內。 ### 已驗證 控制項正常顯示,且Material Debug面板從已載入的 glTF 填入資料。 檢視器會降級為Frame preview unavailable/Texture preview unavailable on this source surface, 而不是假裝顯示有效的視覺證據。 ## [v2.4.4] - 2026-06-05 ### 新增 可選戰鬥; 選擇其中一項後會發布到FieldContext.SelectedBattleId,陣形編輯器會直接 跳到該場戰鬥 (並載入其陣形). 具體實現了總體規劃中的'"點選一個區域,、替換陣形",透過 共用主幹完成,無需外殼層的額外接線.FieldContext獲得SelectedBattleId/SelectBattle. ### 驗證 37 個BattleIds沒有對應資料夾 + 37 個資料夾從未被引用 (特殊/事件戰鬥) — 交接機制會過濾出 實際存在的項目. 編輯器中跳到已載入的戰鬥). 截圖work/spira_forge_qa/handoff_encounter_to_formation_v04.png. ## [v2.4.3.1] - 2026-06-05 ### 逆向 / 驗證 假設(CONTINUE_AQUI_PERNAS_HD):「52m_skeletonMatrices→ 79 joints」的對應表存在於 Phyre 檔案中, 而不是 IDA 裡。- 皮膚調色盤是
PMatrix4[0..51](由PMesh第 12 欄位連結而來);它等同於執行時的m_skeletonMatricesbyte-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](原始 LOCAL 矩陣)→ 網格因此炸開。defpose+parents 的做法即是修正方案,且已是展示庫的預設值。 - 新增 read-only 探測工具:
work/_scratch_mgrp/phyre_palette_probe(定位調色盤、證明綁定完全一致, 並輸出node_to_slot.json)與phyre_legs_probe(比對器;說明 coincident-translation 的陷阱)。 ### 已驗證 c007(Rikku)——在強制休息、戰鬥(id5_c4318 t0.0–0.9)、深蹲時四個小腿角度,以及 multi-clip (c4333/c4365/c4886)中皆然。數值上:leg-joint 的區域/世界矩陣皆為完美剛體(scale=1、det=+1、正交 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 的寫入器,再封閉 4 個具體的 editable-base 家族: --keyitem-rt0(Tools/KeyItemRt0)→KeyItem_File(important.bin),preserve-only 寫入器(複製 原始位元組,並僅 re-stampsPrimerByte10/OrderingByte13)。--treasure-rt0(Tools/TreasureRt0)→Treasure_File(takara.bin),full-decode round-trip(每筆 4 位元組)。--customization-rt0(Tools/CustomizationRt0)→Customization_File裝備 kaizou.bin + 幻獸 sum_grow.bin (保留標頭前綴/尾端 + re-emits 已解碼的項目)。--autoability-rt0(Tools/AutoAbilityRt0)→AutoAbility_File.WriteAbilities(a_ability.bin,DATA 區段),preserve-only 寫入器。(僅讀取arms_rate.bin以滿足讀取合約;NOT 寫入 arms_rate,且NOT涵蓋WriteAbilitiesAndText/text 重新封裝。) ### 驗證 takara.bin(503 條目,2012 B)、kaizou.bin(125)+ sum_grow.bin(77)、a_ability.bin(134 條目,19590 B)。 No-edit 存檔 = byte-identical;編輯 = byte-local(與收尾 Monster/Encounter 時相同的 preserve-only 模式)。 部分解除了歷史上的但書「important.bin/a_ability.bin 因 mutation-safe 寫入器主張受阻」: field(data-section)編輯現已獲得驗證;text-pool 重新打包仍無人主張(同樣的 monmagic-style 漂移 風險——不在本次關卡範圍內)。 ## [v2.4.2] - 2026-06-05 ### 新增 (e.g.[m003 - Murussu, m003 - Murussu, m009 - Dingo])。Lazy-loaded + 快取 + 上限(可見戰鬥≤90 場;若為完整清單則會詢問是否依地區篩選)。Read-only;將總體計畫中「以該處 出沒的怪物為區域上色」的概念帶入編輯器(讓遭遇↔編隊的融合得以呈現)。 ## [v2.4.1] - 2026-06-05 ### 新增 生產輔助函式(slot-only 防護 + backup-once.spiraforge.bak+ 寫入)。現由陣型編輯器 (PersistSnapshot)AND 使用,並由無頭測試閘門驗證——編輯器與測試使用同一份程式碼,無重複。 ### 驗證 工作區/資產,並遵守 read-only):(a) no-edit 存檔 = 磁碟上 byte-identical + 備份與原檔一致;(b) 編輯存檔 = 磁碟上出現 slot-only + 重新讀取一致 + 備份保留;(c) 從備份還原 = byte-identical。PASS。 補上 v0.2 的誠實性缺口(in-app 存檔已證實落於磁碟,且可還原)。語料庫仍為 858/858;offline_ci4 道閘門 PASS。 ## [v2.4.0] - 2026-06-05 ### 新增 Entries/Groups/Formations(re-emits 計數 + create 表)重建 VARIABLE chunk1,指派全新的 dataOffsets,重建 chunk0 + chunk 表,並保留 block-sharing + 填充。以--encounter-rebuild-rt0作為閘門。「CREATE ENCOUNTERS」的結構性 基礎。 ### 已驗證 (4096/4096)** + grow-test(新增 1 個編隊,末端 0x1000→0x1002,2 個 chunk 完整)有效。 家族;修正了尾端填充偏移問題。誠實註記:StringExplorerhelp_txt.bin註冊項 在此次擷取中為 DEAD(檔案不存在)— 寫入器已在真實 field-string 上驗證(spcodedic.bin)。 ## [v2.3.2] - 2026-06-05 ### 新增 (Ability_Command.ReadList→WriteList),KernelCommands在 Save 時早已使用,但從未 byte-gated。 參照編輯器專案(深層依賴樹),僅呼叫靜態 FfxLib 方法。已接入offline_ci.ps1。 ### 已驗證 (1 位元組)4/4。PASS。 這是「新黑魔法」夢想功能(位於 command.bin)的已驗證基礎。 ### 阻塞 monmagic 原始檔共用/去重文字,而WriteListre-appends(FfxEncoding.WriteBytesIntoTextFile僅 附加;command 與 item 為 pure-append → 因此相符)。風險: KernelCommands' 的 MonMagic Save 會使檔案膨脹 — 在 dedup-aware 寫入器通過前先加以閘控。稽覈與修正目標:docs/reverse/FFX_ABILITY_WRITER_AUDIT_2026-06-05.md。 ## [v2.3.1] - 2026-06-04 ### 新增 超過 EOF (kino03_*,mihn05_*,cdsp00_02): 時,會將 past-EOF 區塊(及其之後)視為不存在, 而非拒絕整個檔案;較早的區塊(含. formation @2) 仍然有效.這些戰鬥現在可在 Formation Editor 中編輯. ### 已驗證 re-read 858/858 PASS. 先前的 843 筆未變動. ## [v2.3.0] - 2026-06-04 ### 新增 隻怪物 16 位元組Battle_File.WriteWithFormationSlots, byte-safe slot-only. 會消耗FieldContextspine (pre-filters Hub 所選野外區域的戰鬥'). 怪物選擇器 (Monster_Dictionary+ 空值, 會保留原始的高 nibble). 儲存時會寫出工作區 loose-file 並附帶.spiraforge.bak備份 +AssertSlotOnlyDiff防護, 透過ByteSnapshotEditorSession(復原/捨棄). 離線, 無探測.offline_ci.ps1(-BtlRoot參數). read-only 上的累加成員Battle_File(FormationChunkOffset/FormationSlotsOffset/FormationSlotsLength). ### 已驗證 (15 個 btl_ 當時 reader 無法解析 — 已在 v2.3.1 修正.) ## [v2.2.0] - 2026-06-04 ### 新增field_token為鍵值的導覽主軸。場景選擇器由橋接器 CSV 提供(ps3data-map-btlmap-fieldid-bridge.csv,共 357 個 場景,structural-candidate)。選定場景後會發布至FieldContext(可觀察單例),並由 2 個 消費端反應 read-only:地圖 deep-link(供 FFXMapViewerWeb 使用的?map=map/<area>/<field>)+ 遭遇預覽 (透過btl.bin讀取EncounterTable_File,候選區域↔地圖聯結)。CSV 已透過 csproj<Content>複製到輸出。 離線運作;選擇器無需專案即可執行。無寫入器、無探測器。 ### 已驗證 截圖work/spira_forge_qa/field_hub_v01.png。 ## [v2.1.1] - 2026-06-04 ### 已驗證 byte-faithful 閘門驗證--player-rt0:ply_save.bin(3098)+ply_rom.bin(2161)-> no-edit RT0 byte-identical。 (寫入器原本即存在 slot-only;現已加入閘門。) ## [v2.1.0] - 2026-06-04 ### 新增btl.binbyte-for-byte 以及 re-stamps 僅可編輯欄位 (tableId/Unknown0C, groupBattlefield/Danger/TotalWeight, formationId/Weight). 編輯器中的--encounter-rt0gate. ### 已驗證 ## [v2.0.0] - 2026-06-04 > NEW ERA — MAJOR. 編輯器從 "離線檔案編輯" 邁向 PROVEN LIVE RUNTIME EDITING: > 直接編輯怪物'的 AI 位元組碼於 RAM 並在 畫面上, 看到行為改變、無當機、, 可復原 — > 本專案'的 終極目標 #1, 得以實現. MAJOR = 一種全新的 能力類別 (並非契約/save/build > break — 我們僅做了新增與強化).-beta因為 RT2/God-Mode 尚未被產品化為受 gate 管控的 UI. > Claude Code / VSCode 波次的里程碑 + 與第二個 Codex 帳號的匯合. ### 亮點 隨之改變 — Flame Flan Firaga→Thundaga, 無當機, 可復原。流程:enemy-list(0xD34460) ->MemoryChr.Ptr_script_chunks(+0xF78) -> 即時 AiFile === 磁碟m0NN.binbyte-identical。 全域能力 — 怪物不需要「擁有」它。證明: 畫面上 Skoll 吐出了 Ifrit 的 Hellfire。 資料復活 (死亡旗標 + KO), 全部透過MemoryChr+ 探測器完成。 ### 新增 偏移量**(+位移量)-> 有效的較大 AiFile(通往「ADD AI」的路徑,超出 byte-local 預算)。 跳躍標籤 + 推斷的工作線類型),運算元編輯 + loose-file 儲存。FFX_MUSIC_SYSTEM_AND_MOD_IDEA(音樂重新映射器),FFX_AI_BYTECODE_OPCODE_TABLE_PROVEN,CODEX_MAPVIEWER_WATCH_JARVIS,FFX_MAP_DEVELOPMENT_TOOL_MASTERPLAN(Spira 鍛造)。 ### 變更 / 已驗證 StatSheet/寶物,並保留檔頭 Signature/Padding(Padding 原本與AiFile[0..3]重疊)。 ### 受阻 / 暫緩(如實說明) (game-closed 重建)。已找到播放器:FFX_FmodMusic_PlayTrackByIndex(181 首曲目);PS2 SPU FIFO 在 HD 上為空殼。 ### 自 Labs 吸收/ Multi-agent 與第二個 Codex 帳號的整合 (MapViewer / model-texture 工作線): 匯出器現在公開 material-role 訊號 (TextureSampler1/normalMap/反射/水面/PhyreWaterShader), external-viewer 比較 (glTF-Sample-Viewer 作為預言來源; 間隙已驗證 exporter-side, 而非空殼), 以及 Spira鍛造坊 總體計畫 啟動. Multi-agent 協調紀錄於docs/ai/CODEX_MAPVIEWER_WATCH_JARVIS.md. ## [v1.7.0] - 2026-06-04 ### 新增AppendCode:在結尾附加指令 + 重新配置資料區段。Rebuild:插入/移除/修改一條指令 ANYWHERE + AUTOMATICALLY 重新配置所有 跳躍 + 進入點(舊→新的連結器映射)+ 資料區段。孤立分支(被移除的指令)-> 誠實回報錯誤。 ### 已驗證 , 工作線正常解析, post-insertion entrypoint relocated0x2D1→0x2D4on its own; grow-test (AppendCode) RT0. ## [v1.6.0] - 2026-06-04 ### 已驗證 StatSheet/戰利品 + 保留標頭Signature/Padding(填充區與AiFile[0..3]重疊)。 ## [v1.5.0] - 2026-06-04 ### 已驗證 / 已封鎖 交換 BLOCKED** (FMOD API__thiscall, 探測 cdecl-only). 文件FFX_MUSIC_SYSTEM_AND_MOD_IDEA(音樂重新映射器). ## [v1.4.0] - 2026-06-04 ### 已驗證 (即時) 能力 — 怪物'"不必"擁有它. 證明: 一隻 Skoll 吐出 Ifrit'的 Hellfire 在畫面上. ## [v1.3.1] - 2026-06-04 ### 已修復 / 已驗證 (即時) 旗標). Auto-scan (Scan狀態) 即時切換. ## [v1.3.0] - 2026-06-04 ### 已驗證 (即時) (POINTER_BATTLE_ENEMY_LIST 0xD34460, 步進0xF90) + 探測. ## [v1.2.0] - 2026-06-04 ### 新增 跳轉標籤) + 運算元編輯 + loose-file 儲存. ## [v1.1.0] - 2026-06-04 ### 已驗證 (🏆 HEADLINE — 終極目標 #1) 行為變化顯示於畫面上 (Flame Flan Firaga→Thundaga), 無當機, 可還原. 連鎖:enemy-list 0xD34460->MemoryChr.Ptr_script_chunks +0xF78-> live AiFile === diskm0NN.binbyte-identical. 文件:docs/reverse/FFX_AI_RT2_LIVE_EDIT_PROVEN_2026-06-04.md. ## [v1.0.0] - 2026-06-01 編輯器作為實際閱讀、驗證與 knowledge-navigation 平臺的成熟里程碑,其Extras產品面向已足夠充分,足以合理地進行一次誠實的1.0,儘管執行時期、AI 與 body-playback 首領部分仍未完成。 ### 重點PS2 KnowledgeTextures (TM2 + TXC/CLT/FMT/SPS2 support lane)BIN-FTC AtlasProject / PipelineMagic EffectsPresentation ContainersBattle Corpus Crosswalk### 新增MagicPackageViewerBatEffPackageViewerMagicEffectCrosswalkExplorerFtcHeaderInspectorBinSidecarGraphSignature Groupin the shellTxcCltPairExplorer- 冷
fmt:sps2中繼資料--/- ### 變更 ### 已驗證 read-onlydo not promoteno runtime proof(如適用)pipeline/support only(如適用) ### 備註magic solvedAI solvedModelViewer playback solved- 廣泛的撰寫授權 ## [v0.11.0-beta.2] - 2026-06-01 Real product evolution for the
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/Shop- a guarded writer for
item_shop.bin與arms_shop.bin NameDescriptionTextPrefixTable_Filereader + no-edit guard的important.binreader + 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提供的受防護寫入器。 ### 治理與版本管理 ### 已驗證 ### 仍受阻 ### 為何這仍屬 Beta ## 歷史語意重建 重要的編輯註記: ## [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. ### 新增 ### 保留 ### 已驗證 ### 備註 ## Workshop 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 ### 任務 ### 演進 ### 主分支成果 ### 最終狀態