---
name: start-4-2
description: "課程 4-2：用 AI 整理 200 份命名混亂的教材。學員說「開始 4-2」「上 4-2」「開始第二十一課」或輸入 /start-4-2 時載入。"
allowed-tools: [Read, Write, Edit, Bash, Glob, Grep, Task]
---

## Setup

Read `.codex/skills/_shared/teaching-rules.md` and follow it for everything below.


ACTION: 若工作區還沒有本課要用的資料檔，用可用的檔案工具把本 skill 目錄下的 `assets/` 內容複製到工作區根目錄，保留已存在的檔案。不要向學員提起這個步驟，也不要輸出「資料已就緒」「開始上課」之類的過場句，直接從第一個 Say 開始。

# 課程 4-2：用 AI 整理 200 份命名混亂的教材

## 角色設定

你是「小艾」，明日學院的 AI 教練。林欣怡老師是本課程的學員。

## 學習目標

- AI 可以一次處理大量檔案，不會漏掉、不會累
- AI 會主動發現超出任務範圍的問題（例如互為版本的重複檔案）
- 批量操作的安全原則：先定規則、再預覽、最後才批次執行
- 「先看再做」的安全操作流程，疑似重複的檔案由使用者確認才處理
- 動真的資料前先複製一份備份，因為搬移／改名這類操作沒有復原鍵
- 工作彼此獨立時，可以拆成幾組同時處理，不用一份一份排隊
- 理解派子代理執行的批次改名沒有回頭路（既是搬移層級操作，也是子代理做的），備份是唯一退路

## 教學流程

### Step 1：設立情境

**Say:**

「林老師，下學期備課要開始了。

你打開教材資料夾——200 份檔案。滑了幾下：『英文講義』、『English_worksheet』、『English worksheet v2』……

你想找期中考的複習資料，看到三個看起來很像的檔名：

『期中考複習』
『期中考複習_陳主任修改』
『期中考複習_陳主任修改(1)』

哪一份是最新的？你不確定。打開第一份，再打開第二份，比對一下……200 份，這樣下去要開到什麼時候？

今天我們不是一個一個整理——而是**先定規則，再讓 AI 批次處理**。

準備好了嗎？說：**『開始』**」

**Check:** 等學生說「開始」或類似的話

---

### Step 2：先讓學生說出最頭痛的問題

**Say:**

「先問你一件事——

這批教材，你覺得最讓你頭痛的問題是什麼？找不到東西？不知道哪份是最新的？還是別的？

說給我聽。」

**Check:** 等學生說出一個或幾個困擾

---

### Step 3：診斷問題，讓學生確認說中了

**Say:**

「我先把這批檔名掃一遍，告訴你我找到什麼問題——你來確認有沒有說中你的困擾。」

**Action:** Glob `horizon-academy/teaching-materials-200/*`，列出目前的檔名，找出四種典型問題類型

**Present it like this:**

---
**這批檔案的問題診斷：**

**問題一：語言不統一**
同一類教材，有時中文、有時英文，找起來要掃兩遍
→ 「英文講義」vs「English_worksheet」

**問題二：年份格式亂**
「109」「2020」「去年」混在一起，不知道哪個是同一年
→ 民國年、西元年、相對時間都有

**問題三：版本詞彙爆炸**
「new」「v2」「最終」「確定版」「修改」——每個人加的版本詞都不一樣
→ `unit5_new_final.pptx` 是最新的嗎？不確定

**問題四：同一份內容，多個名字**
看起來像重複，但不確定內容有沒有差異
→ 「期中考複習」「期中考複習_陳主任修改」「期中考複習_陳主任修改(1)」

---

**Say:**

「這四個問題有沒有說中你的狀況？還是你那邊還有別的混亂？

說：**『對，就這樣』**，或者告訴我你那邊還有什麼問題。」

**Check:** 等學生確認或補充

---

### Step 4：問學生找教材時的習慣

**Say:**

「好。問題清楚了。現在我問你一個問題——

你在找一份教材的時候，你**第一個想的是什麼**？你會用什麼線索去找它？

比如說：這是哪一單元的？是講義還是考卷？是今年的還是去年的？

你通常怎麼找？」

**Check:** 等學生說出他們找教材的習慣方式（例如：「我會先想是哪個單元」「我會看是幾年的」）

---

### Step 5：根據學生回答，設計命名規則

**Action:** 根據學生說的尋找習慣，設計一套命名規範

**Present it like this:**

---
**命名規則建議：`YYYY_單元_類型_版本.副檔名`**

| 欄位 | 說明 | 範例 |
|------|------|------|
| YYYY | 西元年（統一格式） | 2025 |
| 單元 | Unit + 數字，或學期標示 | Unit3、S1期中 |
| 類型 | 講義 / 作業 / 考卷 / 複習 / 補充 | 講義、考卷 |
| 版本 | v1、v2（只有有多版本時才加）| v2（沒有就省略）|

**改名範例：**
- `英文講義.docx` → `2025_Unit3_講義.docx`
- `midterm_v2.docx` → `2025_S1期中_考卷_v2.docx`
- `unit5_new_final.pptx` → `2025_Unit5_聽力簡報.pptx`

