Loading...
Loading...
Mandatory incident fix verification with observables. Invoke after: applying production fixes, before declaring incidents resolved, when someone says 'I think that fixed it'. Requires log entries, metric changes, and database state confirmation.
npx skill4agent add phrazzld/claude-config verify-fixSUCCESS CRITERIA:
- [ ] Log entry: "[specific log message]"
- [ ] Metric change: [metric] goes from [X] to [Y]
- [ ] Database state: [field] = [expected value]
- [ ] API response: [endpoint] returns [expected response]# For webhook issues:
stripe events resend [event_id] --webhook-endpoint [endpoint_id]
# For API issues:
curl -X POST [endpoint] -d '[test payload]'
# For auth issues:
# Log in as test user, perform action# Watch logs in real-time
vercel logs [app] --json | grep [pattern]
# Or for Convex:
npx convex logs --prod | grep [pattern]
# Check metrics
stripe events retrieve [event_id] | jq '.pending_webhooks'# Check the affected record
npx convex run --prod [query] '{"id": "[affected_id]"}'VERIFICATION EVIDENCE:
- Timestamp: [when]
- Test performed: [what we did]
- Log entry observed: [paste relevant log]
- Metric before: [value]
- Metric after: [value]
- Database state confirmed: [yes/no]
VERDICT: [VERIFIED / NOT VERIFIED]# 1. Resend the failing event
stripe events resend evt_xxx --webhook-endpoint we_xxx
# 2. Watch logs (expect to see "Webhook received")
timeout 15 vercel logs app --json | grep webhook
# 3. Check delivery metric (expect decrease)
stripe events retrieve evt_xxx | jq '.pending_webhooks'
# Before: 4, After: 3 = DELIVERY SUCCEEDED
# 4. Check database state
npx convex run --prod users/queries:getUserByClerkId '{"clerkId": "user_xxx"}'
# Expect: subscriptionStatus = "active"
# VERDICT: VERIFIED - all 4 checks passed