用途
为 Umbraco 17+ 站点添加一个“单一职责”的 composition:把一组只完成一项功能的字段封装成可复用的组合,放在 Compositions/ 目录中,并应用到需要该功能的文档类型上。典型场景包括 SEO 字段、分享字段、页面详情、可见性等。
主要能力
- 检查现有 compositions,以及所有可能采用新 composition 的类型。
- 确定这一项职责:名称、标签页、分组和字段。
- 决定应用范围:哪些类型采用,哪些类型不得采用。
- 编写 composition、为目标类型各写一条 Update,以及一个 changeset,并进行 lint。
- 在批准关口停下,等待用户批准 changeset。
- 通过 MCP(已连接时)应用,否则按生成的走查步骤手动应用。
- 读回全部内容,设置状态行并报告。
使用方式
流程分为七步:检查、确定职责、确定适用范围、编写并 lint、批准、应用、验证。技能依赖两个必须同时安装的配套技能:umbraco-content-model-conventions 提供规则,umbraco-content-requirements-documentation 提供需求文档格式与六步工作流;若无法读取任一链接,应停止并说明。应用机制有两种:已连接 Umbraco Developer MCP 时通过 MCP 执行,否则依据同一份需求文档生成手动走查。
当被其他技能调用时(例如 umbraco-add-page 在站点尚无 SEO composition 时调用本技能),只执行检查、决定和编写三步:确认无 SEO composition,按标准字段(SEO 标签页上的 metaTitle、metaDescription、isIndexable、canonicalUrlOverride,600)决定,写出其页面、Compositions 文件夹索引(若为新文件夹)以及默认开启的 Toggle 数据类型页(若站点没有默认开启的 toggle)。目标由调用方决定;已有但缺少 SEO 的页面交由调用方作为可选 Update 提供。此时不停止等待批准,也不应用,由调用方持有 changeset 和唯一的批准关口。
适用场景
需要为 Umbraco 文档类型引入一项可复用字段职责,并按“需求先行、批准后应用、读回验证”的方式安全变更内容模型时使用。
限制与注意事项
- 仅面向 Umbraco 17+;MCP 工具名以已连接的工具列表为准。
- composition 保持单一职责、扁平、只含字段。
- 每个带模板的页面类型都必须采用 SEO composition,之后新建的页面在创建时即采用;分享与页面详情按需选择性应用。
- 应用即编辑现有类型:通过整体替换修改,需读入、修改、写回并比较属性数量。
- 若某类型已存在与 composition 别名冲突的属性,则不能采用该 composition;把该字段移入 composition 会删除已存储的值,除非先迁移,此时应停止并说明,绝不能为腾出位置而删除属性。
- “直接加到所有页面”不构成批准;用户仍需在批准关口确认确切的目标列表。
- 验证方面:客观断言位于 evals/evals.json,可用 umbraco-skill-evaluator 运行;覆盖等级为 Documented;本技能不含代码与资源;其需求文档由 umbraco-content-requirements-documentation 中的 linter 检查;没有针对真实站点的运行测试。