MLF 1.0 · mlfc 1.0.0
English

容器

一個剛好可以壓成 zip 的目錄。

一個 MLF 封包是一個目錄裡的一組明確紀錄。.mlf 檔就是那個目錄的決定性、ZIP 相容交換形式 —— 同樣的位元組、同樣的意義,沒有第二套需要同步維護的格式。

1.0 凍結了什麼

  • 決定性的 .mlfdir.mlf 容器。
  • 唯一的 manifest.json 進入點。
  • 矩陣、儲存格、區域、角色與樣式紀錄。
  • 來源公式、正規化 AST 與相依圖三者共存。
  • 路徑圖與可逆投影中繼資料。
  • 來源歷程、轉換損失報告、四層指紋與校驗和。
  • MLF 0.1 讀取相容,以及非破壞性遷移到 1.0。
  • 安全的匯入匯出邊界,並明確回報不支援的功能。

是紀錄,不是一坨

正典封包是一組明確的紀錄,不是一個序列化的大物件。每個檔案回答一個問題,而且各自可以在不解析其餘部分的情況下讀取。

manifest.json
選定文件層級的資源。
矩陣 JSONL
儲存格、區域與樣式,一行一筆。
公式 JSONL
來源運算式與正規化 AST。
圖 JSONL
相依邊與遍歷路徑。
歷程 JSONL
只追加的歷史。
報告
指紋與轉換損失。
checksums.json
把路徑綁到位元組。

層次分離

六件事,刻意分開。穩定的檔案格式主要住在 L1–L3;執行、模型與治理元件消費這個格式,不重新定義它。

  • L0實體基底
  • L1容器與完整性穩定格式
  • L2矩陣知識模型穩定格式
  • L3公式、相依、路徑與歷程圖穩定格式
  • L4執行與模型投影
  • L5人類投影與治理

L1–L3 承載穩定的檔案格式。L4 與 L5 消費它,但不重新定義它。

這條界線就是格式能活得比工具久的原因。整個投影層可以換掉,而容器一個位元組都不用動。

投影

序列、矩陣張量、圖張量、執行階段、分片、摘要與人類表格輸出,全部都是投影。它們不是來源結構的替代品,而這個格式從不用投影去取代它的來源。

呈現

人類視圖就是一個視圖。它被寫進 projections/human_views.jsonl,跟結構並存,不是取而代之。

決定性

同一份輸入編譯兩次,會得到逐位元組相同的封包。這正是四個指紋能跨機器比較的前提,也是 mlfc diff 談的是「兩個封包」而不是「兩次序列化」的原因。