---
name: {domain}-{sub-module}-orchestrator
description: 当需要执行完整的{子模块}流程时使用。{子模块}指挥官，按阶段调度子Skill执行，包括{子Skill列表}。关键词：{关键词1}、{关键词2}、{关键词3}、{用户语言关键词1}、{用户语言关键词2}。
metadata:
  module: "{所属模块中文名}"
  sub-module: "{所属子模块中文名}"
  type: "orchestrator"
  version: "1.0"
  domain_tags: ["{行业标签1}", "{行业标签2}", "通用"]
  trigger_examples:
    - "{用户可能说的自然语言示例1}"
    - "{用户可能说的自然语言示例2}"
    - "{用户可能说的自然语言示例3}"
---

# {子模块}指挥官

## 核心原则

{1-2句话概括本编排器的核心理念}

1. **{原则1名称}**——{原则1说明}
2. **{原则2名称}**——{原则2说明}
3. **{原则3名称}**——{原则3说明}

## 编排协议

你是编排器，职责是**按阶段调度子Skill执行**，而非代理执行子Skill逻辑。严格遵循以下协议：

### 调用规则

1. **双模式调用**：平台支持 Skill 工具时，显式调用子Skill；平台不支持时，按子Skill的 `name`、输入契约、输出契约和阶段卡口执行兼容调度。
2. **不代理扩写**：兼容调度时不得把子Skill内部方法论复制进编排器上下文，也不得改写子Skill逻辑；只传递必要输入、输出路径和验证条件。
3. **契约驱动**：只关注子Skill的输入契约、输出契约和验证条件，不关注内部实现
4. **状态传递**：将当前阶段的输出作为下一阶段的输入，通过文件路径和 artifact index 传递数据
5. **验证后推进**：每个阶段输出验证通过后，才推进到下一阶段
6. **阶段总结（强制）**：Pipeline 所有 stages 执行完成后，**必须立即**执行 `post_pipeline` 中定义的阶段总结动作，生成总结文档。这不是可选步骤，若未生成阶段总结，编排器执行视为未完成。
7. **跨子Skill交叉验证**：当多个子Skill的产出之间存在一致性约束时，编排器可在阶段间执行交叉验证（读取多份产出比对一致性），这属于编排器的协调职责而非代理执行子Skill逻辑。交叉验证规则在编排器SKILL.md中显式定义。

### 上下文管理

- 每个子Skill调用完成后，只保留**输出文件路径**和**关键结论摘要**
- 详细输出写入 `output/{领域路径}/{skill-name}/` 目录
- 若上下文接近上限，优先保留当前阶段内容和待执行阶段的子Skill名称
- 跨领域编排器不搬运子Skill全文；只维护 `artifact-index.json` 中的产物引用，按需读取直接下游需要的文件。

### 阶段总结

所有子Skill执行完成后，编排器必须生成一份阶段总结文档，写入 `output/phase-reports/{module}/{orchestrator-name}.md`，包含以下结构：

1. **执行概览**：编排器名称与版本、执行时间、子Skill执行状态（成功/失败/降级）
2. **关键发现**：每个子Skill的核心输出摘要（1-3条）、跨子Skill的交叉洞察
3. **决策记录**：人类决策点及决策结果、AI自动决策及依据
4. **产出清单**：所有输出文件路径及内容摘要、产出质量评估（是否通过验证）
5. **风险与待办**：未通过验证的项、降级执行的项、建议后续跟进的事项
6. **下游衔接**：本编排器产出可被哪些下游编排器消费、推荐的下一步编排器。结构包含三层：
   - **primary**（1个）：最推荐的下游编排器，必须是编排流skill，不能指向自身
   - **alternatives**（2-3个）：备选下游编排器，优先编排流skill，condition 采用[触发场景]+[判断依据]格式
   - **special_cases**（0-1个）：特殊情况推荐子Skill（非编排流），condition 必须注明"无需完整编排流"

### 阶段卡口标准

编排器的阶段卡口只校验以下3类条件，不深入子Skill内部字段：

| 卡口类型 | 校验内容 | 示例 |
|----------|----------|------|
| 输出存在性 | 输出文件已生成且非空 | "api-design-spec输出文件已生成" |
| 顶层结构完整性 | JSON顶层必填字段存在 | "prd.json包含features/pages/entities" |
| 人类决策确认 | 关键决策点已获人类确认 | "设计审查人类确认通过" |

### 通用异常处理

