iT邦幫忙

2026 iThome 鐵人賽

DAY 2
0
自我挑戰組

Vibe 30: 我的聽說讀寫英文助手系列 第 2

種子單字匯入 & 漫長的清理

  • 分享至 

  • xImage
  •  

初步架構

起手式當然就是和 Codex & Claude 討論一輪,初步討論的問題包括:

  • 系統架構,哪些屬於單一的 capabilities,哪些是底層系統。
    • 討論過程中我漸漸發現。其實聽說讀寫各個情境都有自己的需求,比較像多個獨立的小工具(像寫作甚至不是工具,就是一組可重用的 prompt)。但底層的 vocabulary 彙總、repeat pattern 比較是我想要的
    • 漸漸討論出了 Language Core 的觀念
  • 另外也討論了如果我想要和一般的單字軟體一樣,有例句、有發音,有哪些開源資源。AI 輔助生成內容和 API 該如何配合。
  • 在系統發展的過程中,我個人的英文練習日常能不能直接使用獨立工具。
  • 還有 AI 寫的內容要怎麼驗證。目前是敲定有兩關:寫程式前的設計覆核、寫程式後的審查。就很簡單地在 Claude 裡開一個子代理去跑就好了。

把林林總總討論的內容寫成 CLADUE.md 和 PLAN.md。

文件建立

做為一個沒安全感的程式小白,我自己的習慣是會請 AI 拉比較詳細的 Progress Dashboard 和 worklog,例如:

Progress Dashboard

## 建立專案共同語言

目標:讓後續對話不必重新解釋 Idiolect 是什麼,以及目前哪些方向已定、哪些仍待討論。

- [x] 〔Codex〕建立專案入口與文件分工
  結果:已建立 `CLAUDE.md`、`AGENTS.md`、`work-log.md` 與 `progress-dashboard.md`。
- [x] 〔Codex〕文件化第一版產品與架構計畫
  結果:`PLAN.md` 已整理願景、概念架構、能力邊界、AI 角色、開源切分、發展順序及開放問題。
- [x] 〔Codex〕加入早期多使用者與 AI 資源控制方向
  結果:User/Actor、Workspace、Membership、Sponsor、Gateway 與 Usage Ledger 已納入架構。
- [x] 〔Claude〕以既有專案為基準複核計畫,並定出 repo 架構與五階段順序
  結果:`docs/specs/2026-09-04-idiolect-repo-architecture-design.md`;`PLAN.md` 已同步。
- [x] 〔Ellen〕複核第一版計畫
  結果(2026-09-05):確認 Speaking 是證據來源不是項目來源;Phase 1 內部改為「種子匯入 → 單字複習 → 動態累積」的順序。
  
## 建立 standalone repo 與程式骨架

目標:讓 Idiolect 從純文件目錄變成可以跑測試的 Python repo。步驟見設計文件第十節。

- [x] 〔Claude〕在 `projects/idiolect/` 就地 `git init`,並從 workspace 主 repo 解除追蹤
  結果(2026-09-04):以 subtree split 接上 7 個文件 commit;workspace 已 gitignore 並解除追蹤;commit 規則改用 sub-repo 規則。
...
- [x] 〔Claude〕建立 `pyproject.toml` 與套件骨架
  結果(2026-09-04):uv、hatchling、ruff、mypy;五層資料夾就位;依賴方向檢查 7 個測試通過。

Work Log

這裡我希望 AI 紀錄的粒度是和 commit 一致的,每次動作後都記一筆。基本上如果不看 log 我根本無法知道 AI 做了什麼。

#### 2026-09-04 16:20|從四個 App 校準為一個個人語言學習 Harness

**做了什麼**

1. 整理先前針對口說、聽力、寫作及個人語言庫的討論。
2. 將專案命名為 Idiolect,並在 `projects/idiolect` 建立正式專案文件。
3. 把「四個獨立 App」重新整理為「一個 Harness、多個 capabilities、一個 Language Core 與多種使用入口」。
4. 將原先的聽力工具拆成 Transcript Intake 與來源個別處理兩層,現階段只把前者放入核心計畫。

**觀察到什麼**

口說、Transcript Intake、寫作教練和單字複習並不具有相同的使用型態。口說需要收音 UI,寫作更適合作為 AI Skill,Transcript Intake 可以沒有 UI,而個人語言庫需要一個 Console。硬把它們都定義成 App,會讓入口形式取代真正的系統邊界。

**認知校準**

