gate
Verify before claiming completion.
Trigger
Before claiming: "done", "fixed", "complete", "working", "ready"
Pre-Work Gate (Before Starting)
Run before substantial work begins. Blocks execution if missing.
□ Verification method locked (not "assumption")
→ What type: execution output / observation / measurement?
→ What evidence will you show?
□ At least 2 "must NOT" criteria exist
→ What should this NOT do?
→ What scope should NOT expand?
□ Fit score determined workflow shape
→ <25: BLOCKED - clarify first
→ 25-29: Colleague-shaped (iterate each step)
→ 30-39: Tool-with-review (checkpoint major steps)
→ 40+: Tool-shaped (milestones only)
If any missing: STOP. Complete before proceeding.
Post-Work Gate (Before Claiming Done)
Workflow A: Build
□ Feature executes without errors (show output)
□ Edge cases tested (empty, null, boundary)
□ Rollback tested if Type 2B/1
□ Dependencies verified
Workflow B: Debug
□ Root cause identified with evidence
□ Fix tested and resolves symptom
□ Prevention added (test/automation/guard)
□ Related bugs checked (same class)
Workflow C: Refactor
□ Existing tests pass unchanged
□ Behavior identical (output comparison)
□ Deletion complete (no orphans)
□ No new abstraction without justification
Verification Types
| Type | Description | Sufficient for SHIP? |
|------|-------------|---------------------|
| execution output | Ran command, showed result | ✓ Yes |
| observation | Screenshot, debugger session | ✓ Yes |
| measurement | Metrics, benchmark data | ✓ Yes |
| reasoned inference | Logic-based conclusion | ⚠️ Flag, don't block |
| code review | Inspection only | ⚠️ Weak |
| assumption | Not verified | ⚠️ Flag with warning |
Default: Require execution output, observation, or measurement before completion claims.
Boundary
Gates advise, never prevent. User owns their work.
- If user says "I'm confident" → flag concern, proceed
- If user says "skip gates" → proceed without verification demands
- Never invalidate user's assessment of their own work
Gate exists to surface risk, not to block legitimate intuition.
Verification Plan
Before claiming completion, define how you'll verify:
| Verification Type | Evidence Required | Time Cost | |-------------------|-------------------|-----------| | Execution output | Command output, test results | < 1 min | | Observation | Screenshot, debugger inspection | 1-5 min | | Measurement | Metrics, benchmarks, profiling | 5-15 min | | Code review | Manual inspection only | Variable | | Assumption | No verification | 0 (blocks SHIP) |
Verification Requirements by Stakes
| Stakes | Minimum Verification | |--------|---------------------| | High | Execution output + Observation | | Medium | Execution output | | Low | Code review acceptable |
Anti-Footgun Rules
- Never claim "done" with only assumptions
- "It compiles" is not verification
- "Tests pass" requires showing test output
- If verification would take > 15 min, that's a smell (task too big)
Anti-Patterns
| Claim | Problem | Required | | -------------------------- | --------------- | ------------- | | "Should work" | Speculation | Actual output | | "Looks good" | No verification | Test results | | "Fixed the issue" | No proof | Before/after | | "I think this resolves it" | No confidence % | X-Y% + basis |
Incomplete Work
When blocked, state:
- What's done (with evidence)
- What's blocking (specific)
- What's remaining
Type 2A Exception
Trivial changes (< 1 min rollback): completion allowed without full gate. Document undo command.
Common Rationalizations (All Wrong)
| Thought | Reality | |---------|---------| | "The tests passed" | Tests ≠ verification. Did you run the ACTUAL command? | | "It should work" | "Should" = assumption. Show evidence. | | "I already checked" | When? Show the output. | | "The user is waiting" | Rushed verification = rework later. | | "It's a simple change" | Simple changes break production too. | | "I'm pretty sure it works" | Pretty sure ≠ evidence. Run it. |
微信扫一扫