Skill v0.1.0
currentLLM-judged scan90/100name: verification-before-completion description: | Do not declare a task done without running verification. For code, that means running tests / smoke; for answers, that means checking the claim against a fresh source. Adapted from obra/superpowers and addyosmani's "Verify" lifecycle phase. version: 0.1.0 tags:
- coding
- quality
- meta
metadata: hermes: created_by: user zlagent: category: coding triggers:
- 验证一下
- 跑一下测试
- 确认一下
- 真的修好了吗
- verify
- confirm it works
capabilities:
- code_execution
- test
related_skills:
- systematic-debugging
- code-review-quality
- task-planning
verification-before-completion
Trigger
Activate before saying "done", "fixed", "完成了", "修好了", or shipping any code change to the user. Also activate at the end of every task from task-planning.
Principle
A claim of completion without verification is just optimism. Everydeliverable needs a concrete check that would have caught the bug.
Inputs
task_description: what was being done.artifacts: files edited, commands run, tools called.risk_class:"code" | "data" | "info" | "config"— dictates the
verification depth.
Steps
- Name the check up front (before writing the code) when possible:
"I'll know this is fixed when X."
- For code (`code` class):
- Compile / type-check when available (e.g.
python -m compileall). - Run the relevant test or smoke suite.
- If no suitable test exists, author ONE small targeted test.
- Verify the output / exit code matches the expectation.
- For data transformations (`data` class):
- Spot-check 2-3 representative rows before and after.
- Confirm row counts match expected, or explain the delta.
- For factual claims (`info` class):
- Re-check via an independent fresh
read_urlorweb_search. - Never declare certainty from a single source.
- For config / runtime changes (`config` class):
- Boot / health-check the affected service.
- Exercise the one path the change touches.
- Summarize: what was verified, by what command/check, with what
result.
Verification
- The step that would have caught the bug actually ran.
- The exit code / test result / fresh source is cited explicitly.
- "Done" is never claimed based on "it should work" or "looks right".
Failure Signals
- "Done" with no command output or test pass reference.
- Smoke / compileall skipped because "small change".
- Verification ran against stale cached data.
- The user later reports a regression the verification step would have
caught — audit and tighten the check list.
Output Format
When reporting completion, always include a short verified block:
✅ 完成:<一句话结果>验证:- <check 1> → <result>- <check 2> → <result>
If any check failed, DO NOT declare done — go back to systematic-debugging.