Install any skill in seconds. Free to start, no credit card required.
Get Started Free →vellum-ai/document-editor
Use whenever the user wants to write or draft an article, blog post, essay, report, or any long-form content. Creates the content in a rich text editor instead of dumping it in chat, so it can be streamed, reviewed, edited, and exported.
Passed 4 of 12 test cases with the skill, and 2 of 12 without it.
and 2 more in the full report
4 fixed3 passed either way16 still failing0 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 4 test cases the skill fixed. Same model, same prompt, with and without the skill.
Comment cm_42 on document doc_report_7 requests updating the revenue growth in Section 4 from 12% to 15%. What is the correct sequence of actions to address this feedback?
| Checked | Without skill | With skill |
|---|---|---|
| Updates the document content before resolving the comment. | Passed | Passed |
| Calls comment_resolve after the edit is applied. | Missed | Passed |
The instructions your model reads when the skill loads.
Write and edit long-form documents using the built-in rich text editor. Documents open in workspace mode with chat docked to the side. When a request is about writing prose (an article, blog post, report, essay, story, or similar), create it here rather than writing it into the chat response.
surface_id for subsequent updates. This is the entry point for any new piece of writing.surface_id. Supports replace (overwrite) and append (add to end) modes.surface_id when it belongs to the current conversation, or when the current actor is the guardian/local user. Use to verify content before editing.query, lists the current conversation's documents. With query, searches by title; guardian/local users can search across conversations, while other actors are scoped to the current conversation.surface_id. Use this when a document exists but isn't visible in the editor — for example after the user switches devices, refreshes the page, or when the editor panel was closed. Fetches the document from storage and sends it to the client.surface_id. Use to clean up unwanted documents.This is the default path when the user asks you to write something.
document_create with a title (inferred from the request). Call the tool immediately, not after conversational preamble.# for titles, ## for sections), bold, italic, code blocks, tables, lists, blockquotes as appropriate.document_update MULTIPLE times, not just once. Break content into logical chunks (paragraphs, sections, or every 200-300 words). Call document_update with mode: "append" for EACH chunk separately. When you are streaming into the document you just created, surface_id is optional — omit it and pass only content, and the update targets that document. The user experiences real-time content appearing as you write.If a document_update call fails with an Invalid input error, do NOT call document_create again — that produces a duplicate for the user. The most common cause is a missing content field: resend the call with the chunk's Markdown in content. You can omit surface_id to target the document you are currently writing; pass it explicitly only when editing a different existing document.
When the user requests changes to a document:
surface_id from the <active_documents> context block.document_update with the existing surface_id — do NOT call document_create again.document_update with mode: "append" — adding new content to the end.document_update with mode: "replace" — ONLY for full rewrites where the majority of the document is changing.document_find + document_replace_text — for everything else. Fixing typos, renaming terms, swapping sections, reordering content, adjusting formatting, or any edit that touches only part of the document. This is the default choice for edits. It avoids rewriting the entire document and eliminates the risk of accidentally dropping content.document_update with mode: "replace" for targeted edits. Rewriting the entire document to change a few words or rearrange sections is wasteful and error-prone.When the user asks to see, open, or pull up a document:
test cases passed, vs 2 / 12 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.