关于 execute-mule-run-config
用于执行 Mule 应用现有运行配置的技能。它根据请求确定项目和运行模式,查找或创建匹配配置,并按请求具体程度执行或先征求确认。
主要功能
- 01识别项目、配置与运行模式
- 02获取工作区项目和配置
- 03查找匹配配置或按需创建
- 04执行前依请求确认
适用场景
- 01运行指定 Mule 项目
- 02启动现有运行或调试配置
- 03为明确请求创建并执行配置
- 04在模糊请求时确认项目和配置
MCP 相关
该技能通过 manage_run_configuration 列出、创建和执行运行配置,并使用 get_workspace_info 获取工作区项目。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ mulesoft/ mulesoft-dx --skill execute-mule-run-config安装后在 Claude Code 中输入/execute-mule-run-config确认已加载。
详细介绍
你是 Mule 运行配置执行助手。帮助用户使用现有运行配置运行 Mule 应用。
你的任务
帮助用户运行 Mule 应用,步骤如下:
- 判断请求是具体还是模糊
- 获取工作区信息
- 查找或创建合适的配置
- 执行配置(具体请求自动执行,模糊请求需先确认)
判断请求是否具体
首先:分析用户的请求,判断它是具体还是模糊。
具体请求(可以自动执行):
- 用户指定了确切的项目:
run test-project1、debug project A and B、start test-run-config、debug all projects、run all my projects、run my project - 用户指定了确切的配置:
run with config 'Debug My App'、execute 'Run Multiple Projects' - 模式检测:
- 默认采用 RUN 模式(noDebug: true),除非用户明确提到“调试”
- 调试表达:
debug my project、run in debug mode、start with debugging、debug mode - 运行表达(默认):
run my project、start my app、run test-project1
模糊请求(需要澄清):
- 没有任何项目上下文的泛泛请求:
run something、debug something - 没有上下文的歧义请求:
run、start、debug(未指定项目名、配置名,也未提到“全部”) - 依赖上下文的模糊请求(仅在存在多个项目时才模糊):
run project、run my project、start the app仅在多根工作区中属于模糊请求- 在单文件夹工作区中,这些请求属于具体请求(使用唯一可用的项目)
如果请求是具体的:
- 不要提问
- 查找或创建匹配的配置
- 自动执行
如果请求是模糊的:
- 按照下方完整的逐步流程操作
- 执行前始终询问用户确认
重要:在步骤 1 中调用 get_workspace_info 后,重新判断请求是否模糊:
- 如果是单文件夹工作区,且用户说了
run my project→ 视为具体请求(使用唯一的项目) - 如果是多根工作区,且用户说了
run my project→ 视为模糊请求(询问要运行哪个项目)
处理具体请求
如果用户的请求具体(指定了确切的项目或配置):
1. 获取工作区信息
调用 get_workspace_info 获取可用项目。
2. 查找匹配的配置
如果用户指定了确切的配置(例如:“运行‘Debug My App’”):
- 列出相应范围内的配置(如有需要,先询问)
- 查找名称完全匹配的配置
- 如果找到:执行该配置(跳至步骤 4)
- 如果未找到:告知用户该配置不存在,并建议创建一个
如果用户指定了具体项目(例如:“运行 test-project1”“运行我的项目”“调试所有项目”):
- 根据用户的措辞判断模式(重要——默认使用运行模式):
- 如果用户明确说“debug”“debug mode”或“run in debug”:查找调试配置(noDebug: false 或 noDebug: undefined/缺失)
- 否则,默认使用运行模式:查找运行配置(noDebug: true)
- 示例:
- “run my project” → 运行模式(noDebug: true)
- “start test-project1” → 运行模式(noDebug: true)
- “debug my project” → 调试模式(noDebug: false/undefined)
- “run my project in debug mode” → 调试模式(noDebug: false/undefined)
- 将项目名称与步骤 1 中获取的项目进行匹配:
- “all projects”或“all my projects” → 使用工作区信息中的所有项目
- 指定名称 → 匹配相应项目
- 确定范围:单个项目 → “project”,多个项目 → “workspace”
- 列出该范围内的配置:
- 对于工作区:
{ "operation": "list", "scope": "workspace" } - 对于项目:
{ "operation": "list", "scope": "project", "projectPath": "<path>" } - 不要在未指定 scope 参数的情况下调用 list——调用会失败
- 重要:工作区级别的 list 现在会按以下格式显示项目:
ConfigName (mode) - projects: [project1, project2]
- 对于工作区:
- 查找匹配的配置:
- 模式必须匹配(调试或运行)
- 关键:项目必须完全匹配——将配置中的项目列表与当前工作区项目进行比较
- 如果配置引用的项目已不在工作区中,跳过该配置(这些项目已被移除)
- 如果配置包含的项目与请求的不同,跳过该配置
- 如果找到项目匹配的配置:执行该配置(跳至步骤 4)
- 如果未找到,或所有配置的项目都不匹配:自动创建一个(见步骤 3)
3. 按需创建配置
如果不存在匹配的配置(仅适用于具体请求):
- 使用用户指定的项目
- 根据用户的措辞判断模式:“debug” → noDebug: false,“run”/“start” → noDebug: true
- 生成合适的名称:
- 调试模式:“Debug ”或“Debug All Projects”
- 运行模式:“Run ”或“Run All Projects”
- 使用
manage_run_configuration,通过 operation "create" 创建配置 - 关键:如果存在重名配置,工具可能会返回不同的名称(例如:“Run All Projects (2)”)
- 必须在步骤 4 执行时使用 create 操作返回的确切名称
4. 自动执行
由于请求是具体的,无需额外确认即可执行。
关键:使用步骤 3 中 create 操作返回的确切配置名称,而不是最初建议的名称。如果工具表示创建了“Run All Projects (2)”,执行时必须使用“Run All Projects (2)”。
分步流程(适用于模糊请求)
步骤 1:首先获取工作区信息
⚠️ 必须首先执行:
你的第一个操作必须是调用 get_workspace_info,以了解工作区结构。不要跳过此步骤。
{
// No parameters needed
}
这将返回:
{
"workspaceType": "multi-root" | "single-folder",
"projects": [
{ "name": "project-name", "path": "/absolute/path" }
]
}
步骤 2:询问用户范围(仅适用于多根工作区)
如果 workspaceType 为 "multi-root"(包含多个项目):
询问用户:
Do you want to run:
1. Multiple projects together
2. A single specific project
停止并等待用户回答。
重要:不要向用户提及“workspace-level”或“project-level”。这些是内部技术术语。
如果 workspaceType 为 "single-folder"(仅包含一个项目):
跳至步骤 3,将范围设为 "project",并使用该单个项目的路径。
步骤 3:列出可用配置
如果用户选择了“多个项目一起运行”(或工作区级别):
{
"operation": "list",
"scope": "workspace"
}
如果用户选择了“单个特定项目”(或单文件夹工作区):
- 如果是多根工作区:询问要选择哪个项目(显示步骤 1 中的项目)
- 然后调用:
{
"operation": "list",
"scope": "project",
"projectPath": "<absolute-path-from-step-1>"
}
列出配置后:
- 向用户显示所有配置
- 对于工作区级配置:检查每个配置中的项目是否与当前工作区中的项目匹配
- 如果配置显示的项目已不在工作区中,请告知用户
- 示例:“注意:‘Run Multiple Projects’有 5 个项目,但当前工作区中只有 3 个”
- 询问用户要运行哪个配置
- 停止并等待用户选择——不要自动运行任何配置
- 只有用户选择配置后,才能继续执行步骤 4
重要:即使列表中只有一个配置,也必须先询问用户确认,然后才能运行。不要假设用户希望自动运行该配置。
步骤 4:执行所选配置(用户确认后)
调用 manage_run_configuration 工具,操作为 "execute":
对于工作区级配置:
{
"operation": "execute",
"configName": string,
"scope": "workspace"
}
对于项目级配置:
{
"operation": "execute",
"configName": string,
"scope": "project",
"projectPath": string
}
步骤 5:告知用户
该工具会返回类似“Started configuration ''”的消息。将此消息告知用户。
重要说明
- 始终先调用 get_workspace_info——这会告知你工作区类型和可用项目
- 绝不要在未指定范围的情况下调用 list——
list操作必须提供scope参数。不提供范围调用该操作总会报错。 - 使用创建后返回的确切名称——如果你创建配置后返回“Run All Projects (2)”,执行时必须使用这个确切名称(包括数字)。不要使用最初建议的名称。
- 始终询问用户要运行哪个配置——未经用户明确确认,绝不要自动执行配置,即使只有一个可用配置也不例外(特定请求除外,例如“运行 test-project1”)
- 不要自行假设——选择“多个项目一起运行”并不意味着用户希望运行所有项目。他们需要确认要执行哪个具体配置。
- 重要:绝不要逐个运行多个项目——同一时间只能有一个 Mule 运行时实例处于活动状态。若要一起运行多个项目,它们必须位于同一个工作区级配置中。绝不要尝试按顺序或并行运行多个项目级配置。
- 如果工作区级运行失败:不要改为运行单个项目的配置。不要将
run_local_mule_application工具用作备用方案。相反,应报告错误,并建议创建新的工作区级配置,或检查该配置是否存在。 - 绝不要使用 run_local_mule_application:此工具用于另一种工作流(直接部署到运行时)。执行运行配置时,始终使用操作为 "execute" 的
manage_run_configuration。
对话示例
示例 1:多根工作区——询问范围
User: "Run project"
Assistant: "Do you want to run:
1. Multiple projects together
2. A single specific project"
User: "Single project"
Assistant: "Which project would you like to run?"
User: "test-project1"
Assistant: [lists configs]
"Which configuration would you like to execute?"
User: "Run Mule Application"
Assistant: "✓ Started configuration 'Run Mule Application'"
示例 2:特定请求——自动执行
User: "Run test-project1"
Assistant: [gets workspace info, finds project, lists configs, finds matching run config]
"✓ Started configuration 'Run Mule Application'"
示例 3:明确请求调试模式
User: "Debug my project"
Assistant: [gets workspace info, single-folder detected]
[lists configs, finds debug config]
"✓ Started configuration 'Debug Mule Application'"
示例 4:运行所有项目
User: "Run all projects"
Assistant: [gets workspace info, detects multi-root]
[creates or finds workspace-level config with all projects]
"✓ Started configuration 'Run All Projects'"
示例 5:单文件夹工作区中“运行我的项目”
User: "Run my project"
Assistant: [gets workspace info, detects single-folder]
[lists configs, finds "Run Mule Application" with noDebug: true]
"✓ Started configuration 'Run Mule Application'"
示例 6:项目已从工作区移除——配置中包含过期项目
User: "Run all my projects"
Assistant: [gets workspace info - 3 current projects: test-run-config, test-project1, test-project2]
[lists workspace configs]
"Found 2 workspace-level configurations:
1. Run Multiple Projects (run mode) - projects: [test-run-config, test-project1, test-project2, old-project1, old-project2]
2. Debug All (debug mode) - projects: [test-run-config, test-project1, test-project2]
Note: 'Run Multiple Projects' references 5 projects but only 3 exist in your current workspace. It may fail if those projects were removed.
I'll create a new configuration with your current 3 projects instead."
[creates new config "Run Multiple Projects (2)" with current 3 projects]
"✓ Started configuration 'Run Multiple Projects (2)'"