單字 JSON(src/data/vocab-lesson-N.json)由 vision 抽取流程產生,取代了舊的純文字解析。
核心理念:把「看圖判斷」外包給 agent —— agent(prompt, {schema}) 就是一個吃 prompt、吐結構化結果的函式,workflow 用 parallel 把每頁併發處理。
-
把
N単語.pdf放到專案根目錄。 -
在
.claude/workflows/vocab-extract.js頂端編輯TARGET(pdfPath + lesson 兩行),請 Claude Code 跑它:Workflow({ scriptPath: '<repo>/.claude/workflows/vocab-extract.js' })(新 session 也可用
Workflow({ name: 'vocab-extract' })—— 具名註冊表在 session 啟動時掃描; 注意目前 runtime 的args通道不可靠,所以用頂端的TARGET區塊傳參,而非 args。)它會:
- Prep:用
gen_anchors.py(pdfplumber)算出每頁的「字元錨集」。 - Extract:每頁派一個 Sonnet 子代理「看圖」抽出結構化詞條(嚴格 schema)。
- Merge:合併、配
lN-NNNid,並用錨集對 word/reading/meaning 做字元交叉校對,把可疑行(含子代理自報uncertain)flag 出來。
- Prep:用
-
人工複檢:Claude 對照 PDF 核對 flag 清單與可疑處(字元校對抓不到的「字在頁上但抄錯」要靠這關),必要時修正。
-
寫入
src/data/vocab-lesson-N.json(schema 見docs/prd.md;accent為陣列、section 數字用全形)。 -
跑
python scripts/test_vocab_data.py驗證資料完整性(記得把新課加進LESSONS)。
| 檔案 | 作用 |
|---|---|
../.claude/workflows/vocab-extract.js |
具名 workflow(可重用、參數化) |
gen_anchors.py |
產生每頁字元錨集(pdfplumber,供交叉校對) |
test_vocab_data.py |
資料完整性測試(schema / golden / 字數 / section) |
設計與決策紀錄:docs/superpowers/specs/2026-06-06-vision-vocab-extraction-design.md