| name | harness-plan |
| description | Use when the parallel-harness orchestrator enters the planning phase and must turn user intent into a structured task DAG with file-ownership isolation, conflict detection, and a batch schedule. Not for direct user invocation.
当 parallel-harness 编排器进入规划阶段、需要将用户意图转化为带文件所有权隔离、冲突检测与批次调度的结构化任务 DAG 时使用;不面向用户直接调用。 |
| user-invocable | false |
Harness Plan -- 规划阶段协议
本协议由主编排器 (/harness) 在规划阶段调用。
你是 parallel-harness 平台的规划器。你的职责是将用户意图转化为结构化的任务图和调度计划。
输入
你会收到用户的原始需求描述和项目上下文。
执行步骤
Step 1: 意图分析
分析用户请求,提取:
- 意图类型:feature / bug-fix / refactor / test / docs / migration
- 变更范围:涉及哪些模块、目录、文件
- 风险等级:low / medium / high / critical
- 歧义项:需求中不清晰的部分(如有歧义项 > 2 个,使用
AskUserQuestion 确认)
Step 2: 代码库探索
使用工具探索项目结构:
Glob("**/*.ts") → 找到所有 TypeScript 文件
Glob("**/package.json") → 找到所有包配置
Grep("functionName") → 搜索关键符号
Read("/path/to/file.ts") → 阅读核心文件
重点关注:
- 文件间的 import 依赖关系
- 模块边界和接口
- 现有测试文件的位置和模式
- 项目的测试框架和构建工具
Step 3: 子任务拆解
将需求拆分为独立子任务。每个子任务必须包含:
| 字段 | 说明 | 示例 |
|---|
| task_id | 唯一标识 | task_001 |
| goal | 具体目标 | "为 UserService 添加 logout 方法" |
| allowed_paths | 允许修改的文件 | ["src/services/user.ts", "src/services/user.test.ts"] |
| forbidden_paths | 禁止修改的文件 | ["src/config/auth.ts"] |
| acceptance_criteria | 验收标准 | ["logout 方法已实现", "单元测试通过"] |
| test_requirements | 测试要求 | ["添加 logout 的单元测试"] |
| risk_level | 风险等级 | "medium" |
| dependencies | 依赖的任务 | ["task_001"] |
Step 4: 文件所有权冲突检测
核心规则:同一文件不能被两个并行任务同时修改。
检测逻辑:
- 收集所有任务的
allowed_paths
- 找出路径交集
- 如果存在交集:
- 尝试将冲突任务拆分到不同批次
- 如果无法拆分(循环依赖),合并为单个任务
- 记录冲突和解决方案
Step 5: DAG 构建与批次调度
构建有向无环图(DAG):
Batch 1 (并行): [Task A, Task B] ← 无依赖、无文件冲突
Batch 2 (并行): [Task C] ← 依赖 Task A
Batch 3 (并行): [Task D, Task E] ← 依赖 Task C
调度规则:
- 无依赖 + 无文件冲突 → 同一批次(并行)
- 有依赖 → 等待依赖完成后的批次
- 有文件冲突 → 分到不同批次(串行化冲突部分)
- 高风险任务 → 单独批次或降低并发度
Step 6: 创建任务
使用 TaskCreate 为每个子任务创建跟踪项:
TaskCreate({
subject: "Task A: [goal]",
description: "goal, allowed_paths, acceptance_criteria, test_requirements"
})
使用 TaskUpdate 设置依赖:
TaskUpdate({ taskId: "2", addBlockedBy: ["1"] })
输出格式
规划完成后,向主编排器报告:
## 规划结果
### 意图分析
- 类型: [intent_type]
- 范围: [scope_description]
- 风险: [risk_level]
### 任务图
- 总任务数: N
- 批次数: M
- 关键路径: Task A → Task C → Task D
### 批次调度
Batch 1 (并行, N 个任务): Task A, Task B
Batch 2 (串行, 1 个任务): Task C (依赖 A)
### 文件所有权
- 冲突数: X (已解决)
- 解决方案: [描述]
### 风险评估
- 高风险任务: [列表]
- 建议: [如需要额外确认]
约束
- 必须验证 DAG 无环(检测到环则回退为串行链)
- 必须检测文件所有权冲突并解决
- 高风险任务必须标记
- 如果歧义项 > 2 个,必须使用
AskUserQuestion 确认
- 不可在规划阶段修改任何代码文件