來源受理面盤點(2026-08-16 grill)排序第 3 名。頻率高(實際 inbox 有,支付與遊戲串接的錯誤碼表與商戶參數常是另一份試算表),靜默度中等(被看見但講不出下一步)。
現況
.xlsx / .xls 不在 loop_apidoc/manifest/formats.py:8-19 的 _EXTENSION_FORMATS 裡,會落到 SourceFormat.UNKNOWN,manifest 標成 ProcessingStatus.UNSUPPORTED(scanner.py:142-144)。拒絕是對的,但 operator 只看到「格式不支援」,得不到 remedy。
決定(grill 定案)
不建轉檔器。試算表的合併儲存格、公式、多工作表會把「轉成 Markdown 表格」變成一連串判斷,每個判斷都是製造假 fact 的機會——html_snapshot.py 光是處理 colspan/rowspan 就寫成了 AGENTS.md 裡最長的一格說明,Excel 只會更糟。改由 operator 用外部工具另存為 CSV 或 Markdown 表格後放進 sources/,比照 legacy .doc 的處置。
但要明確列進副檔名表:新增 .xlsx / .xls 與一個像 word-legacy 那樣的專屬格式值,讓 manifest 與 score/evaluate.py:148-154 的 SOURCE_UNSUPPORTED remedy 能講出「另存為 CSV 或 Markdown 表格後重建 manifest」。
這正是 0.37.0 對 .doc 那次改動的全部價值(見 docs/RELEASE_NOTES_0.37.0.md:40-45):改動的意義不在支援了什麼,而在讓一個原本靜默失敗的路徑變成大聲失敗且說得出下一步。純粹落到 UNKNOWN 的最終結果一樣是拒絕,但拒絕時說不說得出下一步,決定了它在缺口排序裡的位置。
成本:formats.py 兩行加一個 enum 值。
注意
若試算表內容要進 pipeline,它走的是 #1 的次級佐證路徑(authority: supplementary),與正式文件不同級。
產出
來源受理面盤點(2026-08-16 grill)排序第 3 名。頻率高(實際 inbox 有,支付與遊戲串接的錯誤碼表與商戶參數常是另一份試算表),靜默度中等(被看見但講不出下一步)。
現況
.xlsx/.xls不在loop_apidoc/manifest/formats.py:8-19的_EXTENSION_FORMATS裡,會落到SourceFormat.UNKNOWN,manifest 標成ProcessingStatus.UNSUPPORTED(scanner.py:142-144)。拒絕是對的,但 operator 只看到「格式不支援」,得不到 remedy。決定(grill 定案)
不建轉檔器。試算表的合併儲存格、公式、多工作表會把「轉成 Markdown 表格」變成一連串判斷,每個判斷都是製造假 fact 的機會——
html_snapshot.py光是處理colspan/rowspan就寫成了AGENTS.md裡最長的一格說明,Excel 只會更糟。改由 operator 用外部工具另存為 CSV 或 Markdown 表格後放進sources/,比照 legacy.doc的處置。但要明確列進副檔名表:新增
.xlsx/.xls與一個像word-legacy那樣的專屬格式值,讓 manifest 與score/evaluate.py:148-154的SOURCE_UNSUPPORTEDremedy 能講出「另存為 CSV 或 Markdown 表格後重建 manifest」。這正是 0.37.0 對
.doc那次改動的全部價值(見docs/RELEASE_NOTES_0.37.0.md:40-45):改動的意義不在支援了什麼,而在讓一個原本靜默失敗的路徑變成大聲失敗且說得出下一步。純粹落到UNKNOWN的最終結果一樣是拒絕,但拒絕時說不說得出下一步,決定了它在缺口排序裡的位置。成本:
formats.py兩行加一個 enum 值。注意
若試算表內容要進 pipeline,它走的是 #1 的次級佐證路徑(
authority: supplementary),與正式文件不同級。產出
formats.py新增.xlsx/.xls與專屬格式值.doc/.xlsx不建轉檔器(與 子代理契約「orchestrator 是唯一寫入者」在端點數量大時造成不必要的 context 成本 #5 合併為同一份)AGENTS.md套件邊界表、README.md:343