ppt-to-mdlisted
Install: claude install-skill kau10082/PPT-to-MD
# ppt-to-md — 學術簡報忠實還原 Skill v2
## 用途與定位
把一份學術/藥廠 `.pptx`,**盡量真實地**還原成 Markdown。只做「簡報本身有的內容」,
**不做論點考證、不查外部文獻**(那是之後另一個步驟,見 `later-verification-step/`)。
**核心心法:機械可驗證的才做;一切原文逐字;不猜、不填補、不查外部。**
## 啟動方式
- **`/ppt`**(軟指令,明確召喚):可單獨輸入,或 `/ppt` 後接說明;通常直接連同 .pptx 一起丟。
雲端 Chat 直接可用;Claude Code 因斜線會撞 CLI 內建指令,該環境改用自然語言。
- **自然語言**:直接丟 .pptx 並說「忠實轉 markdown / 盡量還原這份簡報」即可觸發。
- 兩種方式都需要**能執行程式碼的環境**(雲端對話、Claude Code、桌面版)以跑 `scripts/extract.py`。
常用參數:`--frontmatter`(加 YAML 骨架,進 Obsidian 用)、`--no-mermaid`(關閉 Mermaid 附圖)。
---
## 第一階段:機械抽取(`scripts/extract.py`)
不靠提示詞、不查外部、可重現。在有 code execution 的環境直接跑:
```bash
python scripts/extract.py <輸入.pptx> [輸出.md] [--no-mermaid] [--frontmatter]
```
自動完成:
| 項目 | 處理方式 |
|------|----------|
| 投影片本文 | 依 shape tree 順序走,保留閱讀順序、逐字不改寫 |
| 表格 | 還原成 Markdown 表格,保留行列結構 |
| 合併儲存格 | **一律留白,不填補、不推論**;合併造成的全空欄/列保留,不當雜訊刪除 |
| **原生圖表** | 從 `ppt/charts` 抽底層數據還原成數據表(**無損**),並標示原始圖型(長條/折線/圓餅/散佈…);散佈圖以 x/y 值成對還原;**僅長條圖**另附 Mermaid `xychart-beta`(Obsidian 1.4+ 原生渲染、無需圖檔;折線/圓餅畫成長條會誤導趨勢故不附;表格為準,圖為附加,可用 `--no-mermaid` 關閉)|
| SmartArt 圖形 | 逐字抽出圖形內文字(標明階層與版面關係未還原);無法抽取時明確標示,**不靜默遺失** |
| 視覺強調還原 | 字級明顯大於內文者標為**粗體**(保留原檔重點層次;依 `sz` 字級機械判定,非語意判斷)|
| 講者備註 | 透過 rels 正確對應投影片(notesSlide 編號 ≠ 投影片編號)|
| 備註分級 | 跨頁重複=「制式引註」;唯一=「本頁專屬口述論點」|
| 圖片出處字樣 | 抽出 deck 自標的出處(如「Adapted from…」)逐字保留,**僅標示不查證** |
| YAML frontmatter(選用)| `--frontmatter` 於檔頭產出 vault schema 骨架(type/domain/stage/aliases 留白供下游流程補填;date/source 機械預填)|
| 雜訊清理 | 清掉純頁碼與「Present Slide」殘留;本文孤立頁碼剝除;圖表座標軸刻度(連續 ≥4 純數字)折疊為一行;跨頁