or run

npx @tessl/cli init
Log in

Version

Files

tile.json

rubric.jsonevals/scenario-7/

{
  "context": "Evaluates whether the child entry uses @ice/plugin-icestark's basename rewrites, lifecycle registration, and container safeguards to mount safely inside or outside a host. Focuses on host interoperability rather than general React quality.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Lifecycle wiring",
      "description": "Exposes mount/unmount (and optional bootstrap) through @ice/plugin-icestark's defineChildConfig so hosts receive the expected lifecycle object instead of ad-hoc exports.",
      "max_score": 20
    },
    {
      "name": "Basename bridge",
      "description": "Derives the rendered basename from window.ICESTARK?.basename or mount props rather than a hardcoded string, passing it into the icestark child render flow before React mounts.",
      "max_score": 25
    },
    {
      "name": "single-spa container",
      "description": "When props.singleSpa is set, uses the icestark child safeguard of creating or selecting a #ice-container inside props.container before calling render, mirroring the package's container adaptation logic.",
      "max_score": 20
    },
    {
      "name": "Remount guard",
      "description": "Caches the React root (or window.ICESTARK.root) so repeated script execution or multiple mount calls avoid creating a new root when one already exists.",
      "max_score": 20
    },
    {
      "name": "Custom props context",
      "description": "Wraps the rendered tree with FrameworkContext.Provider using the customProps provided by the host container when rendering into a container-driven root.",
      "max_score": 15
    }
  ]
}