When Not to Vibe
從 Chat-driven coding 到 Spec-driven AI Engineering
Che-Chia Chang
寫扣使用 coding agent 有標準流程嗎?
可以多人開發,驗證,協作
今天只講一件事
如果 Chat-driven coding 是團隊目前的方式
Try Spec-driven coding 的標準化流程
本議程會告訴你
- Chat-driven coding 的邊界
- SDD 的核心概念
- Spec-kit 落地流程
- 何時切換與如何起步
Chat-driven coding 的價值
- 快速探索,驗證想法,PoC
- 在短週期任務,Chat-driven 很有價值
Chat-driven Coding 的挑戰
- 輸出不穩定
- 團隊協作難追蹤
- 複雜需求 + 多輪對話,容易產生 long context
user: 幫我做一個功能,需求是...
user: 修這個錯誤
user: 新的需求...
user: 剛剛沒想到,現在改成這樣...
long context 可能造成 LLM 效能下降
- 最前跟最後的 Input ,模型比較能使用
- 模型號稱的 context window 是理論值,實際可用的 context 可能更短
# https://www.alphaxiv.org/abs/2404.06654v3
┌───────┬─────────────┬──────────────┬───────────────┬─────────────────┐
│ Model │ 4K Accuracy │ 32K Accuracy │ 128K Accuracy │ Claimed Context │
├───────┼─────────────┼──────────────┼───────────────┼─────────────────┤
│ GPT-4 │ ~90%+ │ ~85%+ │ ~75% │ 128K │
└───────┴─────────────┴──────────────┴───────────────┴─────────────────┘
Chat-driven Coding 的挑戰總結
實務上應盡力控制 context
- Spec-kit 流程(specify, plan, tasks)實際上是不斷整理 context 的過程
- 有完整 spec 實作時對於模型的能力要求不高
- 用 mini 就能達到 90% 效果,因此成本也大幅降低
Chat-driven Coding vs SDD
假設需求寫出來是十萬字
- Chat-driven 是透過多輪對話,一萬字分散一段一段給模型
- SDD 是 Plan 時把一萬字整理一個結構化的 Spec
When Not to Chat-driven
當任務符合以下條件
- 有明確規格或可定義規格
- 需要可驗證交付品質
- 需要多人分工與可追蹤
- 需要持續迭代與維護
What is SDD
Spec-driven development
- Spec > source of truth
- Spec > Implementation
- Feedback > Spec
- 模糊需求 > 可執行規格
從 Chat-driven 到工程化
- Chat-driven:Prompt 主導
- SDD:Spec 主導
- Prompt 是畫一張水墨畫
- Spec 是給你一張直角座標工程圖(template),挖洞填坑
AI Engineering 需要可驗收任務
驗收標準明確
- SOP/Runbook 步驟完成率 -> %
- CI/CD Pipeline 成功率 -> %
- Lead Time -> 分鐘
- Infra / Cloud 成本 -> 每月金額
- SLO 達成率 -> %
找第一個切換題目
- 高人工成本
- 流程固定(SOP/Runbook)
- 低風險
- 被依賴性低
情境分享:跨平台帳號與權限稽核
- 平台:aws, azure, gcp, github, jenkins…
- 需求清楚:列出帳號、檢查條件、輸出報告
- 高人工、重複性高、容易漏
實際導入流程
- 挑題目:低風險、高人工、需求清楚
- 規格化:把需求寫成 Spec 與驗收條件
- 拆任務:Spec -> Plan -> Task
- 實作:Task 具體可驗收,agent 才能穩定交付
- Spec-kit 是 GitHub 的 SDD toolkit
- 是一個 SDD 流程框架
- 不是 prompt 技巧,是可重複工程流程
- 把需求、驗收、交付串成同一條線
Spec-kit 核心流程
/speckit.specify 列出所有內部平台帳號...
/speckit.specify 根據條件檢查帳號狀態...權限...
/speckit.clarify
/speckit.plan
/speckit.plan 修改先後順序...
/speckit.tasks 拆成獨立子任務,可分配給 subagent...
/speckit.analyze 檢查 Task 依賴性
/speckit.implement
情境落地:帳號稽核自動化
- ✅挑題目
- ✅規格化
- ✅驗收標準
- 拆任務:每個平台一組 task,平行實作
- 實作:subagent 分工,主流程整合
人類手動很痛苦 -> 變成可持續自動化
常見誤解
用了 Spec-kit 就會自動得到高品質?
答案:不一定
如果 Spec 中包含 test, lint, review 等驗收標準,且實作時有遵守,那麼品質會比較穩定
Spec-kit 解決了什麼,沒解決什麼
- 解決:需求結構化、任務拆解、協作流程
- 未完全解決:品質評估、回歸驗證、持續收斂
外部 agent 做 PR Evaluation
- 不只測試有沒有過
- 還要看是否符合 Spec
- 還要看可維護性與可讀性
Automation Pipeline
把流程 script 化、pipeline 化
- Spec
- Plan
- Tasks
- Implement
- Test + Eval + Loop
完整心智模型
Chat-driven (探索) -> Spec (定義) -> Build (交付) -> Eval/Loop (收斂)
你可以帶走的重點
- Chat-driven 適合探索,不適合所有正式交付
- When Not to Chat-driven:高風險、可驗收、多人協作場景
- SDD + Spec-kit 讓 AI 開發流程可工程化
- 加上 Eval + Loop,才能穩定落地