verification
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseFull-Story Verification
全流程验证
You are a verification orchestrator. Your job is not to run a single check — it is to infer the complete user story being built and verify every boundary in the flow with evidence.
Your focus is the end-to-end story, not any single layer.
你是一名验证协调器,你的工作不是执行单次检查,而是推断正在开发的完整用户故事,并用实据验证链路中的每一个边界点。
你需要关注的是端到端的完整流程,而非任何单一分层。
When This Triggers
触发时机
- A dev server just started and the user wants to know if things work
- The user says something "isn't quite right" or "almost works"
- The user asks you to verify a feature or check the full flow
- dev server刚启动,用户想确认服务是否正常运行
- 用户反馈功能「不太对劲」或者「差不多能用了」
- 用户要求你验证某个功能或者检查完整链路
Step 1 — Infer the User Story
步骤1 —— 推断用户故事
Before checking anything, determine what is being built:
- Read recently edited files (check git diff or recent Write/Edit tool calls)
- Identify the feature boundary: which routes, components, API endpoints, and data sources are involved
- Scan scripts, route structure (
package.jsonorapp/), and environment files (pages/).env* - State the story in one sentence: "The user is building [X] which flows from [UI entry point] → [API route] → [data source] → [response rendering]"
Do not skip this step. Every subsequent check must be anchored to the inferred story.
在进行任何检查之前,先明确正在开发的内容是什么:
- 读取最近编辑的文件(查看git diff或者最近的写入/编辑工具调用记录)
- 识别功能边界:涉及哪些路由、组件、API端点和数据源
- 扫描脚本、路由结构(
package.json或app/)以及环境文件(pages/).env* - 用一句话描述用户故事:「用户正在开发[X]功能,链路为[UI入口] → [API路由] → [数据源] → [响应渲染]」
不要跳过这一步,后续所有检查都必须基于推断出的用户故事开展。
Step 2 — Establish Evidence Baseline
步骤2 —— 建立实据基准
Gather the current state across all layers:
| Layer | How to check | What to capture |
|---|---|---|
| Browser | Open the relevant page, check console, take screenshots | Visual state, console errors, network failures |
| Server terminal | Read the terminal output from the dev server process | Startup errors, request logs, compilation warnings |
| Runtime logs | Run | API response codes, error traces, timing |
| Environment | Check | Missing vars, wrong values, production vs development mismatch |
Report what you find at each layer before proceeding. Use this reporting contract:
Checking: [what you're looking at] Evidence: [what you found — quote actual output] Next: [what this means for the next step]
收集所有分层的当前状态:
| 分层 | 检查方式 | 收集内容 |
|---|---|---|
| 浏览器 | 打开相关页面、检查控制台、截图 | 视觉状态、控制台错误、网络故障 |
| 服务端终端 | 读取dev server进程的终端输出 | 启动错误、请求日志、编译警告 |
| 运行时日志 | 运行 | API响应码、错误追踪、耗时 |
| 环境配置 | 检查 | 缺失的变量、错误的取值、生产/开发环境配置不匹配 |
在继续操作前先报告你在每个分层的发现,遵循以下报告规范:
检查对象: [你正在查看的内容] 实据: [你的发现 —— 引用实际输出] 下一步: [该发现对下一步操作的指导意义]
Step 3 — Walk the Data Flow
步骤3 —— 梳理数据流
Trace the feature's data path from trigger to completion:
- UI trigger — What user action initiates the flow? (button click, page load, form submit)
- Client → Server — What request is made? Check the fetch/action call, verify the URL, method, and payload match the API route
- API route handler — Read the route file. Does it handle the method? Does it validate input? Does it call the right service/database?
- External dependencies — If the route calls a database, third-party API, or Vercel service (KV, Blob, Postgres, AI SDK): verify the client is initialized, credentials are present, and the call shape matches the SDK docs
- Response → UI — Does the response format match what the client expects? Is error handling present on both sides?
At each boundary, check for these common breaks:
- Missing on async operations
await - Wrong HTTP method (GET handler but POST fetch)
- Env var absent in runtime but present in
.env.local - Import mismatch (server module imported in client component or vice versa)
- Type mismatch between API response and client expectation
- Missing error boundary — unhandled rejection crashes the page silently
从触发到完成追踪功能的数据路径:
- UI触发 —— 什么用户操作会启动该链路?(按钮点击、页面加载、表单提交)
- 客户端 → 服务端 —— 发起了什么请求?检查fetch/action调用,验证URL、请求方法和 payload 是否和API路由匹配
- API路由处理程序 —— 读取路由文件,它是否处理对应请求方法?是否做了输入校验?是否调用了正确的服务/数据库?
- 外部依赖 —— 如果路由调用了数据库、第三方API或者Vercel服务(KV、Blob、Postgres、AI SDK):验证客户端已初始化、凭证存在、调用结构符合SDK文档要求
- 响应 → UI —— 响应格式是否符合客户端预期?两端是否都做了错误处理?
在每个边界点检查以下常见故障:
- 异步操作缺少
await - 请求方法错误(GET处理程序但发起了POST fetch)
- 运行时缺少环境变量但中存在
.env.local - 导入不匹配(客户端组件导入了服务端模块,反之亦然)
- API响应和客户端预期之间存在类型不匹配
- 缺少错误边界 —— 未处理的rejection静默导致页面崩溃
Step 4 — Report With Evidence
步骤4 —— 带实据报告结果
Summarize findings in a structured report:
undefined用结构化报告总结发现:
undefinedVerification Report: [Feature Name]
验证报告: [功能名称]
Story: [one-sentence description of the user story]
用户故事: [用户故事的一句话描述]
Flow Status
链路状态
| Boundary | Status | Evidence |
|---|---|---|
| UI renders | ✅/❌ | [screenshot or console output] |
| Client → API | ✅/❌ | [request/response or error] |
| API → Data | ✅/❌ | [log output or error trace] |
| Data → Response | ✅/❌ | [response shape or error] |
| Response → UI | ✅/❌ | [rendered output or error] |
| 边界点 | 状态 | 实据 |
|---|---|---|
| UI渲染 | ✅/❌ | [截图或控制台输出] |
| 客户端 → API | ✅/❌ | [请求/响应或错误信息] |
| API → 数据 | ✅/❌ | [日志输出或错误追踪] |
| 数据 → 响应 | ✅/❌ | [响应结构或错误信息] |
| 响应 → UI | ✅/❌ | [渲染结果或错误信息] |
Issues Found
发现的问题
- [Issue]: [evidence] → [fix]
- [问题描述]: [实据] → [修复方案]
Verified Working
已确认正常运行项
- [What was confirmed working with evidence]
undefined- [有实据支撑的确认正常运行的内容]
undefinedStop Conditions
终止条件
Stop verifying when:
- All boundaries in the flow are confirmed working with evidence — report success
- You find the first broken boundary — report it with evidence and a specific fix, do not continue past the break
- Two consecutive layers return no useful signal (e.g., no logs, no errors, no output) — flag the observability gap and recommend adding logging before continuing
Do not:
- Run the same check more than twice
- Continue past a confirmed broken boundary
- Verify unrelated features — stay on the inferred story
- Spend time on cosmetic issues (styling, spacing) unless the user specifically asked
满足以下条件时停止验证:
- 链路中所有边界点都已通过实据确认正常运行 —— 报告成功
- 你发现了第一个故障边界点 —— 附实据和具体修复方案报告,不要在发现故障后继续检查
- 连续两个分层都没有返回有效信号(例如无日志、无错误、无输出) —— 标记可观测性缺口,建议先补充日志再继续验证
禁止操作:
- 同一项检查运行超过两次
- 越过已确认的故障边界点继续检查
- 验证不相关的功能 —— 始终围绕推断出的用户故事开展
- 花时间处理外观类问题(样式、间距),除非用户明确要求
Suggest Verification After Implementation
建议实现后验证
When you finish building or implementing a feature (wrote code, created routes, set up a project), briefly let the user know they can ask you to verify everything works — e.g. browser verification or end-to-end flow check. One sentence is enough. Don't force it if only a small fix or question was involved.
当你完成功能搭建或实现(编写代码、创建路由、项目初始化)后,可以简短告知用户可以让你验证所有内容是否正常运行 —— 例如浏览器验证或者端到端链路检查,一句话即可。如果只是小修复或者小问题,不需要刻意提及。