or run

npx @tessl/cli init
Log in

Version

Files

tile.json

rubric.jsonevals/scenario-10/

{
  "context": "Evaluates how well the solution uses @ice/plugin-icestark's framework runtime data to drive telemetry from a host layout. Focus is on consuming routeInfo plus appEnter/appLeave objects emitted by AppRouter and turning them into the specified payloads without manual routing workarounds.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "RouteInfo telemetry",
      "description": "Telemetry payloads are built directly from the routeInfo object supplied by @ice/plugin-icestark AppRouter layout props (pathname and matched app name) and fire once per change instead of computing location independently.",
      "max_score": 25
    },
    {
      "name": "App enter hook",
      "description": "Uses the icestark-provided appEnter data (from AppRouter layout props) to emit an enter payload before rendering children, including app name/path/timestamp, and ignores duplicate appEnter snapshots.",
      "max_score": 25
    },
    {
      "name": "App leave hook",
      "description": "Listens for appLeave data from AppRouter layout props and emits a leave payload after unmount with app name/path/timestamp derived from that object.",
      "max_score": 20
    },
    {
      "name": "Deduping logic",
      "description": "Implements guards keyed by icestark routeInfo/appEnter/appLeave values so identical telemetry is not sent multiple times across rerenders.",
      "max_score": 15
    },
    {
      "name": "Route sharing",
      "description": "The useLatestRoute hook surfaces the latest icestark routeInfo from the layout without manual URL parsing, keeping nested consumers in sync with AppRouter updates.",
      "max_score": 15
    }
  ]
}