feat: convert Markdown math to native Word OMath - #154
Conversation
IDD Verification — FAILFrozen SHA: 四個直接落在本變更契約內的 correctness blockers:
驗證閘門另有一項:frozen diff 的 效能 finding 經 Devil's Advocate 降為 P2:placeholder 配對靜態上呈高次方搜尋,debug profile 100/200/400 個公式約 0.71/4.67/36.84 秒;修正時應改為單向 marker walker,並用 release benchmark決定最終 severity。 測試資格:
因此既有 42 failures 維持由 sister #155 追蹤,並非本次 FAIL 原因。 流程揭露:四個 lens 受本機四槽限制以 3+1 批次執行;外部 cross-model reviewer 因隱私政策拒絕傳送約 100 KB 私有 diff,未規避政策,由 coordinator self-review 補位。Sequenced Devil’s Advocate 已完成,沒有新增非重複 blocker。 下一步:在本 PR 先補 RED regression,再修正上述四項,重跑完整 verification。 |
Verify Report — PR #154 — R2AggregateFAIL — 3 blocking findings. Frozen candidate: EngineFour independent lenses (requirements, logic, security/data-integrity, regression), sequenced Devil's Advocate, and primary Codex review. All reports were written before aggregation and the frozen SHA remained unchanged. Requirements coverage6/7 requirements are fully addressed. The conservative scanner/one-forward-scan requirement remains only partially addressed. Findings
The optional reference-title case is also a real scanner-boundary defect. DA classifies it as a P2 clarification because the current spec explicitly names destinations rather than titles; it should be handled in the same remediation but is not required to establish this FAIL. Fresh verification evidence
Process gapThe desktop environment provided independent reviewer agents plus the primary Codex family, but no second external model family was allowed to receive the private diff. This is disclosed rather than represented as cross-model verification. DispositionPR remains needs-fix. No verified tag is created. The next implementation round must add RED regressions for multiline destinations, positive CommonMark block-boundary display cases, and deterministic linear marker allocation before another frozen verification round. |
IDD Verify R3 — PR #154 / Issue #141ResultFAIL — frozen SHA Frozen candidate
Lens verdicts
Blocking findings(去重)
共同根因:scanner在原始CommonMark AST/source ranges前改寫source,沒有建立允許carrier ranges,也未驗證每個token恰好在可見Text/display carrier中被消耗一次。 R2 blockers status
Fresh test evidence
Production negative probes
Required remediation before R4
Process disclosure四個本機獨立lens與sequenced DA均完成且報告非空。另嘗試呼叫外部Claude Code作跨模型審查,但執行環境因未取得針對私有程式碼外傳目的地的明示授權而拒絕;未繞過。此process gap已揭露,不影響本輪FAIL判定。 |
Verify Report — PR #154EngineCodex multi-agent ensemble:5 個獨立 lens(API/contract、performance、CommonMark contract、regression、code quality)+ Codex CLI 模型多樣性限制:本環境無 Claude-family reviewer;本次所有 reviewer 均屬 Codex-family,已以獨立上下文、精確反例與 frozen-SHA freshness gate 降低同源偏差。 AggregatePASS — 0 blocking,0 follow-up。 Scope coveragePR refs:#141 Verified scope:#141 #141 — feat: convert md→docx 支援 LaTeX math → 原生 OMathRequirements coverage:6/6 addressed。
Verification evidence
Scope Check改動維持在 #141 的 Markdown → DOCX OMath library/CLI/測試/文件/Spectra 範圍;未修復 #155 baseline,也未合併 #164。驗證通過不代表自動合併或關閉 issue。 |
…#141) Change: markdown-omath-conversion Tasks: 19/19 complete
|
R2(conflict-resolution delta 補審,2026-09-01):rebase onto main(16 commits replay,首 commit 撞 3 檔——Convert.swift 因與 token/Notability 線分歧成整檔級衝突)。解法:以三方 base→theirs 抽出 OMath 真實 delta(4 hunks / 22 行:MathOption enum、 |
c42f343 to
f0a515f
Compare
Refs #141
Summary
literal|omathMarkdown-to-DOCX math mode with a backward-compatible literal default.latex-math-swiftand emit native inline/display Word OMath.Verification
68c7403b39f3fad5d5da551f02fcc5c9f51bcb8a.R3 blocking
Checklist
No GitHub auto-close trailer is included; issue closure remains a separate gated action.