Headless rich text editor built on ProseMirror with extensible architecture for building custom editors
94
{
"context": "This criteria evaluates how effectively the engineer uses the @tiptap/core command validation API (can() method) to check command executability without actually executing commands. The focus is on proper usage of editor.can() for validating both mark and node commands.",
"type": "weighted_checklist",
"checklist": [
{
"name": "Uses editor.can() API",
"description": "The implementation uses the editor.can() method to validate command executability, rather than attempting to execute commands or using other validation approaches.",
"max_score": 30
},
{
"name": "Validates mark commands",
"description": "Correctly uses editor.can().toggleMark() or editor.can().setMark() to check if mark-based commands (like bold, italic, code) can be executed.",
"max_score": 20
},
{
"name": "Validates node commands",
"description": "Correctly uses editor.can().setNode() or other node-related can() methods to check if node commands (like heading, blockquote) can be executed with appropriate attributes.",
"max_score": 20
},
{
"name": "Handles command attributes",
"description": "Properly passes attributes (e.g., { level: 1 } for headings) when checking commands that require attributes via the can() API.",
"max_score": 15
},
{
"name": "Returns boolean results",
"description": "The canExecuteCommand function correctly returns the boolean result from editor.can() without additional processing or side effects.",
"max_score": 10
},
{
"name": "Checks multiple commands",
"description": "The evaluateToolbarActions function iterates through multiple actions and uses editor.can() to check each one, returning an array of status objects.",
"max_score": 5
}
]
}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