关于 datocms-setup
DatoCMS Setup 是面向 Agent 的引导式技能,用于在现有或新建站点仓库中配置 DatoCMS。它先检查仓库并提出限定范围的计划,再交由相关 DatoCMS 技能实施。
主要功能
- 01只读检查仓库
- 02先制定计划的设置流程
- 03范围与用户确认控制
- 04交接给实施技能
- 05新站点设置指引
适用场景
- 01规划仓库的 DatoCMS 集成
- 02添加预览或内容渲染流程
- 03准备架构迁移或内容导入
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ datocms/ agent-skills --skill datocms-setup安装后在 Claude Code 中输入/datocms-setup确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlreferences/project.mdwebsite.md详细介绍
DatoCMS 设置
引导式设置。此技能负责整个对话:目标、问题、计划、顺序、许可和交接。实现由同级 DatoCMS 技能负责;每个方案都会链接到需要遵循的确切文件和章节。加载这些内容,切勿凭记忆自行发挥。缺少同级技能时 → 请用户安装完整的 datocms/agent-skills 套件。
规则
- 先制定计划:启动设置的这一轮不得编辑。 只读检查,然后回复计划(或所需的问题)并停止。无论用户对构建内容的说明多么精确(文件、路径、步骤、“保持 X 不变”),这些都只是请求,并不代表可以跳过计划。只有用户明确表示不需要计划(例如“无需确认,直接开始”“跳过计划”),才可在同一轮构建:先说明计划,然后在该范围内继续。否则,须等用户回复同意后再构建。实时更改仍须单独获得批准。
- 锁定范围。 只构建已达成一致的计划。出现新需求 → 停止,说明情况并询问。
- 实时更改。 对 DatoCMS 项目(插件、webhook、构建触发器、角色、令牌、搜索索引、迁移运行、环境分叉/提升/销毁、维护模式、导入)或外部服务(部署、抓取)的写入操作,只有用户在计划中或直接明确批准了确切操作和目标后才能执行。否则,将其留作可供审核的代码(迁移、脚本)或仪表板操作步骤。路由和身份验证:datocms-cma 和 datocms-cli;若没有可用路由(MCP 连接或已关联的 CLI),即使用户已批准实时读取或写入,也要将连接仓库列入待办。
- 询问,不要臆测。 构建前的每次回复都必须以用户需要回答的问题结尾。讨论预期结果;本技能的方案名称、参考文件和步骤编号均为内部信息(仓库自身的文件可以列入计划)。
流程
- 检查(只读,静默进行)。 检查
package.json(框架:next、nuxt、@sveltejs/kit、astro;DatoCMS 软件包;datocmsCLI)、根据锁文件确定包管理器(pnpm-lock.yaml→ pnpm,yarn.lock→ yarn,bun.lock/bun.lockb→ bun,否则为 npm)、源码布局(src/、Nuxtapp/)、环境文件(仅查看名称,绝不输出值)、datocms.config.json和迁移目录,以及现有 DatoCMS 代码(查询辅助程序、草稿/预览路由、webhook 处理程序、CI 任务)。不要询问仓库中已有答案的问题。 - 目标。 没有
package.json且目标是网站 → 先看下文的 新建网站。请求明确 → 第 3 步。请求不明确(“设置 DatoCMS”)→ 询问用户想要什么:根据仓库情况给出 2–4 个预期结果,每项用一句话说明结果。目标未明确时没有默认选项:等待用户回复。 - 方案。 从下表中选择;只阅读方案文件中对应的章节。如果仓库尚未具备某方案的 所需项,就将其列入待办;共享部分只处理一次。
- 问题。 只询问检查后仍未解决的 提问项 和用户原话中未明确的内容;合并为一个问题;先给出推荐选项,并说明跳过会有什么影响。跳过的实现问题采用推荐默认值,并记录在交接中。
- 制定计划,然后停止。 列出:方案及顺序;要新增或修改的文件;软件包;环境变量;每项对 DatoCMS 或外部服务的更改(单独列出);仍为占位内容的部分。以询问是否继续或需要修改什么来结束本轮。
- 构建须在用户同意后进行。按计划顺序执行;遵循各方案的 构建链接;直接在现有代码中修改;将步骤作为待办事项跟踪。
- 交接。 只有接入了真实值且已端到端测试结果(网站还须启动并加载真实页面及预览流程,不能只构建)时,才能标记为
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),且目标是创建网站,在执行任何方案之前:
-
框架未知 → 询问:Next.js、Nuxt、SvelteKit 还是 Astro。
-
始终在脚手架方案旁提供官方 starter;新项目推荐使用它。它内置草稿模式、Web Previews、Content Link、实时更新和类型化查询。其 Marketplace 页面会使用 starter 的架构和示例内容创建新的 DatoCMS 项目(也可部署);GitHub 仓库则提供代码。已有自有架构的项目 → 说明 starter 的查询与其不匹配,因此 starter 在这种情况下仅供参考。
-
选择 starter → 引导用户从 Marketplace 页面创建项目(或克隆仓库并关联到据此创建的项目),并填写其环境变量;无需执行方案。
-
选择脚手架 → 计划达成一致后,使用框架自带的生成器创建应用,然后继续执行网站方案。
项目
实施工作需要一个 DatoCMS 项目,但尚不清楚是否已有 → 询问(标题“Project”):“你已经有 DatoCMS 项目,还是需要我们创建一个新项目?”选项:关联现有项目(第一项)、创建新项目。两者都不推荐。选择创建 → 用户在 https://dashboard.datocms.com/ 创建项目并确认;然后连接代码库,再进行架构设计,最后执行网站方案。
问题
如果可用且获准使用,请使用运行环境提供的结构化提问工具,并遵循其实际架构和限制:简短标题、每个选项用一句话说明结果,仅在有充分理由时标注 (Recommended),且仅在选项彼此兼容时允许多选。没有工具 → 使用编号纯文本列表。无法提问(非交互式运行)→ 只做不依赖答案的工作,并说明缺少哪些信息。