docs
evals
scenario-1
scenario-10
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
{
"context": "Evaluates whether the solution relies on jsx-ast-utils to pull literal-only prop values from JSXOpeningElement nodes as required by the spec. Checks that library helpers drive prop lookup, literal interpretation, and filtering of non-literal inputs instead of manual AST handling.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Literal extraction",
"description": "Uses jsx-ast-utils.getLiteralPropValue to derive prop values instead of manually inspecting AST expressions, leveraging its literal-only coercions for primitives.",
"max_score": 30
},
{
"name": "Prop lookup",
"description": "Retrieves attributes via jsx-ast-utils.getProp and/or jsx-ast-utils.propName to honor namespaces, hyphenated names, and JSXOpeningElement structure rather than hardcoded field access.",
"max_score": 20
},
{
"name": "Boolean/null handling",
"description": "Relies on getLiteralPropValue to treat bare boolean attributes as true and to surface explicit null/undefined values without dropping the prop.",
"max_score": 15
},
{
"name": "Non-literal filtering",
"description": "Skips props when getLiteralPropValue returns undefined or null for non-literal inputs (functions, JSX, identifiers, optional chains) instead of passing through raw expressions.",
"max_score": 20
},
{
"name": "Array trimming",
"description": "Uses getLiteralPropValue to collect only literal items from array-valued props and omits the prop entirely when the helper yields no literal entries.",
"max_score": 15
}
]
}