Loading...
Loading...
Before building on assumptions, validates them first. Activates when making claims about how code works, what exists, or why something happens. Prevents assumption cascades where one wrong guess leads to a completely wrong solution.
npx skill4agent add elliotjlt/claude-skill-potions sanity-check## 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]| 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 |
findgreplsWrong 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 along## Sanity Check
**Key assumptions:**
1. [assumption] → Verified by [how]
2. [assumption] → Verified by [how]
3. [assumption] → ⚠️ NOT verified, checking...
**Proceeding with:** [list verified assumptions]"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..."
## 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.