Agent Skills › mvschwarz/openrig › verification-before-completion

verification-before-completion

GitHub

规范在声称工作完成、修复或构建成功前,必须提供基于当前环境的最新验证证据。禁止仅凭推测或旧结果断言状态,确保交付物真实可靠。

skills/_canonical/process/verification-before-completion/SKILL.md mvschwarz/openrig

Trigger Scenarios

准备提交代码或创建PR前 声称Bug已修复或测试通过时 确认构建或Lint检查成功时

Install

npx skills add mvschwarz/openrig --skill verification-before-completion -g -y
More Options

Non-standard path

npx skills add https://github.com/mvschwarz/openrig/tree/main/skills/_canonical/process/verification-before-completion -g -y

Use without installing

npx skills use mvschwarz/openrig@verification-before-completion

指定 Agent (Claude Code)

npx skills add mvschwarz/openrig --skill verification-before-completion -a claude-code -g -y

安装 repo 全部 skill

npx skills add mvschwarz/openrig --all -g -y

预览 repo 内 skill

npx skills add mvschwarz/openrig --list

SKILL.md

Frontmatter
{
    "name": "verification-before-completion",
    "metadata": {
        "openrig": {
            "vendored_from": "Obra Superpowers (https:\/\/github.com\/obra\/superpowers)",
            "divergence_notes": "Retained local copy; SKILL.md differs from the checked upstream revision.\nThis comparison did not refresh the skill body or companion files.\nUpstream license terms are included in LICENSE.txt.",
            "vendoring_pattern": "modify-the-file",
            "last_upstream_check": "2026-10-25 (SKILL.md and license compared at 2ce8aa15d05bd57213e6f746f953aafb7ded7a8b; no content sync)"
        }
    },
    "description": "Use when about to claim work is complete, fixed, or passing, or before committing or creating PRs"
}

Verification Before Completion

Overview

Claiming work is complete without verification is dishonesty, not efficiency.

Core principle: Evidence before claims.

This rule serves shipping — it is not a ritual that outranks it. It governs one thing: claims that a verifiable result holds ("tests pass", "build succeeds", "bug fixed") — have evidence for the result before you assert it, and scale the check to the stakes (a one-line copy tweak is not a test-suite ceremony). Don't dodge it with synonyms; equally, don't inflate it into a tax on the word "done" or a reason to keep re-proving instead of shipping the working thing.

The Rule

Before claiming a verifiable result, inspect evidence that supports that result for the candidate and environment you name. Use an existing result while its relevant inputs and assumptions still hold; rerun the affected check when they change or are uncertain. State whether you ran the check or inspected another owner's evidence. A source read, syntax check or partial test supports only its stated scope. Ordinary progress reports, delegation and moving to another task do not require a new test run. Required project checks still apply.

A completed run is not automatically current, and unchanged source does not establish unchanged live state.

For a claim about performance, also read references/performance-claims.md.

Common Failures

Claim Requires Not Sufficient
Tests pass Test output with 0 failures, for the candidate you name A run on an older candidate, "should pass"
Linter clean Linter output: 0 errors Partial check, extrapolation
Build succeeds Build command: exit 0 Linter passing, logs look good
Bug fixed Test original symptom: passes Code changed, assumed fixed
Regression test works Red-green cycle verified Test passes once
Delivered outcome Relevant artifact and observed result An agent's success message or a diff alone
Requirements met Promised outcomes checked against applicable evidence, gaps named Tests passing

Red Flags - STOP

  • Using "should", "probably", "seems to"
  • Claiming a specific result is proven ("tests pass", "it's fixed", "build's green") without evidence that applies to it — enthusiasm itself is fine; an unverified result claim is the flag
  • About to commit/push/PR without verification
  • Trusting agent success reports
  • Claiming more than a partial check covers
  • Thinking "just this once"
  • Tired and wanting work over

Key Patterns

Tests:

