Verification Before Completion Skill
Verification Before Completion 是 Superpowers 中最重要的驗證型 skills 之一,專注於在完成開發任務前進行徹底驗證,確保實作結果符合預期且不會有遺漏。
何時使用
在以下情況中使用 Verification Before Completion skill:
✅ 必須使用的情境:
- 完成一個功能或重構後
- 準備提交程式碼到版本控制前
- 合併 Pull Request 前
- 部署到生產環境前
- 任何重要的開發里程碑
❌ 不適合的情境:
- 只是中間開發步驟(除非是重要里程碑)
- 純粹的程式碼格式調整
- 配置檔案修改
- 文案更新
驗證的層次
第 1 層:功能性驗證
目標:確認功能符合需求
驗收標準:
- [ ] 使用者可以成功註冊帳號
- [ ] Email 重複時顯示適當錯誤訊息
- [ ] 密碼符合複雜度要求
- [ ] 註冊後自動登入
第 2 層:完整性驗證
目標:確保沒有遺漏的場景
測試場景:
- ✓ 正常註冊流程
- ✓ Email 已被使用
- ✓ 密碼太短
- ✓ 特殊字元處理
- ✓ 網路錯誤處理
第 3 層:品質驗證
目標:檢查程式碼和設計品質
品質檢查:
- ✓ TypeScript 型別正確
- ✓ 程式碼符合規範
- ✓ 組件結構清晰
- ✓ 樣式統一使用
- ✓ 無訪問性基本合格
第 4 層:效能驗證
目標:確保效能符合預期
效能檢查:
- ✓ 頁面載入時間 < 2 秒
- ✓ API 回應時間 < 500ms
- ✓ 記憶體大小合理
- ✓ 沒有明顯的效能瓶頸
第 5 層:安全驗證
目標:確認沒有明顯的安全問題
安全檢查:
- ✓ 輸入已適當驗證
- ✓ 輸出已適當轉義
- ✓ 沒有注入漏洞
- ✓ 認證資訊保護
- ✓ CORS 配置正確
如何使用
觸發詞
「使用 verification-before-completion skill 驗證使用者註冊功能的實作」
實際範例
範例 1:驗證新功能
使用者輸入:
使用 verification-before-completion skill 驗證 Todo 應用的完整實作
AI 回應:
## 開始驗證 Todo 應用
### 第 1 層:功能性驗證
測試新增功能:
✓ 可以新增待辦事項目「測試任務」
✓ 可以標記項目為完成
✓ 可以刪除項目
✓ 刪除後項目從列表消失
測試本地儲存:
✓ 新增的項目在頁面刷新後保留
✓ 切換狀態在頁面刷新後保留
✓ 刪除後項目在頁面刷新後消失
### 第 2 層:完整性驗證
測試邊界情況:
✓ 空字串項目可以新增
✓ 超長字串項目可以新增
✓ 特殊字元可以正常顯示
✓ 同一項目重複新增時的處理
### 第 3 層:品質驗證
程式碼檢查:
✓ TypeScript 型別系統無錯誤
✓ 組件職責分離清楚
✓ 狀態管理邏輯清晰
✓ 樣式使用 Tailwind CSS 工具類
### 第 4 層:效能驗證
效能測試:
✓ 1000 個項目時新增操作流暢
✓ 大量文字輸入時沒有明顯卡頓
✓ 移除操作即時完成
### 第 5 層:安全性驗證
安全檢查:
✓ 使用者輸入經過基本驗證
✓ XSS 防護:使用者內容被正確轉義
✓ 本地儲存資料沒有敏感資訊
## 驗證總結
✅ **所有驗證項目通過**
⏱️ **驗證耗時**:15 分鐘
🎯 **建議**:功能品質良好,可以提交
### 發現的小問題
⚠️ 建議改進:
1. 項長項目的顯示可以加上截斷和「展開」功能
2. 可以增加項目搜尋和篩選功能
3. 可以加上項目拖曳排序功能
這些可以作為後續改進項目,不影響當前提交。
範例 2:驗證重構
使用者輸入:
使用 verification-before-completion skill 驗證服務層重構的結果
AI 回應:
## 驗證重構結果
### 第 1 層:功能對等性驗證
✓ 原有功能全部正常運作
✓ API 回應格式保持一致
✓ 錯誤處理邏輯正確
### 第 2 層:效能驗證
✓ API 回應時間沒有明顯變化
✓ 記憶體大小沒有增加
✓ 查詢效能保持穩定
### 第 3 層:程式碼品質驗證
✓ 程式碼結構更清晰
✓ 職責分離更明確
✓ 測試覆蓋率提升
### 第 4 層:測試驗證
✓ 所有既有測試繼續通過
✓ 新增測試通過
✓ 測試執行時間合理
## 驗證總結
✅ **重構成功**
✅ **品質提升**
🎯 **建議:可以合併主分支」
Verification Checklist
使用標準化的驗收清單:
功能驗收
- 所有承諾的功能都已實作
- 功能符合需求描述
- 邊界條件都已處理
- 錯誤處理合理
技術驗收
- 程式碼符合專案規範
- 型別系統無錯誤
- 測試覆蓋率足夠
- 沒有明顯的程式碼異味
非功能性驗收
- 效能符合預期
- 安全性檢查通過
- 可訪用性基本合格
- 文件更新完成
進階技巧
1. 自動化驗證
建立自動化的驗證腳本:
#!/bin/bash
# verification.sh
echo "開始驗證..."
# 功能測試
pnpm test
# 型別檢查
pnpm type-check
# Linting
pnpm lint
# 建置測試
pnpm build
echo "✅ 驗證完成"
2. 多層次驗證
對於重要功能進行多層次驗證:
第 1 層:單元測試驗證
第 2 層:整合測試驗證
第 3 層:端對端測試驗證
第 4 層:手動測試驗證
3. 回顧驗證
在完成驗證後進行回顧:
驗證回顧:
- 這個實作最好的部分是什麼?
- 哪裡可以改進的地方?
- 下次可以優化的地方?
常見問題
Q1:驗證需要多長時間?
A:
- 簡單功能:5-10 分鐘
- 中等功能:15-30 分鐘
- 複雜系統:30-60 分鐘
時間投資是值得的,能避免後續更多的問題。
Q2:驗證失敗怎麼辦?
A:
- 使用 systematic-debugging skill 診斷問題
- 修正問題
- 重新驗證
- 確保所有驗收標準通過
Q3:驗證標準如何定義?
A:
- 來自需求文件的驗收標準
- 基於最佳實踐的品質標準
- 團隊約定的技術標準
Verification Before Completion 是確保開發品質的關鍵 skill,養成「完成前驗證」的習慣能大幅提升程式碼品質!