# sgClaw 项目协作时间表 > **💡 提示**:本文档包含完整的甘特图、依赖关系图和详细时间表。建议使用支持 Mermaid 的 Markdown 查看器(如 VS Code、Typora、GitHub)查看。 ## 快速导航 - [📊 甘特图](#甘特图) - [🔗 依赖关系图](#依赖关系图) - [📅 每日详细里程碑](#二每日详细里程碑按人员) - [🔌 关键接口对接清单](#三关键接口对接清单) - [📢 每日站会议程](#四每日站会议程) - [⚠️ 风险预案](#五风险预案) - [✅ 交付物 Checklist](#六交付物-checklist) --- ## 📊 甘特图 ![甘特图 1](./archive/领导演示资料/docs-figures/协作甘特图.svg)
📋 点击查看 Mermaid 源码 ```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 联调) ``` --- ## 🔗 依赖关系图 ![依赖关系图 2](https://mermaid.ink/img/Z3JhcGggVEQKICAgIEFbRGF5IDEtMjog546v5aKD5pCt5bu6XSAtLT4gQltEYXkgMzogUDFhIFBpcGUg5Y2P6K6uXQogICAgQiAtLT4gQ1tEYXkgNC01OiBQMWErUDIg6IGU6LCDIFBpcGUg4q2QXQogICAgQyAtLT4gRFtEYXkgNSDmmZo6IFcxIOmHjOeoi+eikV0KICAgIAogICAgRCAtLT4gRTFbRGF5IDY6IFAxYStQMWIg6ZuG5oiQXQogICAgRCAtLT4gRTJbRGF5IDY6IFAxYitQMyBTa2lsbF0KICAgIEQgLS0+IEUzW0RheSA2OiBQMitQNCBVSV0KICAgIAogICAgRTEgLS0+IEZbRGF5IDc6IOWuieWFqCtBSV0KICAgIEUyIC0tPiBGCiAgICBFMyAtLT4gRgogICAgCiAgICBGIC0tPiBHW0RheSA4LTk6IEUyRSDmtYvor5VdCiAgICBHIC0tPiBIW0RheSAxMDogUDQg5omT5YyF5Y+R5biDXQogICAgCiAgICBzdHlsZSBDIGZpbGw6I2ZmNmI2YixzdHJva2U6I2M5MmEyYSxjb2xvcjojZmZmCiAgICBzdHlsZSBEIGZpbGw6IzUxY2Y2NixzdHJva2U6IzJmOWU0NCxjb2xvcjojZmZmCiAgICBzdHlsZSBIIGZpbGw6IzUxY2Y2NixzdHJva2U6IzJmOWU0NCxjb2xvcjojZmZmCg==)
📋 点击查看 Mermaid 源码 ```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): 1. P1a 启动 Rust 进程,监听 STDIN 2. P2 用 C++ 创建子进程,传递 fd 3. 互相发送 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): 1. P1a 发送 `{"action":"click", "params":{"selector":"#btn"}}` 2. P2 接收后调用 CommandRouter → CdpBridge → Chrome DevTools Protocol 3. 浏览器真实执行点击 **验收标准**:能用 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 里程碑验收): 1. P4 打开 Side Panel,输入"点击登录按钮" 2. Vue → C++ → Rust → 大模型(mock)→ Rust → C++ → 浏览器 3. 浏览器真实执行操作 **验收标准**:**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 测试场景**: 1. 财务合规:导出 ERP 月度报表 2. OA 审批:批量审批 10 个单据 3. 风险监测:巡检风险指标 4. 人资社保:办理社保增减员 5. 营销数据:跨平台采集数据 6. 跨系统同步: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.md` - `INSTALL.md` - 演示视频(6 个场景) --- ## 三、关键接口对接清单 ### 1. P1a ↔ P2 接口(最重要) **协议**:JSON Line over STDIO Pipe **Request 示例**(C++ → Rust): ```json { "sequence_id": 1, "action": "click", "params": { "selector": "#submit-button", "button": "left" }, "timestamp": 1709499600000 } ``` **Response 示例**(Rust → C++): ```json { "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` **接口代码**: ```rust // P1a 提供 pub struct BrowserPipeTool { pipe_writer: PipeWriter, mac_policy: MacPolicy, sequence_id: AtomicU64, } impl Tool for BrowserPipeTool { async fn execute(&self, input: &str) -> Result; } // P1b 使用 let browser_tool = BrowserPipeTool::new(...); agent_runtime.register_tool(Box::new(browser_tool)); ``` **对接时间**:Day 6 **验收标准**: - P1b 能注册 P1a 的工具 - Agent 能调用浏览器操作 --- ### 3. P1b ↔ P3 接口 **Skill 元数据规范**: ```javascript /** * @skill erp-monthly-report * @version 1.0.0 * @domains erp.example.com * @params { month: string, format: enum } * @signature */ async function execute(params, browserAction) { await browserAction('navigate', {...}); await browserAction('click', {...}); return { success: true }; } ``` **BrowserAction API**: ```javascript await browserAction(action, params) // 返回 Promise ``` **对接时间**:Day 6-7 **验收标准**: - P1b 能扫描并加载 P3 的 Skill - 签名验证通过 - Skill 能正常执行 --- ### 4. P2 ↔ P4 接口 **FunctionsUI IPC**(Vue ↔ C++): ```javascript // 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.rs` - [ ] `src/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.txt` - [ ] `README.md`(Skill 开发指南) - [ ] 签名工具脚本 ### P4 交付物(Day 10) - [ ] `AgentControlPanel.vue` - [ ] `SkillManager.vue` - [ ] E2E 测试脚本(6 个场景) - [ ] 测试报告(覆盖率 >70%) - [ ] `.deb` 安装包 - [ ] `.exe` 安装包 - [ ] `CHANGELOG.md` - [ ] `INSTALL.md` --- **文档版本**:v1.0 **最后更新**:2026-03-04 **维护者**:项目经理