配置: 初始化 ISOS Agent Teams 软件研发模板
CI / lint (push) Successful in 6s

This commit is contained in:
2026-04-19 21:47:08 +08:00
parent 3ab6fe6504
commit 34346be862
202 changed files with 23544 additions and 0 deletions
@@ -0,0 +1,320 @@
# 开发测试任务提示词目录和任务编排
**版本**: 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): 初始版本