TTechSpecs

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

  1. 使用 systematic-debugging skill 診斷問題
  2. 修正問題
  3. 重新驗證
  4. 確保所有驗收標準通過

Q3:驗證標準如何定義?

A

  • 來自需求文件的驗收標準
  • 基於最佳實踐的品質標準
  • 團隊約定的技術標準

Verification Before Completion 是確保開發品質的關鍵 skill,養成「完成前驗證」的習慣能大幅提升程式碼品質!