or run

npx @tessl/cli init
Log in

Version

Files

tile.json

rubric.jsonevals/scenario-5/

{
  "context": "Evaluates whether the solution leans on jsx-ast-utils to read JSXAttribute names and reconstruct prop values, especially for arrays/objects with spreads plus bind and new expressions. Scores focus purely on correct, idiomatic use of the package's extraction helpers rather than custom AST walking or stylistic concerns.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Attribute naming",
      "description": "Uses jsx-ast-utils propName (or equivalent helper from the package) to derive each PropShape.name instead of manually piecing identifiers together.",
      "max_score": 15
    },
    {
      "name": "Value extraction",
      "description": "Applies getPropValue to resolve JSXAttribute values rather than reimplementing expression evaluation logic.",
      "max_score": 30
    },
    {
      "name": "Spread handling",
      "description": "Relies on getPropValue's reconstruction so spread identifiers in objects collapse to empty objects and array spreads become undefined slots, matching library semantics for unresolved spreads.",
      "max_score": 25
    },
    {
      "name": "Bind expressions",
      "description": "Uses getPropValue's bind expression support so constructs like ::this.handleClick or foo::bar yield the package's bind-call string output.",
      "max_score": 15
    },
    {
      "name": "New expressions",
      "description": "Normalizes new expressions through getPropValue to the library's {} representation while preserving surrounding literal values, avoiding custom placeholders.",
      "max_score": 15
    }
  ]
}