This documents the right way to work with Tiptap's editor API when building WYSIWYG interfaces, specifically patterns from the vmark project. It helps you decide when to use Tiptap's high-level commands versus dropping down to ProseMirror directly. Most formatting and content operations should go through editor.commands or the chainable API, while conversion layers and custom selections need direct ProseMirror access. The skill includes real gotchas from production code, like how cursorHandlers.ts incorrectly flattens block structure with textContent instead of using $pos helpers. If you're building on Tiptap and keep second-guessing which API layer to use, this will save you from fighting the framework.
npx -y skills add xiaolai/vmark --skill tiptap-editor --agent claude-codeInstalls into .claude/skills of the current project.
Select a file.
juliusbrussee/caveman
mattpocock/skills
shadcn/improve
obra/superpowers
forrestchang/andrej-karpathy-skills
vercel-labs/skills