Every external call needs a timeout, every timeout needs a fallback — resilience patterns for HTTP, databases, and third-party services
88
90%
Does it follow best practices?
Impact
85%
4.72xAverage score across 5 eval scenarios
Passed
No known issues
{
"context": "Tests whether the agent proactively applies graceful degradation when building a content feed that depends on four internal services with different criticality levels. The task mentions which services are critical vs supplementary as a business fact, but says nothing about timeouts, fallbacks, retries, or circuit breakers. The agent should add all resilience patterns on its own.",
"type": "weighted_checklist",
"checklist": [
{
"name": "timeouts-on-all-service-calls",
"description": "Every HTTP request to social graph, posts, ads, and notifications services includes an explicit timeout (AbortSignal.timeout, axios timeout, or equivalent). No bare fetch() calls.",
"max_score": 15
},
{
"name": "critical-vs-supplementary-handling",
"description": "Social graph and posts services are treated as critical -- their failure results in an error response or empty feed with a clear message. Ads and notifications are treated as supplementary -- their failure results in graceful omission (no ads in feed, notification count defaults to 0 or null).",
"max_score": 15
},
{
"name": "supplementary-fetched-independently",
"description": "Ads and notifications are fetched independently from each other and from the critical path. One supplementary service failing does not block other supplementary services. Uses Promise.allSettled() or individual try/catch.",
"max_score": 12
},
{
"name": "fallback-for-ads-service",
"description": "When the ads service fails, the feed is returned without sponsored content (empty ads or no ad items interspersed). The user still gets their content feed.",
"max_score": 10
},
{
"name": "fallback-for-notifications",
"description": "When the notification badge service fails, unreadNotifications defaults to 0 or null rather than failing the entire response.",
"max_score": 8
},
{
"name": "retry-critical-services",
"description": "The social graph or posts service (critical dependencies) includes retry logic with exponential backoff for transient errors, since their failure means no feed at all.",
"max_score": 12
},
{
"name": "structured-failure-logging",
"description": "Caught dependency failures are logged with structured context: service name, error details, userId, and which fallback was used. Not just console.log(err).",
"max_score": 10
},
{
"name": "circuit-breaker-implemented",
"description": "A circuit breaker is implemented for at least one service, tracking consecutive failures and short-circuiting to fallback after a threshold.",
"max_score": 8
},
{
"name": "warnings-in-response",
"description": "The response includes a warnings or metadata field indicating which supplementary services were unavailable, so the client can adjust the UI.",
"max_score": 10
}
]
}