Headless rich text editor built on ProseMirror with extensible architecture for building custom editors
94
{
"context": "This evaluation assesses the engineer's ability to use the @tiptap/core extension system with proper priority configuration. The focus is on correct use of Extension.create(), priority property, storage, lifecycle hooks (onUpdate), and command system including command overriding.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Extension.create() usage",
"description": "All three extensions are created using Extension.create() from @tiptap/core with proper name and priority properties configured",
"max_score": 15
},
{
"name": "Priority configuration",
"description": "Extensions have correct priority values: BaseCounter = 100, EnhancedCounter = 200, CountModifier = 300",
"max_score": 15
},
{
"name": "Storage initialization",
"description": "BaseCounter and EnhancedCounter use addStorage() to initialize storage with { count: 0 }",
"max_score": 15
},
{
"name": "onUpdate lifecycle",
"description": "BaseCounter and EnhancedCounter implement onUpdate() hook to increment their respective count values in storage",
"max_score": 15
},
{
"name": "Command definitions",
"description": "BaseCounter defines getCount command, EnhancedCounter defines getEnhancedCount command using addCommands() method",
"max_score": 15
},
{
"name": "Command overriding",
"description": "CountModifier extension overrides the getCount command using addCommands() to multiply the base value by 10, demonstrating priority-based command overriding",
"max_score": 15
},
{
"name": "Editor initialization",
"description": "createPriorityEditor() function creates an Editor instance using new Editor() or Editor constructor with extensions array",
"max_score": 10
}
]
}Install with Tessl CLI
npx tessl i tessl/npm-tiptap--coredocs
evals
scenario-1
scenario-2
scenario-3
scenario-4
scenario-5
scenario-6
scenario-7
scenario-8
scenario-9
scenario-10