or run

npx @tessl/cli init
Log in

Version

Files

tile.json

rubric.jsonevals/scenario-6/

{
  "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
    }
  ]
}