or run

npx @tessl/cli init
Log in

Version

Files

tile.json

rubric.jsonevals/scenario-5/

{
  "context": "Evaluates how well the solution configures the CKEditor mention feature to provide an asynchronous feed that debounces queries and drops stale responses. Scoring checks whether native mention plugin hooks are used rather than custom logic, ensuring the dropdown always reflects the latest text and fails gracefully. Criteria ignore general coding style and focus solely on correct use of @ckeditor/ckeditor5-mention APIs.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Mention setup",
      "description": "Enables the mention plugin (e.g., includes Mention/MentionEditing/MentionUI) and declares a feed in config.mention.feeds with an '@' marker matching the task scenario.",
      "max_score": 15
    },
    {
      "name": "Async feed API",
      "description": "Implements the feed callback inside config.mention.feeds as an async/Promise-based provider that returns mention item objects, using the provided query text instead of manual DOM parsing or unrelated HTTP helpers.",
      "max_score": 25
    },
    {
      "name": "Built-in debounce",
      "description": "Relies on the mention TextWatcher’s built-in ~100ms debounce (no conflicting custom timers) so rapid typing emits a single feed request after idle, optionally adjusting minimumCharacters or dropdownLimit through mention config instead of ad-hoc logic.",
      "max_score": 20
    },
    {
      "name": "Stale guard",
      "description": "Lets the mention feature discard stale Promise resolutions by updating the dropdown only with the latest query (e.g., by returning fresh Promises per request and not caching or reusing outdated results), ensuring slow responses never overwrite newer ones.",
      "max_score": 25
    },
    {
      "name": "Error fallback",
      "description": "Handles rejected feed Promises with mention UI expectations: errors close the mention dropdown and keep the caret positioned for continued typing (no uncaught rejections or custom overlays overriding mention behavior).",
      "max_score": 15
    }
  ]
}