Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Before building on assumptions, validates them first. Prevents assumption cascades where one wrong guess leads to a completely wrong solution. Use when making claims about how code works, what exists, or diagnosing bugs without evidence.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 20% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 24% | 0% |
| case-06 | ✗→✓ | ▲ Improved | -18% | 0% |
| case-09 | ✗→✓ | ▲ Improved | 21% | 0% |
| case-10 | ✗→✓ | ▲ Improved | 82% | 0% |
Confidently building on assumptions that turn out to be wrong is a common failure mode. "The auth middleware probably checks X" becomes a 50-line solution for a problem that doesn't exist. This skill forces verification of key assumptions before building on them.
Before proposing a solution, list what you're assuming:
markdown## Assumptions 1. [The function X exists and does Y] 2. [The error is caused by Z] 3. [This file is imported by W] 4. [The config value is set to V]
For each assumption, verify it:
| Assumption | Verification | Status | |------------|--------------|--------| | Function X does Y | Read the function | Verified / Wrong | | Error caused by Z | Check error logs | Verified / Wrong | | File imported by W | Grep for imports | Verified / Wrong |
Stop if any key assumption is wrong. Don't patch - reassess.
Existence assumptions:
find, grep, lsBehavior assumptions:
Causation assumptions:
State assumptions:
Wrong assumption: "Auth is handled by middleware"
|
Build solution: "Just call the protected endpoint"
|
Solution fails: "Auth not working"
|
Wrong diagnosis: "Middleware must be misconfigured"
|
Deeper hole: "Let me fix the middleware..."
|
Reality: Auth was in the route handler all alongBreak the cascade early. Verify before building.
When working on non-trivial problems:
markdown## Sanity Check **Key assumptions:** 1. [assumption] - Verified by [how] 2. [assumption] - Verified by [how] 3. [assumption] - NOT verified, checking... **Proceeding with:** [list verified assumptions]
User: "The user signup isn't sending confirmation emails"
Bad approach (assumption cascade): > "The email service probably isn't configured correctly. Let me check > the SMTP settings... Actually, the email template might be wrong... > Let me also check if the queue is processing..."
Good approach (sanity check):
markdown## Sanity Check **Assumptions to verify:** 1. Signup actually triggers email sending 2. Email sending code exists and is called 3. Email service is configured 4. No errors in logs **Verifying #1:** Reading signup handler... Found: `sendConfirmationEmail(user)` on line 45. Verified: signup does call email function. **Verifying #2:** Reading sendConfirmationEmail... Found: it calls `emailService.send()`. But wait - there's a `if (config.emailEnabled)` check on line 12. **Verifying #3:** Checking config... `emailEnabled: false` in development. **Root cause found:** Emails disabled in config, not a bug.
No assumption cascade. Verified each step. Found real cause.
Other measured skills in the registry, with their headline benchmark lift.