docx-manuscript-synclisted
Install: claude install-skill billy1125/Kotoforge
# Word(docx)↔ Manuscript.md 同步比對
使用者常在別的軟體(多為 Word)編修稿件、另存 `.docx`。本技能把該 docx 與**作用中論文**的
`papers/<paper>/Manuscript.md` 做**段落級比對**,逐塊呈現差異+建議,讓使用者**逐塊裁定**
「哪一版為準、更新到哪個檔」,再把採用的改動合併回 `Manuscript.md`(依 `CLAUDE.md` §5 留底可回退);
需要時用最終 md 以 `markdown-to-word` 重匯一份 Word,讓外部端同步到最新。可作為**定期回合**:
Word 改一輪 → 本技能比對 → 合併回稿件 → 選配重匯 Word。
## 何時使用
- 使用者在 Word/其他軟體改過稿,要把改動比對並合併回 `Manuscript.md`。
- 想定期(例如每次外部編修後)同步兩邊。
- 想在合併前先看清「哪些段落不同、各段哪版較新」。
## 最重要的原則:**不預設 docx 為準**
外部 docx **未必比 md 新**——它可能是較早的匯出,缺了近期在 md 裡做的編修。
逐塊判讀「哪一版較新/較好」時,**交叉下列訊號**,不要一律採 docx,也不要一律採 md:
- `papers/<paper>/revisions/` 最近數筆:md 端最近改了什麼、何時改的。
- `papers/<paper>/progress.md`:各節狀態(已定稿的節若 docx 是舊版,採 docx 即回退)。
- `papers/<paper>/style-guide.md`(尤其 §9 使用者規則):術語統一、縮寫慣例、自稱用語、列舉標記等;
某版若違反已確立規則(如縮寫重複展開、構念名不一致、`this study` 而非 `the present study`),通常是較舊/較差版。
- 內容訊號:某版含已被清除的冗長段、舊術語、舊拼寫 → 較舊。
> 若某塊 docx 疑似含**使用者在外部刻意做的實質內容更動**(新增句子、改引用、改主張/數據),
> **不要自行併入**,以「⚠️ 觀察」標出,明確請使用者確認那是不是他要保留的改動。
## 環境需求
conda 環境 `research`(見 `CLAUDE.md` §8)。本技能腳本需 `mammoth`:
```bash
conda run -n research pip install mammoth
```
先驗證;失敗則提示使用者安裝,勿自行改動環境:
```bash
conda run -n research python -c "import mammoth; print('mammoth ok')"
```
## 操作步驟
1. **【強制關卡】先與使用者確認「兩方到底是哪兩個檔」,取得明確回覆後才動手——絕不自行猜測或沿用。**
- 逐一列出並請使用者確認:
- **作用中論文**是哪一篇(哪個 `papers/<title>/`)。
- **md 端**:目標工作稿路徑(預設 `papers/<title>/Manuscript.md`)。
- **docx 端**:外部編修檔的**確切路徑與檔名**(可能在 `papers/<title>/drafts/`、論文根目錄,或使用者指定的其他位置;`drafts/` 內常有多個 `.docx`,**務必問清是哪一個**)。
- **必做核對**:對兩個路徑