1. Identify the type of editor operation (format, block, selection, traversal).
2. Determine if Tiptap has a built-in command for the operation.
3. Use `editor.commands.xxx()` for single operations.
4. Use `editor.chain().focus().xxx().run()` for chained operations or when focus is needed.
5. For node traversal, use `doc.resolve(pos)` to get `$pos` helpers.
6. For state queries, use `editor.isActive()` or `editor.getAttributes()`.
7. If Tiptap API is insufficient, use ProseMirror directly for low-level manipulations.