evals
scenario-1
scenario-10
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
{
"context": "This criteria evaluates how well the engineer uses oboe.js to implement progressive parsing of a streaming JSON product feed. The focus is on proper use of oboe's streaming capabilities to process array elements as they arrive, rather than waiting for the complete response.",
"type": "weighted_checklist",
"checklist": [
{
"name": "oboe() invocation",
"description": "Uses oboe() function to initiate the HTTP request with the provided URL parameter",
"max_score": 15
},
{
"name": ".node() for streaming",
"description": "Uses .node() method to register a callback that processes products progressively as they arrive in the stream",
"max_score": 25
},
{
"name": "JSONPath array pattern",
"description": "Uses appropriate JSONPath pattern (e.g., '!.products.*' or '!.products[*]') to match individual product elements within the products array",
"max_score": 20
},
{
"name": ".done() completion handler",
"description": "Uses .done() method to handle stream completion and call the onComplete callback with the final results",
"max_score": 20
},
{
"name": "Callback integration",
"description": "Correctly invokes the onProduct callback from within the .node() handler, passing each product object as it arrives",
"max_score": 10
},
{
"name": "Method chaining",
"description": "Uses oboe's fluent API by chaining .node() and .done() method calls",
"max_score": 5
},
{
"name": "Return value",
"description": "Returns the oboe stream object to provide access to its abort() method as specified in the API",
"max_score": 5
}
]
}