20 KiB
20 KiB
sgClaw 项目协作时间表
💡 提示:本文档包含完整的甘特图、依赖关系图和详细时间表。建议使用支持 Mermaid 的 Markdown 查看器(如 VS Code、Typora、GitHub)查看。
快速导航
📊 甘特图
📋 点击查看 Mermaid 源码
gantt
title sgClaw 2周开发计划(关键路径:P1a+P2)
dateFormat YYYY-MM-DD
axisFormat Day %d
section 关键路径⭐
P1a环境搭建 :p1a1, 2026-03-04, 2d
P1a Pipe协议开发 :crit, p1a2, after p1a1, 1d
P1a+P2联调Pipe通信 :crit, p1a3, after p1a2, 2d
P1a完善15个Action :crit, p1a4, after p1a3, 1d
W1里程碑演示 :milestone, m1, after p1a4, 0d
P1a+P1b集成Runtime :p1a5, after p1a4, 1d
P1a MAC安全策略 :p1a6, after p1a5, 1d
P1a bug修复 :p1a7, after p1a6, 2d
P1a代码审查交付 :milestone, m2, after p1a7, 1d
section P2浏览器对接
P2环境搭建 :p2a, 2026-03-04, 2d
P2 ProcessHost框架 :p2b, after p2a, 1d
P2+P1a联调Pipe :crit, p2c, after p2b, 2d
P2 CommandRouter对接 :p2d, after p2c, 1d
P2 MAC白名单 :p2e, after p2d, 1d
P2+P4 UI对接 :p2f, after p2e, 1d
P2 bug修复 :p2g, after p2f, 2d
P2交付 :milestone, after p2g, 1d
section P1b业务支持
P1b环境搭建 :p1b1, 2026-03-04, 2d
P1b SkillLoader开发 :p1b2, after p1b1, 3d
P1b Memory开发 :p1b3, after p1b2, 2d
P1b+P1a集成Runtime :p1b4, after p1b3, 1d
P1b+P3 Skill测试 :p1b5, after p1b4, 1d
P1b Critic评估器 :p1b6, after p1b5, 1d
P1b bug修复 :p1b7, after p1b6, 1d
P1b交付 :milestone, after p1b7, 1d
section P3业务技能
P3场景调研 :p3a, 2026-03-04, 1d
P3黄金样本制作 :p3b, after p3a, 3d
P3提示词工程 :p3c, after p3b, 1d
P3 AI批量翻译 :p3d, after p3c, 3d
P3质量抽检 :p3e, after p3d, 2d
P3交付Skill仓库 :milestone, after p3e, 0d
section P4前端发布
P4环境搭建 :p4a, 2026-03-04, 2d
P4 UI原型设计 :p4b, after p4a, 1d
P4 Side Panel开发 :p4c, after p4b, 2d
P4 Skill后台开发 :p4d, after p4c, 1d
P4+P2 IPC对接 :p4e, after p4d, 1d
P4测试框架搭建 :p4f, after p4e, 1d
P4 E2E测试 :p4g, after p4f, 2d
P4打包发布 :milestone, p4h, after p4g, 1d
section 全员里程碑
环境搭建完成 :milestone, after p1a1 p2a p1b1 p3a p4a, 0d
W1里程碑(链路打通) :milestone, m1_all, 2026-03-08, 0d
E2E测试周 :active, e2e, 2026-03-11, 2d
W2里程碑(正式发布) :milestone, m2_all, 2026-03-14, 0d
可视化图表
关键路径
Day 1-2 ━━━━━━━━━━━━━━━━━━━━━━ 环境搭建(并行)
┃
Day 3 ━━━━━┻━━━━━━━━━━━━━━━━━ P1a Pipe 协议开发 ⭐
┃
Day 4-5 ━━━┻━━━━━━━━━━━━━━━━━ P1a + P2 联调 Pipe ⭐⭐⭐
┃ (关键路径,阻塞所有人)
┃
▼
【W1 里程碑】链路打通
┃
Day 6 ━━━━━┻━━━━━━━━━━━━━━━━━ 三组并行集成:
├─ P1a + P1b (Runtime)
├─ P1b + P3 (Skill)
└─ P2 + P4 (UI)
┃
Day 7 ━━━━━┫ 安全策略 + AI 翻译
┃
Day 8-9 ━━━┻━━━━━━━━━━━━━━━━━ 全员 E2E 测试
┃
Day 10 ━━━━▼━━━━━━━━━━━━━━━━━ P4 打包发布
【W2 里程碑】正式发布
并行度分析
Day 1-2: ████████████████████ 5 人并行(环境搭建)
Day 3: ████ P1a 单人关键路径
Day 4-5: ████████ P1a+P2 双人关键路径 ⭐
Day 6-7: ████████████████ 4 人并行(P3 独立)
Day 8-9: ████████████████████ 5 人并行(E2E 测试)
Day 10: ████ P4 单人发布
关键瓶颈:Day 4-5(P1a + P2 联调)
🔗 依赖关系图
📋 点击查看 Mermaid 源码
graph TD
A[Day 1-2: 环境搭建] --> B[Day 3: P1a Pipe 协议]
B --> C[Day 4-5: P1a+P2 联调 Pipe ⭐]
C --> D[Day 5 晚: W1 里程碑]
D --> E1[Day 6: P1a+P1b 集成]
D --> E2[Day 6: P1b+P3 Skill]
D --> E3[Day 6: P2+P4 UI]
E1 --> F[Day 7: 安全+AI]
E2 --> F
E3 --> F
F --> G[Day 8-9: E2E 测试]
G --> H[Day 10: P4 打包发布]
style C fill:#ff6b6b,stroke:#c92a2a,color:#fff
style D fill:#51cf66,stroke:#2f9e44,color:#fff
style H fill:#51cf66,stroke:#2f9e44,color:#fff
一、关键依赖关系图
Day 1-2: 环境搭建(所有人独立)
↓
Day 3-5: 【关键路径】P1a + P2 联调打通 Pipe
↓ ↓
Day 6-7: P1a+P1b 集成 P2+P4 UI 对接
↓ ↓
P1b+P3 Skill 加载测试
↓
Day 8-9: 全员 E2E 测试
↓
Day 10: P4 发布打包
二、每日详细里程碑(按人员)
Day 1 - 环境搭建日(并行,无依赖)
| 角色 | 任务 | 产出物 | 验收标准 |
|---|---|---|---|
| P1a(赵义仑) | 搭建 Rust 环境,创建项目骨架 | sgClaw/src/main.rs + Cargo.toml |
cargo build 成功 |
| P1b | 同 P1a,克隆仓库 | 环境就绪 | cargo test 通过 |
| P2 | 搭建 Chromium 编译环境 | depot_tools + gn + ninja | 能编译出 Chrome |
| P3 | 调研 agent-vue 现有场景 | 场景清单 Excel(400+ 条) | 分类完成:表单/审批/采集/同步/巡检 |
| P4 | 搭建 Vue 开发环境 | npm install 完成 | npm run dev 启动 |
晚上站会:同步进度,确认明天 P1a + P2 联调计划
Day 2 - 基础框架日(并行,开始有少量依赖)
| 角色 | 任务 | 产出物 | 验收标准 |
|---|---|---|---|
| P1a | 实现 Pipe Protocol 基础结构 | pipe/protocol.rs, pipe/reader.rs, pipe/writer.rs |
单元测试:能序列化/反序列化 JSON Line |
| P1b | 设计 Skill 元数据格式 | skill/metadata.rs, schema/skill-metadata.json |
JSON Schema 验证通过 |
| P2 | 实现 SgClawProcessHost 基础框架 | sgclaw_process_host.h, .cc |
能启动 dummy 进程(echo "hello") |
| P3 | 精选 10 个代表性场景 | 10 个场景的业务流程文档 | 覆盖 5 种模式(表单/审批/采集/同步/巡检) |
| P4 | 设计 Side Panel UI 原型 | Figma/手绘原型 | 产品经理审核通过 |
晚上站会:P1a 和 P2 确认明天联调细节(JSON 格式、错误码)
Day 3 - 联调开始日(P1a + P2 关键路径)
| 角色 | 任务 | 产出物 | 验收标准 | 协作对象 |
|---|---|---|---|---|
| P1a ⭐ | 实现 STDIN 读取、STDOUT 写入 | Pipe 双向通信代码 | 能收发 JSON 消息 | → P2 |
| P1b | 开始 SkillLoader 开发 | skill/loader.rs 初版 |
能扫描目录、读取 .js 文件 | - |
| P2 ⭐ | 实现 PipeListener 异步读取 | pipe_listener.cc |
能从 STDOUT 读取 JSON Line | → P1a |
| P3 | 手工编写前 3 个黄金样本 | 3 个 Skill.js 文件 | 代码能手动执行(mock browserAction) | - |
| P4 | 开发 Side Panel UI 框架 | AgentControlPanel.vue 初版 |
能渲染基本界面 | - |
下午联调(P1a + P2):
- P1a 启动 Rust 进程,监听 STDIN
- P2 用 C++ 创建子进程,传递 fd
- 互相发送 JSON 消息:
{"action":"ping"}↔{"status":"pong"}
验收标准:双向通信成功,能在 Chrome 控制台看到 Rust 日志
Day 4 - 核心功能日(P1a + P2 继续打通)
| 角色 | 任务 | 产出物 | 验收标准 | 协作对象 |
|---|---|---|---|---|
| P1a ⭐ | 实现 BrowserPipeTool(3 个 Action) | tool/browser_pipe.rs |
支持 click / type / navigate | → P2 |
| P1b | SkillLoader 签名验证 | skill/signature.rs |
Ed25519 验证通过/失败 | - |
| P2 ⭐ | CommandRouter 对接 | sgclaw_process_host.cc 集成 CommandRouter |
能调用现有 70+ 命令 | → P1a |
| P3 | 手工编写剩余 7 个黄金样本 | 10 个 Skill.js 全部完成 | 每个都有详细注释 | - |
| P4 | 开发 Skill 管理后台 | SkillManager.vue |
能列表显示 Skill | → P2(IPC 接口确认) |
下午联调(P1a + P2):
- P1a 发送
{"action":"click", "params":{"selector":"#btn"}} - P2 接收后调用 CommandRouter → CdpBridge → Chrome DevTools Protocol
- 浏览器真实执行点击
验收标准:能用 Rust 控制浏览器点击按钮
Day 5 - W1 里程碑(Pipe 全链路打通)
| 角色 | 任务 | 产出物 | 验收标准 | 协作对象 |
|---|---|---|---|---|
| P1a ⭐ | 完善 BrowserPipeTool(15 个 Action) | 完整工具 | 所有 Action 测试通过 | → P2 |
| P1b | Memory 模块开发 | memory/ring_buffer.rs, memory/sqlite_store.rs |
Ring Buffer 存取、SQLite 初始化 | - |
| P2 ⭐ | MAC 白名单检查 | mac_whitelist_check.cc, rules.json |
白名单校验生效 | → P1a |
| P3 | 设计 System Prompt | prompts/translation-system.txt |
在 10 个样本上测试准确率 | - |
| P4 | UI 集成测试 | Vue ↔ C++ IPC 调通 | 能从 UI 启动/停止 sgClaw | → P2 |
下午全体演示(W1 里程碑验收):
- P4 打开 Side Panel,输入"点击登录按钮"
- Vue → C++ → Rust → 大模型(mock)→ Rust → C++ → 浏览器
- 浏览器真实执行操作
验收标准:LLM → Pipe → Browser 链路全通
Day 6 - 并行集成日(三组同时进行)
组 1:P1a + P1b(集成 AgentRuntime)
| 角色 | 任务 | 产出物 | 验收标准 |
|---|---|---|---|
| P1a | 提供 BrowserPipeTool 给 P1b | 完整 Tool trait 实现 | P1b 能注册工具 |
| P1b | AgentRuntime 集成 | agent/runtime.rs |
ZeroClaw ReAct Loop 运行 |
下午联调:
- P1b 创建
AgentRuntime,注册BrowserPipeTool - 模拟 LLM 输出:
{"tool":"browser","action":"click","params":{...}} - 验证工具调用成功
组 2:P1b + P3(Skill 加载测试)
| 角色 | 任务 | 产出物 | 验收标准 |
|---|---|---|---|
| P1b | SkillLoader 完善 | JS 沙箱执行 | 能执行 Skill.js |
| P3 | 10 个 Skill 加签名 | 签名完成的 Skill | 验证通过 |
下午联调:
- P1b 扫描
skills/目录 - 加载 P3 的 10 个 Skill
- 执行一个 Skill,调用
browserAction
组 3:P2 + P4(UI 对接)
| 角色 | 任务 | 产出物 | 验收标准 |
|---|---|---|---|
| P2 | 暴露 IPC 接口给 P4 | window.superrpa.sgclaw.* |
P4 能调用 |
| P4 | 完善 UI + Skill 后台 | 两个 Vue 组件 | 能管理 Skill 启用/禁用 |
下午联调:
- P4 调用
window.superrpa.sgclaw.listSkills() - P2 返回 Skill 列表
- P4 在界面上显示
Day 7 - 安全与优化日
| 角色 | 任务 | 产出物 | 验收标准 | 协作对象 |
|---|---|---|---|---|
| P1a | MAC Policy 集成到 BrowserPipeTool | 安全策略生效 | 非白名单域名被拦截 | → P2(确认拦截反馈) |
| P1b | Critic 评估器 | agent/critic.rs |
能判断成功/失败/重试 | - |
| P2 | Human-in-the-loop 确认弹窗 | C++ 对话框 | 敏感操作弹窗确认 | → P1a(定义敏感操作列表) |
| P3 | 批量 AI 翻译(第 1 批) | 100 个 Skill 候选 | 翻译准确率 >90% | - |
| P4 | 测试框架搭建 | Jest + Puppeteer 配置 | 能运行单元测试 | - |
下午安全测试:
- 尝试访问非白名单域名(应被拦截)
- 尝试执行敏感操作(应弹窗确认)
- 连续失败 10 次触发熔断
Day 8 - E2E 测试日(全员参与)
| 角色 | 任务 | 产出物 | 验收标准 |
|---|---|---|---|
| P1a | 修复 Pipe 通信 bug | 稳定版本 | 无消息丢失 |
| P1b | 修复 Memory 存取 bug | 稳定版本 | SQLite 读写正常 |
| P2 | 修复浏览器端 bug | 稳定版本 | 进程不崩溃 |
| P3 | 批量 AI 翻译(第 2-4 批) | 400 个 Skill 全部完成 | 自动检查通过率 >85% |
| P4 | E2E 测试脚本 | 6 个业务场景测试 | 全部通过 |
E2E 测试场景:
- 财务合规:导出 ERP 月度报表
- OA 审批:批量审批 10 个单据
- 风险监测:巡检风险指标
- 人资社保:办理社保增减员
- 营销数据:跨平台采集数据
- 跨系统同步:ERP → 财务数据同步
验收标准:每个场景端到端运行成功,无崩溃
Day 9 - 稳定性测试日
| 角色 | 任务 | 产出物 | 验收标准 |
|---|---|---|---|
| P1a | 性能优化 | Pipe 通信延迟 <10ms | 性能达标 |
| P1b | Memory 压力测试 | L2 存 1000 条记录 | 无内存泄漏 |
| P2 | 长时间运行测试 | 24 小时稳定性 | 进程不崩溃 |
| P3 | Skill 质量抽检 | 抽检 20 个 Skill | 人工验证通过 |
| P4 | 集成测试 + 打包预演 | 测试报告 | 覆盖率 >70% |
压力测试:
- 连续执行 100 次操作
- 8GB 内存限制下运行
- 监控内存占用(sgClaw 应 <10MB)
Day 10 - 发布日(W2 里程碑)
| 角色 | 任务 | 产出物 | 验收标准 |
|---|---|---|---|
| P1a | 代码审查 + 交付 | 完整 Rust 代码 | P2 审查通过 |
| P1b | 代码审查 + 交付 | 完整 Rust 代码 | P1a 审查通过 |
| P2 | 代码审查 + 交付 | 完整 C++ 代码 | P1a 审查通过 |
| P3 | Skill 仓库交付 | 400+ Skill + 文档 | P1b 审查通过 |
| P4 | 打包发布 | .deb + .exe 安装包 |
两平台安装成功 |
发布物清单:
sgclaw-v1.0.0-kylin-v10-amd64.deb(~456MB)sgclaw-v1.0.0-windows-x64.exe(~460MB)CHANGELOG.mdINSTALL.md- 演示视频(6 个场景)
三、关键接口对接清单
1. P1a ↔ P2 接口(最重要)
协议:JSON Line over STDIO Pipe
Request 示例(C++ → Rust):
{
"sequence_id": 1,
"action": "click",
"params": {
"selector": "#submit-button",
"button": "left"
},
"timestamp": 1709499600000
}
Response 示例(Rust → C++):
{
"sequence_id": 1,
"status": "success",
"result": {
"clicked": true
},
"error": null,
"timestamp": 1709499601000
}
对接时间:Day 3-5(关键路径)
验收标准:
- Day 3:能互相发送 ping/pong
- Day 4:能调用 3 个 Action(click/type/navigate)
- Day 5:能调用全部 15 个 Action
2. P1a ↔ P1b 接口
模块依赖:
- P1b 的
AgentRuntime依赖 P1a 的BrowserPipeTool
接口代码:
// P1a 提供
pub struct BrowserPipeTool {
pipe_writer: PipeWriter,
mac_policy: MacPolicy,
sequence_id: AtomicU64,
}
impl Tool for BrowserPipeTool {
async fn execute(&self, input: &str) -> Result<String>;
}
// P1b 使用
let browser_tool = BrowserPipeTool::new(...);
agent_runtime.register_tool(Box::new(browser_tool));
对接时间:Day 6
验收标准:
- P1b 能注册 P1a 的工具
- Agent 能调用浏览器操作
3. P1b ↔ P3 接口
Skill 元数据规范:
/**
* @skill erp-monthly-report
* @version 1.0.0
* @domains erp.example.com
* @params { month: string, format: enum }
* @signature <ed25519_base64>
*/
async function execute(params, browserAction) {
await browserAction('navigate', {...});
await browserAction('click', {...});
return { success: true };
}
BrowserAction API:
await browserAction(action, params)
// 返回 Promise<result>
对接时间:Day 6-7
验收标准:
- P1b 能扫描并加载 P3 的 Skill
- 签名验证通过
- Skill 能正常执行
4. P2 ↔ P4 接口
FunctionsUI IPC(Vue ↔ C++):
// P4 调用(Vue)
window.superrpa.sgclaw.start()
window.superrpa.sgclaw.stop()
window.superrpa.sgclaw.sendCommand(text)
window.superrpa.sgclaw.listSkills()
window.superrpa.sgclaw.toggleSkill(skillId, enabled)
// P2 回调(C++ → Vue)
window.superrpa.sgclaw.onStatusChange((status) => { ... })
window.superrpa.sgclaw.onLog((log) => { ... })
对接时间:Day 4-6
验收标准:
- P4 能启动/停止 sgClaw 进程
- P4 能接收日志更新
- P4 能管理 Skill 列表
四、每日站会议程
时间:每天 10:00,15 分钟
Day 1-2 站会重点:环境搭建进度
Day 3-5 站会重点(关键路径):
- P1a + P2 联调进度
- 遇到的技术问题
- 是否需要其他人支援
Day 6-7 站会重点:
- 三组并行集成进度
- 接口冲突解决
- 安全测试结果
Day 8-9 站会重点:
- E2E 测试通过率
- Bug 修复优先级
- 性能优化方向
Day 10 站会:
- 发布 Checklist 确认
- 演示视频录制分工
五、风险预案
风险 1:P1a + P2 联调卡住(Day 3-5)
影响:阻塞所有后续工作(极高风险)
预案:
- Day 3 晚上如果还没通:P1b 暂停自己的工作,全力支援
- Day 4 晚上如果还没通:启动降级方案(HTTP 替代 Pipe)
风险 2:P3 AI 翻译质量不达标(Day 7-9)
影响:Skill 不可用(中风险)
预案:
- 准确率 <80%:人工介入修正 Prompt
- 准确率 <60%:放弃 AI 翻译,只交付 10 个黄金样本
风险 3:银河麒麟适配问题(Day 9-10)
影响:无法打包 .deb(中风险)
预案:
- P4 提前在 Day 7 开始真机测试
- 如果 Day 9 还有问题,先发布 Windows 版本
六、交付物 Checklist
P1a 交付物(Day 10)
src/pipe/完整代码src/tool/browser_pipe.rssrc/security/mac_policy.rs- 单元测试(覆盖率 >70%)
- API 文档(Rust Doc)
P1b 交付物(Day 10)
src/skill/完整代码src/memory/完整代码src/agent/完整代码- 单元测试(覆盖率 >70%)
- Memory 压力测试报告
P2 交付物(Day 10)
sgclaw_process_host.*pipe_listener.*mac_whitelist_check.*rules.json- C++ 单元测试
- 接口文档
P3 交付物(Day 10)
- 10-15 个黄金样本
- 400+ AI 生成 Skill
prompts/translation-system.txtREADME.md(Skill 开发指南)- 签名工具脚本
P4 交付物(Day 10)
AgentControlPanel.vueSkillManager.vue- E2E 测试脚本(6 个场景)
- 测试报告(覆盖率 >70%)
.deb安装包.exe安装包CHANGELOG.mdINSTALL.md
文档版本:v1.0 最后更新:2026-03-04 维护者:项目经理