Review Mistakes - 錯題本管理技能
系統化管理錯題,將弱點轉化為優勢
🎯 技能目的
此技能用於管理和複習答錯的題目,確保:
- •自動追蹤 - 答錯的題目自動記錄到錯題本
- •分類整理 - 按主題、陷阱類型、難度分組
- •智能複習 - 生成專屬錯題測驗
- •進度追蹤 - 標記已精通的題目,追蹤複習進度
📥 使用方式
基本命令
bash
# 查看錯題統計 /review-mistakes --show-stats # 列出所有錯題 /review-mistakes --list # 按主題查看錯題 /review-mistakes --list --topic Delta-Lake # 開始錯題複習(所有未精通的題目) /review-mistakes --retry # 複習特定主題的錯題 /review-mistakes --retry --topic Streaming # 標記題目為已精通 /review-mistakes --mark-mastered Q-01-023 # 清除已精通的題目 /review-mistakes --clear-mastered # 匯出錯題本(JSON 格式) /review-mistakes --export mistakes_backup.json # 匯入錯題本 /review-mistakes --import mistakes_backup.json
參數說明
| 參數 | 說明 | 範例 |
|---|---|---|
--show-stats | 顯示錯題統計 | --show-stats |
--list | 列出錯題清單 | --list |
--topic | 主題篩選 | --topic Delta-Lake |
--retry | 開始錯題複習 | --retry |
--mark-mastered | 標記為已精通 | --mark-mastered Q-001 |
--clear-mastered | 清除已精通題目 | --clear-mastered |
--export | 匯出錯題本 | --export file.json |
--import | 匯入錯題本 | --import file.json |
📤 輸出範例
1. 錯題統計 (--show-stats)
markdown
# 📊 您的錯題統計報告 **統計時間:** 2026-01-09 15:30 **總錯題數:** 15 題 **未精通:** 12 題 **已精通:** 3 題 --- ## 🔴 最常錯的主題 | 主題 | 錯題數 | 準確率 | |------|--------|--------| | Delta-Lake | 6 題 | 40% | | Streaming | 4 題 | 50% | | Cluster-Management | 3 題 | 60% | | MLflow | 2 題 | 75% | --- ## ⚠️ 最常踩的陷阱 | 陷阱類型 | 出現次數 | 說明 | |---------|---------|------| | `Unit-Confusion` | 5 次 | 時間單位混淆 | | `Command-Purpose` | 3 次 | 指令用途錯誤 | | `Batch-vs-Stream` | 2 次 | 批次與串流混淆 | --- ## 📈 複習進度 **最近一次複習:** 2026-01-08 **複習次數最多的題目:** Q-01-023 (4 次) **進步最明顯的主題:** Cluster-Management (60% → 80%) --- ## 💡 建議 1. **優先複習:** Delta-Lake 主題(錯題最多) 2. **注意陷阱:** 特別留意 Unit-Confusion 類型的題目 3. **複習頻率:** 建議每 2-3 天複習一次錯題 使用 `/review-mistakes --retry --topic Delta-Lake` 開始專項訓練
2. 錯題清單 (--list)
markdown
# 📝 錯題清單 **未精通題目:** 12 題 **已精通題目:** 3 題 --- ## 🔴 未精通 (12 題) ### Delta-Lake (6 題) | 題目 ID | 錯誤次數 | 上次答題 | 狀態 | |---------|---------|----------|------| | Q-01-023 | 4 次 | 2026-01-08 | 🔴 需加強 | | Q-01-031 | 3 次 | 2026-01-07 | 🔴 需加強 | | Q-01-042 | 2 次 | 2026-01-09 | 🟡 練習中 | | Q-01-015 | 1 次 | 2026-01-06 | 🟢 接近精通 | [點擊題目 ID 查看詳細解析] ### Streaming (4 題) ... --- ## 🟢 已精通 (3 題) | 題目 ID | 主題 | 精通日期 | |---------|------|----------| | Q-01-007 | MLflow | 2026-01-05 | | Q-01-018 | Delta-Lake | 2026-01-04 | | Q-01-025 | Cluster | 2026-01-03 |
3. 錯題複習模式 (--retry)
markdown
# 📝 錯題複習模式 從錯題本載入題目... **未精通題目:** 12 題 **複習策略:** 優先複習錯誤次數多的題目 --- ## 第 1/12 題 ⚠️ [錯誤 4 次] **題目 ID:** Q-01-023 **主題:** Delta-Lake, Data-Retention **上次答錯:** 2026-01-08 [題目內容...] 請輸入您的答案 (A/B/C/D):
答對後提示:
markdown
✅ **太棒了!連續答對 2 次** 如果再答對 1 次,此題將標記為「已精通」 [按 Enter 繼續...]
答錯後提示:
markdown
❌ **又答錯了!這已經是第 5 次答錯此題** **建議:** 1. 仔細閱讀完整解析 2. 記住陷阱類型: Unit-Confusion, Number-Trap 3. 使用記憶口訣: "VACUUM 吸塵器,時間論小時;要用天數算,記得乘廿四" [按 Enter 繼續...]
🔑 核心特色
1. 自動記錄
- •在
practice-exam中答錯的題目自動加入錯題本 - •記錄錯誤次數、答題時間、錯誤原因
2. 智能分類
- •按主題分組(Delta-Lake, Streaming 等)
- •按陷阱類型分組(Unit-Confusion, Command-Purpose 等)
- •按難度等級分組(L1-Basic, L2-Intermediate, L3-Advanced)
3. 進度追蹤
- •追蹤每題的複習次數
- •自動判斷掌握程度(需加強/練習中/接近精通)
- •連續答對 3 次自動標記為「已精通」
4. 統計分析
- •最常錯的主題排行
- •最常踩的陷阱類型
- •複習進度趨勢
📋 資料結構
錯題本格式 (mistakes.json)
json
{
"version": "1.0",
"last_updated": "2026-01-09T15:30:00",
"mistakes": [
{
"question_id": "Q-01-023",
"first_wrong_date": "2026-01-05T10:30:00",
"attempts": [
{
"date": "2026-01-05T10:30:00",
"user_answer": "A",
"correct_answer": "B",
"correct": false
},
{
"date": "2026-01-06T14:20:00",
"user_answer": "A",
"correct_answer": "B",
"correct": false
},
{
"date": "2026-01-08T16:45:00",
"user_answer": "B",
"correct_answer": "B",
"correct": true
}
],
"wrong_count": 4,
"correct_count": 1,
"consecutive_correct": 1,
"mastered": false,
"mastered_date": null,
"topics": ["Delta-Lake", "Data-Retention"],
"traps": ["Unit-Confusion", "Number-Trap"],
"level": "L2-Intermediate",
"notes": ""
}
],
"statistics": {
"total_mistakes": 15,
"mastered": 3,
"not_mastered": 12,
"topics": {
"Delta-Lake": 6,
"Streaming": 4,
"Cluster-Management": 3
},
"traps": {
"Unit-Confusion": 5,
"Command-Purpose": 3
}
}
}
🐍 Python 腳本架構
主要函式
add_mistake(question_id, user_answer, correct_answer, result_data)
添加錯題記錄
python
def add_mistake(question_id, user_answer, correct_answer, result_data):
"""
添加或更新錯題記錄
Args:
question_id: 題目 ID
user_answer: 使用者答案
correct_answer: 正確答案
result_data: 包含 topics, traps, level 等資訊
"""
mistakes_db = load_mistakes_db()
# 查找是否已存在
mistake = find_mistake(mistakes_db, question_id)
if mistake:
# 更新現有記錄
mistake['attempts'].append({
'date': datetime.now().isoformat(),
'user_answer': user_answer,
'correct_answer': correct_answer,
'correct': (user_answer == correct_answer)
})
if user_answer == correct_answer:
mistake['correct_count'] += 1
mistake['consecutive_correct'] += 1
# 連續答對 3 次標記為已精通
if mistake['consecutive_correct'] >= 3:
mistake['mastered'] = True
mistake['mastered_date'] = datetime.now().isoformat()
else:
mistake['wrong_count'] += 1
mistake['consecutive_correct'] = 0
else:
# 新增記錄
mistakes_db['mistakes'].append({
'question_id': question_id,
'first_wrong_date': datetime.now().isoformat(),
'attempts': [{
'date': datetime.now().isoformat(),
'user_answer': user_answer,
'correct_answer': correct_answer,
'correct': False
}],
'wrong_count': 1,
'correct_count': 0,
'consecutive_correct': 0,
'mastered': False,
'mastered_date': None,
'topics': result_data.get('topics', []),
'traps': result_data.get('traps', []),
'level': result_data.get('level', ''),
'notes': ''
})
save_mistakes_db(mistakes_db)
show_statistics()
顯示錯題統計
python
def show_statistics():
"""顯示詳細的錯題統計報告"""
mistakes_db = load_mistakes_db()
# 基本統計
total = len(mistakes_db['mistakes'])
mastered = sum(1 for m in mistakes_db['mistakes'] if m['mastered'])
not_mastered = total - mastered
# 主題統計
topic_stats = analyze_by_topic(mistakes_db)
# 陷阱統計
trap_stats = analyze_by_trap(mistakes_db)
# 生成報告
report = generate_statistics_report(
total, mastered, not_mastered,
topic_stats, trap_stats
)
print(report)
list_mistakes(topic=None, include_mastered=False)
列出錯題清單
python
def list_mistakes(topic=None, include_mastered=False):
"""
列出錯題清單
Args:
topic: 主題篩選
include_mastered: 是否包含已精通的題目
"""
mistakes_db = load_mistakes_db()
# 篩選
filtered = mistakes_db['mistakes']
if not include_mastered:
filtered = [m for m in filtered if not m['mastered']]
if topic:
filtered = [
m for m in filtered
if any(topic.lower() in t.lower() for t in m['topics'])
]
# 分組顯示
grouped = group_by_topic(filtered)
for topic_name, mistakes in grouped.items():
print(f"\n### {topic_name} ({len(mistakes)} 題)\n")
print_mistake_table(mistakes)
start_retry_mode(topic=None)
啟動錯題複習模式
python
def start_retry_mode(topic=None):
"""
啟動錯題複習模式
調用 practice-exam 但只載入錯題
"""
mistakes_db = load_mistakes_db()
# 取得未精通的題目 ID
not_mastered = [
m['question_id']
for m in mistakes_db['mistakes']
if not m['mastered']
]
if topic:
not_mastered = [
m['question_id']
for m in mistakes_db['mistakes']
if not m['mastered'] and
any(topic.lower() in t.lower() for t in m['topics'])
]
if not not_mastered:
print("🎉 太棒了!沒有需要複習的錯題")
return
# 按錯誤次數排序(錯誤次數多的優先)
sorted_ids = sort_by_wrong_count(not_mastered, mistakes_db)
# 調用 interactive_exam 進行複習
# 傳入特定的題目 ID 列表
start_practice_with_specific_questions(sorted_ids)
mark_as_mastered(question_id)
標記題目為已精通
python
def mark_as_mastered(question_id):
"""手動標記題目為已精通"""
mistakes_db = load_mistakes_db()
mistake = find_mistake(mistakes_db, question_id)
if mistake:
mistake['mastered'] = True
mistake['mastered_date'] = datetime.now().isoformat()
save_mistakes_db(mistakes_db)
print(f"✅ {question_id} 已標記為「已精通」")
else:
print(f"⚠️ 找不到題目: {question_id}")
🔗 技能整合
與 practice-exam 整合
- •
practice-exam答錯時自動調用add_mistake() - •
review-mistakes --retry調用practice-exam並傳入錯題 ID
與 weak-topic-analysis 整合
- •提供錯題資料供分析使用
- •弱點分析結果可用於生成專項訓練
📊 精通判定邏輯
自動精通條件
連續答對 3 次 即自動標記為已精通
狀態等級
| 狀態 | 條件 | 說明 |
|---|---|---|
| 🔴 需加強 | 錯誤次數 ≥ 3 且連續答對 < 2 | 需重點複習 |
| 🟡 練習中 | 錯誤次數 < 3 或連續答對 = 1 | 正在進步中 |
| 🟢 接近精通 | 連續答對 = 2 | 再答對 1 次即精通 |
| ✅ 已精通 | 連續答對 ≥ 3 | 可從複習清單移除 |
⚙️ 實作優先級
Phase 1: 核心功能 ✅
- • 基本錯題記錄
- • 查看錯題統計
- • 列出錯題清單
- • 錯題複習模式
Phase 2: 進階功能
- • 自動精通判定
- • 匯入/匯出功能
- • 複習提醒
- • 進度趨勢圖表
Phase 3: 優化
- • 智能排序(根據遺忘曲線)
- • 筆記功能
- • 標籤管理
- • 團隊共享
🔍 品質檢查清單
使用此技能前,請確認:
- • 使用者資料目錄已建立 (
.claude-exam-helper/user_data/) - • 錯題本檔案格式正確 (
mistakes.json) - • 與
practice-exam正確整合 - • 備份機制完善(建議定期匯出)
🐛 疑難排解
問題 1: 錯題本檔案損壞
解決方案:
使用 --import 匯入之前的備份檔案
問題 2: 統計數據不正確
解決方案:
檢查 mistakes.json 格式,必要時重建統計資料
問題 3: 無法載入錯題
解決方案: 確認題目 ID 正確,且題目檔案仍存在於題庫中
📚 相關資源
- •practice-exam - 互動式練習考試
- •spaced-review - 間隔複習系統(待實作)
- •weak-topic-analysis - 弱點主題分析(待實作)
透過系統化管理錯題,將每個錯誤轉化為進步的階梯!📚