# Subagent Dispatch

> Use when dispatching a coding subtask to a subagent, or when re-dispatching after a subagent returns blocked or non-empty uncertainties. 主 Agent 首次派发或重派编码子任务给 subagent 时加载：产出方向明确、验收可执行、范围有界、带工作区状态声明的派发文本，并约束派发后行为（收到 JSON 即停止交互、blocked 重派不追问、禁止 subagent 再派发）。

- Skill: `shenzhantu/subagent-dispatch` (Agent Skill, multi-file: 12 files)
- Install (CLI): `npx skillmds@latest add shenzhantu/subagent-dispatch`
- Raw SKILL.md: https://api.skillmd.com/api/skills/shenzhantu/subagent-dispatch/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: AI & ML
- Author: shenzhantu (https://skillmd.com/u/shenzhantu)
- Updated: 2026-09-17
- Page: https://skillmd.com/skills/shenzhantu/subagent-dispatch

---


# Subagent 派发规范

你是主 Agent。subagent 是部件，不是聊天对象：你派发的文本是它唯一的输入，它返回的 JSON 是你唯一的输出。实测教训：subagent 的失败，根源大多不在 subagent，而在派发文本没钉死关键信息。

## 何时使用

两个独立决策点，任一命中即使用本规范：

1. **首次派发前**：你决定把编码子任务交给 subagent——无论是用户要求，还是你根据任务复杂度自主判断。
2. **重派前**：subagent 返回 `blocked`，或 `uncertainties` 非空、你逐条决策后需要再派。重派是独立决策点，不要凭首次派发的惯性直接续写。

## 总纲

- 本规范是**信息覆盖清单**，不是固定模板。字段可合并、重排、裁剪；只有核心五项不可缺。
- 具体问题具体分析：简单任务一段话覆盖核心五项即可，复杂任务才展开完整结构。把清单执行成八股填格，是本规范明确禁止的用法。
- 每条规则对应的实测证据与诚实标注（哪些是实测、哪些是工程判断）见 `references/evidence.md`；逐字段填写指引、参考结构与完整示例见 `references/dispatch-guide.md`。

## 选择性任务类型路由

对每一个由本 Skill 生成的编码子 Agent 派发：

1. Read `references/task-types/index.md`.
2. Select exactly one `TASK_TYPE` after reading it. Mixed intents must be decomposed before dispatch.
3. Read exactly one matching type strategy.
4. Read `references/task-types/flags.md` only when an orthogonal field changes execution.
5. Materialize the selected strategy into the outgoing dispatch.
6. Resolve conflicts before dispatch; never ask the worker to classify itself.

The main agent classifies; the worker executes the materialized strategy and never reclassifies itself.

Existing direct dispatches without TASK_TYPE retain the generic preset workflow. This compatibility statement describes direct tasks outside the Skill; this Skill never emits an untyped coding-subagent dispatch.

## 派发文本覆盖清单

### 核心五项（不可缺）

| 信息点 | 要求 |
|---|---|
| TASK_TYPE | Read `references/task-types/index.md` and select exactly one supported `TASK_TYPE`; mixed intents must be decomposed before dispatch. |
| 方向与预期 | 歧义处三选一：钉死方向 / 显式授权按假设执行并要求上报 / 要求 blocked。不确定就钉死，不让 subagent 猜——不钉方向时它的选择是彩票 |
| 验收判据 | 可执行命令 + 期望结果 + 达成判据。命令派发前自己跑一遍；明知环境缺件时显式声明「坏环境预期，应 blocked」，不留给 subagent 伪造验收的空间 |
| 范围边界 | 允许修改的文件清单，越界即判负 |
| 返回约定 | 引用 subagent 预设的 return_format；说明你将如何消费 uncertainties 与 next_step_hint |

### 可裁剪四项

| 信息点 | 裁剪规则 |
|---|---|
| 任务背景 | 一句话即可。subagent 是部件，不需要故事 |
| 环境注记 | 可裁剪，但**已知恒真的环境事实默认带一行**（解释器是 `python3` 还是 `python`、工作区根路径）——环境错配是全部信息点里失败频率最高的，这一行是每次派发最便宜的保险 |
| 交付物清单 | 与范围边界重叠时可合并 |
| 补充约束 | 无补充时整项省略 |

## 语言规则

- **技术原子永远 ASCII**：命令、路径、代码、期望输出。写死，无例外。
- **散文叙述默认英文**；全中文项目语境可跟随中文。若某个中文强模型对英文派发出现指令理解异常，回退中文的代价为零（跟随语境条款天然覆盖）。

## 重派协议

收到 `blocked`，或 uncertainties 决策后需要修正方向时：先修环境/补信息，然后**重派一份自包含的新派发文本**，不追问原会话。重派文本在首派基础上必须增带两项：

1. **上轮摘要**：上一轮的 status、next_step_hint，以及你对每条 uncertainties 的裁决（接受/驳回）。
2. **工作区状态声明**：一行，二选一——
   - `Workspace: reset to initial state.`（已重置到起始态）
   - `Workspace: keeps changes from previous run: <列出保留的修改>.`（保留上轮部分修改，逐条列出）

盘上状态必须可归因到具体轮次；不写这一行，下一轮的结果就无法判读。

## 派发后纪律

1. 收到 JSON 即停止交互——需要变化就重派，重派代替追问。
2. uncertainties 非空时逐条决策：接受 / 驳回 / 重派，不搁置。
3. blocked 时先修环境或补信息，再按重派协议重派；不让同一配置原样重试。
4. 验收命令派发前自己跑过一遍。
5. 派发文本发出前过一遍泄漏检查（见 dispatch-guide.md 检查清单）。

## 绝不做什么

1. 不替 subagent 执行子任务本身。
2. 不在派发文本中暗示期望行为（去提示化）。
3. 不编造自己没跑过的验收命令。
4. 不与 subagent 追问式交互。
5. 不允许 subagent 再派发 subagent：派发文本中显式声明「你是执行终端，不得再委派；超出权限的事报 blocked 上报」。
6. 不为迁就单次派发去修改 subagent 预设本体。
7. 不把覆盖清单执行成强制八股结构。
8. 不引用被派发方不该看到的工件：参考解路径、兄弟任务文件、判分标准、会话存储。去提示化只管「暗示期望行为」，管不了「泄漏参照物」。

## 资源

- `references/task-types/index.md`：任务类型选择与混合意图拆解入口。
- `references/task-types/flags.md`：仅在正交字段改变执行时使用的可选路由。
- `references/dispatch-guide.md`：覆盖清单逐字段填写指引、参考结构、首派与重派完整示例、泄漏检查清单、同名吸引子防范。
- `references/evidence.md`：每条规则的实测证据表，含证据类型标注（直接实测 / 同族实测背书 / 工程判断）。

