# sgClaw 项目协作时间表

> **💡 提示**：本文档包含完整的甘特图、依赖关系图和详细时间表。建议使用支持 Mermaid 的 Markdown 查看器（如 VS Code、Typora、GitHub）查看。

## 快速导航

- [📊 甘特图](#甘特图)
- [🔗 依赖关系图](#依赖关系图)
- [📅 每日详细里程碑](#二每日详细里程碑按人员)
- [🔌 关键接口对接清单](#三关键接口对接清单)
- [📢 每日站会议程](#四每日站会议程)
- [⚠️ 风险预案](#五风险预案)
- [✅ 交付物 Checklist](#六交付物-checklist)

---

## 📊 甘特图


![甘特图 1](./archive/领导演示资料/docs-figures/协作甘特图.svg)

<details>
<summary>📋 点击查看 Mermaid 源码</summary>

```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
```
</details>


## 可视化图表

### 关键路径

```
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. )

<details>
<summary>📋 点击查看 Mermaid 源码</summary>

```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
```
</details>


---

## 一、关键依赖关系图

```
        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<String>;
}

// 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 <ed25519_base64>
 */
async function execute(params, browserAction) {
  await browserAction('navigate', {...});
  await browserAction('click', {...});
  return { success: true };
}
```

**BrowserAction API**：
```javascript
await browserAction(action, params)
// 返回 Promise<result>
```

**对接时间**：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
**维护者**：项目经理
