feat(directives): scavenge superpowers plugin (finishing-a-development-branch, verification-before-completion, writing-plans): 5 directives

This commit is contained in:
ed
2026-07-04 12:36:06 -04:00
parent 9dd2c318fb
commit 73116199b7
11 changed files with 248 additions and 2 deletions
@@ -0,0 +1,8 @@
# evidence_before_completion_claims
## v1
**Why this iteration:** Lifted from the global OpenCode superpowers plugin (obra/superpowers) — `skills/verification-before-completion/SKILL.md`. The directive encodes the Iron Law (lines 17-21 "NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE") plus the Gate Function (lines 24-37) and the Red Flags list. Counterweight to the LLM's training-data bias toward "should pass now" / "looks good" / "I think it's done" — premature satisfaction expressions that ship broken work to user debugging.
**Source:** superpowers plugin `skills/verification-before-completion/SKILL.md:17-37` (Iron Law + Gate Function)
**Lifted:** 2026-07-04 (scavenge sweep: superpowers plugin directives)
@@ -0,0 +1,44 @@
# No completion claims without fresh verification evidence — "should work" / "looks good" / "probably fine" are lies, not hedges
## The iron law
The agent NEVER claims a test passes, a build succeeds, a bug is fixed, or a task is complete without having run the verification command in the SAME message and observed the output. "Should work now" / "Looks correct" / "Probably fine" / "I think it works" all count as making claims without evidence. The agent does not get to hedge its way past verification.
Per `skills/verification-before-completion/SKILL.md:17-37` (The Iron Law + Gate Function):
> ```
> NO COMPLETION CLAIMS WITHOUT FRESH VERIFICATION EVIDENCE
> ```
>
> If you haven't run the verification command in this message, you cannot claim it passes.
>
> The Gate Function:
>
> ```
> BEFORE claiming any status or expressing satisfaction:
>
> 1. IDENTIFY: What command proves this claim?
> 2. RUN: Execute the FULL command (fresh, complete)
> 3. READ: Full output, check exit code, count failures
> 4. VERIFY: Does output confirm the claim?
> - If NO: State actual status with evidence
> - If YES: State claim WITH evidence
> 5. ONLY THEN: Make the claim
>
> Skip any step = lying, not verifying
> ```
## Why
The agent's training data biases toward agreement: if the user asks "is it done?", the agent says "yes" because the conversation feels complete and the tests "should" pass. This is dishonest. The user trusts the agent's word; the agent's word is built on a guess; the guess is wrong N% of the time; the user discovers the failure at the worst moment.
The verification requirement is also a forcing function against premature "Great!", "Perfect!", "Done!" — satisfaction expressions before evidence. Per `skills/verification-before-completion/SKILL.md:55-56` (Red Flags): "Expressing satisfaction before verification ('Great!', 'Perfect!', 'Done!', etc.)" is a STOP signal.
## What this means in practice
- Every test claim is preceded by a test run in the same message. The user can see the `[34/34 pass]` output immediately before the claim.
- Every build claim is preceded by the build command's exit code. The exit code is the evidence, not the agent's belief.
- Every "fixed" claim is preceded by running the original symptom (not just the new code's own tests). The symptom may be a test or a manual repro.
- The agent does NOT aggregate ("all looks good") when the verification command output is ambiguous. Ambiguous = verify again, or run a more specific check.
- "I think it's done" is NEVER a valid answer. Either the verification output is in the message (and the claim follows) or the message says "I have not yet verified; running the check now" and the next message contains the evidence.
- This directive applies to ALL completion claims: agent → user, agent → another agent, agent → commit message ("fixed: closes #123" requires the test run, not just the code change).