# 开发测试任务提示词目录和任务编排 **版本**: 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
FastAPI 项目结构"] M2_001["M2-001
设备注册/审批/禁用"] M6_001["M6-001
Dockerfile"] M6_002["M6-002
CLI+PyInstaller"] M8_001["M8-001
日志管理 API"] end subgraph desktop["桌面端"] M4_001["M4-001
核心引擎"] M3_001["M3-001
数据证书生成"] M3_002["M3-002
登录/锁定/验证"] M4_002["M4-002
条目 CRUD"] M5_001["M5-001
CRDT 合并"] M5_002["M5-002
同步 push/pull"] M7_001["M7-001
分类 CRUD"] M7_002["M7-002
数据恢复"] end subgraph frontend["前端"] M1_002["M1-002
PyWebView+Svelte"] M2_002["M2-002
设备注册 UI"] M3_003["M3-003
初始化向导"] M3_004["M3-004
登录/锁定界面"] M4_003["M4-003
列表视图"] M4_004["M4-004
编辑表单"] M4_005["M4-005
实时搜索"] M5_003["M5-003
同步状态 UI"] M6_003["M6-003
SvelteKit 构建"] M7_003["M7-003
生成器"] M7_004["M7-004
分类管理 UI"] M7_005["M7-005
恢复 UI"] M8_003["M8-003
日志查看 UI"] M8_004["M8-004
过期提醒 UI"] end subgraph test["测试"] M1_003["M1-003
测试基础设施"] M2_003["M2-003
设备管理测试"] M3_005["M3-005
初始化与认证测试"] M4_006["M4-006
CRUD+搜索测试"] M5_004["M5-004
CRDT+同步测试"] M6_004["M6-004
Docker+打包测试"] M6_005["M6-005
E2E 集成测试"] M7_006["M7-006
增强功能测试"] M8_005["M8-005
运维功能测试"] 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): 初始版本