kata-verify-work
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
Chinese<objective>
Validate built features through conversational testing with persistent state.
Purpose: Confirm what Claude built actually works from user's perspective. One test at a time, plain text responses, no interrogation. When issues are found, automatically diagnose, plan fixes, and prepare for execution.
Output: {phase}-UAT.md tracking all test results. If issues found: diagnosed gaps, verified fix plans ready for /kata-execute-phase
</objective>
<execution_context>
@./references/verify-work.md
@./references/UAT-template.md
</execution_context>
<context>
Phase: $ARGUMENTS (optional)
- If provided: Test specific phase (e.g., "4")
- If not provided: Check for active sessions or prompt for phase
@.planning/STATE.md
@.planning/ROADMAP.md
</context>
<process>
1. Check for active UAT sessions (resume or start new)
2. Find SUMMARY.md files for the phase
3. Extract testable deliverables (user-observable outcomes)
4. Create {phase}-UAT.md with test list
5. Present tests one at a time:
- Show expected behavior
- Wait for plain text response
- "yes/y/next" = pass, anything else = issue (severity inferred)
6. Update UAT.md after each response
7. On completion: commit UAT.md
7.5. Finalize changes (pr_workflow only) — commit fixes, push, mark PR ready
7.6. Run PR review (pr_workflow only, optional) — offer automated review
7.7. Handle review findings — fix issues or add to backlog
8. If issues found:
- Spawn parallel debug agents to diagnose root causes
- Spawn kata-planner in --gaps mode to create fix plans
- Spawn kata-plan-checker to verify fix plans
- Iterate planner ↔ checker until plans pass (max 3)
- Present ready status with `/clear` then `/kata-execute-phase`
</process>
<step_7_5_pr_workflow>
<objective>
通过带持久化状态的对话式测试验证已开发完成的功能。
目的:从用户视角确认Claude开发的功能是否真正可用。每次进行一项测试,采用纯文本回复,无需质询。当发现问题时,自动诊断问题、制定修复计划并为执行做准备。
输出:{phase}-UAT.md 文件,用于跟踪所有测试结果。如果发现问题:会诊断出存在的差距,验证修复计划已就绪,可执行 /kata-execute-phase
</objective>
<execution_context>
@./references/verify-work.md
@./references/UAT-template.md
</execution_context>
<context>
阶段:$ARGUMENTS(可选)
- 如果提供:测试指定阶段(例如:"4")
- 如果未提供:检查是否有活跃会话或提示输入阶段
@.planning/STATE.md
@.planning/ROADMAP.md
</context>
<process>
1. 检查是否有活跃的UAT会话(恢复或启动新会话)
2. 查找对应阶段的SUMMARY.md文件
3. 提取可测试的交付成果(用户可观察的结果)
4. 创建包含测试列表的{phase}-UAT.md文件
5. 逐个展示测试:
- 展示预期行为
- 等待纯文本回复
- "yes/y/next" = 通过,其他任何回复 = 问题(自动推断严重程度)
6. 每次回复后更新UAT.md
7. 完成测试后:提交UAT.md
7.5. 最终确定变更(仅适用于pr_workflow)—— 提交修复内容、推送代码、标记PR就绪
7.6. 执行PR评审(仅适用于pr_workflow,可选)—— 提供自动评审服务
7.7. 处理评审结果——修复问题或添加到待办事项
8. 如果发现问题:
- 启动并行调试Agent诊断根本原因
- 启动kata-planner并使用--gaps模式创建修复计划
- 启动kata-plan-checker验证修复计划
- 重复规划器 ↔ 检查器的流程,直到计划通过(最多3次)
- 先输出`/clear`,再显示准备就绪状态,提示执行`/kata-execute-phase`
</process>
<step_7_5_pr_workflow>
7.5. Finalize Changes (pr_workflow only)
7.5. 最终确定变更(仅适用于pr_workflow)
Read pr_workflow config:
bash
PR_WORKFLOW=$(cat .planning/config.json 2>/dev/null | grep -o '"pr_workflow"[[:space:]]*:[[:space:]]*[^,}]*' | grep -o 'true\|false' || echo "false")If PR_WORKFLOW=false: Skip to offer_next.
If PR_WORKFLOW=true:
-
Check for uncommitted changes:bash
git status --porcelain -
If changes exist, stage and commit them:bash
git add -u git commit -m "fix({phase}): UAT fixes" -
Push to branch:bash
BRANCH=$(git branch --show-current) git push origin "$BRANCH" -
Check if PR exists:bash
PR_NUMBER=$(gh pr list --head "$BRANCH" --json number --jq '.[0].number' 2>/dev/null) -
If PR exists, mark ready (if still draft):bash
gh pr ready "$PR_NUMBER" 2>/dev/null || true PR_URL=$(gh pr view --json url --jq '.url')
Store PR_NUMBER and PR_URL for offer_next.
</step_7_5_pr_workflow>
<step_7_6_pr_review>
读取pr_workflow配置:
bash
PR_WORKFLOW=$(cat .planning/config.json 2>/dev/null | grep -o '"pr_workflow"[[:space:]]*:[[:space:]]*[^,}]*' | grep -o 'true\|false' || echo "false")如果PR_WORKFLOW=false: 跳转到offer_next步骤。
如果PR_WORKFLOW=true:
-
检查是否有未提交的变更:bash
git status --porcelain -
如果存在变更,暂存并提交:bash
git add -u git commit -m "fix({phase}): UAT fixes" -
推送到分支:bash
BRANCH=$(git branch --show-current) git push origin "$BRANCH" -
检查PR是否存在:bash
PR_NUMBER=$(gh pr list --head "$BRANCH" --json number --jq '.[0].number' 2>/dev/null) -
如果PR存在,标记为就绪(如果仍为草稿状态):bash
gh pr ready "$PR_NUMBER" 2>/dev/null || true PR_URL=$(gh pr view --json url --jq '.url')
为offer_next步骤存储PR_NUMBER和PR_URL。
</step_7_5_pr_workflow>
<step_7_6_pr_review>
7.6. Run PR Review (pr_workflow only, optional)
7.6. 执行PR评审(仅适用于pr_workflow,可选)
After marking PR ready, offer to run automated review:
Use AskUserQuestion:
- header: "PR Review"
- question: "Run automated PR review before team review?"
- options:
- "Yes, run full review" — Run kata-review-pull-requests with all aspects
- "Quick review (code only)" — Run kata-review-pull-requests with "code" aspect only
- "Skip" — Proceed without review
If user chooses review:
- Invoke skill:
Skill("kata:review-pull-requests", "<aspect>") - Display review summary with counts: {N} critical, {M} important, {P} suggestions
- STOP and ask what to do with findings (see step 7.7)
If user chooses "Skip":
Continue to offer_next without review.
</step_7_6_pr_review>
<step_7_7_handle_findings>
标记PR就绪后,提供自动评审选项:
使用AskUserQuestion:
- 标题:"PR Review"
- 问题:"在团队评审前执行自动PR评审吗?"
- 选项:
- "Yes, run full review" — 调用kata-review-pull-requests并检查所有维度
- "Quick review (code only)" — 调用kata-review-pull-requests仅检查代码维度
- "Skip" — 不进行评审直接继续
如果用户选择评审:
- 调用Skill:
Skill("kata:review-pull-requests", "<aspect>") - 显示评审摘要及统计:{N}个严重问题,{M}个重要问题,{P}个建议
- 暂停并询问如何处理评审结果(见步骤7.7)
如果用户选择"Skip":
不进行评审直接跳转到offer_next步骤。
</step_7_6_pr_review>
<step_7_7_handle_findings>
7.7. Handle Review Findings (required after review completes)
7.7. 处理评审结果(评审完成后必须执行)
STOP here. Do not proceed to offer_next until user chooses an action.
Use AskUserQuestion with options based on what was found:
- header: "Review Findings"
- question: "How do you want to handle the review findings?"
- options (show only applicable ones):
- "Fix critical issues" — (if critical > 0) Fix critical, then offer to add remaining to backlog
- "Fix critical & important" — (if critical + important > 0) Fix both, then offer to add suggestions to backlog
- "Fix all issues" — (if any issues) Fix everything
- "Add to backlog" — Create issues for all findings without fixing
- "Ignore and continue" — Skip all issues
After user chooses:
Path A: "Fix critical issues"
- Fix each critical issue
- If important or suggestions remain, ask: "Add remaining {N} issues to backlog?"
- "Yes" → Create issues, store TODOS_CREATED count
- "No" → Continue
- Commit and push fixes
- Continue to offer_next
Path B: "Fix critical & important"
- Fix each critical and important issue
- If suggestions remain, ask: "Add {N} suggestions to backlog?"
- "Yes" → Create issues, store TODOS_CREATED count
- "No" → Continue
- Commit and push fixes
- Continue to offer_next
Path C: "Fix all issues"
- Fix all critical, important, and suggestion issues
- Commit and push fixes
- Continue to offer_next
Path D: "Add to backlog"
- Create issues for all findings using
/kata-add-issue - Store TODOS_CREATED count
- Continue to offer_next
Path E: "Ignore and continue"
- Continue to offer_next
Store REVIEW_SUMMARY and TODOS_CREATED for offer_next output.
</step_7_7_handle_findings>
<anti_patterns>
- Don't use AskUserQuestion for test responses — plain text conversation
- Don't ask severity — infer from description
- Don't present full checklist upfront — one test at a time
- Don't run automated tests — this is manual user validation
- Don't fix issues during testing — log as gaps, diagnose after all tests complete </anti_patterns>
<offer_next>
Output this markdown directly (not as a code block). Route based on UAT results:
| Status | Route |
|---|---|
| All tests pass + more phases | Route A (next phase) |
| All tests pass + last phase | Route B (milestone complete) |
| Issues found + fix plans ready | Route C (execute fixes) |
| Issues found + planning blocked | Route D (manual intervention) |
Route A: All tests pass, more phases remain
Step 1: If PR_WORKFLOW=true, STOP and ask about merge BEFORE showing completion output.
Use AskUserQuestion:
- header: "PR Ready for Merge"
- question: "PR #{pr_number} is ready. Merge before continuing to next phase?"
- options:
- "Yes, merge now" — merge PR, then show completion
- "No, continue without merging" — show completion with PR status
Step 2: Handle merge response (if PR_WORKFLOW=true)
If user chose "Yes, merge now":
bash
gh pr merge "$PR_NUMBER" --merge --delete-branch
git checkout main && git pullSet MERGED=true for output below.
Step 3: Show completion output
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Kata ► PHASE {Z} VERIFIED ✓
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Phase {Z}: {Name}
{N}/{N} tests passed
UAT complete ✓
{If PR_WORKFLOW and MERGED: PR: #{pr_number} — merged ✓}
{If PR_WORKFLOW and not MERGED: PR: #{pr_number} ({pr_url}) — ready for review}
{If REVIEW_SUMMARY: PR Review: {summary_stats}}
{If TODOS_CREATED: Backlog: {N} issues created from review suggestions}
───────────────────────────────────────────────────────────────
在此暂停。在用户选择操作前,不要跳转到offer_next步骤。
根据发现的问题,使用AskUserQuestion提供选项:
- 标题:"Review Findings"
- 问题:"您希望如何处理评审结果?"
- 选项(仅显示适用的选项):
- "Fix critical issues" — (如果存在严重问题)修复严重问题,然后询问是否将剩余问题添加到待办事项
- "Fix critical & important" — (如果存在严重或重要问题)修复这两类问题,然后询问是否将建议添加到待办事项
- "Fix all issues" — (如果存在任何问题)修复所有问题
- "Add to backlog" — 为所有评审结果创建问题,不进行修复
- "Ignore and continue" — 忽略所有问题直接继续
用户选择后:
路径A:"Fix critical issues"
- 修复每个严重问题
- 如果仍有重要问题或建议,询问:"是否将剩余{N}个问题添加到待办事项?"
- "Yes" → 创建问题,记录TODOS_CREATED数量
- "No" → 继续
- 提交并推送修复内容
- 跳转到offer_next步骤
路径B:"Fix critical & important"
- 修复每个严重和重要问题
- 如果仍有建议,询问:"是否将{N}个建议添加到待办事项?"
- "Yes" → 创建问题,记录TODOS_CREATED数量
- "No" → 继续
- 提交并推送修复内容
- 跳转到offer_next步骤
路径C:"Fix all issues"
- 修复所有严重、重要问题及建议
- 提交并推送修复内容
- 跳转到offer_next步骤
路径D:"Add to backlog"
- 使用为所有评审结果创建问题
/kata-add-issue - 记录TODOS_CREATED数量
- 跳转到offer_next步骤
路径E:"Ignore and continue"
- 跳转到offer_next步骤
为offer_next步骤的输出存储REVIEW_SUMMARY和TODOS_CREATED。
</step_7_7_handle_findings>
<anti_patterns>
- 不要对测试回复使用AskUserQuestion — 采用纯文本对话
- 不要询问严重程度 — 从描述中推断
- 不要提前展示完整的检查清单 — 每次只展示一项测试
- 不要运行自动化测试 — 这是手动用户验证
- 不要在测试过程中修复问题 — 记录为差距,所有测试完成后再诊断 </anti_patterns>
<offer_next>
直接输出此Markdown内容(不要放在代码块中)。根据UAT结果选择对应路径:
| 状态 | 路径 |
|---|---|
| 所有测试通过 + 存在更多阶段 | 路径A(进入下一阶段) |
| 所有测试通过 + 当前是最后阶段 | 路径B(里程碑完成) |
| 发现问题 + 修复计划已就绪 | 路径C(执行修复) |
| 发现问题 + 规划被阻塞 | 路径D(手动干预) |
路径A:所有测试通过,仍有未完成的阶段
步骤1:如果PR_WORKFLOW=true,在显示完成输出前暂停并询问是否合并。
使用AskUserQuestion:
- 标题:"PR Ready for Merge"
- 问题:"PR #{pr_number}已就绪。进入下一阶段前是否合并?"
- 选项:
- "Yes, merge now" — 合并PR,然后显示完成内容
- "No, continue without merging" — 显示完成内容并附带PR状态
步骤2:处理合并回复(如果PR_WORKFLOW=true)
如果用户选择"Yes, merge now":
bash
gh pr merge "$PR_NUMBER" --merge --delete-branch
git checkout main && git pull为下方的输出设置MERGED=true。
步骤3:显示完成输出
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Kata ► 阶段 {Z} 已验证 ✓
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
阶段 {Z}: {名称}
{N}/{N} 项测试通过
UAT已完成 ✓
{如果PR_WORKFLOW为true且MERGED为true: PR: #{pr_number} — 已合并 ✓}
{如果PR_WORKFLOW为true且MERGED为false: PR: #{pr_number} ({pr_url}) — 待评审}
{如果存在REVIEW_SUMMARY: PR评审: {summary_stats}}
{如果存在TODOS_CREATED: 待办事项: 从评审建议中创建了{N}个问题}
───────────────────────────────────────────────────────────────
▶ Next Up
▶ 下一步
Phase {Z+1}: {Name} — {Goal from ROADMAP.md}
/kata-discuss-phase {Z+1} — gather context and clarify approach
<sub>/clear first → fresh context window</sub>
───────────────────────────────────────────────────────────────
Also available:
- /kata-plan-phase {Z+1} — skip discussion, plan directly
- /kata-execute-phase {Z+1} — skip to execution (if already planned)
{If PR_WORKFLOW and not MERGED: - — review PR in browser before next phase}
gh pr view --web
───────────────────────────────────────────────────────────────
Route B: All tests pass, milestone complete
Step 1: If PR_WORKFLOW=true, STOP and ask about merge BEFORE showing completion output.
Use AskUserQuestion:
- header: "PR Ready for Merge"
- question: "PR #{pr_number} is ready. Merge before completing milestone?"
- options:
- "Yes, merge now" — merge PR, then show completion
- "No, continue without merging" — show completion with PR status
Step 2: Handle merge response (if PR_WORKFLOW=true)
If user chose "Yes, merge now":
bash
gh pr merge "$PR_NUMBER" --merge --delete-branch
git checkout main && git pullSet MERGED=true for output below.
Step 3: Show completion output
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Kata ► PHASE {Z} VERIFIED ✓
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Phase {Z}: {Name}
{N}/{N} tests passed
Final phase verified ✓
{If PR_WORKFLOW and MERGED: PR: #{pr_number} — merged ✓}
{If PR_WORKFLOW and not MERGED: PR: #{pr_number} ({pr_url}) — ready for review}
{If REVIEW_SUMMARY: PR Review: {summary_stats}}
{If TODOS_CREATED: Backlog: {N} issues created from review suggestions}
───────────────────────────────────────────────────────────────
阶段 {Z+1}: {名称} — {来自ROADMAP.md的目标}
/kata-discuss-phase {Z+1} — 收集上下文并明确实现方案
<sub>先执行/clear → 刷新上下文窗口</sub>
───────────────────────────────────────────────────────────────
其他可用操作:
- /kata-plan-phase {Z+1} — 跳过讨论,直接制定计划
- /kata-execute-phase {Z+1} — 直接进入执行阶段(如果已完成规划)
{如果PR_WORKFLOW为true且MERGED为false: - — 进入下一阶段前在浏览器中评审PR}
gh pr view --web
───────────────────────────────────────────────────────────────
路径B:所有测试通过,里程碑完成
步骤1:如果PR_WORKFLOW=true,在显示完成输出前暂停并询问是否合并。
使用AskUserQuestion:
- 标题:"PR Ready for Merge"
- 问题:"PR #{pr_number}已就绪。完成里程碑前是否合并?"
- 选项:
- "Yes, merge now" — 合并PR,然后显示完成内容
- "No, continue without merging" — 显示完成内容并附带PR状态
步骤2:处理合并回复(如果PR_WORKFLOW=true)
如果用户选择"Yes, merge now":
bash
gh pr merge "$PR_NUMBER" --merge --delete-branch
git checkout main && git pull为下方的输出设置MERGED=true。
步骤3:显示完成输出
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Kata ► 阶段 {Z} 已验证 ✓
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
阶段 {Z}: {名称}
{N}/{N} 项测试通过
最终阶段已验证 ✓
{如果PR_WORKFLOW为true且MERGED为true: PR: #{pr_number} — 已合并 ✓}
{如果PR_WORKFLOW为true且MERGED为false: PR: #{pr_number} ({pr_url}) — 待评审}
{如果存在REVIEW_SUMMARY: PR评审: {summary_stats}}
{如果存在TODOS_CREATED: 待办事项: 从评审建议中创建了{N}个问题}
───────────────────────────────────────────────────────────────
▶ Next Up
▶ 下一步
Audit milestone — verify requirements, cross-phase integration, E2E flows
/kata-audit-milestone
<sub>/clear first → fresh context window</sub>
───────────────────────────────────────────────────────────────
Also available:
- /kata-complete-milestone — skip audit, archive directly
{If PR_WORKFLOW and not MERGED: - — review PR in browser before audit}
gh pr view --web
───────────────────────────────────────────────────────────────
Route C: Issues found, fix plans ready
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Kata ► PHASE {Z} ISSUES FOUND ⚠
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Phase {Z}: {Name}
{N}/{M} tests passed
{X} issues diagnosed
Fix plans verified ✓
审计里程碑 — 验证需求、跨阶段集成、端到端流程
/kata-audit-milestone
<sub>先执行/clear → 刷新上下文窗口</sub>
───────────────────────────────────────────────────────────────
其他可用操作:
- /kata-complete-milestone — 跳过审计,直接归档
{如果PR_WORKFLOW为true且MERGED为false: - — 审计前在浏览器中评审PR}
gh pr view --web
───────────────────────────────────────────────────────────────
路径C:发现问题,修复计划已就绪
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Kata ► 阶段 {Z} 发现问题 ⚠
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
阶段 {Z}: {名称}
{N}/{M} 项测试通过
{X} 个问题已诊断
修复计划已验证 ✓
Issues Found
发现的问题
{List issues with severity from UAT.md}
───────────────────────────────────────────────────────────────
{从UAT.md中列出带有严重程度的问题}
───────────────────────────────────────────────────────────────
▶ Next Up
▶ 下一步
Execute fix plans — run diagnosed fixes
/kata-execute-phase {Z} --gaps-only
<sub>/clear first → fresh context window</sub>
───────────────────────────────────────────────────────────────
Also available:
- cat ${PHASE_DIR}/*-PLAN.md — review fix plans
- /kata-plan-phase {Z} --gaps — regenerate fix plans
───────────────────────────────────────────────────────────────
Route D: Issues found, planning blocked
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Kata ► PHASE {Z} BLOCKED ✗
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Phase {Z}: {Name}
{N}/{M} tests passed
Fix planning blocked after {X} iterations
执行修复计划 — 运行已诊断的修复内容
/kata-execute-phase {Z} --gaps-only
<sub>先执行/clear → 刷新上下文窗口</sub>
───────────────────────────────────────────────────────────────
其他可用操作:
- cat ${PHASE_DIR}/*-PLAN.md — 查看修复计划
- /kata-plan-phase {Z} --gaps — 重新生成修复计划
───────────────────────────────────────────────────────────────
路径D:发现问题,规划被阻塞
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Kata ► 阶段 {Z} 已阻塞 ✗
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
阶段 {Z}: {名称}
{N}/{M} 项测试通过
经过{X}次迭代后,修复规划仍被阻塞
Unresolved Issues
未解决的问题
{List blocking issues from planner/checker output}
───────────────────────────────────────────────────────────────
{从规划器/检查器输出中列出阻塞性问题}
───────────────────────────────────────────────────────────────
▶ Next Up
▶ 下一步
Manual intervention required
Review the issues above and either:
- Provide guidance for fix planning
- Manually address blockers
- Accept current state and continue
───────────────────────────────────────────────────────────────
Options:
- /kata-plan-phase {Z} --gaps — retry fix planning with guidance
- /kata-discuss-phase {Z} — gather more context before replanning
───────────────────────────────────────────────────────────────
</offer_next>
<success_criteria>
- UAT.md created with tests from SUMMARY.md
- Tests presented one at a time with expected behavior
- Plain text responses (no structured forms)
- Severity inferred, never asked
- Batched writes: on issue, every 5 passes, or completion
- Committed on completion
- If issues: parallel debug agents diagnose root causes
- If issues: kata-planner creates fix plans from diagnosed gaps
- If issues: kata-plan-checker verifies fix plans (max 3 iterations)
- Ready for when complete </success_criteria>
/kata-execute-phase
需要手动干预
查看上述问题并选择以下操作之一:
- 为修复规划提供指导
- 手动解决阻塞问题
- 接受当前状态并继续
───────────────────────────────────────────────────────────────
选项:
- /kata-plan-phase {Z} --gaps — 提供指导后重试修复规划
- /kata-discuss-phase {Z} — 收集更多上下文后重新规划
───────────────────────────────────────────────────────────────
</offer_next>
<success_criteria>
- 已从SUMMARY.md中提取测试项并创建UAT.md
- 每次展示一项测试及预期行为
- 采用纯文本回复(无结构化表单)
- 自动推断严重程度,不询问用户
- 批量写入:发现问题时、每5次通过后或完成时
- 完成后已提交UAT.md
- 如果发现问题:并行调试Agent已诊断根本原因
- 如果发现问题:kata-planner已根据诊断的差距创建修复计划
- 如果发现问题:kata-plan-checker已验证修复计划(最多3次迭代)
- 完成后已准备好执行</success_criteria>
/kata-execute-phase