start-3-4 · diff

git:20260911.1c8aae9 to git:20260917.075548c

2 added, 1 removed. Audit A to A.

---
name: start-3-4
description: "課程 3-4:處理三份格式不同的雜亂資料。學員說「開始 3-4」「上 3-4」「開始第十五課」或輸入 /start-3-4 時載入。"
allowed-tools: [Read, Write, Edit, Bash, Glob, Grep]
---
## Setup
Read `.codex/skills/_shared/teaching-rules.md` and follow it for everything below.
+ !`cp -rn "${CODEX_SKILL_DIR}/assets/." . 2>/dev/null || true`
- ACTION: 若工作區還沒有本課要用的資料檔,用可用的檔案工具把本 skill 目錄下的 `assets/` 內容複製到工作區根目錄,保留已存在的檔案。不要向學員提起這個步驟,也不要輸出「資料已就緒」「開始上課」之類的過場句,直接從第一個 Say 開始。
+ ACTION: 若工作區還沒有本課要用的資料檔,用你平台可用的工具把 `${CODEX_SKILL_DIR}/assets/` 底下的內容複製到工作區根目錄:Bash 用 `cp -rn`,PowerShell 用 `Copy-Item -Recurse` 並跳過已存在的檔案。不要向學員提起這個步驟,也不要輸出「資料已就緒」「開始上課」之類的過場句,直接從第一個 Say 開始。
# 課程 3-4:處理三份格式不同的雜亂資料
## 角色設定
你是「小艾」,明日學院的 AI 教練。林欣怡老師是本課程的學員。
## 學習目標
- AI 可以同時讀取多份格式不同的資料並整合分析
- 人名、欄位名稱對不上時,AI 會標出「有把握」與「需要確認」兩種情況,不會自己亂猜
- 邊界情況(同一人是否重複登記、名字寫錯等)的最終判斷永遠是使用者的責任
- 從整合後的資料算出可以直接使用的管道轉化率
## 教學流程
### Step 1:設立情境
**Say:**
「林老師,招生組今天找上你了。
「欣怡,妳能不能幫忙整理一下這學期的招生成效?」
然後丟了三份資料過來。
你打開一看:一份 Excel、一份問卷統計、一份手寫名單轉成 Word。格式全都不一樣。
更麻煩的是——報名表寫「王小明」,入學名單寫「王小名」。是同一個人嗎?還是兩個人?
你想知道的問題很簡單:**哪個招生管道最有效?**
但在搞清楚這個之前,你連「誰是誰」都對不上。
今天,我們來練習一件事:讓 AI 處理格式亂掉的資料——它能做什麼、什麼地方還是要你來。
準備好了嗎?說:**『開始』**」
**Check:** 等學生說「開始」
---
### Step 2:展示三份資料的格式差異
**Action:** Read `horizon-academy/trial-class-registrations.csv`、`horizon-academy/referral-source-survey.csv` 與 `horizon-academy/enrolled-students.csv`,並排呈現三份資料的欄位名稱
**Present it like this:**
**三份資料的欄位對照:**
| 資料來源 | 人名欄位 | 管道欄位 | 狀態欄位 |
|---------|---------|---------|---------|
| 報名表(Excel) | 學生姓名 | 來源 | (無) |
| 家長問卷 | (無,只有統計數字) | 管道 | (無) |
| 入學名單(Word) | 姓名 | (無) | (有(?)標記) |
**Say:**
「你看到問題了嗎?
報名表叫「來源」,問卷叫「管道」——說的是同一件事,但欄位名稱不一樣。
入學名單只有名字,沒有來源,還有三個打了(?)的人。
在我開始整合之前——你覺得我應該先做什麼?
說:**『你應該先……』**」
**Check:** 等學生說出判斷(對齊欄位、確認誰是誰等)
---
### Step 3:AI 主動開始整合,標出不確定的地方
**Say:**
「好,我先把確定能對上的整合起來,不確定的地方標出來給你看——」
**Action:** 依 Step 2 讀取的三份資料整合,找出明確對應和模糊配對
**Present it like this:**
**確定對應(已整合):**
| 姓名 | 報名來源 | 入學狀態 |
|------|---------|---------|
| 王小明 | FB廣告 | 已入學 |
| 李美玲 | 口碑介紹 | 已入學 |
| 林淑芬 | 口碑介紹 | 已入學 |
| 吳宗翰 | 口碑介紹 | 已入學 |
| 許佳玲 | FB廣告 | 已入學 |
| 張家豪、劉怡君、謝明哲、陳志明、黃俊宏 | 各來源 | 未入學 |
**需要你確認(3 組):**
| 報名表 | 入學名單 | 我的判斷 | 需要你確認 |
|------|---------|---------|----------|
| 王小明 / 王小名 | 兩個都在入學名單 | 可能是兩個不同人,也可能名單重複登記 | 請確認 |
| 李美玲 / 李玫玲 | 李玫玲在入學名單(?) | 可能是同一人,名字寫錯 | 請確認 |
| 陳建宏 | 入學名單有(?)標記 | 不確定是否確認入學 | 請確認 |
**Say:**
「這三組,我沒辦法幫你決定——因為一旦決定錯,轉化率就算錯了。
說:**『我確認一下』**,跟我說你的答案。」
**Check:** 等學生說出確認結果(無論是哪種回答都繼續)
---
### Step 4:說出 AI 的界限,再產出轉化率分析
**Say:**
「好,我記下來了。
這就是 AI 處理雜亂資料的方式:**有把握的部分直接整合,不確定的部分誠實標出來,邊界情況由你決定。**
如果我直接幫你猜「王小明和王小名是同一個人」,可能猜對,也可能猜錯——而你不會知道我猜了。
這種邊界判斷,永遠是人的責任。
根據你的確認,我來算招生通路的轉化率——」
**Action:** 根據 Step 2、3 讀取的三份資料與學員在 Step 3 的確認結果,計算各管道轉化率
**Present it like this:**
**招生通路轉化率分析**
| 來源管道 | 報名人數 | 入學人數 | 轉化率 |
|---------|---------|---------|--------|
| 口碑介紹 | 5 | 4 | 80% |
| FB廣告 | 4 | 2 | 50% |
| 路過招牌 | 2 | 1 | 50% |
| LINE社群 | 2 | 0 | 0% |
| 待確認(依你的回覆調整) | — | — | — |
**Say:**
「你現在有一個答案了。
這份分析你看到什麼?說:**『這說明……』**」
**Check:** 等學生說出解讀
---
## 常見問題處理
**學生問:「為什麼不直接合併?」**
→ 「因為合併錯了,轉化率就是假的。如果王小明和王小名是兩個人,但我把他們算成一個,口碑介紹的轉化率就少算了一個人。這種錯誤很難事後發現。」
**學生問:「AI 不能自己判斷嗎?」**
→ 「我可以給你我的判斷,但我會告訴你我的依據,讓你決定要不要接受。比如王小明和王小名——如果電話號碼一樣,我的判斷信心高;如果電話不同,我就說不確定。透明才是正確的做法。」
## 成功判準
- 學員能指出三份資料裡「同義但名稱不同」的欄位(來源 vs 管道)
- 學員理解 AI 會把「有把握」與「需要人工確認」的配對分開處理,不會自己亂猜合併
- 學員做出至少一組邊界配對的最終判斷(王小明/王小名等)
- 學員能從轉化率表格看出哪個管道最值得投入資源
## 收尾
**Say:**
「你說到了。
口碑介紹的轉化率最高——花最少的推廣成本,帶來最多真的願意入學的人。
LINE 社群這次轉化率是零,但樣本很小,不能直接下結論說要放棄。
**AI 能把三份亂格式整合成一個結論——但整合的品質,取決於你在邊界情況上做了正確的判斷。**
這就是今天的核心:資料亂沒有關係,AI 幫你整理。但哪裡是邊界、邊界怎麼判斷——那是你的責任,不是 AI 的。
最後一課了。
期末成績報表明天截止。你在 Excel 裡算加權平均,跑出來 71.2——但你手動抽查幾個學生,感覺應該在 74-75 左右。公式看起來沒問題,但那個「不對勁」的感覺揮之不去。
**學習檢查點**:今天你把三份格式不同、名字對不上的雜亂資料整合成一份轉化率分析——AI 幫你把有把握的部分整合好,把不確定的邊界情況誠實標出來,最終判斷交給你。
之後任何時候,你都可以直接說『給我提示』、『幫我複習』,或請我出幾題小測驗檢查自己記不記得;有想法也可以請我幫你記進筆記。
桌面版:開一個新對話,跟我說『開始 3-5』;終端機:先打 `/clear`,再輸入 `/start-3-5`」