Verification Before Completion
Overview
Use this skill to enforce an evidence threshold before claiming "done", "fixed", or "ready to commit". Whenever you are about to express a success state, you must first run the validation corresponding to that conclusion.
Core Principle: No fresh evidence, no claiming success.
Use This Skill
- You are about to say "done", "fixed", or "tests passed".
- You are preparing to commit, create a PR, merge a branch, or finish a task.
- A subagent, script, or automated process claims it has succeeded.
- You need to convert "looks fine" into a verifiable conclusion.
Do Not Use
- You are still in the middle of troubleshooting or implementation, with no conclusion to claim yet.
- The user is only asking for ideas, approaches, or risks, rather than requesting confirmation of results.
- You currently cannot run any validation, and you are just explaining risks or blockers upfront.
Execution Protocol
1. Define What to Prove First
Before expressing a conclusion, ask yourself:
- Am I trying to prove "tests passed" or "build succeeded"?
- To prove "bug is fixed", what is the minimal validation path?
- To prove "requirement met", is there an item-by-item checklist?
2. Run the Corresponding Validation
Validation must map 1:1 to the conclusion:
- "Tests passed" -> Re-run the relevant tests.
- "Build succeeded" -> Re-run the build.
- "Bug fixed" -> Re-run the original reproduction path.
- "Requirement met" -> Verify against the checklist item by item.
- "Subagent is done" -> Check the changes yourself and re-verify the results.
3. Read the Full Results
Do not just look at the last line or the exit code.
Confirm at least:
- Did the command execute completely?
- Is the exit code correct?
- Do the failure, error, and skip counts match expectations?
- Are there hidden exceptions, warnings, or environment issues in the output?
4. Write Conclusion Based on Evidence
- If the evidence supports the conclusion, explicitly state the scope of success.
- If the evidence does not support it, honestly report failure, partial pass, or unverified.
- If you can only verify a part, do not write partial success as overall success.
Common Mappings
| Conclusion |
Acceptable Evidence |
Unacceptable Evidence |
| Tests passed |
Re-ran tests and saw passing results |
Ran them earlier, guess they should pass |
| Build succeeded |
Re-ran build and got exit 0 |
Linter passed, logs look like a success |
| Bug fixed |
Original reproduction path now passes |
Changed code but didn't verify reproduction |
| Ready to commit |
Relevant validations finished with clear results |
"Small change, let's just commit it" |
| Subagent done |
Reviewed diff yourself and re-verified |
Only read the subagent's verbal report |
Trae / Windows Conventions
- In Trae, use
RunCommand, GetDiagnostics, Read, and necessary testing tools to collect evidence.
- Use PowerShell-compatible syntax for Windows host commands; do not execute Unix examples directly as host commands.
- If validation relies on subagents, browsers, external services, or local tools, explicitly state which evidence was actually run and which are just static checks.
- If validation is not complete, do not use vague wording to package it as a success.
Red Lines
- "It should be fine now."
- "Probably no issues."
- "I am very confident."
- Saying "It's done" before validating.
- Announcing overall completion after only partial checks.
- Trusting subagents, scripts, or historical results without re-verifying.
Failure Handling
- Validation failed: Report the real failure information; do not downplay it as "mostly done". If the failure reveals a non-obvious root cause, environment quirk, or configuration issue that future agents may encounter again, invoke
self-improvement to log it as an Experience before moving on.
- Unable to run validation: Explicitly state the blocker, missing dependencies, and the currently unverified scope.
- Only partially verified: Restrict the conclusion to the verified scope.
- External dependency unavailable: Distinguish between "local static checks passed" and "end-to-end unverified".
Output Contract
When wrapping up with this skill, the output must contain at least:
- What was verified.
- What commands or checks were used.
- What the key results were.
- What the boundaries of the conclusion are.
Example:
Re-ran relevant tests and confirmed they passed:
- `npm test -- src/auth/auth.test.ts`
- Result: 12 passing, 0 failing
Therefore, I can only confirm the auth module changes passed this test scope; the full test suite was not re-run.
Integration
test-driven-development: Upstream — handles the red-green loop; this skill handles the evidence check before the final claim.
systematic-debugging: Upstream — handles finding the root cause; this skill confirms the result after fixing.
receiving-code-review: Upstream — re-verify after review fixes are applied.
git-commit: Downstream — finish the validations here before committing; do not reverse the order.
finishing-a-development-branch: Downstream — after verification passes, route to finishing-a-development-branch for wrap-up (merge, PR, keep, or discard). For S (Small) Fast-Path per review-and-completion-gates.md, append wrap-up guidance directly instead of routing to this skill.
requesting-code-review: Downstream — after verification, opt into code review before merging.
usage-log(可选): 当验证结果明显优于"无系统"时的典型表现(如发现了手动验证不会发现的 bug),在 docs/usage-log/USAGE-LOG.md 中追加一条记录以供将来参考。
Bottom Line
Validation is not a rhetorical action; it is an evidence-gathering action.
Run first. Read second. Conclude last.
1---2name: verification-before-completion3description: Use before claiming work is done, fixed, tested, ready to commit, or ready to merge, including Chinese requests such as “确认真的修好了”“提交前再验证一下”“不要没跑就说完成”. Re-run the proving checks and report the real status from exit codes and output. Do not use while work is still exploratory or when no completion claim is being made.4---56# Verification Before Completion78## Overview910Use this skill to enforce an evidence threshold before claiming "done", "fixed", or "ready to commit". Whenever you are about to express a success state, you must first run the validation corresponding to that conclusion.1112**Core Principle:** No fresh evidence, no claiming success.1314## Use This Skill1516- You are about to say "done", "fixed", or "tests passed".17- You are preparing to commit, create a PR, merge a branch, or finish a task.18- A subagent, script, or automated process claims it has succeeded.19- You need to convert "looks fine" into a verifiable conclusion.2021## Do Not Use2223- You are still in the middle of troubleshooting or implementation, with no conclusion to claim yet.24- The user is only asking for ideas, approaches, or risks, rather than requesting confirmation of results.25- You currently cannot run any validation, and you are just explaining risks or blockers upfront.2627## Execution Protocol2829### 1. Define What to Prove First3031Before expressing a conclusion, ask yourself:32- Am I trying to prove "tests passed" or "build succeeded"?33- To prove "bug is fixed", what is the minimal validation path?34- To prove "requirement met", is there an item-by-item checklist?3536### 2. Run the Corresponding Validation3738Validation must map 1:1 to the conclusion:39- "Tests passed" -> Re-run the relevant tests.40- "Build succeeded" -> Re-run the build.41- "Bug fixed" -> Re-run the original reproduction path.42- "Requirement met" -> Verify against the checklist item by item.43- "Subagent is done" -> Check the changes yourself and re-verify the results.4445### 3. Read the Full Results4647Do not just look at the last line or the exit code.48Confirm at least:49- Did the command execute completely?50- Is the exit code correct?51- Do the failure, error, and skip counts match expectations?52- Are there hidden exceptions, warnings, or environment issues in the output?5354### 4. Write Conclusion Based on Evidence5556- If the evidence supports the conclusion, explicitly state the scope of success.57- If the evidence does not support it, honestly report failure, partial pass, or unverified.58- If you can only verify a part, do not write partial success as overall success.5960## Common Mappings6162| Conclusion | Acceptable Evidence | Unacceptable Evidence |63|---|---|---|64| Tests passed | Re-ran tests and saw passing results | Ran them earlier, guess they should pass |65| Build succeeded | Re-ran build and got exit 0 | Linter passed, logs look like a success |66| Bug fixed | Original reproduction path now passes | Changed code but didn't verify reproduction |67| Ready to commit | Relevant validations finished with clear results | "Small change, let's just commit it" |68| Subagent done | Reviewed diff yourself and re-verified | Only read the subagent's verbal report |6970## Trae / Windows Conventions7172- In Trae, use `RunCommand`, `GetDiagnostics`, `Read`, and necessary testing tools to collect evidence.73- Use PowerShell-compatible syntax for Windows host commands; do not execute Unix examples directly as host commands.74- If validation relies on subagents, browsers, external services, or local tools, explicitly state which evidence was actually run and which are just static checks.75- If validation is not complete, do not use vague wording to package it as a success.7677## Red Lines7879- "It should be fine now."80- "Probably no issues."81- "I am very confident."82- Saying "It's done" before validating.83- Announcing overall completion after only partial checks.84- Trusting subagents, scripts, or historical results without re-verifying.8586## Failure Handling8788- **Validation failed**: Report the real failure information; do not downplay it as "mostly done". If the failure reveals a non-obvious root cause, environment quirk, or configuration issue that future agents may encounter again, invoke `self-improvement` to log it as an `Experience` before moving on.89- **Unable to run validation**: Explicitly state the blocker, missing dependencies, and the currently unverified scope.90- **Only partially verified**: Restrict the conclusion to the verified scope.91- **External dependency unavailable**: Distinguish between "local static checks passed" and "end-to-end unverified".9293## Output Contract9495When wrapping up with this skill, the output must contain at least:96- What was verified.97- What commands or checks were used.98- What the key results were.99- What the boundaries of the conclusion are.100101Example:102```text103Re-ran relevant tests and confirmed they passed:104- `npm test -- src/auth/auth.test.ts`105- Result: 12 passing, 0 failing106107Therefore, I can only confirm the auth module changes passed this test scope; the full test suite was not re-run.108```109110## Integration111112- `test-driven-development`: Upstream — handles the red-green loop; this skill handles the evidence check before the final claim.113- `systematic-debugging`: Upstream — handles finding the root cause; this skill confirms the result after fixing.114- `receiving-code-review`: Upstream — re-verify after review fixes are applied.115- `git-commit`: Downstream — finish the validations here before committing; do not reverse the order.116- `finishing-a-development-branch`: Downstream — after verification passes, route to finishing-a-development-branch for wrap-up (merge, PR, keep, or discard). For S (Small) Fast-Path per review-and-completion-gates.md, append wrap-up guidance directly instead of routing to this skill.117- `requesting-code-review`: Downstream — after verification, opt into code review before merging.118- `usage-log`(可选): 当验证结果明显优于"无系统"时的典型表现(如发现了手动验证不会发现的 bug),在 `docs/usage-log/USAGE-LOG.md` 中追加一条记录以供将来参考。119120## Bottom Line121122Validation is not a rhetorical action; it is an evidence-gathering action.123Run first. Read second. Conclude last.