Skip to main content

clean-room-verification

This skill should be used whenever findings, audits, code-review results, claims, or analysis output need to be validated before reporting — including "verify this", "double-check this", "audit", "is this actually true", "before I report this", "before we merge this", or whenever an agent's summary needs independent confirmation. ALWAYS use this skill before delivering non-trivial inspection results, before claiming a property holds, and whenever agent-produced hashes, digests, versions, file paths, or flag names appear in a report.

الانتقال إلى التثبيت

معلومات المصدر

المستودع
pulseengine/pulseengine.eu
آخر نشاط في المصدر
٢٦ أغسطس ٢٠٢٦ في ١٨:١٦
لغة SKILL.md المكتشفة
الإنجليزية
النجوم
٠
التفرعات
٠

خيارات التثبيت

يُحدَّد Prompt الذي يراجع المصدر أولًا بشكل افتراضي. يمكنك التبديل إلى أمر مباشر أو تنزيل نسخة محلية.

مراجعة ملفات المصدر

اقرأ SKILL.md وأي ملفات مرافقة يعرضها SkillsMP قبل أن تقرر التثبيت.

عرض SKILL.md

SKILL.md
تعليمات المصدر · معاينة للقراءة فقط
name
clean-room-verification
description
This skill should be used whenever findings, audits, code-review results, claims, or analysis output need to be validated before reporting — including "verify this", "double-check this", "audit", "is this actually true", "before I report this", "before we merge this", or whenever an agent's summary needs independent confirmation. ALWAYS use this skill before delivering non-trivial inspection results, before claiming a property holds, and whenever agent-produced hashes, digests, versions, file paths, or flag names appear in a report.
metadata
{"author":"pulseengine.eu","version":"0.3.0"}
# Clean-room verification ## When this fires Any time you're about to report findings from an investigation, audit, code review, or analysis — *especially* when those findings include claims about behavior, state, version pins, hashes, file paths, flag names, or "everything is green / done." Also fires when reviewing another agent's deliverable: a summary describes intent, not what landed. This is the smithy ritual in PulseEngine vocabulary. The point is to catch hallucinations and over-claims before they ship. ## Procedure 1. **Write the findings as discrete falsifiable claims.** Each one should be specific enough that an independent checker can confirm, refute, or say "cannot verify." Examples of good claims: - "Function `foo::bar` in `crates/foo/src/lib.rs` returns `Result<(), Error>` and propagates errors via `?`." - "The image `docker.io/nixos/nix@sha256:abcdef...` is pullable from a fresh client." - "`rivet check` on this branch reports zero unsatisfied predicates." - "All four Kani harnesses in `wohl-ota` pass with `cargo kani`." Avoid vague claims like "the refactor is clean" or "tests pass" — those aren't checkable. 2. **Spawn a clean-room verification subagent.** Brief it cold — no inherited framing, no access to the original reasoning, no narrative about why the work was done. Give it only: - The list of falsifiable claims. - Whatever read/exec tools it needs to confirm them (Read, Grep, Bash). - An explicit instruction: "Return one of `confirm`, `refute`, or `cannot-verify` per claim. Do not guess. `cannot-verify` is a valid and preferred answer over a guess." 3. **Treat agent-produced artifacts as unverified claims.** Hashes, digests, version pins, file paths, flag names, symbol names — even when produced by a tool that *should* be authoritative — count as claims until checked against the real artifact. The verifier should pull the image, grep the binary, read the file, run the command. **Including the version of the verifier itself** — the one nobody checks. A tool's own build is as much a claim as anything it reports, and it decides what the report *can* say: an older binary may not implement the rule you are relying on, or may flag a type it simply does not know. Record `<tool> --version` (or `varve which <tool>` for the layer + digest) next to the verdict, and note whether it matches CI. Measured: `rivet validate` on one unchanged tree returns **FAIL (exit 1)** under 0.19.0 and **PASS (exit 0)** under 0.32.0. A verdict quoted without its binary is not reproducible, and therefore not evidence. 4. **Reconcile.** Compare the verifier's confirm/refute/cannot-verify against your draft findings: - `refute` → the claim is wrong; rewrite or drop it. - `cannot-verify` → either add the evidence the verifier needs, or downgrade the claim to "this is suspected, not verified." - `confirm` → the claim ships as-is. 5. **Report.** Include the verifier's verdict alongside the claim, so the reader can see what was independently checked vs. what was asserted. ## The rules baked in - **The verifier may say "cannot verify" rather than guess.** A "cannot verify" with evidence beats a guess with confidence. - **An agent's summary describes intent, not what landed.** Check the diff. Check the file. Check the symbol. Check the digest. - **"It passed CI" is a statement about the gate's coverage that day, not a timeless guarantee.** Re-verify on the current artifact, not on the historical green check. - **Evidence-backed "blocked" beats forced "done."** If verification surfaces a real blocker, report the blocker — that's the honest path the user explicitly prefers. - **In a solo-agent-authored repo, this stops being on-demand and becomes a release gate.** Automation can close almost every gap in such a repo except one: **the authoring agent assigning itself `verified` status.** No mutation score, coverage number or green board closes that — it is a structural independence gap, and it is the finding that repeated audits keep returning. The standing expectation: a release's scope gets a fresh-context reviewer who re-derives every claimed verdict from evidence (runs the named tests, re-checks the oracles, attempts to refute), with **reviewer identity, date and outcome recorded on the artifacts** — and the release gate refuses a scope whose independent review is absent or dissenting. Canonical statement: varve's `REQ-INDEP-001`, *"No requirement is verified on the author's word alone"* (approved, v0.14.0). This is the strongest independence achievable without a second human; treat it as the default for any repo where one agent both writes and blesses the work. ## Anti-patterns - Skipping verification because "the agent ran successfully." The agent's exit code is not evidence the claim is true. - Re-using the verifier's *own* prior context to verify its findings. The whole point is clean-room. - **Marking a requirement `verified` on the strength of having implemented it.** Authorship and verification collapsing into one agent is the gap; a stronger mutation score does not fill it. - Burying the verifier's verdict in a footnote. Lead with what was independently confirmed; the rest is suspected. - Verifying with a soft oracle (asking an LLM to read the spec back). See [`oracle-gate-a-change`] — mechanical oracle preferred. ## Where this is referenced from `oracle-gate-a-change` and `pulseengine-feature-loop` both point here for their verify step. The pattern is single-source-of-truth here; if you're inlining the procedure elsewhere, you're duplicating a known dependency.
عرض على GitHub