{"id":"68dc2d10-ecef-435d-bf05-fa366e82cc3e","shortId":"2SMLMS","kind":"skill","title":"workflow-runner","tagline":"在 Claude Code / OpenClaw / Cursor 中直接运行 agency-orchestrator YAML 工作流——无需 API key，使用当前会话的 LLM 作为执行引擎。当用户提供 .yaml 工作流文件或要求多角色协作完成任务时触发。","description":"# 工作流执行器：在 AI 工具内运行多角色编排\n\n直接在当前会话中执行 agency-orchestrator 的 YAML 工作流，无需配置 API key。当前 LLM 就是执行引擎——依次扮演每个角色完成任务。\n\n## 适用场景\n\n- 用户提供了一个 `.yaml` 工作流文件（如 `运行 workflows/story-creation.yaml`）\n- 用户要求多个角色协作完成任务（如\"用产品经理和架构师一起评审这个 PRD\"）\n- 用户安装了 `agency-agents-zh` 并希望直接在 AI 工具内编排多角色\n\n## 执行流程（5 步）\n\n按以下顺序执行，不要跳步：\n\n### 第 1 步：解析工作流\n\n用 Read 工具读取用户指定的 YAML 文件，提取以下字段：\n\n```yaml\nname: \"工作流名称\"\nagents_dir: \"agency-agents-zh\"    # 角色定义目录\ninputs:                            # 输入变量\n  - name: xxx\n    required: true/false\n    default: \"默认值\"\nsteps:                             # 执行步骤\n  - id: step_id\n    role: \"category/agent-name\"    # 角色路径\n    task: \"任务描述 {{变量}}\"       # 支持模板变量\n    output: variable_name          # 输出变量名\n    depends_on: [other_step_id]    # 依赖关系\n```\n\n**忽略 `llm`、`concurrency`、`timeout`、`retry` 配置**——Skill 模式使用当前会话的 LLM，这些字段仅用于 CLI 模式。\n\n**定位角色目录**：用 Bash `test -d` 按以下顺序检查，用第一个存在的：\n1. 当前工作目录下的 `{agents_dir}/`（如 `./agency-agents-zh/`）\n2. `../{agents_dir}/`（上级目录）\n3. 相对于 YAML 文件所在目录的 `{agents_dir}/`\n4. `node_modules/agency-agents-zh/`\n\n如果全部找不到，**停止执行**并提示用户：\n```\n找不到角色目录。请先安装：\n  git clone --depth 1 https://github.com/jnMetaCode/agency-agents-zh.git\n  或：npm install agency-agents-zh\n```\n\n### 第 2 步：收集输入\n\n- 对每个 `required: true` 的输入，检查用户消息中是否已提供值\n- 未提供的必填输入：**立即向用户询问**，不要猜测或用空值\n- 有 `default` 的可选输入：使用默认值\n- 无默认值的可选输入：设为空字符串\n\n### 第 3 步：构建执行顺序\n\n根据 `depends_on` 进行拓扑排序，将步骤分成多个层级：\n\n- **无 depends_on 的步骤** → 第 1 层\n- **depends_on 全部在第 N 层或之前的步骤** → 第 N+1 层\n- **同一层内的步骤**互不依赖，可并行\n\n在回复中展示执行计划：\n```\n执行计划（共 N 步）：\n  第 1 层: [step_id] — 角色名\n  第 2 层: [step_a, step_b] — 并行\n  第 3 层: [step_id] — 角色名\n```\n\n### 第 4 步：逐层执行\n\n对每一层：\n\n#### 4a. 预读角色文件\n\n用 Read 工具读取该层所有步骤的角色 `.md` 文件：`{角色目录}/{role}.md`\n\n从文件中提取：\n- **角色名**：frontmatter 中的 `name` 字段\n- **角色 system prompt**：第二个 `---` 之后的全部 markdown 内容\n\n#### 4b. 渲染 task 模板\n\n将 task 中的 `{{变量名}}` 替换为：\n- 来自 inputs 的用户输入值\n- 来自前序步骤 output 的结果文本\n\n#### 4c. 执行\n\n**单步骤层**：直接在主会话中扮演该角色执行。格式：\n\n```\n### Step N/Total: step_id（角色名）\n\n[以该角色身份完成 task，使用角色的专业知识和沟通风格]\n```\n\n**多步骤层（并行）**：使用 Agent 工具为每个步骤启动子代理。每个子代理的 prompt 必须包含：\n- 角色文件的**完整文本内容**（不是路径——子代理可能无法读文件）\n- 渲染后的 task 文本\n- 指令：\"以上是你的角色定义，请以该角色身份完成以下任务，直接输出结果\"\n\n#### 4d. 保存输出到上下文\n\n如果 step 有 `output` 字段，将该步骤的输出文本存入变量上下文，供后续步骤的 `{{变量}}` 使用。\n\n### 第 5 步：保存结果并展示\n\n用 Write 工具将结果保存到文件：\n\n```\n.ao-output/{工作流名称}-{YYYY-MM-DD}/\n├── steps/\n│   ├── 1-{step_id}.md       # 每步的输出\n│   ├── 2-{step_id}.md\n│   └── ...\n├── summary.md                # 最后一步的完整输出（最终成果）\n└── metadata.json             # 基本元数据\n```\n\nmetadata.json 格式：\n```json\n{\n  \"name\": \"工作流名称\",\n  \"date\": \"2026-03-22\",\n  \"success\": true,\n  \"steps\": [\n    {\"id\": \"step_id\", \"role\": \"category/agent\", \"status\": \"completed\"},\n    ...\n  ]\n}\n```\n\n执行完毕后，向用户展示：\n1. 最终成果（summary.md 的内容）\n2. 文件保存位置\n3. 执行了几个步骤\n\n## 重要规则\n\n<HARD-GATE>\n- 每个步骤都必须真正扮演对应角色，使用该角色的专业知识和沟通风格，不能泛泛回答\n- 角色切换必须明确——每步开始时标注角色名\n- 不要跳过步骤或合并步骤，严格按 DAG 层级顺序执行\n- 如果角色文件找不到，告知用户并建议安装 agency-agents-zh\n- 不要在没有读取角色 .md 文件的情况下执行步骤——必须先 Read 再执行\n</HARD-GATE>\n\n## 没有 YAML 文件时的快捷模式\n\n如果用户没有指定 YAML 文件，但描述了需要多角色协作的任务：\n\n1. 根据用户描述，**自动生成** YAML 工作流定义\n2. 展示给用户确认\n3. 确认后按上述流程执行\n\n示例：\n- 用户说\"帮我用叙事学家和心理学家写个故事\" → 生成 story-creation 类似的工作流\n- 用户说\"让产品经理和架构师评审这个 PRD\" → 生成 product-review 类似的工作流\n\n## 故障处理\n\n- **角色文件不存在**：提示用户运行 `ao init` 或 `npm install agency-agents-zh`\n- **模板变量未定义**：检查上下文，如果是必填输入则向用户询问\n- **步骤执行失败**：标记该步骤为失败，跳过所有依赖它的下游步骤，继续执行其他独立步骤","tags":["workflow","runner","superpowers","jnmetacode","agent-skills","agentic-coding","ai-coding","chinese","claude-code","code-review","cursor","gemini-cli"],"capabilities":["skill","source-jnmetacode","skill-workflow-runner","topic-agent-skills","topic-agentic-coding","topic-ai-coding","topic-chinese","topic-claude-code","topic-code-review","topic-cursor","topic-gemini-cli","topic-kiro","topic-mcp","topic-npm-package","topic-prompt-engineering"],"categories":["superpowers-zh"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/jnMetaCode/superpowers-zh/workflow-runner","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add jnMetaCode/superpowers-zh","source_repo":"https://github.com/jnMetaCode/superpowers-zh","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 1850 github stars · SKILL.md body (3,274 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-05-02T18:52:41.206Z","embedding":null,"createdAt":"2026-04-18T21:56:04.271Z","updatedAt":"2026-05-02T18:52:41.206Z","lastSeenAt":"2026-05-02T18:52:41.206Z","tsv":"'+1':214 '-03':367 '-22':368 '/agency-agents-zh':140 '/jnmetacode/agency-agents-zh.git':165 '1':67,135,162,205,225,346,381,418 '2':141,174,231,351,385,423 '2026':366 '3':145,192,239,387,425 '4':151,245 '4a':249 '4b':272 '4c':287 '4d':319 '5':62,331 'agenc':11,30,55,82,170,402,452 'agency-agents-zh':54,81,169,401,451 'agency-orchestr':10,29 'agent':56,79,83,137,142,149,171,303,403,453 'ai':26,59 'ao':338,446 'ao-output':337 'api':16,36 'b':236 'bash':130 'category/agent':376 'category/agent-name':100 'claud':5 'cli':126 'clone':160 'code':6 'complet':378 'concurr':118 'creation':433 'cursor':8 'd':132 'dag':397 'date':365 'dd':344 'default':92,186 'depend':110,196,201,207 'depth':161 'dir':80,138,143,150 'frontmatt':261 'git':159 'github.com':164 'github.com/jnmetacode/agency-agents-zh.git':163 'id':96,98,114,228,242,295,348,353,372,374 'init':447 'input':86,282 'instal':168,450 'json':362 'key':17,37 'llm':19,39,117,124 'markdown':270 'md':254,258,349,354,406 'metadata.json':358,360 'mm':343 'modules/agency-agents-zh':153 'n':210,213,222 'n/total':293 'name':77,88,108,263,363 'node':152 'npm':167,449 'openclaw':7 'orchestr':12,31 'output':106,285,324,339 'prd':52,437 'product':440 'product-review':439 'prompt':267,306 'read':71,252,409 'requir':90,178 'retri':120 'review':441 'role':99,257,375 'runner':3 'skill':122 'skill-workflow-runner' 'source-jnmetacode' 'status':377 'step':94,97,113,227,233,235,241,292,294,322,345,347,352,371,373 'stori':432 'story-cr':431 'success':369 'summary.md':355,383 'system':266 'task':102,274,277,298,313 'test':131 'timeout':119 'topic-agent-skills' 'topic-agentic-coding' 'topic-ai-coding' 'topic-chinese' 'topic-claude-code' 'topic-code-review' 'topic-cursor' 'topic-gemini-cli' 'topic-kiro' 'topic-mcp' 'topic-npm-package' 'topic-prompt-engineering' 'true':179,370 'true/false':91 'variabl':107 'workflow':2 'workflow-runn':1 'workflows/story-creation.yaml':48 'write':335 'xxx':89 'yaml':13,22,33,44,73,76,147,412,415,421 'yyyi':342 'yyyy-mm-dd':341 'zh':57,84,172,404,454 '上级目录':144 '不是路径':310 '不能泛泛回答':392 '不要在没有读取角色':405 '不要猜测或用空值':184 '不要跳步':65 '不要跳过步骤或合并步骤':395 '严格按':396 '中的':262,278 '中直接运行':9 '之后的全部':269 '互不依赖':217 '从文件中提取':259 '以上是你的角色定义':316 '以该角色身份完成':297 '任务描述':103 '但描述了需要多角色协作的任务':417 '作为执行引擎':20 '使用':302,329 '使用当前会话的':18 '使用角色的专业知识和沟通风格':299 '使用该角色的专业知识和沟通风格':391 '使用默认值':188 '供后续步骤的':327 '依次扮演每个角色完成任务':41 '依赖关系':115 '保存结果并展示':333 '保存输出到上下文':320 '停止执行':155 '全部在第':209 '共':221 '内容':271 '再执行':410 '单步骤层':289 '变量':104,328 '变量名':279 '可并行':218 '同一层内的步骤':216 '向用户展示':380 '告知用户并建议安装':400 '在':4,25 '在回复中展示执行计划':219 '基本元数据':359 '多步骤层':300 '如':46,50,139 '如果':321 '如果全部找不到':154 '如果是必填输入则向用户询问':457 '如果用户没有指定':414 '如果角色文件找不到':399 '子代理可能无法读文件':311 '字段':264,325 '完整文本内容':309 '定位角色目录':128 '对每一层':248 '对每个':177 '将':276 '将步骤分成多个层级':199 '将该步骤的输出文本存入变量上下文':326 '就是执行引擎':40 '层':206,215,226,232,240 '层或之前的步骤':211 '层级顺序执行':398 '展示给用户确认':424 '工作流':14,34 '工作流名称':78,340,364 '工作流定义':422 '工作流执行器':24 '工作流文件':45 '工作流文件或要求多角色协作完成任务时触发':23 '工具为每个步骤启动子代理':304 '工具内编排多角色':60 '工具内运行多角色编排':27 '工具将结果保存到文件':336 '工具读取用户指定的':72 '工具读取该层所有步骤的角色':253 '帮我用叙事学家和心理学家写个故事':429 '并希望直接在':58 '并提示用户':156 '并行':237,301 '当前':38 '当前工作目录下的':136 '当用户提供':21 '必须先':408 '必须包含':307 '忽略':116 '或':166,448 '执行':288 '执行了几个步骤':388 '执行完毕后':379 '执行步骤':95 '执行流程':61 '执行计划':220 '找不到角色目录':157 '指令':315 '按以下顺序执行':64 '按以下顺序检查':133 '提取以下字段':75 '提示用户运行':445 '支持模板变量':105 '收集输入':176 '故障处理':443 '文件':74,255,416 '文件保存位置':386 '文件所在目录的':148 '文件时的快捷模式':413 '文件的情况下执行步骤':407 '文本':314 '无':200 '无需':15 '无需配置':35 '无默认值的可选输入':189 '替换为':280 '最后一步的完整输出':356 '最终成果':357,382 '有':185,323 '未提供的必填输入':182 '来自':281 '来自前序步骤':284 '构建执行顺序':194 '标记该步骤为失败':459 '根据':195 '根据用户描述':419 '格式':291,361 '检查上下文':456 '检查用户消息中是否已提供值':181 '模式':127 '模式使用当前会话的':123 '模板':275 '模板变量未定义':455 '步':63,68,175,193,223,246,332 '步骤执行失败':458 '每个子代理的':305 '每个步骤都必须真正扮演对应角色':390 '每步开始时标注角色名':394 '每步的输出':350 '没有':411 '渲染':273 '渲染后的':312 '生成':430,438 '用':70,129,251,334 '用产品经理和架构师一起评审这个':51 '用户安装了':53 '用户提供了一个':43 '用户要求多个角色协作完成任务':49 '用户说':428,435 '用第一个存在的':134 '的':32 '的内容':384 '的可选输入':187 '的步骤':203 '的用户输入值':283 '的结果文本':286 '的输入':180 '直接在主会话中扮演该角色执行':290 '直接在当前会话中执行':28 '直接输出结果':318 '相对于':146 '确认后按上述流程执行':426 '示例':427 '立即向用户询问':183 '第':66,173,191,204,212,224,230,238,244,330 '第二个':268 '类似的工作流':434,442 '继续执行其他独立步骤':461 '自动生成':420 '角色':265 '角色切换必须明确':393 '角色名':229,243,260,296 '角色定义目录':85 '角色文件不存在':444 '角色文件的':308 '角色目录':256 '角色路径':101 '解析工作流':69 '让产品经理和架构师评审这个':436 '设为空字符串':190 '请以该角色身份完成以下任务':317 '请先安装':158 '跳过所有依赖它的下游步骤':460 '输入变量':87 '输出变量名':109 '运行':47 '这些字段仅用于':125 '进行拓扑排序':198 '适用场景':42 '逐层执行':247 '配置':121 '重要规则':389 '预读角色文件':250 '默认值':93","prices":[{"id":"ba45f7cd-3df6-457c-8fe9-5bf0632bb6f8","listingId":"68dc2d10-ecef-435d-bf05-fa366e82cc3e","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"jnMetaCode","category":"superpowers-zh","install_from":"skills.sh"},"createdAt":"2026-04-18T21:56:04.271Z"}],"sources":[{"listingId":"68dc2d10-ecef-435d-bf05-fa366e82cc3e","source":"github","sourceId":"jnMetaCode/superpowers-zh/workflow-runner","sourceUrl":"https://github.com/jnMetaCode/superpowers-zh/tree/main/skills/workflow-runner","isPrimary":false,"firstSeenAt":"2026-04-18T21:56:04.271Z","lastSeenAt":"2026-05-02T18:52:41.206Z"}],"details":{"listingId":"68dc2d10-ecef-435d-bf05-fa366e82cc3e","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"jnMetaCode","slug":"workflow-runner","github":{"repo":"jnMetaCode/superpowers-zh","stars":1850,"topics":["agent-skills","agentic-coding","ai-coding","chinese","claude-code","code-review","cursor","gemini-cli","kiro","mcp","npm-package","prompt-engineering","skills","superpowers","tdd","trae"],"license":"mit","html_url":"https://github.com/jnMetaCode/superpowers-zh","pushed_at":"2026-04-28T15:32:18Z","description":"🦸 AI 编程超能力 · 中文增强版 — superpowers（116k+ ⭐）完整汉化 + 6 个中国原创 skills，让 Claude Code / Copilot CLI / Hermes Agent / Cursor / Windsurf / Kiro / Gemini CLI 等 16 款 AI 编程工具真正会干活","skill_md_sha":"ea4e5a4283a0367330e031cea2a391830ea2c41c","skill_md_path":"skills/workflow-runner/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/jnMetaCode/superpowers-zh/tree/main/skills/workflow-runner"},"layout":"multi","source":"github","category":"superpowers-zh","frontmatter":{"name":"workflow-runner","description":"在 Claude Code / OpenClaw / Cursor 中直接运行 agency-orchestrator YAML 工作流——无需 API key，使用当前会话的 LLM 作为执行引擎。当用户提供 .yaml 工作流文件或要求多角色协作完成任务时触发。"},"skills_sh_url":"https://skills.sh/jnMetaCode/superpowers-zh/workflow-runner"},"updatedAt":"2026-05-02T18:52:41.206Z"}}