mcpField
D
datocms-setup

datocms-setup

github.com/datocms开发3226 次安装1 周前更新
代码仓库

关于 datocms-setup

DatoCMS Setup 是面向 Agent 的引导式技能,用于在现有或新建站点仓库中配置 DatoCMS。它先检查仓库并提出限定范围的计划,再交由相关 DatoCMS 技能实施。

主要功能

  1. 01只读检查仓库
  2. 02先制定计划的设置流程
  3. 03范围与用户确认控制
  4. 04交接给实施技能
  5. 05新站点设置指引

适用场景

  1. 01规划仓库的 DatoCMS 集成
  2. 02添加预览或内容渲染流程
  3. 03准备架构迁移或内容导入

安装

复制下面的命令,在终端中运行。

$npx skills add https://github.com/datocms/agent-skills --skill datocms-setup

安装后在 Claude Code 中输入/datocms-setup确认已加载。

包含的文件

除 SKILL.md 外,安装时一起下载的参考资料和脚本。

agents/
openai.yaml
references/
project.md
website.md

详细介绍

DatoCMS 设置

引导式设置。此技能负责整个对话:目标、问题、计划、顺序、许可和交接。实现由同级 DatoCMS 技能负责;每个方案都会链接到需要遵循的确切文件和章节。加载这些内容,切勿凭记忆自行发挥。缺少同级技能时 → 请用户安装完整的 datocms/agent-skills 套件。

规则

  • 先制定计划:启动设置的这一轮不得编辑。 只读检查,然后回复计划(或所需的问题)并停止。无论用户对构建内容的说明多么精确(文件、路径、步骤、“保持 X 不变”),这些都只是请求,并不代表可以跳过计划。只有用户明确表示不需要计划(例如“无需确认,直接开始”“跳过计划”),才可在同一轮构建:先说明计划,然后在该范围内继续。否则,须等用户回复同意后再构建。实时更改仍须单独获得批准。
  • 锁定范围。 只构建已达成一致的计划。出现新需求 → 停止,说明情况并询问。
  • 实时更改。 对 DatoCMS 项目(插件、webhook、构建触发器、角色、令牌、搜索索引、迁移运行、环境分叉/提升/销毁、维护模式、导入)或外部服务(部署、抓取)的写入操作,只有用户在计划中或直接明确批准了确切操作和目标后才能执行。否则,将其留作可供审核的代码(迁移、脚本)或仪表板操作步骤。路由和身份验证:datocms-cma 和 datocms-cli;若没有可用路由(MCP 连接或已关联的 CLI),即使用户已批准实时读取或写入,也要将连接仓库列入待办。
  • 询问,不要臆测。 构建前的每次回复都必须以用户需要回答的问题结尾。讨论预期结果;本技能的方案名称、参考文件和步骤编号均为内部信息(仓库自身的文件可以列入计划)。

流程

  1. 检查(只读,静默进行)。 检查 package.json(框架:next、nuxt、@sveltejs/kit、astro;DatoCMS 软件包;datocms CLI)、根据锁文件确定包管理器(pnpm-lock.yaml → pnpm,yarn.lock → yarn,bun.lock/bun.lockb → bun,否则为 npm)、源码布局(src/、Nuxt app/)、环境文件(仅查看名称,绝不输出值)、datocms.config.json 和迁移目录,以及现有 DatoCMS 代码(查询辅助程序、草稿/预览路由、webhook 处理程序、CI 任务)。不要询问仓库中已有答案的问题。
  2. 目标。 没有 package.json 且目标是网站 → 先看下文的 新建网站。请求明确 → 第 3 步。请求不明确(“设置 DatoCMS”)→ 询问用户想要什么:根据仓库情况给出 2–4 个预期结果,每项用一句话说明结果。目标未明确时没有默认选项:等待用户回复。
  3. 方案。 从下表中选择;只阅读方案文件中对应的章节。如果仓库尚未具备某方案的 所需项,就将其列入待办;共享部分只处理一次。
  4. 问题。 只询问检查后仍未解决的 提问项 和用户原话中未明确的内容;合并为一个问题;先给出推荐选项,并说明跳过会有什么影响。跳过的实现问题采用推荐默认值,并记录在交接中。
  5. 制定计划,然后停止。 列出:方案及顺序;要新增或修改的文件;软件包;环境变量;每项对 DatoCMS 或外部服务的更改(单独列出);仍为占位内容的部分。以询问是否继续或需要修改什么来结束本轮。
  6. 构建须在用户同意后进行。按计划顺序执行;遵循各方案的 构建链接;直接在现有代码中修改;将步骤作为待办事项跟踪。
  7. 交接。 只有接入了真实值且已端到端测试结果(网站还须启动并加载真实页面及预览流程,不能只构建)时,才能标记为 production-ready;否则标记为 scaffolded。在 未解决的占位内容 下列出所有未填值(或写“无”)。总结更改内容;在 测试方法 下,根据方案的 验证内容列出 1–3 个具体步骤,并使用真实路由和环境变量名称;以通俗语言提供后续目标选项。

