|
|
@@ -1,141 +1,106 @@
|
|
|
---
|
|
|
name: task-dispatch
|
|
|
-description: "触发词:派发、并行、多任务、分发、同时执行。自动选择最佳派发模式,无需用户指定。"
|
|
|
-version: 4.0.0
|
|
|
+description: "触发词:派发、并行、并发、分发、同时执行。Hermes沟通→CC执行通用协作范式,自动选择最佳派发模式。"
|
|
|
+version: 1.0.0
|
|
|
author: Yuyang001 (FmodeAgent)
|
|
|
license: MIT
|
|
|
-tags: [dispatch, parallel, cc, delegation, workflow]
|
|
|
+tags: [hermes, claude-code, dispatch, parallel, workflow]
|
|
|
---
|
|
|
|
|
|
-# task-dispatch v4 — 自动任务调度中枢
|
|
|
+# Hermes ↔ Claude Code 协作范式(task-dispatch v1)
|
|
|
|
|
|
-> 2026-09-22 升级说明:不再需要用户说"派发、并行"——任何 Git 级、多文件、跨案例任务都自动走五步流程
|
|
|
+> 2026-09-22 · 奥卡姆剃刀版
|
|
|
+> 角色铁律:**Hermes Agent 负责沟通/协调/验收,Claude Code 负责专业执行**
|
|
|
|
|
|
-## 设计理念
|
|
|
+## 一、为什么需要这个范式
|
|
|
|
|
|
-**用户只需说出需求 → 我自动推导最适合的派发模式**。不需要用户额外说"并发""分配""派发"这些词。
|
|
|
+Agent 同时聊天和干活的三个死法:
|
|
|
+1. **静默死亡**:Hermes 在等 API 回复时卡住,用户以为在干活→实际空转
|
|
|
+2. **上下文污染**:长任务塞满上下文,下一轮用户消息被挤出
|
|
|
+3. **单点故障**:一个长任务卡住,其他所有任务排队等
|
|
|
|
|
|
-## 一、自动任务分类器(新增——不再需要用户指定模式)
|
|
|
+解法:**沟通和执行的职责分离**——Hermes 管聊天/协调,CC 管执行。两者独立存活。
|
|
|
|
|
|
-收到任务后第一步:分类。以下规则自动触发,用户不必说模式名。
|
|
|
+## 二、角色职责
|
|
|
|
|
|
-```
|
|
|
-任务属于哪类?
|
|
|
-├─ 课程开发/课件制作(skill-present 仓库内)
|
|
|
-│ ├─ 首次制作/重做 → 模式A-1:五步完整流程(调研→计划→任务书→4CC并行→验收)
|
|
|
-│ ├─ 增强/加资源(图文并茂) → 模式A-2:保留框架增量增强(案例图+skill-image+自绘保留)
|
|
|
-│ └─ 改文案/微调 → 模式A-3:定点任务书+单CC
|
|
|
-├─ 基础设施/软件开发(fmode-hub/fmode-app/fmode-studio)
|
|
|
-│ ├─ 全栈开发 → 模式B:delegate_task 子代理(跨仓库素材+独立工具链)
|
|
|
-│ └─ 配置/部署 → 主Agent亲手(纯机械操作)
|
|
|
-├─ 信息检索/文件操作 → 直接执行或delegate_task
|
|
|
-└─ 简单问答 → 直接回答
|
|
|
-```
|
|
|
-
|
|
|
-### 课程开发五步完整流程(模式A-1,用户说「做四个主题课件」自动触发)
|
|
|
+| 角色 | 职责 | 禁止 |
|
|
|
+|------|------|------|
|
|
|
+| **Hermes** | 理解需求 → 拆解分类 → 调研素材 → 写任务书 → 派发CC → 监控健康 → 验收产出 → 交付 | 动手做专业创作(写代码/做HTML/写方案) |
|
|
|
+| **Claude Code** | 读任务书 → 在项目里执行 → 产出交付物 → commit | 自改框架/删已认可内容/未验收自报完成 |
|
|
|
|
|
|
-1. **调研素材**(1次回合):读项目 CLAUDE.md + 读参考源 + 盘点案例 + 查历史
|
|
|
-2. **写计划**:方向、结构、阶段划分 → 产出 plan.md
|
|
|
-3. **写任务书**(每主题一份):inline 素材引用 + 绝对路径 + 验收标准
|
|
|
-4. **并行派发**(4个CC同时跑):写提示文件 → terminal(background) × 4 → 各自独立log
|
|
|
-5. **验收收尾**:git commit+push → OBS→CDN→curl 全路由200
|
|
|
+## 三、标准流程
|
|
|
|
|
|
-### 课程增强增量模式(模式A-2,用户说「加图、增强、图文并茂」自动触发)
|
|
|
+```
|
|
|
+收到任务
|
|
|
+ ① 拆解分类(课程/基础设施/查询/问答)
|
|
|
+ ② 调研素材(项目CLAUDE.md + 参考源 + 现有资源)
|
|
|
+ ③ 写任务书(inline素材引用 + 绝对路径 + 验收标准)
|
|
|
+ ④ 派发CC(每任务独立log + 绝对路径 + notify_on_complete)
|
|
|
+ ⑤ 60s健康检查(pgrep 确认真在跑)
|
|
|
+ ⑥ 等待完成通知
|
|
|
+ ⑦ 验收(git log / 文件存在 / URL 200 / Content-Type)
|
|
|
+ ⑧ 上线交付(commit+push / OBS+CDN / 发可达链接)
|
|
|
+```
|
|
|
|
|
|
-1. **现状盘点**:当前 HTML 的自绘 SVG 有哪些?引用了什么外图?
|
|
|
-2. **素材定位**:8案例 CDN 图索引 + skill-image 能力检查 + 现有图验证(Content-Type)
|
|
|
-3. **逐主题任务书**:指定每页加什么图(案例CDN图 + skill-image生成图),明确"保留全部现有内容"
|
|
|
-4. **并行派CC**:4个主题同时跑
|
|
|
-5. **图片验证**:curl Content-Type 含 image/ 才算通过
|
|
|
+## 四、任务分类器
|
|
|
|
|
|
-## 二、三种派发模式(技术实现细节)
|
|
|
+```
|
|
|
+├─ 课件/课程开发(skill-present仓)
|
|
|
+│ ├─ 新制作 → 五步完整流程
|
|
|
+│ ├─ 增量增强 → 保留框架加资源
|
|
|
+│ └─ 微调 → 单CC定点任务书
|
|
|
+├─ 基础设施/开发(fmode-hub/fmode-app等)
|
|
|
+│ └─ delegate_task 或 单CC+详细任务书
|
|
|
+├─ 信息查询/文件操作 → 亲手
|
|
|
+└─ 简单问答 → 直接答
|
|
|
+```
|
|
|
|
|
|
-### 模式A:CC自并发 — 同项目多任务【首选】
|
|
|
-**自动触发条件**:skill-present 仓库、课程开发、多文件产出
|
|
|
+## 五、CC 派发技术模板
|
|
|
|
|
|
-实现模板:
|
|
|
```bash
|
|
|
# 1. 写提示文件(避免shell转义)
|
|
|
-cat > /tmp/cc-task-book.md << 'EOF'
|
|
|
-[inline 素材引用 + 验收标准 + 纪律]
|
|
|
+cat > /tmp/cc-task.md << 'EOF'
|
|
|
+[内联素材 + 纪律 + 验收标准]
|
|
|
EOF
|
|
|
|
|
|
-# 2. 启动(绝对路径防exit 127)
|
|
|
+# 2. 绝对路径启动(防exit 127)
|
|
|
export PATH="/opt/data/npm-global/bin:$PATH"
|
|
|
-cd /opt/data/git-repos/skill-present
|
|
|
+cd /opt/data/git-repos/<项目>
|
|
|
/opt/data/npm-global/bin/claude -p \
|
|
|
--dangerously-skip-permissions \
|
|
|
- "$(cat /tmp/cc-task-book.md)" \
|
|
|
- > /tmp/cc-task.log 2>&1 &
|
|
|
-
|
|
|
-# 3. 60s健康检查
|
|
|
-sleep 60 && pgrep -f "claude -p" || echo "启动失败"
|
|
|
-```
|
|
|
-
|
|
|
-### 模式B:delegate_task — 跨项目/跨目录
|
|
|
-**自动触发条件**:多仓库素材、基础设施工具链、容器操作
|
|
|
+ "$(cat /tmp/cc-task.md)" \
|
|
|
+ > /tmp/cc-xxx.log 2>&1 &
|
|
|
|
|
|
-### 模式C:亲手执行
|
|
|
-**自动触发条件**:纯机械操作、单文件修改、部署命令、验证脚本
|
|
|
+# 3. 60s后确认真在跑
|
|
|
+sleep 60; pgrep -f "claude -p" || echo "❗启动失败"
|
|
|
|
|
|
-## 三、并行派发纪律(2026-09-21 四主题并行实证)
|
|
|
-
|
|
|
-1. **每任务独立 log**:`> /tmp/cc-<任务名>.log 2>&1`
|
|
|
-2. **绝对路径防 127**:`/opt/data/npm-global/bin/claude`
|
|
|
-3. **先 git pull 再干活**:修改前拉取最新
|
|
|
-4. **提交用显式 pathspec**:`git add <明确文件>`,禁 `git add .`
|
|
|
-5. **共享文件不抢提交**(index/manifest):批次收口统一提交
|
|
|
-6. **启动后 60s 健康检查**:确认真在跑
|
|
|
-7. **4 个以内直接并行**(已验证可行),4 个以上分批
|
|
|
-
|
|
|
-## 四、图片验证铁律(2026-09-22 用户钦点)
|
|
|
-
|
|
|
-```bash
|
|
|
-# ❌ 只查HTTP 200不够——可能返回404首页替代
|
|
|
-curl -s -m 10 -o /dev/null -w "%{http_code}" <URL> # 不够!
|
|
|
-
|
|
|
-# ✅ 必须检查 Content-Type
|
|
|
-CT=$(curl -s -m 10 -o /dev/null -w "%{content_type}" <URL>)
|
|
|
-echo "$CT" # 必须是 image/png 或 image/jpeg
|
|
|
+# 4. 独立log:每任务不同文件名
|
|
|
+# 5. 提交用显式pathspec:git add <明确文件>,禁git add .
|
|
|
```
|
|
|
|
|
|
-## 五、保留框架增量增强纪律(2026-09-22 V6 实证)
|
|
|
+## 六、验收铁则
|
|
|
|
|
|
-当用户说"内容不错、结构好了,但需要加图/增强"时:
|
|
|
-1. **框架/content 结构不动**——用户已认可的不要改
|
|
|
-2. **自绘 SVG/自绘资源全部保留**——宝贵素材
|
|
|
-3. **只在对应位置补充**:CDN 案例图 + skill-image 生成的场景图
|
|
|
-4. **技术架构图升级**:skill-image 出图加入人、场景、业务流程,让非技术老板看懂
|
|
|
-5. **每增加一屏或加图后**:验证图片的 Content-Type
|
|
|
+1. **自报完成≠完成**——验收信落盘不信汇报
|
|
|
+2. **文件存在**:`ls` 任务书列出的每个交付物
|
|
|
+3. **URL验证**:`curl -w "%{http_code}"` = 200 且 `-w "%{content_type}"` 含正确类型(图片必须 `image/*`)
|
|
|
+4. **git log**:有对应commit
|
|
|
+5. **交付物必须随回复直发**(URL 或 MEDIA:文件),光说"完成"不算
|
|
|
|
|
|
-## 六、skill-image 集成模式(2026-09-22 新增)
|
|
|
-
|
|
|
-```bash
|
|
|
-# --scene: 场景图(插图/含人的架构图/业务流程)
|
|
|
-node /opt/data/skills/skill-image/lib/fmode-image.mjs --scene \
|
|
|
- "蓝紫色科技风, 办公室场景描述, 具体内容描述" \
|
|
|
- output-file.png
|
|
|
-
|
|
|
-# --app: 应用界面(白底UI图)
|
|
|
-node ... --app "APP界面描述" output.png
|
|
|
-
|
|
|
-# --product: 产品爆炸图/架构图
|
|
|
-node ... --product "架构分层描述" output.png
|
|
|
-```
|
|
|
-生成后上传 OBS + CDN 刷新,然后验证 Content-Type。
|
|
|
+## 七、启动健康检查
|
|
|
|
|
|
-## 七、自检清单(六步)
|
|
|
+启动后60秒内必查(任一成立才算真运行):
|
|
|
+1. log文件出现模型回复或工具调用
|
|
|
+2. 进程CPU时间在增长(`ps -o time= -p <pid>`)
|
|
|
+3. 目标仓库出现新改动(`git status --short`)
|
|
|
|
|
|
-- [ ] 分类:这是课程开发/基础设施/查询?
|
|
|
-- [ ] 需要走五步完整流程还是增量增强?
|
|
|
-- [ ] 素材调研完没?(读CLAUDE.md/索引/验证图片)
|
|
|
-- [ ] 任务书写好且 inline 引用了吗?
|
|
|
-- [ ] 派发后 60s 健康检查过了吗?
|
|
|
-- [ ] 验收:所有资源 Content-Type 正确?
|
|
|
+空日志+exit=0 = 启动失败,禁止报"运行中"。
|
|
|
|
|
|
-## 八、沟通铁则
|
|
|
+## 八、恢复矩阵
|
|
|
|
|
|
-1. 接任务秒回执(收到+拆解+派发模式+预计时间)
|
|
|
-2. 派发后告知任务面板(共X个后台CC在跑)
|
|
|
-3. 完成报结果(全部完工/部分+缺陷)
|
|
|
-4. 卡住汇报原因+替代方案
|
|
|
+| 现象 | 动作 |
|
|
|
+|------|------|
|
|
|
+| exit 127(claude找不到) | 用绝对路径重派 |
|
|
|
+| exit 1(模型503/401) | 检查settings.json模型名和token |
|
|
|
+| 超时无通知 | process list查存活;git log查产物 |
|
|
|
+| 完成但无DONE行 | 先盘点产物再决定(可能是回执被吞) |
|
|
|
+| 连败3次同域任务 | 停止重派,主Agent亲手或拆原子步骤
|