- Find the
wordcraft-editorservice from the tool list of the currently loaded plugin. Callopen_editorwith the absolute path of this task's workspace, passingworkspaceon the first call; relative file paths can be handed to the specific open tool once the editor is ready. - Present
ui://wordcraft/panel.htmlwhen the host supports native MCP Apps. A text-only tool result does not mean the interface has been opened. - When Codex does not automatically present the panel, call
open_browser_editorand hand the returnededitorUrlto the host's built-in browser opening capability. On Codex Desktop you can callopen_in_codexwith target set to browser and url set to the actual return value. Do not guess local page paths as fixed ports. - Open only one editor page per instance. Call
editor_statusand execute only afterattachedorreadyis true; if loading fails, handle the page error first. - Use the same service for all editing in this round. The native CLI and the Web editor are not the same in-memory document; before switching, you must save and explicitly reopen.
Manage documents with open_document/new_document; verify with get_text, enter text with type_text, use other editing tools per the live tool list; save with save_document, and check layout with render_page.
If the host only supports MCP, tool-calling capability and the embedded UI are two different things. You can use the same editorUrl in an external browser, but you must clearly state that this is not host-embedded acceptance.
When the development candidate is missing ui/dist/adapter.mjs , it must first be built per plugin ui/README.md . Do not guess paths from arbitrary caches, and do not bypass validation. This skill installed on its own does not include the editor service; you need to install the companion plugin or configure its MCP backend.
If the tool is not registered, once you have the plugin's actual directory you can run node ui/dist/adapter.mjs --servein the project terminal, specifying this task's workspace via the environment variable CRAFT_WORKSPACE_ROOT . Keep that process alive; this mode can display the UI, but automation must still connect to the corresponding MCP instance and must not start another backend and claim a shared session.
When done, save the project and reopen it for verification; read the actual exported file. Browser storage, preview screenshots, and submitted render tasks do not equal workspace delivery.