| 异常类型 | 处理策略 |
|----------|----------|
| 阶段总结生成失败 | 基于已完成的子Skill输出生成部分总结，缺失项标注"数据缺失"，不阻塞编排完成 |
| 关键决策点未获人类确认 | 暂停编排，输出待确认事项清单，等待人类确认后继续 |
| 上游数据缺失 | 标注缺失数据项，使用合理假设填充（标注置信度≤0.3），继续执行并在输出中高亮标注 |
| 所有上游数据全部缺失 | 标注"全数据缺失"状态，输出最小化模板，整体置信度设为0.3，强制人类确认是否继续 |

## Pipeline 定义

```yaml
pipeline: {orchestrator-name}
version: 1.0

post_pipeline:
  - action: stage-summary
    output: output/phase-reports/{module}/{orchestrator-name}.md

stages:
  - id: phase-1
    name: "{阶段1业务名称}"
    skills:
      - {skill-name-a}
      - {skill-name-b}
    gate:
      condition: "{卡口条件}"
      fail_action: "{未通过处理}"

  - id: phase-2
    name: "{阶段2业务名称}"
    depends_on: [phase-1]
    skills: [{skill-name-c}]
    gate:
      condition: "{卡口条件}"
      fail_action: "{未通过处理}"
```

## 阶段执行计划

### 阶段1：{业务名称}

**并行调用** `{skill-name-a}` + `{skill-name-b}`

#### 调用 {skill-name-a}

```
Skill: {skill-name-a}
输入:
  {field1}: {value1}
  {field2}: {value2}
输出: output/{领域路径}/{skill-name-a}/{output-file}
验证: {验证条件}
模式: 🤖→👤
```

#### 调用 {skill-name-b}

```
Skill: {skill-name-b}
输入:
  {field1}: {value1}
输出: output/{领域路径}/{skill-name-b}/{output-file}
验证: {验证条件}
模式: 🤖
```

⏸ **阶段卡口**：{卡口条件} → 未通过：{处理方式}

### 阶段2：{业务名称}

**顺序调用** `{skill-name-c}`（依赖阶段1输出）

```
Skill: {skill-name-c}
输入:
  {field1}: output/{领域路径}/{skill-name-a}/{output-file}
输出: output/{领域路径}/{skill-name-c}/{output-file}
验证: {验证条件}
模式: 🤖→👤
```

⏸ **阶段卡口**：{卡口条件} → 未通过：{处理方式}

### 阶段总结（post_pipeline）

所有子Skill执行完成后，必须生成阶段总结文档，写入 `output/phase-reports/{module}/{orchestrator-name}.md`，包含以下6项结构（均不可为空）：

1. **执行概览**：编排器名称与版本、执行时间、子Skill执行状态（成功/失败/降级）
2. **关键发现**：每个子Skill的核心输出摘要（1-3条）、跨子Skill的交叉洞察
3. **决策记录**：人类决策点及决策结果、AI自动决策及依据
4. **产出清单**：所有输出文件路径及内容摘要、产出质量评估（是否通过验证）
5. **风险与待办**：未通过验证的项、降级执行的项、建议后续跟进的事项
6. **下游衔接**：本编排器产出可被哪些下游编排器消费、推荐的下一步编排器

| 参数 | 值 |
|------|-----|
| 子Skill输出路径 | output/{领域路径}/ |
| 总结输出路径 | output/phase-reports/{module}/{orchestrator-name}.md |
| 审批记录路径 | output/approvals/{orchestrator-name}/{stage-id}.approval.json |

下游衔接:
  primary: {下游编排器名称}（{推荐理由}）
  alternatives:
    - target: {备选编排器1}
      reason: {推荐理由}
      condition: {触发场景}+{判断依据}时
    - target: {备选编排器2}
      reason: {推荐理由}
      condition: {触发场景}+{判断依据}时
  special_cases:
    - target: {子Skill名称}
      reason: {仅需单项能力，无需完整编排流}
      condition: {触发场景}，无需完整编排流时

## 阶段卡口

| 卡口 | 条件 | 未通过处理 |
|------|------|------------|
| {卡口名称} | {条件} | {处理方式} |
| 阶段总结已生成 | output/phase-reports/{module}/{orchestrator-name}.md 已生成且6项结构均非空 | 补充缺失结构项后重新生成 |

## 人类决策点

| 决策点 | 触发条件 | 决策内容 |
|--------|----------|----------|
| {决策点} | {触发条件} | {决策内容} |

## 异常处理

| 异常类型 | 处理策略 |
|----------|----------|
| 阶段某子Skill失败 | {处理策略} |
| 上游数据缺失 | {处理策略} |
| 关键决策点未获人类确认 | 暂停编排，输出待确认事项清单，等待人类确认后继续 |
| 阶段总结生成失败 | 基于已完成的子Skill输出生成部分总结，缺失项标注"数据缺失"，不阻塞编排完成 |
