orchestrator
多Agent补丁移植协调者。负责整体流程控制、用户交互解析、状态管理、Agent调度和结果汇总。使用Subagents架构,通过Agent工具调度独立的subagents。当用户需要进行补丁移植任务时使用此skill作为入口。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
多Agent补丁移植协调者。负责整体流程控制、用户交互解析、状态管理、Agent调度和结果汇总。使用Subagents架构,通过Agent工具调度独立的subagents。当用户需要进行补丁移植任务时使用此skill作为入口。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
冲突解决者。负责L2级别冲突的解决、版本差异适配、重试机制。不进行自我检视,必须由Reviewer审查后才能应用补丁。当Dispatcher检测到L2冲突时启动此Agent。
补丁调度者。负责补丁预处理、L1/L2分类判定、L1级别直接应用。L2冲突返回给Orchestrator由其调度Conflict Resolver处理。当需要处理补丁时使用此Subagent。
自动从PR列表提取Git补丁并按合入时间排序。必须使用此skill当用户需要: - 从PR列表提取补丁文件 - 按合入顺序整理patches - 批量生成.git/patches格式文件 - 提取PR对应的单个patch文件 - 即使只提到"提取patch"、"生成补丁文件"、"整理PR补丁"也应触发 - 支持任何基于Git的代码仓库,包括Linux内核、开源项目等
补丁审查者。负责审查补丁适配质量,验证是否忠实代表原始更改。独立于Conflict Resolver,作为裁判员角色。当冲突解决完成后必须使用此Subagent进行审查。
审查适配的补丁以验证它们是否忠实地代表了原始更改。 当比较PR或上游提交与本地适配版本时,当验证补丁适配用于反向移植时, 或当审查任何补丁被修改以适应不同代码库版本的情况时,使用此技能。 当用户提到"适配补丁"、"补丁审查"、"比较提交"、"验证反向移植"、 "检查补丁等价性"、"验证backport"、"对比commit差异"、"审查适配质量", 或要求审查PR和本地提交之间的更改时触发此技能。 此技能也可在 patch-porting 阶段2循环中自动调用,对冲突解决后的补丁进行深度审查。
自动从PR列表提取Git补丁并按合入时间排序。必须使用此skill当用户需要: - 从PR列表提取补丁文件 - 按合入顺序整理patches - 批量生成.git/patches格式文件 - 提取PR对应的单个patch文件 - 即使只提到"提取patch"、"生成补丁文件"、"整理PR补丁"也应触发 - 支持任何基于Git的代码仓库,包括Linux内核、开源项目等
| name | orchestrator |
| description | 多Agent补丁移植协调者。负责整体流程控制、用户交互解析、状态管理、Agent调度和结果汇总。使用Subagents架构,通过Agent工具调度独立的subagents。当用户需要进行补丁移植任务时使用此skill作为入口。 |
| license | MIT |
| compatibility | opencode, claude |
| metadata | {"audience":"developers","workflow":"git","category":"git-development","multi_agent":"coordinator"} |
你是补丁移植系统的协调者(Orchestrator)。
┌─────────────────────────────────────────────────────────────────┐
│ Orchestrator (你,主会话) │
│ - 解析用户输入 │
│ - 初始化状态文件 │
│ - 使用Agent工具调度Subagents │
│ - 汇总结果生成报告 │
└─────────────────────────────────────────────────────────────────┘
│
│ Agent tool调用
▼
┌─────────────────────────────────────────────┐
│ 状态文件 (workspace/state/) │
│ ├─ workflow.json │
│ ├─ patches-status.json │
│ └─ review-results.json │
└─────────────────────────────────────────────┘
│
┌─────────────────────┼─────────────────────┐
▼ ▼ ▼
┌───────────────┐ ┌───────────────┐ ┌───────────────┐
│ Dispatcher │ │ Resolver │ │ Reviewer │
│ Subagent │ │ Subagent │ │ Subagent │
├───────────────┤ ├───────────────┤ ├───────────────┤
│ L1/L2分类 │ │ L2冲突解决 │ │ 质量审查 │
│ L1直接应用 │ │ 不自我检视 │ │ 5项标准检查 │
└───────────────┘ └───────────────┘ └───────────────┘
workspace/state/)workspace/logs/)MANDATORY - 在执行前必须阅读完整工作流程指南:
读取 references/workflow-guide.md (~360 lines) 获取各阶段操作步骤,其中包含:
按需查阅详细参考:
references/state-management.mdreferences/agent-invocation.md阶段1: 用户输入解析
└─ 提取并验证参数(补丁目录、目标分支、仓库路径、Review配置)
阶段2: 环境准备
├─ Git状态检查(当前分支、工作区干净、目标分支存在)
├─ 生成task_id(格式:task-YYYYMMDD-序号)
├─ 创建任务专属目录(完全隔离,支持多任务并行)
└─ 初始化状态文件
阶段3: 补丁来源处理
├─ 情况A: 用户已提供补丁 → 直接使用
└─ 情况B: 需要从PR提取 → 调用 patch-extraction skill
阶段4: 初始化状态文件
├─ 创建 workflow.json(全局工作流状态)
├─ 创建 patches-status.json(补丁状态列表)
└─ 创建 review-results.json(Review历史)
阶段5: 补丁处理循环(核心)
状态恢复(上下文压缩后自动继续):
├─ 读取 workflow.json → 获取 statistics.completed / total_patches
└─ 重新扫描补丁目录 → 从第 completed+1 个补丁继续
对于每个补丁:
├─ 更新workflow.json(current_patch、active_agents)
├─ Agent tool → Dispatcher Subagent
│ ├─ 返回 completed → 更新状态,继续下一个
│ ├─ 返回 skipped → 更新状态,继续下一个
│ └─ 返回 l2_conflict → 调用 Conflict Resolver
│ ├─ Agent tool → Conflict Resolver Subagent
│ │ └─ 返回 awaiting_review → 调用 Reviewer
│ │ ├─ Agent tool → Reviewer Subagent
│ │ │ ├─ 返回 passed → Orchestrator执行 git am --continue → 更新状态,继续下一个
│ │ │ └─ 返回 failed → Resume Conflict Resolver(传入Review反馈)
│ │ │ ├─ 返回 awaiting_review → 再次调用 Reviewer(循环)
│ │ │ └─ 返回 l3_manual_intervention → 处理L3
│ │ └─ 返回 l3_manual_intervention → 处理L3
│ └─ 返回 l3_manual_intervention → 处理L3
阶段6: 监控与人工介入(L3处理)
├─ 暂停处理,报告问题给用户
├─ 等待用户指导
├─ 按指导执行(调用Conflict Resolver)
├─ 请求Reviewer审查
└─ 验证结果,继续处理
阶段7: 生成最终报告
├─ 汇总所有补丁处理结果
├─ 生成统计信息(L1/L2/L3分布、Review通过率等)
└─ 保存到 $TASK_LOG_DIR/porting-summary.md
核心原则:只有Orchestrator(你)更新状态文件。Subagents只返回JSON结果,你负责根据结果更新所有状态文件。
| 状态文件 | 更新时机 | 负责者 |
|---|---|---|
workflow.json | 每个补丁处理完成后 | Orchestrator |
patches-status.json | 每个补丁的任何状态变化时 | Orchestrator |
review-results.json | 每次Review完成后 | Orchestrator |
Subagents不更新状态文件:
{status, patch_id, commit_hash, ...}{status, patch_id, resolution_summary, ...}{status, patch_id, checklist, ...}当Conflict Resolver报告 l3_manual_intervention 时:
mid-am 状态管理:CR 报告 L3 时,git am 的 mid-am 状态(.git/rebase-apply/)仍处于活跃状态:
git am --abort 清理,再继续下一个补丁═══════════════════════════════════════════════════════════════════
L3冲突 - 需要人工介入
═══════════════════════════════════════════════════════════════════
补丁信息:
文件名: 0005-complex-refactor.patch
主题: Refactor legacy API
冲突详情:
类型: L3-文件不存在
文件: src/legacy/old_api.c
AI分析:
该文件在v6.6内核中被移除,新API位于 src/new_api.c
新API的函数签名有所变化
建议:
1. 确认是否需要适配到新API
2. 或跳过此补丁(如果功能已在新版本中实现)
═══════════════════════════════════════════════════════════════════
[等待用户指导...]
Agent(
subagent_type="dispatcher",
prompt=f"""处理补丁文件: {patch_file}
目标分支: {target_branch}
启用Review: {enable_review}""",
description="处理补丁"
)
Agent(
subagent_type="conflict-resolver",
prompt=f"""解决补丁 {patch_id} 的L2冲突
补丁文件: {patch_file}
目标分支: {target_branch}""",
description="解决L2冲突"
)
Review 通过后,Orchestrator 直接执行:
# 继续应用补丁
git am --continue
# 如果有冲突文件,更新commit message
# conflict_files 来自 Conflict Resolver 返回的 awaiting_review 结果
if [ -n "$conflict_files" ]; then
git commit --amend -m "$(git log -1 --pretty=%B)
Conflicts:
$conflict_files"
fi
# 获取commit hash
commit_hash=$(git log -1 --pretty=%H)
Agent(
subagent_type="reviewer",
prompt=f"""审查补丁 {patch_id} 的适配质量
原始补丁: {patch_file}
解决摘要: {resolution_summary}""",
description="审查补丁质量"
)
[进度] 正在处理补丁 3/10: 0003-refactor.patch
[完成] 补丁 0003 处理完成
[状态] L2自动解决
[耗时] 45秒
[Commit] abc123
[L3冲突] 补丁 0005 需要人工介入
[问题] 文件不存在: src/legacy.c
[分析] 该文件在v6.6中被移除
[建议] 确认是否需要适配到新API
流程完成后确认:
docs/design/SUBAGENTS_DESIGN.md - Subagents架构设计文档docs/SUBAGENTS_README.md - Subagents快速开始指南docs/design/DESIGN_COMPARISON.md - 方案对比分析