verify

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

Verify

验证

This skill decides when a change may be called done. It asks for evidence from the running result, not from a passing build.
这个 skill 用于决定一项更改何时可以被判定为完成。它要求从运行结果中获取证据,而不是仅凭 build 通过。

A build is not evidence

build 通过不代表有证据

A typecheck, a lint pass or a green build does not show that a visual or behavioural change works. Saying "fixed" without opening the result is a finding. Opening it and reporting an imperfect result is not.
Run it after any change to UI or behaviour, before replying "done". Run it at once when the user says "still", "nothing changed" or "test it yourself". What to change belongs to
scope
. Matching an outside app belongs to
match
.
typecheck、lint 通过或 build 通过,都不能证明视觉或行为变更能够正常工作。未打开结果就声称“fixed”,属于一项 finding;打开结果并如实报告不完美的表现,则不属于。
完成任何 UI 或行为更改后、回复“完成”之前,都要运行此 skill。当用户表示“仍然不行”“没有任何变化”或“你自己测试一下”时,应立即运行。要改什么属于
scope
,匹配外部应用属于
match
。

1. See the problem first

1. 先查看问题

Open the app, the page or the output and find the symptom before editing. Use the browser, a screenshot or computer use. Editing from the description alone is
verify-reproduce-first
. When you cannot reach the running result, say what blocks you.
在编辑之前,打开应用、页面或输出,确认问题现象。使用浏览器、截图或 computer use。仅根据问题描述就进行编辑,属于
verify-reproduce-first
。如果无法访问运行结果,请说明是什么阻碍了你。

2. Look where the user will look

2. 查看用户会查看的位置

Reload, or confirm hot reload applied, then look at the same place. A build pass offered as proof is
verify-build-is-not-proof
. Click every control you added once. A control with no effect is
verify-click-new-controls
.
Look at the whole surface, not only the line you edited. Scroll to both ends and open each state the change touches. Checking only the edited element is
verify-whole-surface
.
重新加载,或确认 hot reload 已生效,然后在同一位置查看。把 build 通过当作证据,属于
verify-build-is-not-proof
。将每个新增控件都点击一次。控件没有产生任何效果,属于
verify-click-new-controls
。
检查整个界面,而不只是编辑的那一行。滚动到两端,并打开此次更改涉及的每个 state。只检查被编辑的元素,属于
verify-whole-surface
。

3. Find the cause on a repeat report

3. 用户再次反馈时查找根因

When the user reports the same problem again, stop adjusting the same value. Diff against the last commit where it worked, read the computed style or search for the cause. A third guess at one property is
verify-root-cause-on-repeat
.
当用户再次反馈同一个问题时,不要继续调整同一个值。与最后一次正常工作的 commit 做 Diff,读取 computed style,或搜索原因。第三次猜测调整某个属性,属于
verify-root-cause-on-repeat
。

4. Report what you saw

4. 报告你看到的结果

Say what you checked, how and where the user can see it: the route, the window, the menu path or the folder. "It should work now" is
verify-say-where
. Open the result for the user when you can. A bare output path is
verify-open-the-result
.
Name anything you could not check and why. "Done" with an unchecked item is
verify-name-the-gap
.
说明检查了什么、如何检查,以及用户可以在哪里查看:route、window、menu path 或 folder。只回复“它现在应该可以了”,属于
verify-say-where
。如果可以,请为用户打开结果。只给出一个输出路径,属于
verify-open-the-result
。
列出所有无法检查的项目及其原因。在存在未检查项的情况下声称“完成”,属于
verify-name-the-gap
。

The pair

错误做法与替代做法的对应关系

Every check is a pair. The broken line sits beside the line that replaces it.
RuleBrokenReplacement
verify-reproduce-first
Editing from the bug report aloneOpen the screen, see the bug, then edit
verify-build-is-not-proof
"Typecheck passes, so it is fixed""Reloaded Settings and the toggle now persists"
verify-click-new-controls
A new "Add Condition" button with no handlerClick it once and see a row appear
verify-whole-surface
Checking the edited row onlyThe whole panel, scrolled to both ends
verify-root-cause-on-repeat
A third tweak to the same
padding
Diff against the last working commit, then fix
verify-say-where
"It should work now""Open Library, right-click a save, choose Hide"
verify-open-the-result
~/Downloads/clips
printed in the reply
The folder opened for the user
verify-name-the-gap
"Done" while export was never run"Not verified: export, it needs a signed build"
每项检查都由一对做法组成:错误做法与替代做法并列展示。
规则错误做法替代做法
verify-reproduce-first
仅根据 bug 报告进行编辑打开界面,看到 bug,然后再编辑
verify-build-is-not-proof
“Typecheck 通过了,所以已经修好了”“重新加载 Settings 后,toggle 现在可以保留状态”
verify-click-new-controls
新增的“Add Condition”按钮没有 handler点击一次,并确认出现一行
verify-whole-surface
只检查被编辑的那一行检查整个 panel,并滚动到两端
verify-root-cause-on-repeat
第三次调整同一个
padding
与最后一次正常工作的 commit 做 Diff,然后修复
verify-say-where
“它现在应该可以了”“打开 Library,右键点击 save,选择 Hide”
verify-open-the-result
回复中仅打印
~/Downloads/clips
为用户打开该文件夹
verify-name-the-gap
export 从未运行,却声称“完成”“Not verified:export,需要 signed build”

Reporting

报告

Severity.
HIGH
is "done" with no look at the running result, or a new control that does nothing.
MEDIUM
is a repeat report met with another guess, or a reply with no place to see the change.
LOW
is a checked change whose reply omits how it was checked.
Format. One finding per root cause, citing the request when no file applies:
file:line - [rule-id] what is wrong
request 2 - [rule-id] what is wrong
Then a
Rule | Count | Severity
summary.
Block
when any
HIGH
remains,
Approve
otherwise. Never
Approve
a change you did not open. Mark every check you could not run as
Not verified
.
严重程度。
HIGH
表示未查看运行结果就声称“完成”,或新增控件没有任何作用。
MEDIUM
表示用户再次反馈问题时仅又做了一次猜测,或回复中没有说明在哪里查看变更。
LOW
表示已检查变更,但回复中省略了检查方式。
格式。 每个根因输出一个 finding;不涉及文件时引用 request:
file:line - [rule-id] what is wrong
request 2 - [rule-id] what is wrong
然后提供
Rule | Count | Severity
汇总。只要仍有
HIGH
,就标记
Block
;否则标记
Approve
。绝不能对未亲自打开验证的更改给出
Approve
。每个无法执行的检查都标记为
Not verified
。