321 lines
11 KiB
Markdown
321 lines
11 KiB
Markdown
# 开发测试任务提示词目录和任务编排
|
||
|
||
**版本**: 1.7.0
|
||
**最后更新**: 2026-04-19
|
||
**维护者**: 项目经理 Agent
|
||
|
||
---
|
||
|
||
## 1. 概述
|
||
|
||
本文档是 M1~M8 里程碑开发测试任务的**总索引和执行编排**。
|
||
|
||
### 1.1 使用方式
|
||
|
||
1. **项目经理 Agent** 按里程碑顺序分发任务到对应 tmux pane
|
||
2. **后端 Agent**(pane 1)执行 `backend` 类型任务
|
||
3. **前端 Agent**(pane 2)执行 `frontend` 类型任务
|
||
4. **测试 Agent**(pane 3)执行 `test` 类型任务
|
||
5. 每个里程碑内按编号顺序执行;同一里程碑内不同角色可并行
|
||
|
||
### 1.2 关键约束
|
||
|
||
- 每个 task 文件 <=200 行,功能强内聚(**本文档为例外,尽量不超过 400 行**)
|
||
- 严格遵守 `docs/09-API契约.md`,不可违背
|
||
- 模块独立:各 `apps/` 子模块禁止跨模块引用
|
||
- **角色标签约定**:服务端任务使用 `backend`,桌面端任务使用 `desktop`(非后端),前端 UI 任务使用 `frontend`
|
||
- 提交使用 jj,中文类型(功能、修复、维护...)
|
||
- **模板化体系**:8 类任务模板提供骨架(tmux 协议、编码规范、文档引用),任务文件保留差异内容(功能需求、代码骨架、验收标准)。详见 `任务提示词构建方法.md`
|
||
|
||
### 1.3 tmux 执行环境
|
||
|
||
- **Session**: `arno-team`
|
||
- **始终复用** `项目` / `后端` / `前端` / `测试` 四个 pane,**禁止新建** tmux session / window / pane
|
||
- **每次任务前**,确保目标 pane 中是新启动的 `cc` 环境(`/exit` 后重启,清除遗留上下文)
|
||
- **分发方式**:参考 `scripts/tmux-send-prompt.sh`,由 `项目` pane 发送简短提示词,让目标 pane 自行读取任务文件,避免发送过多提示词
|
||
|
||
| Pane | 名称 | 角色 | 用途 |
|
||
|------|------|------|------|
|
||
| pane 0 | 项目 | 项目经理 | 任务分发、进度追踪 |
|
||
| pane 1 | 后端 | 后端开发 | 执行 backend 任务 |
|
||
| pane 2 | 前端 | 前端开发 | 执行 frontend 任务 |
|
||
| pane 3 | 测试 | 测试工程师 | 执行 test 任务 |
|
||
|
||
---
|
||
|
||
## 2. 任务总览
|
||
|
||
| 里程碑 | 后端 | 桌面端 | 前端 | 测试 | 合计 |
|
||
|--------|------|--------|------|------|------|
|
||
| M1 基础架构 | 1 | 0 | 1 | 1 | 3 |
|
||
| M2 核心功能 | 1 | 0 | 1 | 1 | 3 |
|
||
| M3 初始化与认证 | 0 | 2 | 2 | 1 | 5 |
|
||
| M4 核心业务 | 0 | 2 | 3 | 1 | 6 |
|
||
| M5 数据同步 | 0 | 2 | 1 | 1 | 4 |
|
||
| M6 部署与打包 | 2 | 0 | 1 | 2 | 5 |
|
||
| M7 增强功能 | 0 | 2 | 3 | 1 | 6 |
|
||
| M8 运维功能 | 0 | 2 | 2 | 1 | 5 |
|
||
| **合计** | **4** | **10** | **14** | **9** | **37** |
|
||
|
||
---
|
||
|
||
## 3. 里程碑任务清单
|
||
|
||
### M1 基础架构 (P1)
|
||
| 编号 | 角色 | 内容 | 依赖 |
|
||
|------|------|------|------|
|
||
| M1-001 | 后端 | FastAPI 项目结构、数据库初始化、健康检查 | 无 |
|
||
| M1-002 | 前端 | PyWebView + Svelte 5 项目结构 | 无 |
|
||
| M1-003 | 测试 | pytest/vitest 基础设施、共享 fixture | M1-001 |
|
||
|
||
### M2 核心功能 (P1)
|
||
| 编号 | 角色 | 内容 | 依赖 |
|
||
|------|------|------|------|
|
||
| M2-001 | 后端 | 设备注册/审批/禁用 + CLI | M1-001 |
|
||
| M2-002 | 前端 | 设备注册 UI | M1-002 |
|
||
| M2-003 | 测试 | 设备管理测试 | M2-001 |
|
||
|
||
### M3 初始化与认证 (P1)
|
||
| 编号 | 角色 | 内容 | 依赖 |
|
||
|------|------|------|------|
|
||
| M3-001 | 桌面端 | 数据证书生成/导入/导出 | M2-001, M4-001 |
|
||
| M3-002 | 桌面端 | 登录/锁定/密码验证 | M3-001, M4-001 |
|
||
| M3-003 | 前端 | 初始化向导 8 步骤 | M2-002 |
|
||
| M3-004 | 前端 | 登录/锁定界面 | M3-003 |
|
||
| M3-005 | 测试 | 初始化与认证测试 | M3-001, M3-002 |
|
||
|
||
### M4 核心业务 (P1)
|
||
| 编号 | 角色 | 内容 | 依赖 |
|
||
|------|------|------|------|
|
||
| M4-001 | 桌面端 | 核心引擎/基础设施 | 无 |
|
||
| M4-002 | 桌面端 | 条目 CRUD + 搜索 | M4-001 |
|
||
| M4-003 | 前端 | 列表与详情视图 | M3-004 |
|
||
| M4-004 | 前端 | 添加/编辑表单 | M4-003 |
|
||
| M4-005 | 前端 | 实时搜索组件 | M4-003 |
|
||
| M4-006 | 测试 | CRUD+搜索测试 | M4-001, M4-002 |
|
||
|
||
### M5 数据同步 (P1)
|
||
| 编号 | 角色 | 内容 | 依赖 |
|
||
|------|------|------|------|
|
||
| M5-001 | 桌面端 | CRDT 合并、Lamport Clock | M4-002 |
|
||
| M5-002 | 后端/桌面端 | 同步 push/pull/status API(跨模块) | M5-001 |
|
||
| M5-003 | 前端 | 同步状态 UI、离线模式 | M4-003 |
|
||
| M5-004 | 测试 | CRDT + 同步测试 | M5-001, M5-002 |
|
||
|
||
### M6 部署与打包 (P1)
|
||
| 编号 | 角色 | 内容 | 依赖 |
|
||
|------|------|------|------|
|
||
| M6-001 | 后端 | Dockerfile + docker-compose | M5-002 |
|
||
| M6-002 | 后端 | CLI 整合 + PyInstaller | M6-001 |
|
||
| M6-003 | 前端 | SvelteKit 构建 + PyInstaller | M5-003 |
|
||
| M6-004 | 测试 | Docker + 打包测试 | M6-001 |
|
||
| M6-005 | 测试 | E2E 集成测试(Playwright) | M6-001~M6-003 |
|
||
| 编号 | 角色 | 内容 | 依赖 |
|
||
|------|------|------|------|
|
||
| M7-001 | 桌面端 | 分类 CRUD + 层级管理 | M4-002 |
|
||
| M7-002 | 桌面端 | 数据恢复 API | M3-002 |
|
||
| M7-003 | 前端 | 生成器组件 | M4-004 |
|
||
| M7-004 | 前端 | 分类管理 UI | M4-003 |
|
||
| M7-005 | 前端 | 恢复 UI | M3-004 |
|
||
| M7-006 | 测试 | 增强功能测试 | M7-001, M7-002 |
|
||
|
||
### M8 运维功能 (P3)
|
||
| 编号 | 角色 | 内容 | 依赖 |
|
||
|------|------|------|------|
|
||
| M8-001 | 后端 | 日志管理 API | M5-002 |
|
||
| M8-002 | 后端 | 备份恢复 API | M5-002 |
|
||
| M8-003 | 前端 | 日志查看 UI | M4-003 |
|
||
| M8-004 | 前端 | 过期提醒 UI | M4-003 |
|
||
| M8-005 | 测试 | 运维功能测试 | M8-001, M8-002 |
|
||
|
||
---
|
||
|
||
## 4. 执行依赖关系图
|
||
|
||
> 按角色分色:后端 桌面端 前端 测试
|
||
|
||
```mermaid
|
||
flowchart TB
|
||
subgraph backend["后端"]
|
||
M1_001["M1-001<br/>FastAPI 项目结构"]
|
||
M2_001["M2-001<br/>设备注册/审批/禁用"]
|
||
M6_001["M6-001<br/>Dockerfile"]
|
||
M6_002["M6-002<br/>CLI+PyInstaller"]
|
||
M8_001["M8-001<br/>日志管理 API"]
|
||
end
|
||
|
||
subgraph desktop["桌面端"]
|
||
M4_001["M4-001<br/>核心引擎"]
|
||
M3_001["M3-001<br/>数据证书生成"]
|
||
M3_002["M3-002<br/>登录/锁定/验证"]
|
||
M4_002["M4-002<br/>条目 CRUD"]
|
||
M5_001["M5-001<br/>CRDT 合并"]
|
||
M5_002["M5-002<br/>同步 push/pull"]
|
||
M7_001["M7-001<br/>分类 CRUD"]
|
||
M7_002["M7-002<br/>数据恢复"]
|
||
end
|
||
|
||
subgraph frontend["前端"]
|
||
M1_002["M1-002<br/>PyWebView+Svelte"]
|
||
M2_002["M2-002<br/>设备注册 UI"]
|
||
M3_003["M3-003<br/>初始化向导"]
|
||
M3_004["M3-004<br/>登录/锁定界面"]
|
||
M4_003["M4-003<br/>列表视图"]
|
||
M4_004["M4-004<br/>编辑表单"]
|
||
M4_005["M4-005<br/>实时搜索"]
|
||
M5_003["M5-003<br/>同步状态 UI"]
|
||
M6_003["M6-003<br/>SvelteKit 构建"]
|
||
M7_003["M7-003<br/>生成器"]
|
||
M7_004["M7-004<br/>分类管理 UI"]
|
||
M7_005["M7-005<br/>恢复 UI"]
|
||
M8_003["M8-003<br/>日志查看 UI"]
|
||
M8_004["M8-004<br/>过期提醒 UI"]
|
||
end
|
||
|
||
subgraph test["测试"]
|
||
M1_003["M1-003<br/>测试基础设施"]
|
||
M2_003["M2-003<br/>设备管理测试"]
|
||
M3_005["M3-005<br/>初始化与认证测试"]
|
||
M4_006["M4-006<br/>CRUD+搜索测试"]
|
||
M5_004["M5-004<br/>CRDT+同步测试"]
|
||
M6_004["M6-004<br/>Docker+打包测试"]
|
||
M6_005["M6-005<br/>E2E 集成测试"]
|
||
M7_006["M7-006<br/>增强功能测试"]
|
||
M8_005["M8-005<br/>运维功能测试"]
|
||
end
|
||
|
||
M1_001 --> M1_003
|
||
M1_001 --> M2_001
|
||
M2_001 --> M8_001
|
||
M2_001 --> M6_001
|
||
|
||
M4_001 --> M3_001
|
||
M2_001 --> M3_001
|
||
M3_001 --> M3_002
|
||
M4_001 --> M3_002
|
||
M3_002 --> M4_002
|
||
M4_002 --> M5_001
|
||
M5_001 --> M5_002
|
||
M4_002 --> M7_001
|
||
M3_002 --> M7_002
|
||
|
||
M1_002 --> M2_002
|
||
M2_002 --> M3_003
|
||
M3_003 --> M3_004
|
||
M3_004 --> M4_003
|
||
M4_003 --> M4_004
|
||
M4_003 --> M4_005
|
||
M4_003 --> M5_003
|
||
M4_003 --> M7_004
|
||
M4_003 --> M8_003
|
||
M4_003 --> M8_004
|
||
M4_004 --> M7_003
|
||
M3_004 --> M7_005
|
||
M5_003 --> M6_003
|
||
|
||
M5_002 --> M6_001
|
||
M6_001 --> M6_002
|
||
M8_001 --> M8_005
|
||
|
||
M2_001 --> M2_003
|
||
M3_001 --> M3_005
|
||
M3_002 --> M3_005
|
||
M4_001 --> M4_006
|
||
M4_002 --> M4_006
|
||
M5_001 --> M5_004
|
||
M5_002 --> M5_004
|
||
M6_001 --> M6_004
|
||
M6_001 --> M6_005
|
||
M6_002 --> M6_005
|
||
M6_003 --> M6_005
|
||
M7_001 --> M7_006
|
||
M7_002 --> M7_006
|
||
```
|
||
|
||
---
|
||
|
||
## 5. 建议执行顺序
|
||
|
||
| Phase | 里程碑 | 时间 | 并行组 | 串行步骤 |
|
||
|-------|--------|------|--------|----------|
|
||
| 1 | M1 基础架构 | Day 1 | M1-001 + M1-002 | -> M1-003 |
|
||
| 2 | M2 核心功能 | Day 2-3 | M2-001 + M2-002(mock) | -> M2-003 |
|
||
| 3 | M3 初始化与认证 | Day 4-6 | M3-001 + M3-003 | -> M3-002 + M3-004 -> M3-005 |
|
||
| 4 | M4 核心业务 | Day 7-10 | M4-002 + M4-003(在M4-001后) | M4-001 -> M4-004 + M4-005 -> M4-006 |
|
||
| 5 | M5 同步 | Day 11-14 | M5-002 + M5-003(在M5-001后) | M5-001 -> M5-004 |
|
||
| 6 | M6 部署 | Day 15-16 | M6-001 + M6-003 | -> M6-002 -> M6-004 |
|
||
| 7 | M7 增强 | Day 17-20 | M7-001~005 全部并行 | -> M7-006 |
|
||
| 8 | M8 运维 | Day 21-24 | M8-001~004 全部并行 | -> M8-005 |
|
||
|
||
---
|
||
|
||
## 6. Agent Teams 任务分发协议
|
||
|
||
### 核心约束
|
||
|
||
1. **始终复用 `arno-team` session**,复用 `项目`、`后端`、`前端`、`测试` 四个 pane
|
||
2. **禁止新建** tmux session、window、pane
|
||
3. **每次任务前**,确保目标 pane 中是新启动的 `cc` 环境(`/exit` 后重启 `cc`,清除遗留上下文)
|
||
4. **使用 `scripts/tmux-send-prompt.sh`** 发送简短提示词,让目标 pane 自行读取任务文件,避免直接发送长文本
|
||
|
||
### 分发流程
|
||
|
||
```bash
|
||
# 步骤1: 确保目标 pane 是新 cc 环境(无遗留上下文)
|
||
# 检查目标 pane,如不是新 cc 则发送 /exit 后重新启动 cc
|
||
|
||
# 步骤2: 通过 tmux-send-prompt.sh 分发任务(发送文件路径,让 cc 自行读取)
|
||
scripts/tmux-send-prompt.sh {pane_id} /workspace/tasks/{任务文件}
|
||
```
|
||
|
||
### 完成报告
|
||
|
||
> 详细的提示词组装规则和模板映射参见 `任务提示词构建方法.md`。
|
||
|
||
任务完成后,执行 Agent 将结果写入 `/workspace/tasks/result/{{任务编号}}.md`,格式参见 `任务执行结果模板.md`。
|
||
|
||
### 冲突解决
|
||
|
||
同一文件只允许一个 Agent 修改;后端改 `apps/server/`,前端改 `apps/desktop/`,测试可改两侧 `tests/`
|
||
|
||
---
|
||
|
||
## 7. 文档索引
|
||
|
||
### 任务文件
|
||
| 里程碑 | 任务文件 |
|
||
|--------|---------|
|
||
| M1 | M1-001, M1-002, M1-003 |
|
||
| M2 | M2-001, M2-002, M2-003 |
|
||
| M3 | M3-001, M3-002, M3-003, M3-004, M3-005 |
|
||
| M4 | M4-001, M4-002, M4-003, M4-004, M4-005, M4-006 |
|
||
| M5 | M5-001, M5-002, M5-003, M5-004 |
|
||
| M6 | M6-001, M6-002, M6-003, M6-004, M6-005 |
|
||
| M7 | M7-001, M7-002, M7-003, M7-004, M7-005, M7-006 |
|
||
| M8 | M8-001, M8-002, M8-003, M8-004, M8-005 |
|
||
|
||
### 模板文件
|
||
| 模板类型 | 文件 |
|
||
|---------|------|
|
||
| 脚手架搭建 | `任务提示词模板-脚手架搭建.md` |
|
||
| 后端API开发 | `任务提示词模板-后端API开发.md` |
|
||
| 桌面端服务开发 | `任务提示词模板-桌面端服务开发.md` |
|
||
| UI布局和开发 | `任务提示词模板-UI布局和开发.md` |
|
||
| 前端组件开发 | `任务提示词模板-前端组件开发.md` |
|
||
| 测试编写 | `任务提示词模板-测试编写.md` |
|
||
| 部署打包 | `任务提示词模板-部署打包.md` |
|
||
| E2E测试 | `任务提示词模板-E2E测试.md` |
|
||
|
||
### 方法与模板
|
||
| 文件 | 用途 |
|
||
|------|------|
|
||
| `任务提示词构建方法.md` | 提示词组装规则、模板映射、执行流程 |
|
||
| `任务执行结果模板.md` | 任务完成报告格式 |
|
||
| `result/` | 任务执行结果存储目录 |
|
||
|
||
---
|
||
|
||
## 版本历史
|
||
|
||
- v1.7.0 (2026-04-19): 初始版本
|