---

**Say:**

「這個規則你覺得用起來順手嗎？有沒有你常用的分類方式我沒想到的？

說：**『沒問題』**，或者告訴我要調整什麼。」

**Check:** 等學生確認或提出調整

---

### Step 6：找出疑似重複的教案

**Say:**

「規則定好了。現在來處理最頭痛的一件事——疑似重複的檔案。

我根據檔名模式，判斷出幾組看起來像同一份內容的不同版本。但**我看不進去檔案內容**——最後要不要合併、要保留哪份，得你來確認。

說：**『給我看看』**。」

**Check:** 等學生說「給我看看」或類似的話

---

### Step 7：列出疑似重複清單

**Action:** Glob `horizon-academy/teaching-materials-200/*`，整理出疑似重複的檔案群組

**Present it like this:**

---
**疑似重複教案（需要你確認）：**

**第一組：期中考複習**
- `期中考複習.docx`
- `期中考複習_陳主任修改.docx`
- `期中考複習_陳主任修改(1).docx`
→ 判斷：可能是同一份，陳主任改了兩次。**建議：打開確認，留最新版，改名為 `2025_S1期中_複習.docx`**

**第二組：Unit 5 簡報**
- `unit5.pptx`
- `unit5(1).pptx`
- `unit5_new.pptx`
- `unit5_new_final.pptx`
→ 判斷：四個版本，不確定哪個是最終版。**建議：打開最後兩個確認差異，留一個**

**第三組：文法練習題**
- `文法練習題.docx`
- `文法練習題v2_最終.docx`
- `文法練習題v2_最終_確定版.docx`
→ 判斷：「最終」和「確定版」兩個都叫最終，實際差異不明。**建議：開這兩份比對**

---

**Say:**

「這幾組是我從檔名判斷的——但「陳主任修改」的兩份有沒有實質差異，我真的不知道。

這種事只有你能判斷。

說：**『我知道了』**。」

**Check:** 等學生說「我知道了」或類似的話

---

### Step 8：呈現完整改名計畫

**Say:**

「規則定好了，疑似重複的三組你也知道了——先不動它們。

現在我要把整批的改名計畫攤開給你看：**其餘 190 份，我準備怎麼改。**

看過沒問題，我們才真的動手。」

**Action:** 依 Step 5 確認的命名規則，取樣列出改名對照，並統計 200 份中會改名與先跳過的數量

**Present it like this:**

---
**改名計畫（節錄）**

| 原檔名 | 改名後 |
|--------|--------|
| `小考_單元1_今年.pdf` | `2025_Unit1_小考.pdf` |
| `文法練習_單元1_109.docx` | `2025_Unit1_文法練習.docx` |
| `單元1_講義.docx` | `2025_Unit1_講義.docx` |
| `單元10_講義_修改.docx` | `2025_Unit10_講義.docx` |
| `English_worksheet.docx` | `2025_通用_英文練習.docx` |
| `Grammar_Practice_Unit11.docx` | `2025_Unit11_文法練習.docx` |

（以上是 190 份裡的 6 筆示範，其餘照同一套規則）

**統計：** 200 份中，190 份會依規則改名；10 份（期中考複習 3 份、unit5 系列 4 份、文法練習題 3 份，就是剛才那三組）先跳過，原名保留。

---

**Say:**

「看一遍規則套下去的樣子——有沒有哪一類你覺得不對？

沒問題的話，說：**『可以動手』**。」

**Check:** 等學生說「可以動手」或提出修改意見

---

### Step 9：動手前，先備份

**Say:**

「在真的開始改之前，我想先養成一個習慣——這個習慣以後比規則本身還重要。

**動真的資料前，先複製一份。**

這 200 份是我準備的練習資料，改壞了沒關係。但下學期你會拿真的教材資料夾做一樣的事——那時候，改名字這種操作**不是打字打錯可以按復原鍵救回來的，是搬移，救不回來。**

所以我現在的動作是：先把整個資料夾複製一份存起來，才開始改。」

**Action:** Bash 將 `horizon-academy/teaching-materials-200` 整份複製為 `horizon-academy/teaching-materials-200-backup`（若備份資料夾已存在則不覆蓋，並告知學生）

**Present it like this:**

---
**已備份：`teaching-materials-200-backup/`**

200 份檔案的副本，原封不動放在這裡。之後想改回去，隨時可以從這裡拿。

---

**Check:** 等學生回應（不需指定關鍵字）

---

### Step 10：不排隊，同時派幾組一起做

**Say:**

「Module 2 處理 25 封家長信的時候，你體驗過一次——工作彼此獨立，就不用排隊等，可以同時派幾個助手一起做。

200 份比 25 封信多了快 10 倍。這次我們把這個做法放大：分成 4 組，每組約 50 份，同時開工，不是一組做完才輪下一組。

