or run

npx @tessl/cli init
Log in

Version

Files

tile.json

rubric.jsonevals/scenario-4/

{
  "context": "Evaluates how well the solution leverages @ice/plugin-icestark's child-app tooling to target host containers, including single-spa/qiankun scenarios. Checks emphasize correct lifecycle wiring, container detection/creation, and propagation of host props into the rendered React tree.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Child config lifecycle",
      "description": "Uses @ice/plugin-icestark's defineChildConfig to export mount/unmount (and optional bootstrap) lifecycle hooks rather than ad-hoc functions.",
      "max_score": 20
    },
    {
      "name": "Single-spa container handling",
      "description": "Within mount, inspects props.singleSpa and props.container, reuses an existing props.container.querySelector('#ice-container') or creates/appends it, and bases rendering on that element.",
      "max_score": 25
    },
    {
      "name": "Container pass-through",
      "description": "Passes the resolved container to the render flow so @ice/plugin-icestark's child runtime (setRender/ReactDOM.createRoot) targets the host element instead of the default root.",
      "max_score": 20
    },
    {
      "name": "Custom props context",
      "description": "For container-based renders, forwards customProps into the React tree via FrameworkContext/Provider or useFrameworkContext from @ice/plugin-icestark.",
      "max_score": 15
    },
    {
      "name": "Qiankun bootstrap",
      "description": "Exports a bootstrap hook compatible with qiankun through defineChildConfig and delegates to any app.icestark.bootstrap logic when provided.",
      "max_score": 10
    },
    {
      "name": "Unmount cleanup",
      "description": "Unmount handler from defineChildConfig invokes the root returned by the plugin entry (or its promise) to unmount/clear the container so remount starts clean.",
      "max_score": 10
    }
  ]
}