Functional Testing → Boundary Testing → Regression Testing → Acceptance Confirmation
Usage
/multi-verify [審查路徑]
/multi-verify .claude/memory/review/user-auth/
Flags: --from-review ID | --quick | --comprehensive
Default 4 perspectives
| ID | Name | Model | Focus |
|---|---|---|---|
functional-tester |
Functional Tester | haiku | Normal flow, functional verification |
edge-case-hunter |
Boundary Hunter | sonnet | Boundary conditions, exception handling |
regression-checker |
Regression Inspector | haiku | Regression testing, side effects |
acceptance-validator |
Acceptance Verifier | sonnet | Acceptance criteria, requirement satisfaction |
→ Model routing configuration:shared/config/model-routing.yaml
Execution Flow
Phase 0: 載入審查 → 收集待驗證項目
↓
Phase 1: MAP(並行驗證)
┌──────────┬──────────┬──────────┬──────────┐
│功能測試員│邊界獵人 │回歸檢查員│驗收驗證員│
└──────────┴──────────┴──────────┴──────────┘
⚠️ **並行執行關鍵**:
在單一訊息中發送 4 個 Task 工具呼叫:
- Task({description: "功能測試", ...})
- Task({description: "邊界測試", ...})
- Task({description: "回歸測試", ...})
- Task({description: "驗收驗證", ...})
這樣才能真正並行執行!
↓
Phase 2: REDUCE(結果匯總)
├── 測試結果統計
├── 失敗分析
└── 驗收狀態
↓
Phase 3: 早期終止檢查 → 高通過率可提前完成
↓
Phase 4: 品質閘門 → 發布/回退決策
Verification Types
| Type | Focus | Pass Criteria |
|---|---|---|
| Functional Testing | Normal operation flow | 100% pass |
| Boundary Testing | Extreme inputs, error handling | 95% pass |
| Regression Testing | Existing functionality unaffected | 100% pass |
| Acceptance Verification | Meets requirement specifications | All criteria met |
Early Termination
When first_pass_rate >= 0.98 , can ship directly (ship_it).
→ Configuration:shared/config/early-termination.yaml
CP4: Task Commit
After the quality gate check is complete,CP4 Task Commit must be executed。
Phase 4: 品質閘門 → 發布/回退決策
↓
CP4: Task Commit
├── git add .claude/memory/verify/{review-id}/
└── git commit -m "test(verify): complete {feature} verification"
→ Protocol:shared/git/commit-protocol.md
Quality Gate
Pass Conditions (VERIFY phase):
- ✅ Functional testing 100% pass
- ✅ Regression testing pass
- ✅ Acceptance criteria met
- ✅ Quality score ≥ 85
Failure Handling:
- Functional testing failure → Roll back to IMPLEMENT
- Boundary testing failure → Log but can continue
- Acceptance criteria not met → Evaluate rollback level
→ Gate configuration:shared/quality/gates.yaml
Rollback Strategy
Determine rollback target based on iteration count:
- 1-2 times: Roll back to IMPLEMENT (fix affected tasks)
- 3 times: Roll back to TASKS (re-evaluate decomposition)
- 4 times: Roll back to PLAN (re-evaluate design)
- 5+ times: Manual intervention
→ Configuration:shared/quality/rollback-strategy.yaml
Output Structure
.claude/memory/verify/[review-id]/
├── meta.yaml # 元數據
├── perspectives/ # 完整視角報告(MAP 產出,保留)
│ ├── functional-tester.md
│ ├── edge-case-hunter.md
│ ├── regression-checker.md
│ └── acceptance-validator.md
├── summaries/ # 結構化摘要(REDUCE 產出,供快速查閱)
│ ├── functional-tester.yaml
│ ├── edge-case-hunter.yaml
│ ├── regression-checker.yaml
│ └── acceptance-validator.yaml
├── test-results.yaml # 測試結果
├── acceptance.yaml # 驗收狀態
└── verify-summary.md # 驗證摘要(主輸出)
⚠️ perspectives/ stores complete reports, summaries/ stores structured summaries, both must be retained.
Agent Capability Restrictions
Verification Agents should not open Tasks:
| Allowed Operations | Description |
|---|---|
| ✅ Read | Read test results |
| ✅ Glob/Grep | Search files and content |
| ✅ Bash | Execute tests |
| ✅ Write | Write reports |
| ❌ Task | Spawn sub-agents |
Action Log
After each tool call completes, log to .claude/workflow/{workflow-id}/logs/actions.jsonl。
Logging Timing:
- Success: Log
tool、input、output_preview、duration_ms、status: success - Failure: Log
tool、input、error、stderr(if any),status: failed
Key Actions (VERIFY phase):
| Action | Logging Focus |
|---|---|
| Read (read test results) | file_path、output_size |
| Bash (execute tests) | command、exit_code、stdout、stderr |
| Task (launch verification Agent) | subagent_type、prompt (truncated)、agent_id |
| Write (write verification report) | file_path、content_size |
Troubleshoot issues:
# 查看 VERIFY 階段所有失敗行動
jq 'select(.stage == "VERIFY" and .status == "failed")' actions.jsonl
# 查看測試執行失敗的詳情
jq 'select(.tool == "Bash" and .status == "failed" and .stage == "VERIFY")' actions.jsonl | jq '{command: .input.command, exit_code: .exit_code, stderr: .stderr}'
# 查看執行時間超過 10 秒的行動
jq 'select(.stage == "VERIFY" and .duration_ms > 10000)' actions.jsonl
→ Logging conventions:shared/communication/execution-logs.md
Shared modules
| Module | Purpose |
|---|---|
| coordination/map-phase.md | Parallel coordination |
| coordination/reduce-phase.md | Aggregation and integration, large file processing |
| quality/gates.yaml | Quality gate |
| config/early-termination.yaml | Early termination |
| quality/rollback-strategy.yaml | Fallback strategy |
| perspectives/expertise-frameworks/testing.yaml | Test framework |
Workflow position
RESEARCH → PLAN → TASKS → IMPLEMENT → REVIEW → VERIFY
↑
你在這裡
- Input: review report, from
reviewskill - Output: verification result, workflow completed or rolled back