关于 designcraft
通过桌面控制、CLI 或 MCP 接口操作 DesignCraft 的技能。它指导 Agent 检查和编辑文档、保留可编辑布局,并验证保存与导出结果。
主要功能
- 01发现可用工具与会话
- 02检查文档和界面状态
- 03编辑文本、框架、样式和图像
- 04运行脚本与数据合并
- 05保存、导出并检查页面渲染
适用场景
- 01编辑正在运行的应用中的文档
- 02在无界面会话中处理文件
- 03将数据合并到新文档
- 04交付前检查页面布局
MCP 相关
该技能可使用 DesignCraft MCP 工具进行文档检查、编辑、批处理、渲染和文件操作;如有可用连接,建议优先使用 MCP 服务。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mroxso/ artcraft-skills --skill designcraft安装后在 Claude Code 中输入/designcraft确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlreferences/control-protocol.mdLICENSE-MIT详细介绍
DesignCraft
通过其结构化自动化接口操作 DesignCraft,同时保留可编辑布局和用户选择的文档。
参考资料
在构造桌面请求前,请阅读 references/control-protocol.md。该文件是未经修改的上游快照,于 2026-11-02 下载。
来源:DesignCraft 控制协议。该文档依据随附的 MIT 许可证分发。快照中的相对链接均以 https://github.com/storytold/designcraft/blob/main/docs/ 为基准解析。
有关工具架构、会话模式和坐标,请参阅上游 MCP 文档。有关 CLI 脚本语法、结果引用和数据合并,请参阅 Agent 指南。如果已安装命令的参数与快照不同,请查询其参数;不要借用其他 ArtCraft 应用的标志或架构。
选择会话
首先查找可用的 DesignCraft 工具、可执行文件和现有会话。若有已连接的 MCP 服务,请优先使用。
- 若要编辑用户正在运行的应用,请使用桌面控制,或使用
designcraft-cli mcp --connect PORT(也接受HOST:PORT)。 - 若要独立处理文件,
designcraft-cli mcp会启动一个进程内无头引擎,并创建一个空白 Letter 文档。编辑前请打开目标文件。此模式不会更改用户的实时窗口。 - CLI 脚本可以处理文件,也可以连接到正在运行的应用。选择参数前,请检查
designcraft-cli --help和相关子命令。
使用 designcraft --control <port> 或 DESIGNCRAFT_CONTROL_PORT 启动所需的桌面控制会话;7979 是上游示例端口,并非必需端口。尽可能重用现有会话。服务器绑定到回环地址,且没有身份验证;仅在使用期间启用它。如果应用或连接不可用,请报告缺少的前提条件。此技能不会安装 DesignCraft 或配置 MCP 服务。
控制传输和发现
桌面控制通道使用原始 TCP 和 UTF-8 JSON 行,而非 HTTP 或 MCP JSON-RPC。每行发送一个请求,每个请求读取一条回复,使用唯一 ID,并在执行依赖操作前检查 ok:
{"id":1,"method":"document.inspect"}
{"id":2,"method":"ui.inspect"}
{"id":3,"method":"engine.commands"}
engine.execute 接受 {command, params};通过 engine.commands 发现命令 ID、参数和启用状态。使用 MCP 时,请使用 list_commands 和 execute,或先检查专用工具的架构再使用。MCP 故障可能以 isError: true 的工具结果形式返回。
格式错误的行会关闭 TCP 连接;请求不得超过 4 MiB,且服务器最多允许 16 个并发连接。收到错误回复后请重新连接。如果某项修改未收到回复或发生超时,请先检查生成的文档,再决定是否重试。若无法确定操作是否已执行,请停止并报告不确定性;重复创建或合并可能导致工作重复。
布局和文本编辑
在定位编辑目标前,检查页面、跨页、项目 ID 和边界、文本串、溢出文本、样式、色板、图层及所选内容。MCP 提供 inspect_document 和 get_story;桌面端提供 document.inspect。当焦点、工具或对话框会影响操作时,需单独检查 UI 状态。
对于精确的文本框、文本、样式和图像放置,优先使用引擎命令或专用 MCP 工具。后续编辑使用实际返回的项目 ID 和文本串 ID;如果命令依赖选区,则先建立选区或文本范围。set_story_text 会替换文本串中的文本;仅在预期结果是完整替换后的文本时使用它,不要将其用于部分插入。若符合所需布局,请保留文本串链接和可编辑样式。
坐标单位为点(1/72 英寸),y 轴向下递增,坐标采用跨页空间。在对页跨页中,右页从 x = 页面宽度处开始;请检查页面边界,不要假设每页都从零开始。MCP render_page 和 export_png 使用从零开始的页面索引。在解释文本框的 rect 或其他几何数组前,先检查命令参数。
使用工具手势时,请明确选择当前工具。桌面端 ui.pointer 支持显式指定 space: "canvas" 或 "screen";进行屏幕交互前,先检查缩放比例、原点和画布矩形。MCP 已连接模式下的 pointer 也支持屏幕坐标。键盘和文本输入取决于插入点或当前焦点字段;需要确定性定位时,优先使用文本串或引擎编辑。
使用 ui.menu.list 和 ui.menu.invoke 操作菜单。调用带参数的菜单命令时若未提供参数,可能会打开对话框,而不是执行编辑。检查对话框,使用 ui.dialog.set 填写文档说明的字段,然后确认或取消。不要假设调用菜单命令后文档更改已完成。
脚本和数据合并
对于包含多条命令的 CLI 任务,请先阅读 Agent 指南。脚本接受命令行、JSON 行或 {command, params} 数组。"$0.story" 和 "$last.id" 等结果引用可让后续步骤定位先前结果。MCP batch 支持命令或脚本文本,并会在遇到第一个错误时停止。继续操作前请检查 failedIndex 和部分结果;不要盲目重放已部分执行的整个批处理。
对于数据合并,请先了解 data.source.select、data.fields、data.placeholder.add、data.options、data.preview、data.preview.stop 和 data.merge。添加占位符前先检查源字段,并预览有代表性的记录,以检查文本溢出和图像适配情况。data.merge 会创建并激活新文档,同时保留模板不变;请将合并后的文档保存到预期输出路径。已弃用的 spread 合并参数会导致错误。
保存、导出和验证
使用桌面端 app.open、app.save 和 app.export,或使用 MCP 的 open_document / save_document 操作原生 .designcraft 文件,并使用已安装的导出命令。请先了解特定格式的参数,不要猜测文件操作的参数结构。适当情况下,保存可编辑的原生文档,并单独导出所需的交付格式。
检查生成的文档结构和溢出文本,然后使用 ui.render 或 MCP render_page 渲染相关页面并查看图像。检查页边距、出血、文本流、裁切和图像位置。窗口截图显示 UI 状态;页面渲染显示图稿,即使没有呈现窗口也可使用。MCP 窗口工具需要连接模式。参考文档还介绍了源代码树中的 ui_shot 示例,可在需要时用于离屏捕获整个窗口。
确认保存和导出均已成功,并检查实际输出文件是否存在且可读取,然后再报告完成情况。返回保存路径,并说明任何重要的布局或导出问题。