Problem
Original text:
「我記得che-word-mcp有一個大改動,就是想要用round test確保word修改不會有差的,我會建立swift腳本來測試,想看看目前到哪裡了」
— Source: 使用者直接輸入(2026-07-03 session)
使用者記憶中的「che-word-mcp 大改動」對應到 macdoc 的 Spectra change word-aligned-state-sync(把 ooxml-swift 從破壞性 typed model 改造為 lossless XmlNode tree + operation log + .mdocx Swift 腳本授權面)。此 issue 是該線的 GitHub tracking 入口 —— 之前進度只存在 openspec/changes/word-aligned-state-sync/ 裡,跨 repo 的 round-trip 損失 bugs 沒有單一 dashboard。
Type
tracking(feature line)
Priority
P2(排程)— 回鍋此線時可升級
Current Status (2026-07-03)
Spectra change word-aligned-state-sync:10/73 tasks
| Phase |
內容 |
目標版本 |
狀態 |
| Phase 0 |
XmlNode tree 基礎(lossless 表示、identity round-trip、golden corpus、TreeRoundTripGoldenTests) |
ooxml-swift v0.30.0 |
✅ 10/10 完成,已釋出 |
| Phase 1 |
typed views 變 tree projections(Paragraph/Run/Table/SectionProperties/Settings) |
v0.31.0 |
○ 未開始 |
| Phase 2 |
Operation log(append-only + JSONL sidecar + reducer/undo/blame) |
v0.32.0 |
○ 未開始 |
| Phase 3 |
Word-import diff / SyncOrchestrator(conflict 偵測、file watcher、Word lock) |
v0.33.0 |
○ 未開始 |
| Phase 4 |
Script transcoder(op log ↔ .mdocx Swift 腳本、log→script→log round-trip、macdoc word reverse CLI) |
v0.34.0 |
○ 未開始 |
| Phase 5 |
v1.0.0 遷移清理(移除 legacy typed-only 路徑) |
v1.0.0 |
○ 未開始 |
已鎖定 specs:ooxml-roundtrip-fidelity、ooxml-roundtrip-completeness、mdocx-grammar(.mdocx 語法 locked,transcoder 實作在 Phase 4)
既有測試面:ooxml-swift RoundTripFidelityTests / TreeRoundTripCorpusTests / TreeRoundTripGoldenTests / DocumentXmlLosslessRoundTripTests 等;che-word-mcp RealWorldDocxRoundTripSmokeTests
姊妹 change:ooxml-edit-isomorphism-foundation(11/35)
關聯的 round-trip 損失 bugs(ooxml-swift,open)
Phase 0 的 tree 表示是這些 bug 的結構性解法;Phase 1 落地後應逐一回頭驗證:
Expected
.docx 經 read → mutate → save 後,未被編輯的部分零損(round-trip fidelity)
.mdocx Swift 腳本可作為驗證面:log → script → log 等價、script → docx 可迭代(Phase 4;即使用者想寫的 Swift 測試腳本歸屬處)
- 上列 4 個 ooxml-swift round-trip bugs 隨 phase 推進逐一清空
Actual
- Phase 0 完成(tree 基礎 + golden corpus 已 merge、v0.30.0 已 tag)
- Phase 1–5 未開始:typed views 尚未接上 tree,4 個 round-trip bugs 仍 open
.mdocx 語法已 locked 但 transcoder 未實作,Swift 腳本驗證還不可用
Impact
沒有這條線,任何經 che-word-mcp / ooxml-swift 寫回的 .docx 都可能靜默丟失未觸碰的內容(shapes、AlternateContent、多 section 結構、settings)—— 對使用者是不可逆的文件損壞風險。
Next Steps
/spectra-apply word-aligned-state-sync 續作 Phase 1(typed views → tree projections,v0.31.0)
- Phase 1 落地後回頭驗證上列 4 個 bugs
- Phase 4 建立
.mdocx Swift 腳本 round-trip 驗證
Clarity Surface(idd-clarify run 2026-07-03T03:53:43Z)
| Type |
Source |
Suggested canonical |
Status |
| ambiguity |
"想要用round test確保word修改不會有差的" |
「round test」非標準術語;候選解讀:(a) round-trip fidelity test(read→write 無損驗證,body 採此解);(b) 一般 regression test suite |
surfaced |
| ambiguity |
"我會建立swift腳本來測試" |
「Swift 腳本」雙解:(a) .mdocx script transcoder 驗證面(Phase 4,body 採此解);(b) 一般 XCTest Swift 測試碼(RoundTripFidelityTests 等既存) |
surfaced |
| ambiguity |
"我記得che-word-mcp有一個大改動" |
該大改動實際主體在 ooxml-swift + macdoc(word-aligned-state-sync change);che-word-mcp 是下游消費者,attribution 需注意 |
surfaced |
| missing-context |
"確保word修改不會有差" |
「不會有差」的 diff 判準未指定:byte-identical / normalizedFingerprint 等價(spec 現行判準)/ 語意等價 —— 三者嚴格度不同 |
surfaced |
Problem
使用者記憶中的「che-word-mcp 大改動」對應到 macdoc 的 Spectra change word-aligned-state-sync(把 ooxml-swift 從破壞性 typed model 改造為 lossless XmlNode tree + operation log +
.mdocxSwift 腳本授權面)。此 issue 是該線的 GitHub tracking 入口 —— 之前進度只存在openspec/changes/word-aligned-state-sync/裡,跨 repo 的 round-trip 損失 bugs 沒有單一 dashboard。Type
tracking(feature line)
Priority
P2(排程)— 回鍋此線時可升級
Current Status (2026-07-03)
Spectra change
word-aligned-state-sync:10/73 tasksTreeRoundTripGoldenTests).mdocxSwift 腳本、log→script→log round-trip、macdoc word reverseCLI)已鎖定 specs:
ooxml-roundtrip-fidelity、ooxml-roundtrip-completeness、mdocx-grammar(.mdocx語法 locked,transcoder 實作在 Phase 4)既有測試面:ooxml-swift
RoundTripFidelityTests/TreeRoundTripCorpusTests/TreeRoundTripGoldenTests/DocumentXmlLosslessRoundTripTests等;che-word-mcpRealWorldDocxRoundTripSmokeTests姊妹 change:
ooxml-edit-isomorphism-foundation(11/35)關聯的 round-trip 損失 bugs(ooxml-swift,open)
Phase 0 的 tree 表示是這些 bug 的結構性解法;Phase 1 落地後應逐一回頭驗證:
Expected
.docx經 read → mutate → save 後,未被編輯的部分零損(round-trip fidelity).mdocxSwift 腳本可作為驗證面:log → script → log 等價、script → docx 可迭代(Phase 4;即使用者想寫的 Swift 測試腳本歸屬處)Actual
.mdocx語法已 locked 但 transcoder 未實作,Swift 腳本驗證還不可用Impact
沒有這條線,任何經 che-word-mcp / ooxml-swift 寫回的
.docx都可能靜默丟失未觸碰的內容(shapes、AlternateContent、多 section 結構、settings)—— 對使用者是不可逆的文件損壞風險。Next Steps
/spectra-apply word-aligned-state-sync續作 Phase 1(typed views → tree projections,v0.31.0).mdocxSwift 腳本 round-trip 驗證Clarity Surface(idd-clarify run 2026-07-03T03:53:43Z)
.mdocxscript transcoder 驗證面(Phase 4,body 採此解);(b) 一般 XCTest Swift 測試碼(RoundTripFidelityTests 等既存)