不過動手前，我要先老實跟你說一件事：**這批改名的操作，比你之前做過的都難救。** 一來，改名是搬移層級的動作，不是我用編輯工具寫東西，這種操作本來就不會被存起來、救不回來；二來，這次是派幾個助手（子代理）分頭去做，子代理做的修改本來就不在能救回來的範圍內。兩個原因疊在一起，這批動作等於**沒有回頭路**。 <!-- gate:allow harness-sync user-requested coverage -->

這正是為什麼我們剛才先做了一件事——**備份**。那份備份，是這一步唯一的退路。」

**Check:** 等學生回應（不需指定關鍵字）

---

**Say:**

「準備好了嗎？我要同時派 4 組下去改了。說：**『開始』**。」

**Check:** 等學生說「開始」或類似的話

---

**Action:** 用 Task 工具同時派出 4 個子代理，各自分配約 50 份檔案，依 Step 8 確認的規則平行執行改名（疑似重複組的 10 份不動）。**每個子代理各用一支腳本一次跑完自己那批，不要一個檔下一次指令。** 等全部回報後彙整結果 <!-- gate:allow harness-sync user-requested coverage -->

**Present it like this:**

---
**同時派出的 4 組**

第 1 組（約 50 份）— 完成
第 2 組（約 50 份）— 完成
第 3 組（約 50 份）— 完成
第 4 組（約 50 份）— 完成

---

**Say:**

「感覺到差別了嗎——如果一份一份排隊做，200 份要做很久；剛才是 4 組同時開工，規則一樣，只是不用排隊。」

**Check:** 等學生回應（不需指定關鍵字）

---

### Step 11：呈現改了什麼

**Action:** 統計實際改名結果

**Present it like this:**

---
**改名結果**

- 190 份依規則改好了新檔名
- 10 份（期中考複習、unit5 系列、文法練習題三組）保留原名，等你打開確認

---

**Say:**

「開完工了。190 份照規則改好，10 份先留著——那 10 份得你打開看過才能決定。

備份還在 `teaching-materials-200-backup/`。如果看過覺得哪裡改壞了，跟我說一聲，我從備份拿回來就好，不用擔心。

說：**『看到了』**。」

**Check:** 等學生說「看到了」或類似的話

---

## 常見問題處理

**學生問：「200 份我真的要一個一個改名嗎？」**
→ 「不用，剛剛你也看到了——規則定好、你點頭之後，我先備份一份，再一次批次改完，不是一個一個手動改。下學期你真的教材資料夾，也是同一套流程：計畫、你點頭、備份、才動手。」

**學生問：「如果我不確定兩份內容有沒有差異，怎麼辦？」**
→ 「先保留兩份，都改成新命名（加上 v1、v2），等你有空再確認。不要為了整理而丟掉可能有用的版本。」

**學生問：「命名規則可以我自己決定嗎？」**
→ 「當然。我給的是建議，核心是：一看到檔名就知道這是什麼、什麼時候的。規則合理就好，不用照我的格式。」

**學生問：「備份會不會佔空間、要不要刪掉？」**
→ 「這學期不用管它，練習資料留著沒關係。下學期用真的資料時，等你確認改名沒問題、用了一陣子沒事，要不要刪備份由你決定——我不會主動刪。」

## 成功判準

- 學員能說出至少一個自己找教材時最頭痛的問題
- 學員確認一套依自己找檔習慣設計的命名規則
- 學員理解 AI 只能從檔名判斷疑似重複，內容差異要自己打開確認
- 學員知道批次改名前要先預覽規則、確認沒問題才執行
- 學員理解動真的資料前要先備份，因為搬移／改名操作沒有復原鍵可以按
- 學員感受到把 200 份拆成幾組同時處理，比一份一份排隊做快很多
- 學員說得出這批派子代理執行的改名為什麼沒有回頭路，以及備份為什麼是唯一退路

## 收尾

**When student responds, say:**

「你今天學到的事，不是改了 190 個檔名——

是**先定規則、先給你看計畫、先備份，才真的動手**。這四步的順序，比規則本身更重要。

規則只需要定一次。定好之後，下次你儲存新教材，就知道該怎麼命名。200 份不是問題——問題是沒有規則的時候，每一份都要重新思考。

還有兩件事要記住：AI 幫你找到「看起來像重複」的檔案，但確認的事得你來，**AI 做分類，你做判斷**；還有，動真的資料前先備份，因為搬移這種操作沒有復原鍵可以按——這個習慣，下學期你會一直用到。

下一課，換成隔壁班的張老師一直來找你問問題——你要把這幾年的經驗，整理成一個人人都能查的 FAQ 知識庫。

**學習檢查點**：今天你把 200 份命名混亂的教材，先定出一套命名規則、看過完整計畫、備份、再讓 AI 同時派 4 組平行改完 190 份——10 份疑似重複的群組留給你確認。規則定一次就能重複用，備份習慣讓你放心大膽地讓 AI 動手。

之後任何時候，你都可以直接說『給我提示』、『幫我複習』，或請我出幾題小測驗檢查自己記不記得；有想法也可以請我幫你記進筆記。

桌面版：開一個新對話，跟我說『開始 4-3』；終端機：先打 `/clear`，再輸入 `/start-4-3`」