Idiolect 的主體應是 Harness 與 Language Core。AI 不在 App 之間維持一個持續人格;它在每條工作流程中完成明確的理解或轉換任務。跨能力累積的是 Corpus、Language Items、Learning Evidence 與使用者決定。

口說仍維持最高產品順位,但口說內部架構已在 Speaking Tool 中討論,本專案只處理整合契約。Transcript Intake 因輸入邊界清楚,可以成為驗證共用 Harness 契約的候選流程,但是否先實作仍需確認。

**產出**

- `PLAN.md`:第一版產品與架構計畫。
- `CLAUDE.md`、`AGENTS.md`:專案入口、邊界與文件分工。
- `progress-dashboard.md`:初始里程碑與待確認事項。

**下一步**

- 與 Ellen 複核 `PLAN.md`,修正名詞、邊界或優先序。
- 決定第一個要具體化的端到端流程:Speaking Integration 或 Transcript Intake。
- 選定後,定義 capability 的最小輸入、輸出、proposal、確認與寫回契約;暫不選技術框架。

種子單子匯入 & 漫長的清理

架構弄好之後,我們決定第一步先讓語料庫裡有東西,因此我請 AI 把我的英文講義拉進來。這裡的英文講義是我的家教老師自製的 Google Doc 檔案,我請 AI 去抓所有 Vocabulary 的區塊。

https://ithelp.ithome.com.tw/upload/images/20260908/20129237VWV95cqlnK.png

然後就出現了很多

  • A survey
  • To survey
  • ….

這種。我發現這樣後續基本無法索引,就停下來討論規則,定義出:

  • Vocabulary 只能有一個字,不是一個字的都規成 Phrase
  • 屬於 Vocabulary 的需要能和字典 API 串接。拿到字典定義和發音。

重新清理一次後把 3000 多個項目,清成 1351 個項目。但因為要做手動清理了,所以 AI 先幫我蓋了一個簡易的前端。

https://ithelp.ithome.com.tw/upload/images/20260908/20129237t6xKWkwM7G.png

我一邊清理一邊和 AI 定義較詳細的規則,後來 AI 就說要不要我們直接串字典 API,因為「能成功在字典 API 找到內容」本身就可以當成一個清理 flag。

我覺得很有道理,就再根據 AI 的建議去找了韋伯的學習者字典 API,弄完之後變成這樣:

https://ithelp.ithome.com.tw/upload/images/20260908/20129237mOZcTeBlLm.png

英美字義切換

接下來我開始問像 color / colour 這種字要怎麼處理。我的期待是要能識別出是同一個字,而且最好還要有能切換英式拼法和美式拼法的功能,AI 就和我科普正規的字典的資料結構要怎麼做。

lexeme_key  definition_id     headword_gb  headword_us  pos   定義
─────────────────────────────────────────────────────────────────────────────
color       mw:color:1:1      colour       color        noun  a quality such as red, blue…
color       mw:color:1:2      colour       color        noun  something used to give color to…
color       mw:color:1:a      colour       color        noun  the use or combination of colors
favor       mw:favor:1:1      favour       favor        noun  a kind or helpful act you do for…
favor       mw:favor:1:a      favour       favor        noun  approval, support, or popularity
favor       mw:favor:1:b      favour       favor        noun  preference for one person over…
center      mw:center:1:1     centre       center       noun  the middle point or part of…
center      mw:center:1:a     centre       center       noun  a person or thing causing interest
center      mw:center:1:b     centre       center       noun  the position of that person/thing
defense     mw:defense:1      defence      defense      noun  the act of defending someone…
defense     mw:defense:2      defence      defense      noun  something used to protect yourself
defense     mw:defense:3      defence      defense      noun  the act of speaking in support of…
program     mw:program:1:1    programme    program      noun  a plan of things done to achieve…
program     mw:program:1:2    programme    program      noun  a set of instructions for a computer
program     mw:program:1:3    programme    program      noun  a thin book giving information…

訂好架構後,我把所有的語料退回 staging 區,開始漫長的手工清理⋯⋯每確定一種規則,就請 AI 批次拉剩下的,再丟進正式的 library…..

雖是這麼說,但這邊其實我還在邊清理邊理解「我自己的語料 x 韋伯字典」做出的資料架構,到底是什麼。

有點繁瑣,明天繼續....


上一篇
概念構想
下一篇
單字清理 ing & 口說工具
系列文
Vibe 30: 我的聽說讀寫英文助手6
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言