evals
scenario-1
scenario-10
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
{
"context": "Evaluates how the solution uses CKEditor 5's Mention plugin to deliver dual-marker feeds, custom rendering, async feed behavior, and command-driven insertion as outlined in the spec. Checks that mention-specific APIs are leveraged instead of ad-hoc implementations.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Plugin setup",
"description": "Includes the Mention plugin (or MentionEditing and MentionUI) in the editor build and configures config.mention.feeds with '@' and '#' markers using the package's marker validation.",
"max_score": 20
},
{
"name": "Feed options",
"description": "Defines per-feed minimumCharacters and dropdownLimit within config.mention.feeds and uses the package's feed callbacks (sync or Promise-returning) so each marker pulls its own items; commitKeys are set via config.mention.commitKeys when applicable.",
"max_score": 20
},
{
"name": "Renderer and text",
"description": "Supplies an itemRenderer in config.mention.feeds (returning string or DOM via MentionDomWrapperView) to render combined name/handle rows, and uses feed item objects with text/metadata so Mention converts selections into mention attributes rather than manual DOM hacks.",
"max_score": 20
},
{
"name": "Async freshness",
"description": "Implements the '#' feed as an async callback that returns a Promise and relies on Mention's built-in stale-response filtering (or tracks the last query) so slower responses do not overwrite newer dropdown results.",
"max_score": 20
},
{
"name": "Command insertion",
"description": "Performs programmatic insertion through the 'mention' command (MentionCommand#execute) with marker-prefixed mention.id and optional text override, letting the command merge existing selection attributes and respect the package's trailing-space handling.",
"max_score": 20
}
]
}