关于 dx-lifecycle-center
用于管理 DX Inspector 部署目标并在 Salesforce 组织间部署元数据的技能。它可列出或连接组织、管理 Lifecycle Center 组织,并执行验证、部署和快速部署;修改组织前需确认。
主要功能
- 01列出并解析已连接组织
- 02连接或修复部署目标
- 03管理 Lifecycle Center 组织连接
- 04部署、验证或快速部署组件
- 05轮询部署状态并报告结果
适用场景
- 01查看可用的部署目标
- 02连接新的沙盒或生产组织
- 03将源组织组件部署到目标组织
- 04检查正在运行的部署状态
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ forcedotcom/ sf-skills --skill dx-lifecycle-center安装后在 Claude Code 中输入/dx-lifecycle-center确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
examples/workflows.mdreferences/connect-api.mdconnect-org.mddeploy.mderror-handling.mdhub-org.mdlist-orgs.mdrequest-body.mdtroubleshooting.mdscripts/poll-deploy-status.shresolve-environment.sh详细介绍
Lifecycle Center:连接组织并部署元数据
此技能用于管理用户可部署到哪些组织,以及执行部署。所有操作都在源组织中进行:即用户进行构建的组织,也是 DX Inspector 运行所在的组织。所有连接和环境都存储在该组织中。
操作
| 操作 | 名称 | 功能 | 详情 |
|---|---|---|---|
| A | 列出组织 | 显示已连接到 DX Inspector 的组织(部署目标),或当前组织的详情。也会解析用户指定的目标。 | references/list-orgs.md |
| B | 连接组织 | 将新的 sandbox、scratch、生产环境或 OrgFarm 组织连接为部署目标,或修复未完成的连接。用户通过链接登录。 | references/connect-org.md |
| C | Lifecycle Center 组织 | 连接、修复或检查 Lifecycle Center 组织(凭据 ALMDevOpsCenterHub)。 | references/hub-org.md |
| D | 部署 | 将组件从源组织部署到已连接的目标,或执行验证、快速部署,然后持续轮询直到完成。 | references/deploy.md |
连接(B)以及部署或快速部署(D)会更改组织,因此需要先等待用户确认。列出组织、检查状态、运行验证和轮询都不会更改目标组织。
关键术语
| 术语 | 含义 |
|---|---|
| 源组织 | 用户进行构建的组织。使用用户指定的别名,否则使用 sf org display --json 返回的默认组织。组件必须已存在于该组织中。 |
| DX Inspector 环境 | 源组织中包含 Named Credential 的 DevopsEnvironment 记录。部署目标仅包括这些记录。 |
| 部署目标 | 状态为 selectable 的环境。expired 或 unauthenticated 环境不是目标。 |
| Lifecycle Center 组织 | Lifecycle Center 中心。这是单独的连接,绝不会作为部署目标。 |
路由(确定性)
脚本和参考资料的路径都位于此技能的文件夹内(即存放本文件的文件夹)。此技能负责处理以下所有请求。按以下规则依次选择操作;匹配的第一条规则优先。不要将这些请求交给其他技能,也不要依据一般知识回答。
| # | 请求 | 操作 |
|---|---|---|
| 1 | 在任何请求中提及 Lifecycle Center 组织,无论拼写方式如何:"Lifecycle Center"、"lifecyclecenter"、"lifecycle-center"、"lifecycle_center"(匹配规则见 references/hub-org.md) | C |
| 2 | 将组件部署、验证、快速部署或推送到某个组织、URL、组织 ID、别名或环境名称;或提供 requestId 或验证 ID | D |
| 3 | 显示、列出或选择已连接的组织或环境;"我可以部署到哪些组织";当前组织的详情 | A |
| 4 | 连接、添加、登录、重新连接或修复组织或其凭据 | B |
| 5 | 其他与已连接组织或 DX Inspector 环境相关的请求 | A |
Lifecycle Center 组织规则(1)有两个例外:"Dev Hub" 绝不是 Lifecycle Center 组织;"DevOps Center orgs"、"DX Inspector orgs"、"environments" 或 "orgs connected to DX Inspector" 等复数短语也不属于 Lifecycle Center 组织;应按规则 2 至 5 路由。详情见:references/hub-org.md。
解读措辞。 应用规则前,先规范化请求:转换为小写,将连字符、下划线和多余空格视为单个空格,并忽略标点、五个或更多字母的单词中的单字母拼写错误,以及 "please"、"can you"、"I want to" 等填充词。(规则 1 还使用 references/hub-org.md 中描述的两种形式。)然后根据下方各组中的任意词语进行匹配;无需完全匹配短语。
| 操作 | 动作词(任意形式,例如“deploy”“deploying”“deployment”) | 对象词 |
|---|---|---|
| D | deploy、deployment、validate、validation、check only、dry run、quick deploy、quickdeploy、push、send、ship、move、copy、release、add 或 install(当对象是组件时) | components、metadata、classes、flows、objects,或作为目标的命名 org(带有“to”“into”“onto”) |
| B | connect、connection、add、link、hook up、hookup、authorize、authenticate、log in、login、sign in、set up、setup、register、onboard、reconnect、repair、fix、refresh | org、environment、env、sandbox、scratch、production、prod、orgfarm、org farm |
| A | show、list、see、view、display、which、what、pick、choose、available | orgs、environments、envs、targets、connections、“where can I deploy” |
包含 D 动作词和目标的请求,或无论使用什么动词,只要提到组件和目标的请求(“add AccountService to my QA sandbox”),都属于 D,即使请求中也包含 B 词语。对象是 org 或 environment 的 B 动作词会使请求归为 B,即使出现“connected”或“linked”等词语(“reconnect my sandbox, it shows not connected”)。只包含 B 词语的请求属于 B。只包含 A 词语的请求,或询问已连接内容的请求,属于 A。单独出现的 requestId 或“status of my deploy”属于 D。如果没有匹配的分组,请使用下面的模糊提示词表。
混合了多项任务的请求(例如“connect my sandbox and deploy AccountService to it”)采用编号最低的匹配项,本例中为 D;如果目标尚未连接,D 会自行运行 B。
模糊提示词。 如果消息只有“deploy”“push my changes”“connect an org”或类似内容,不要猜测,也不要调用任何 API。只问一个问题,以确定第一个缺失的输入:
| 意图 | 按以下顺序提问 |
|---|---|
| 部署 | 1. 哪些组件?(references/deploy.md,第 1 步) 2. 哪个目标 org? |
| 连接 | 1. “这是 sandbox 或 scratch org、production org,还是 OrgFarm org?” 2. 环境的短名称应是什么(仅限字母)? |
| 不清楚是哪种 | “你想连接 org,还是部署组件?” |
如果没有 DX Inspector 上下文,单独出现的“deploy”是一个问题,而不是部署请求。
始终适用的规则
- 目标取自源 org 中的 DX Inspector 环境,绝不使用
sf org list或本地别名。 - 绝不部署到不可
selectable的目标、源 org 或 Lifecycle Center org。 - Lifecycle Center org 绝不会出现在列表中,列出内容时也不提及它。只有用户询问时才讨论它。
- 每次调用更改 org 前都要确认:连接(
connect-org.md,第 1 步)和部署(deploy.md,第 4 步)。只有validate模式无需确认。 - 如果连接是从部署流程发起的,连接完成后,告知用户 org 已连接且将继续部署,然后询问是否确认部署。连接本身不会触发部署。
- sandbox 和 scratch org 属于同一类型(
SANDBOX)。对两者的 URL 一视同仁。 - 每次 API 调用只尝试一次。绝不循环重试、超时后重新提交,或编造 id、凭据名称或状态。
- 绝不索要、打印或传递访问令牌。绝不显示行 id 或凭据名称。
- 绝不声称已打开浏览器。提供登录链接,并等待用户回复 done。
- 不要猜测缺失的输入。针对第一个缺失的输入,只问一个问题。
- 对于 URL 主机无法确定的 org 类型,要求用户确认。绝不根据环境名称推断。
用户看到的内容
| 操作后 | 回复内容 |
|---|---|
| A 列表 | 仅回复表格和结束语(list-orgs.md,第 4 节)。不要提供原始 JSON,也不要额外提出其他选项。 |
| A 未启用 | 仅回复 list-orgs.md 第 2 节中的一句话。不要回复其他内容。 |
| B 连接 | 先显示带按钮样式链接的登录布局(connect-org.md,步骤 2),然后在 done 后显示已连接布局:环境名称、组织主机、类型和状态(connect-org.md,步骤 5)。 |
| C | 回复 hub-org.md 中的原文句子。连接时,使用与 B 相同的登录和已连接布局,但采用 Hub 格式。 |
| D | 用通俗语言报告:部署了什么、从哪里部署到哪里,以及结果如何(deploy.md,步骤 7)。不要提供原始 JSON。如果部署约 2 分钟后仍在运行:提供 requestId,说明任务正在进行,并请用户发回该 ID 以获取状态(deploy.md,步骤 6)。 |
如果出现故障
| 故障 | 查看位置 |
|---|---|
| 列表或目标查找失败 | references/list-orgs.md,第 2 节 |
| 连接步骤失败 | references/troubleshooting.md |
| 部署或验证失败 | references/error-handling.md |
| 目标登录凭据已过期 | 重新连接该环境(references/connect-org.md,修复流程),然后在重试前征求确认 |
参考资料
references/list-orgs.md:操作 A。解析器脚本、匹配状态、列表表格和未启用时的处理方式。references/connect-org.md:操作 B。模式、步骤 0 到 5,以及连接组织的规则。references/hub-org.md:操作 C。Lifecycle Center 组织:Hub 名称、回复内容和相关规则。references/deploy.md:操作 D。部署、验证、快速部署和轮询的步骤 1 到 7。references/request-body.md:部署、验证和快速部署的请求正文及测试级别。references/connect-api.md:环境 API 和setupNamedCredential请求与响应格式、状态检查。references/troubleshooting.md:连接错误代码和恢复方法。references/error-handling.md:部署错误代码。examples/workflows.md:每项操作的示例提示词。scripts/resolve-environment.sh:只读列表和标识符解析器。scripts/poll-deploy-status.sh:只读状态轮询器。读取 Simple Deploy 端点和DevopsRequestInfo,并在失败时报告组件错误。