用途:构建、脚手架、维护或重设基于 datocms-plugin-sdk 与 datocms-react-ui 的 DatoCMS 插件。适用于用户要求创建新插件、修补或维护现有插件、发布准备、重设样式等场景。
主要能力:先静默检查 package.json、包管理器、脚本、插件元数据、已安装 SDK/UI 版本、顶层 connect() 调用、相关钩子对与渲染组件、CSS 及插件本地 AGENTS.md;再将请求分类为现有插件、新插件、设计调整或混合;按需加载对应参考文档(如 sdk-connect-and-frames、permissions、config-screen、field-extensions、sidebar-panels、custom-pages、dropdown-actions、lifecycle-hooks、modals、outlets、inspectors、asset-sources、upload-sidebars、structured-text、record-presentation 及设计类参考)。
使用方式:默认就地修补,保留现有文件布局、包管理器、脚本、命名与 UI 结构;成对更新钩子(声明与渲染、触发与模态、下拉声明与执行处理器);同一补丁内更新权限与包元数据;仅在实现导入时添加依赖。用插件现有命令验证,优先构建脚本,仅在项目已定义且覆盖改动时补充 typecheck、lint 或测试。报告补丁、命令结果与剩余 DatoCMS 检查项。
限制与护栏:保持恰好一个顶层 connect() 调用;在入口文件导入一次 datocms-react-ui/styles.css 并保留 src/vite-env.d.ts;每个渲染表面用 <Canvas ctx={ctx}> 包裹,页面、检查器与全宽侧边栏用 noAutoResizer;ID 分发的渲染钩子用 switch;SDK 类型用 import type;读取已保存记录前先守卫 ctx.item;字段扩展用 get(ctx.formValues, ctx.fieldPath);模态参数与 resolve 值需可 JSON 序列化;优先 SDK 助手而非浏览器 CMA 调用,必要时用 @datocms/cma-client-browser 并守卫 ctx.currentUserAccessToken。Modular Content 在 FieldType 与 API 中为 rich_text,不要为其创建编辑器字段扩展。DAST 相关工作转交 datocms-structured-text,网站预览与前端集成转交 datocms-frontend-integrations,内容建模转交 datocms-content-modeling,内容交付 GraphQL 转交 datocms-cda。