docs
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10
{
"context": "This evaluation assesses how effectively the engineer uses the mixin-deep package to implement deep object merging functionality. The criteria focus on proper usage of mixin-deep's API, understanding of its behavior, and correct handling of immutability requirements.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Uses mixin-deep package",
"description": "The implementation imports and uses the mixin-deep package (via require or import statement) rather than implementing deep merge logic manually.",
"max_score": 20
},
{
"name": "Correct function call",
"description": "Calls mixin-deep with the correct function signature: mixinDeep(target, ...sources). The function is invoked properly with the target as first argument and source objects as subsequent arguments.",
"max_score": 15
},
{
"name": "Empty object target",
"description": "Passes an empty object {} as the first argument to mixinDeep to ensure immutability (avoiding mutation of the defaultConfig parameter).",
"max_score": 25
},
{
"name": "Multiple source handling",
"description": "Correctly passes all configuration objects (defaultConfig and all overrides) as arguments to mixinDeep, ensuring proper merge precedence where later sources override earlier ones.",
"max_score": 20
},
{
"name": "Return value usage",
"description": "Returns the result from mixinDeep directly or stores and returns it appropriately, understanding that mixinDeep returns the merged target object.",
"max_score": 10
},
{
"name": "Proper argument spreading",
"description": "Uses the spread operator or similar mechanism to pass variable-length override arguments to mixinDeep (e.g., mixinDeep({}, defaultConfig, ...overrides)).",
"max_score": 10
}
]
}