方案

目标方案文件
网站读取 DatoCMS 内容,可选使用类型化查询连接网站website.md
草稿预览、在 DatoCMS 内预览、点击编辑、实时更新预览和可视化编辑website.md
内容变更时刷新已发布页面保持已发布内容最新website.md
渲染来自 DatoCMS 的图像、Structured Text 和视频渲染内容website.md
SEO 标签、规范 URL、robots.txt、站点地图SEO 和爬取website.md
由 DatoCMS Site Search 提供支持的搜索页面站内搜索website.md
已安装 CLI,且代码库已关联到项目连接代码库project.md
类型化 CMA 代码和预览路由映射类型化 CMA 代码project.md
有版本控制的架构变更架构迁移project.md
将架构变更发布到生产环境发布迁移project.md
一个代码库驱动多个 DatoCMS 项目多个项目project.md
DatoCMS 调用其他系统或触发部署Webhook 和构建触发器project.md
从 WordPress 或 Contentful 迁入内容导入project.md

架构设计(模型、字段、区块)由 datocms-content-modeling 决定,并通过迁移或 datocms-cma 实施;设置过程绝不会凭空创建架构。

新网站

尚无应用(没有 package.json),且目标是创建网站,在执行任何方案之前:

  1. 框架未知 → 询问:Next.js、Nuxt、SvelteKit 还是 Astro。

  2. 始终在脚手架方案旁提供官方 starter;新项目推荐使用它。它内置草稿模式、Web Previews、Content Link、实时更新和类型化查询。其 Marketplace 页面会使用 starter 的架构和示例内容创建新的 DatoCMS 项目(也可部署);GitHub 仓库则提供代码。已有自有架构的项目 → 说明 starter 的查询与其不匹配,因此 starter 在这种情况下仅供参考。

    框架GitHubMarketplace
    Next.jshttps://github.com/datocms/nextjs-starter-kithttps://www.datocms.com/marketplace/starters/next-js-starter-kit
    Nuxthttps://github.com/datocms/nuxt-starter-kithttps://www.datocms.com/marketplace/starters/nuxt-starter-kit
    SvelteKithttps://github.com/datocms/sveltekit-starter-kithttps://www.datocms.com/marketplace/starters/sveltekit-starter-kit
    Astrohttps://github.com/datocms/astro-starter-kithttps://www.datocms.com/marketplace/starters/astro-starter-kit
  3. 选择 starter → 引导用户从 Marketplace 页面创建项目(或克隆仓库并关联到据此创建的项目),并填写其环境变量;无需执行方案。

  4. 选择脚手架 → 计划达成一致后,使用框架自带的生成器创建应用,然后继续执行网站方案。

项目

实施工作需要一个 DatoCMS 项目,但尚不清楚是否已有 → 询问(标题“Project”):“你已经有 DatoCMS 项目,还是需要我们创建一个新项目?”选项:关联现有项目(第一项)、创建新项目。两者都不推荐。选择创建 → 用户在 https://dashboard.datocms.com/ 创建项目并确认;然后连接代码库,再进行架构设计,最后执行网站方案。

问题

如果可用且获准使用,请使用运行环境提供的结构化提问工具,并遵循其实际架构和限制:简短标题、每个选项用一句话说明结果,仅在有充分理由时标注 (Recommended),且仅在选项彼此兼容时允许多选。没有工具 → 使用编号纯文本列表。无法提问(非交互式运行)→ 只做不依赖答案的工作,并说明缺少哪些信息。

评论

支持 Markdown