Persistent cache implementation for httpx and httpcore following RFC 9111 specification
74
Pending
Does it follow best practices?
Impact
74%
1.48xAverage score across 10 eval scenarios
Pending
The risk profile of this skill
{
"context": "This evaluation criteria assesses the engineer's ability to use the hishel HTTP caching library to implement conditional request generation with If-None-Match and If-Modified-Since headers, along with proper 304 Not Modified response handling.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Storage backend usage",
"description": "Uses hishel's storage backend (AsyncSqliteStorage, SyncSqliteStorage, or BaseStorage) to persist cached responses with their validator headers (ETag, Last-Modified)",
"max_score": 15
},
{
"name": "Cache entry creation",
"description": "Properly creates cache entries using storage.create_entry() or equivalent, storing Request and Response models with validator headers preserved",
"max_score": 15
},
{
"name": "Conditional header injection",
"description": "Uses hishel's automatic conditional request generation to add If-None-Match header when ETag is present in cached response, or If-Modified-Since when Last-Modified is present",
"max_score": 25
},
{
"name": "ETag prioritization",
"description": "Demonstrates understanding that hishel prioritizes ETag over Last-Modified by using If-None-Match when both validators are available (as per RFC 9111 behavior in SpecificationPolicy)",
"max_score": 15
},
{
"name": "304 response handling",
"description": "Uses hishel's state machine or controller logic to handle 304 Not Modified responses, specifically the NeedToBeUpdated state or equivalent that merges new headers into cached response while preserving the original body",
"max_score": 20
},
{
"name": "Cache entry updates",
"description": "Uses storage.update_entry() or equivalent to update cached responses with new validator headers from 304 responses, or storage.create_entry() to replace entire entry on 200 responses",
"max_score": 10
}
]
}docs
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10