Solidify a successfully completed verification execution into a YAML step checklist. Default output to:
docs/verification/replay.yml
When there is only a URL and no repository, write to the current working directory replay.yml。
Input threshold (fail closed)
- The input is the verification report produced by verify-run (
docs/verification/verify-run-report.mdor a user-specified path). - When the report contains any
failitemrefuse to solidify, and clearly inform: the replay checklist is an execution artifact, and it must be fixed, rerun, and all green before solidifying. This is a hard threshold; do not do it even if the user insists. - When the report does not exist, prompt to run verify-run first.
YAML Format
One entry per step, with fixed fields:
# 回放清单:由 verify-replay 于 2026-10-10 从 verify-run 报告固化
# 来源报告:docs/verification/verify-run-report.md(全绿)
meta:
target: http://localhost:5173 # 被验证目标(URL 或本地服务说明)
setup: # 重放前的环境准备(启动命令等,可空)
- bash scripts/dev.sh
teardown: # 重放后的清理(可空)
- 停止 dev 服务
steps:
- id: 1
action: open # open | click | fill | upload | curl | run | wait | screenshot
target: http://localhost:5173/login
expect: 页面出现"登录"标题 # 断言描述,agent 重放时据此判定
evidence: screenshots/01-login.png # 期望留存的证据(可选)
- id: 2
action: fill
target: 用户名
value: demo@example.com
- id: 3
action: curl
target: GET http://localhost:8790/api/health
expect: "HTTP 200,响应含 {\"status\":\"ok\"}"
Solidification rules:
- Only include the verification points that passed in the report and their operation paths; skip items are appended at the end in comment form and do not enter steps.
- target / URL / selector descriptions must all use the values from this execution that wereactually verified, and do not retroactively change them into idealized wording.
- Assertion descriptions retain human-eye-level judgments ("order list appears", "no console errors") and are not forcibly converted into hardcoded assertions—during replay, the agent makes the judgment.
- Add as few waits as possible; for steps that truly need waiting, write the condition concretely ("X text appears" instead of "wait 3 seconds").
Replay Method
Replay is not executed by this skill. When the user wants to replay:
- Directly drive opencli / curl execution step by step according to replay.yml, with each step judged by the agent using expect, and evidence retained according to the evidence field.
- By default, replay results are written to
docs/verification/replay-run-report.md(overwrite update). - When a step fails, record it and continue with subsequent steps, then summarize at the end; if the same step fails across multiple consecutive rounds, it indicates the target has drifted, so prompt the user to rerun verify-run and resolidify, rather than repeatedly patching the YAML.
Output Requirements
- Use Chinese.
- After generation is complete, list in the final reply: the replay.yml path, the number of included steps, skipped items, and the invocation method for replay.