D-20261022-01|公版場地程序化交付與零件維持延後¶
2026-10-29 關聯追補:決定中的「schema 2」只是從未公開的候選名稱,現行按
tracks/parts分類型交付的形狀即schemaVersion: 1,已由 D-20261029-05 修訂。其餘決定不變。
背景與驅動力¶
三個公版場地已由程序化生成器從零重做並通過視覺定稿(issue 001042),權利來源乾淨,正式
finalizer 零 findings,八車成本回到 100 ms 級。零件仍在重做,權利證據未齊。D-20260820-01 的交付
狀態是全域單一值,delivered 要求 27 顆一起到位,無法表達「場地已交付、零件延後」。另外三個
程序化場地的 root extras(含 64×64 雨雪曝露格的完整 PhysicsManifest)達 70–110 KB,超過公版守門
沿用至今、沒有 canon 依據的 64 KiB 上限;牆條帶宣告版又因環序列在 extras 與 manifest 各存一份而
超過 500 KiB 場地預算。authoring 來源契約仍指向 Tripo 原檔,生成器沒有可隨 Release 保存的位置。
考慮過的選項¶
- 維持全域單一狀態,只換 bytes:provenance 與交付狀態互相矛盾,否決。
- 逐資產交付狀態:粒度超過需求,且 E2E 本來就以整車+場地為單位,否決。
- 按
tracks/parts分類型交付,各自持有 PROVENANCE(採納)。 - 交付牆條帶宣告版並放寬 500 KiB 預算,或先做 extras 去重再交付:前者改預算、後者是程式變更; 純地面分塊版成本同級且符合預算,先交付純地面分塊版(採納),去重另案處理。
決定¶
public/assets/builtin-delivery.json升 schema 2:decision=D-20261022-01、releaseRequired: true,kinds.tracks與kinds.parts各有deferred-prelaunch|delivered與 各自的public/assets/builtin/<tracks|parts>/PROVENANCE.md。專案仍在 pre_launch,不保留 schema 1 的讀取或相容層。- 非 strict 開發檢查逐類回報延後;strict/release 只在兩類都
delivered且各自 PROVENANCE 六節 皆有實質內容時通過。需要整車的測試(canonical 載入、自然完賽、admission 效能批次)要求兩類都已 交付;只需場地的 surface proof 只要求tracks。E2E required coverage 的授權 skip 以「任一類延後」 判定。 - 本次場地交付純地面分塊版(
groundCellM8、不宣告牆條帶):track-01snowy-field v4、track-02urban-circuit v6、track-03jungle-mud v5;parts維持deferred-prelaunch。 - 公版 GLB root extras 上限定為 256 KiB(canonical JSON 的 UTF-8 bytes),作為 builtin 出貨預算的
一部分;UGC 的 extras 天花板仍是
SANITIZE_EXTRAS_MAX_BYTES。 - 三場地 authoring 來源改指程序化 authoring GLB,生成器快照(Blender 4.5 腳本)、
GENERATOR.md與PROVENANCE.md放進release-input/tracks/,candidate epoch 升一。Release 準備工具新增.py/.md文字來源封裝為authoring-text.zip;其他副檔名仍 fail closed。Tripo 場地原檔保留在既有 immutable Release,不再列入 desired state。
後果與影響¶
場地可先完成 strict 以外的全部守門並進入版控,零件延後不再阻擋場地驗收;release readiness 仍要求 兩類都交付。main 採用新來源前必須由維護者發新的 authoring-source immutable Release 並更新 dependency lock,之前 adoption gate 會以 fingerprint drift fail closed。extras 內曝露格與環序列的重複儲存另案 去重;牆條帶宣告版待去重後再評估是否改交付。