Files
claw/docs/archive/项目管理与排期/协作时间表_printable.md

623 lines
20 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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-5P1a + P2 联调)
```
---
## 🔗 依赖关系图
![依赖关系图 2](https://mermaid.ink/img/Z3JhcGggVEQKICAgIEFbRGF5IDEtMjog546v5aKD5pCt5bu6XSAtLT4gQltEYXkgMzogUDFhIFBpcGUg5Y2P6K6uXQogICAgQiAtLT4gQ1tEYXkgNC01OiBQMWErUDIg6IGU6LCDIFBpcGUg4q2QXQogICAgQyAtLT4gRFtEYXkgNSDmmZo6IFcxIOmHjOeoi+eikV0KICAgIAogICAgRCAtLT4gRTFbRGF5IDY6IFAxYStQMWIg6ZuG5oiQXQogICAgRCAtLT4gRTJbRGF5IDY6IFAxYitQMyBTa2lsbF0KICAgIEQgLS0+IEUzW0RheSA2OiBQMitQNCBVSV0KICAgIAogICAgRTEgLS0+IEZbRGF5IDc6IOWuieWFqCtBSV0KICAgIEUyIC0tPiBGCiAgICBFMyAtLT4gRgogICAgCiAgICBGIC0tPiBHW0RheSA4LTk6IEUyRSDmtYvor5VdCiAgICBHIC0tPiBIW0RheSAxMDogUDQg5omT5YyF5Y+R5biDXQogICAgCiAgICBzdHlsZSBDIGZpbGw6I2ZmNmI2YixzdHJva2U6I2M5MmEyYSxjb2xvcjojZmZmCiAgICBzdHlsZSBEIGZpbGw6IzUxY2Y2NixzdHJva2U6IzJmOWU0NCxjb2xvcjojZmZmCiAgICBzdHlsZSBIIGZpbGw6IzUxY2Y2NixzdHJva2U6IzJmOWU0NCxjb2xvcjojZmZmCg==)
<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 现有场景 | 场景清单 Excel400+ 条) | 分类完成:表单/审批/采集/同步/巡检 |
| **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** ⭐ | 实现 BrowserPipeTool3 个 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** ⭐ | 完善 BrowserPipeTool15 个 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 - 并行集成日(三组同时进行)
#### 组 1P1a + 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":{...}}`
- 验证工具调用成功
#### 组 2P1b + P3Skill 加载测试)
| 角色 | 任务 | 产出物 | 验收标准 |
|-----|------|--------|---------|
| **P1b** | SkillLoader 完善 | JS 沙箱执行 | 能执行 Skill.js |
| **P3** | 10 个 Skill 加签名 | 签名完成的 Skill | 验证通过 |
**下午联调**
- P1b 扫描 `skills/` 目录
- 加载 P3 的 10 个 Skill
- 执行一个 Skill调用 `browserAction`
#### 组 3P2 + P4UI 对接)
| 角色 | 任务 | 产出物 | 验收标准 |
|-----|------|--------|---------|
| **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 个 Actionclick/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:0015 分钟
**Day 1-2 站会重点**:环境搭建进度
**Day 3-5 站会重点**(关键路径):
- P1a + P2 联调进度
- 遇到的技术问题
- 是否需要其他人支援
**Day 6-7 站会重点**
- 三组并行集成进度
- 接口冲突解决
- 安全测试结果
**Day 8-9 站会重点**
- E2E 测试通过率
- Bug 修复优先级
- 性能优化方向
**Day 10 站会**
- 发布 Checklist 确认
- 演示视频录制分工
---
## 五、风险预案
### 风险 1P1a + P2 联调卡住Day 3-5
**影响**:阻塞所有后续工作(极高风险)
**预案**
- Day 3 晚上如果还没通P1b 暂停自己的工作,全力支援
- Day 4 晚上如果还没通启动降级方案HTTP 替代 Pipe
---
### 风险 2P3 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
**维护者**:项目经理