📋總覽摘要
HW2 採用 三層 LLM 分工與雙模型盲評機制。
① Haiku 4.5 對每位學生的 README + v1/sdd_v1 做結構化摘要(607 次廉價 pass);
② Opus 4.7 從全班摘要一次性建立 taxonomy 與跨面向統計;
③ Sonnet 4.6 + GPT-5.4 mini 平行盲評 Phase 1 與 Phase 2,每位學生 × 2 phases × 2 models = 4 次評分呼叫;
④ Opus 4.7 產生全班分析報告 narrative。整體以 Anthropic + OpenAI Batch API 批次送出以取得約 50% 折扣。
📊分數分布
μ = 90.12 / median = 93.12 / σ = 8.29 / range = [60.14, 96.88]
μ = 79.06 / median = 86.95 / σ = 21.76 / range = [0.38, 96.8]
🔍面向分析
| 面向 | 權重 | Mean | Median | σ | Min | Max | Q25 | Q75 |
|---|---|---|---|---|---|---|---|---|
| 創新度 (15%) | 15 | 59.74 | 63.0 | 18.69 | 2.5 | 90.5 | 52.0 | 73.0 |
| SDD v1 品質 (10%) | 10 | 75.77 | 81.0 | 19.36 | 0.0 | 95.0 | 76.0 | 86.0 |
| 細節完成度 (5%) | 5 | 70.59 | 77.0 | 19.89 | 0.0 | 91.5 | 68.5 | 83.0 |
| 需求匹配 (20%) | 20 | 82.1 | 91.0 | 24.61 | 0.0 | 98.0 | 85.0 | 93.5 |
| v2 完整度 (20%) | 20 | 77.57 | 88.0 | 25.0 | 0.0 | 98.5 | 78.0 | 91.5 |
| 向下相容 (20%) | 20 | 84.37 | 92.5 | 22.66 | 0.0 | 97.5 | 86.5 | 95.0 |
| 驚喜度 (15%) | 15 | 67.88 | 77.0 | 22.97 | 0.0 | 89.0 | 68.0 | 80.0 |
🤖雙模型比較(Sonnet 4.6 vs GPT-5.4 mini)
_grade_review_index.md 供助教人工覆核。
🏷️類別分佈 (Taxonomy by Opus 4.7)
| 類別 | 人數 | 平均分 | 中位數 |
|---|---|---|---|
| 個人理財 / 投資 | 159 | 90.44 | 92.63 |
| 任務管理 | 111 | 91.02 | 92.81 |
| 開發者工具 | 52 | 92.41 | 93.65 |
| 領域工具 | 48 | 91.19 | 93.3 |
| 健身 / 健康 | 47 | 92.34 | 93.66 |
| 字卡 / 學習 | 35 | 92.01 | 93.43 |
| 筆記 / 書籤 | 33 | 92.12 | 93.79 |
| 文字分析 | 26 | 91.6 | 93.89 |
| 遊戲 | 24 | 93.21 | 93.79 |
| 資料轉換 | 20 | 91.71 | 92.88 |
| 媒體處理 | 13 | 91.89 | 92.1 |
| 密碼管理 | 6 | 93.41 | 93.73 |
| 寵物照護 | 2 | 92.24 | 92.24 |
⭐特色專案
- 完整的 Repository Pattern / Strategy / Adapter 抽象層,v1→v2 schema 演進有清楚遷移策略
- 測試策略具深度:單元測試 + 屬性測試 (hypothesis) + 邊界 case
- README 有設計決策、trade-off 討論、未來 v3 方向三大敘述段落
- 額外加入 TUI(rich/textual)、SQLite 遷移、atomic write、可觀測性指標等作業沒要求但你自己做了的延伸
- sdd_v2 的 Mermaid 圖不只兩種,而是針對多個核心功能獨立繪製 sequence / flowchart
- 向下相容性章節具體列出每個 v1 指令的遷移行為與例外處理
⚠️常見問題
v1/ 資料夾此紀錄會保留供老師 / 助教審閱,分數仍依實際 v2 對 v1 介面相容性評估
- 整個 repo 幾乎空白(僅 README 數字,無 sdd_v1 / main.py)
- JSON 單檔無並發寫入保護與 rollback 機制
- 外部 API 依賴易斷線且缺降級 / 快取策略
- sdd_v1.md 六大章節不齊全(尤其缺錯誤處理與測試案例)
- v2 實作功能齊全但未更新 sdd_v2.md — SDD 文件與程式 drift
- 向下相容章節僅表列「完全相容」而未說明遷移策略
🔎評分透明度
為了讓評分盡量公正,系統會自動標記以下幾種需要更多判讀的情境。這些案例的最終分數會經過人工複核後才定案,目的是避免單一模型的偏差或規則判定造成誤判。
⚖️評分方法論
| 面向 | 權重 | Phase |
|---|---|---|
| 創新度 (15%) | 15 | Phase 1 |
| SDD v1 品質 (10%) | 10 | Phase 1 |
| 細節完成度 (5%) | 5 | Phase 1 |
| 需求匹配 (20%) | 20 | Phase 2 |
| v2 完整度 (20%) | 20 | Phase 2 |
| 向下相容 (20%) | 20 | Phase 2 |
| 驚喜度 (15%) | 15 | Phase 2 |
| 總權重 | 105 | (Phase 1 小計 30 / Phase 2 小計 75) |
# 每個面向由模型給 0–100 分
raw_weighted_per_model = Σ(weights[k] × score[k] / 100)
# ∈ [0, 105]
# 雙模型融合
final_raw = 0.5 × sonnet.raw + 0.5 × gpt.raw
# Rescale 到 [60, 100]
rescaled = 60 + (final_raw / 105) × 40
v1/ 逾期改動:若系統偵測到 v1/ 在截止後仍有 commit,flag 會保留供老師 / 助教審閱,並不會自動把 backward_compat 歸 0;分數仍依模型對學生 v2 實作的客觀評估為準。
Surprise 上限拉高到 15(原 HW2.md 規劃 1–5 分人工抽查 bonus 併入此面向)。
| 階段 | 模型 | 呼叫數 | 理由 |
|---|---|---|---|
| Summarize | claude-haiku-4-5-20251001 |
607 (batch) | 每生一份結構化摘要;Haiku 最廉價且足夠精準 |
| Taxonomy | claude-opus-4-7 |
1(map-reduce) | 需全局視野建立類別學 + 多面向統計;只跑 Opus 一次 |
| Score A | claude-sonnet-4-6 |
607 × 2 = 1214 (batch) | Phase 1 + Phase 2 評分;Sonnet 品質與成本平衡 |
| Score B | gpt-5.4-mini |
607 × 2 = 1214 (batch) | 獨立盲評作為交叉驗證;不同家族模型降低單模型偏差 |
| Report Narrative | claude-opus-4-7 |
1 | Executive Summary + 各類別 narrative + anti-patterns 彙整 |
細項構成:Haiku 4.5 做 607 次 summarize,Opus 4.7 做 taxonomy(13 map + 1 reduce)與 report narrative 各 1 次,Sonnet 4.6 做 1214 次評分(Phase 1 + Phase 2),GPT-5.4 mini 做 1214 次評分(同樣 Phase 1 + Phase 2,加上一次補救性 sync rescore)。大宗 LLM 呼叫走 batch 模式享 50% 折扣——同樣流量若全走 sync,成本會翻倍到 ~US$150 左右。