✅ [Run test command, or read the named candidate's CI output] [See: 34/34 pass] "All tests pass"
❌ "Should pass now" / "Looks correct"

Regression tests (TDD Red-Green):

✅ Write → Run (pass) → Revert fix → Run (MUST FAIL) → Restore → Run (pass)
❌ "I've written a regression test" (without red-green verification)

Build:

✅ [Run build] [See: exit 0] "Build passes"
❌ "Linter passed" (linter doesn't check compilation)

Requirements:

✅ Check each promised outcome against applicable evidence → Report gaps or completion
❌ "Tests pass, phase complete"

Agent delegation:

✅ Agent reports success → Inspect the artifact and the evidence it names → Report what was checked and what wasn't
❌ Pass on the report alone

When the check itself lies — content over shape

A passing check is necessary but not sufficient: a check can exit clean and still prove nothing. These are the named ways a green check lies — the failure siblings behind "evidence before claims." (Deeper treatment of what you verify against: reference-first-verification.)

  • Assert on CONTENT, never shape or count. Output that looks like success — a non-zero count, a clean exit, no error text — can carry failure as its content. Before trusting a check, ask what its output looks like when it fails: if failure and success are indistinguishable at a glance, the check proves nothing. ([1 lines] and No matches found both read as "a match" to a line-count.)
  • Compare the returned value to the value you PASSED — never to a description of it. A confident label (evidenceRef NOW SET: printed above the untouched original) is indistinguishable from a verification in a transcript. Diff the actual result against your actual input, not against a claim about it.
  • Find the untested axis. Thorough coverage of ONE axis reads as thorough coverage overall. Ask what every one of your tests shares — a healthy manifest, a default option value, the happy path — and treat that shared assumption as the dimension you never tested.
  • A syntax check proves parseability and nothing else. A clean node --check / lint / parse pass is the covered axis; boot and runtime are the untested one. Parseable ≠ sound.
  • A failure whose shape is a HANG reports nothing. A bare await against a stated deadline that never re-checks cannot fail loudly. Race it against a timer so failure has a shape you can see.
  • A completeness inventory read through a truncating display is worthless. When deciding which occurrences to change, count with grep -c / grep -o / full-line output — never cut, head, or a pager, which can hide a match past the cut. Distinguish "I found N" (a count) from "I saw N" (a display). Audit multiline prose by paragraph, not by line — a line filter both misses long-line matches and false-flags paragraphs whose companion text is on the next line. Then re-audit with a different method than the one that built the inventory — same-method re-checking reproduces the blind spot. (Empty/short output is a claim about your COMMAND until re-proven a second way.)

Version History

  • 4a4fccf Current 2026-11-02 09:18

    简化了核心规则,移除了强制每次消息都重新运行检查的僵化要求,改为根据输入变化判断是否复用证据;增加了重构和性能相关的参考文档链接。

  • dc2221e 2026-10-18 15:37

Same Skill Collection

.agents/skills/developing-openrig/SKILL.md
.claude/skills/developing-openrig/SKILL.md
skills/_canonical/core/agent-starters/SKILL.md
skills/_canonical/core/agent-startup-and-context-ingestion/SKILL.md
skills/_canonical/core/cross-host-rig-commands/SKILL.md
skills/_canonical/core/human-in-the-loop/SKILL.md
skills/_canonical/core/messaging-the-human/SKILL.md
skills/_canonical/core/openrig-architect/SKILL.md
skills/_canonical/core/openrig-cmux/SKILL.md
skills/_canonical/core/openrig-software-factory/SKILL.md
skills/_canonical/core/openrig-upgrade/SKILL.md
skills/_canonical/core/rig-bundles-and-shareable-artifacts/SKILL.md
skills/_canonical/core/session-source-fork/SKILL.md
skills/_canonical/core/specification-system/SKILL.md
skills/_canonical/core/topology-mutation-and-seat-management/SKILL.md
skills/_canonical/core/watchdog/SKILL.md
skills/_canonical/pm/backlog-capture/SKILL.md
skills/_canonical/pm/context-builder/SKILL.md
skills/_canonical/pm/exec-summary/SKILL.md
skills/_canonical/pm/office-hours/SKILL.md
skills/_canonical/pm/plan-review/SKILL.md
skills/_canonical/pm/requirements-writer/SKILL.md
skills/_canonical/pm/ui-mockup/SKILL.md
skills/_canonical/pods/development-team/SKILL.md
skills/_canonical/pods/orchestration-team/SKILL.md
skills/_canonical/pods/review-team/SKILL.md
skills/_canonical/process/agent-browser/SKILL.md
skills/_canonical/process/dogfood/SKILL.md
skills/_canonical/process/frontend-design/SKILL.md
skills/_canonical/process/systematic-debugging/SKILL.md
skills/_canonical/process/test-driven-development/SKILL.md
packages/daemon/assets/skills/rigs/SKILL.md
skills/_canonical/core/openrig-herdr/SKILL.md
skills/_canonical/core/openrig-skills/SKILL.md
skills/_canonical/core/rig-lifecycle/SKILL.md
skills/_canonical/pods/oversight-team/SKILL.md
skills/_canonical/process/context-engineering/SKILL.md
skills/rigs/SKILL.md

Metadata

Files
0
Version
4a4fccf
Hash
6e75f73b
Indexed
2026-10-18 15:37

Главная - Вики-сайт
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-11-02 12:42
浙ICP备14020137号-1