# ColaFlow M2 阶段产品需求文档 (PRD) # MCP Server 集成 - Model Context Protocol **文档版本**: 1.0 **作者**: Product Manager Agent **日期**: 2025-11-04 **目标阶段**: M2 (3-4个月) **预计时间**: 2025-12-01 至 2026-03-31 (16周) --- ## 执行摘要 M2 阶段的核心目标是**实现 MCP (Model Context Protocol) Server**,让 AI 工具(Claude、ChatGPT、Cursor 等)能够通过标准化协议安全地读写 ColaFlow 项目数据。这是 ColaFlow 从传统项目管理系统向 **AI 原生协作平台** 转型的关键里程碑。 ### 关键价值主张 - **AI 成为团队成员**: AI 工具能像真人一样操作任务、生成文档、汇报进度 - **安全可控**: 所有 AI 写操作需人工审批,支持 Diff Preview 和回滚 - **开放生态**: 基于 MCP 标准协议,任何 AI 工具都能接入 - **自动化加速**: 减少 50% 手动项目管理工作,提升 30% 团队效率 ### M2 核心交付物 1. **MCP Server** - 完整的 MCP 协议实现(Resources, Tools, Prompts) 2. **Diff Preview 机制** - AI 操作预览 → 人工审批 → 自动执行 3. **Claude Desktop 集成** - PoC 级别的 AI 助手体验 4. **安全与审计** - 字段级权限控制 + 完整审计日志 5. **技术文档** - MCP API 文档、集成指南、最佳实践 --- ## 一、背景与目标 ### 1.1 项目背景 **M1 阶段完成情况** (Day 14, 85% 完成): - ✅ Identity & RBAC Module - 生产就绪 - ✅ Issue Management Module - 完整实现 + 100% 测试通过 - ✅ Kanban Board - 全功能拖拽式看板 - ✅ SignalR Real-Time - 实时通信基础设施 - ✅ Multi-Tenant Security - CRITICAL 安全加固完成 - ✅ Audit Log 技术方案 - 15,000+ 字研究报告完成 - 🔄 Epic/Story Hierarchy - 计划中 (2-3天) - 🔄 Sprint Management - 计划中 (3-4天) **技术基础**: - 后端: NestJS + TypeORM + PostgreSQL (Clean Architecture + CQRS + DDD) - 前端: React + TypeScript + TailwindCSS - 实时通信: SignalR (infrastructure ready) - 安全: JWT + Refresh Token + Multi-Tenant Isolation + RBAC - 性能: API < 100ms, DB Query < 5ms **为什么现在是 M2 的最佳时机**: 1. **核心功能稳定**: M1 提供了坚实的数据基础(Projects, Issues, Sprints) 2. **安全机制完善**: Multi-tenant isolation + Audit Log 已就绪 3. **架构设计完成**: Day 10 已完成 MCP Server 详细架构设计 4. **市场机遇**: AI 工具爆发期,MCP 协议逐渐成为标准 ### 1.2 商业目标 **短期目标 (M2 阶段)**: - 实现首个 AI 工具集成(Claude Desktop),验证技术可行性 - 建立 AI 操作的安全机制和审批流程 - 积累 AI 辅助项目管理的使用数据和反馈 **长期目标 (M3-M6)**: - M3: ChatGPT 集成 PoC,形成完整的 AI → PRD → 任务 闭环 - M4: 外部系统接入(GitHub, Slack, Calendar),构建协作生态 - M5: 企业试点部署,验证商业模式 - M6: 稳定版发布,SDK + 插件生态建设 ### 1.3 用户目标 **目标用户群**: 1. **敏捷团队** - 使用 Scrum/Kanban 管理项目的开发团队 2. **AI 早期采用者** - 已使用 Claude/ChatGPT/Cursor 的技术团队 3. **效率优化者** - 追求自动化和流程优化的项目经理 **用户痛点**: 1. **重复劳动**: 手动创建任务、编写 PRD、更新进度报告(占用 30-50% PM 时间) 2. **信息孤岛**: AI 工具(ChatGPT)和项目系统(Jira)互不相通 3. **协作断层**: AI 生成的内容需要手动粘贴到项目系统 4. **安全顾虑**: 不敢让 AI 直接操作生产数据(缺乏审批机制) **M2 解决方案**: - **自动化**: AI 自动生成任务、PRD、进度报告(减少 50% 手动工作) - **无缝集成**: AI 工具直接读写 ColaFlow 数据(无需复制粘贴) - **安全可控**: Diff Preview + 人工审批机制(99% 安全保障) - **审计追溯**: 完整的 AI 操作日志和回滚能力(符合企业合规要求) --- ## 二、产品范围与功能需求 ### 2.1 核心功能 (MVP Scope) #### 2.1.1 MCP Resources (只读数据暴露) **目标**: 让 AI 工具能够读取 ColaFlow 项目数据 **资源列表** (11个核心 Resources): | Resource ID | 描述 | API 对应 | 优先级 | 预计工时 | |-------------|------|----------|--------|---------| | `colaflow://projects.list` | 列出所有项目 | GET /api/projects | P0 | 2h | | `colaflow://projects.get/{id}` | 获取项目详情 | GET /api/projects/{id} | P0 | 1h | | `colaflow://issues.search` | 搜索任务(支持过滤) | GET /api/issues?filter=... | P0 | 3h | | `colaflow://issues.get/{id}` | 获取任务详情 | GET /api/issues/{id} | P0 | 1h | | `colaflow://epics.list` | 列出所有 Epic | GET /api/issues?type=Epic | P0 | 1h | | `colaflow://stories.list` | 列出所有 Story | GET /api/issues?type=Story | P0 | 1h | | `colaflow://tasks.list` | 列出所有 Task | GET /api/issues?type=Task | P0 | 1h | | `colaflow://sprints.current` | 获取当前 Sprint | GET /api/sprints?status=Active | P0 | 2h | | `colaflow://sprints.backlog` | 获取 Backlog | GET /api/issues?sprint=null | P0 | 1h | | `colaflow://users.list` | 列出团队成员 | GET /api/roles/users | P0 | 1h | | `colaflow://reports.burndown/{sprintId}` | 获取燃尽图数据 | GET /api/sprints/{id}/burndown | P1 | 2h | **总工时**: 16 小时 (2 天) **技术实现**: ```csharp // MCP Resource 定义示例 public class ProjectsListResource : IMcpResource { public string Uri => "colaflow://projects.list"; public string Name => "Projects List"; public string Description => "List all projects in current tenant"; public string MimeType => "application/json"; public async Task GetContentAsync( McpResourceRequest request, CancellationToken cancellationToken) { var tenantId = _tenantContext.TenantId; var projects = await _projectRepository.GetAllAsync(tenantId); var content = new { projects = projects.Select(p => new { id = p.Id, name = p.Name, description = p.Description, status = p.Status, issueCount = p.IssueCount, createdAt = p.CreatedAt }) }; return new McpResourceContent { Uri = request.Uri, MimeType = "application/json", Text = JsonSerializer.Serialize(content) }; } } ``` **验收标准**: - [ ] 所有 11 个 Resources 正确返回数据 - [ ] 租户隔离:用户只能看到自己租户的数据 - [ ] 性能:单次请求响应时间 < 200ms - [ ] 缓存:热数据缓存命中率 > 80% (Redis) - [ ] 错误处理:404/403/500 错误码正确返回 - [ ] 分页:`issues.search` 支持 limit/offset 参数 --- #### 2.1.2 MCP Tools (写操作暴露) **目标**: 让 AI 工具能够创建、修改 ColaFlow 数据(需人工审批) **工具列表** (10个核心 Tools): | Tool Name | 描述 | 审批要求 | 优先级 | 预计工时 | |-----------|------|----------|--------|---------| | `create_project` | 创建新项目 | 必须审批 | P0 | 3h | | `create_issue` | 创建新任务 | 必须审批 | P0 | 3h | | `update_issue` | 更新任务详情 | 必须审批 | P0 | 3h | | `update_status` | 更改任务状态 | 可配置 | P0 | 2h | | `assign_issue` | 分配任务给用户 | 可配置 | P0 | 2h | | `create_sprint` | 创建 Sprint | 必须审批 | P0 | 3h | | `start_sprint` | 启动 Sprint | 必须审批 | P0 | 2h | | `add_comment` | 添加评论 | 可选审批 | P1 | 2h | | `create_epic` | 创建 Epic | 必须审批 | P0 | 2h | | `link_issues` | 关联任务(父子关系) | 必须审批 | P0 | 3h | **总工时**: 25 小时 (3 天) **技术实现 (Diff Preview 模式)**: ```csharp // MCP Tool 定义示例 public class CreateIssueTool : IMcpTool { public string Name => "create_issue"; public string Description => "Create a new issue in ColaFlow"; public McpToolInputSchema InputSchema => new() { Type = "object", Properties = new Dictionary { ["projectId"] = new { type = "string", description = "Project ID" }, ["title"] = new { type = "string", description = "Issue title" }, ["description"] = new { type = "string", description = "Issue description" }, ["type"] = new { type = "string", enum = new[] { "Story", "Task", "Bug", "Epic" } }, ["priority"] = new { type = "string", enum = new[] { "Low", "Medium", "High", "Critical" } }, ["assigneeId"] = new { type = "string", description = "Assignee user ID", nullable = true } }, Required = new[] { "projectId", "title", "type", "priority" } }; public async Task ExecuteAsync( McpToolCall toolCall, CancellationToken cancellationToken) { // 1. 解析输入参数 var input = JsonSerializer.Deserialize(toolCall.Arguments); // 2. 生成 Diff Preview (before/after) var diffPreview = new DiffPreview { ToolName = "create_issue", Operation = "CREATE", EntityType = "Issue", BeforeData = null, // 创建操作无 before AfterData = new { projectId = input.ProjectId, title = input.Title, description = input.Description, type = input.Type, priority = input.Priority, assigneeId = input.AssigneeId, status = "Backlog", createdBy = _currentUser.Id, createdAt = DateTime.UtcNow }, RequiresApproval = true }; // 3. 存储 pending change 到数据库 var pendingChange = await _pendingChangeRepository.CreateAsync(new PendingChange { TenantId = _tenantContext.TenantId, UserId = _currentUser.Id, ToolName = toolCall.Name, Operation = "CREATE", EntityType = "Issue", EntityId = null, BeforeData = null, AfterData = JsonSerializer.Serialize(diffPreview.AfterData), Status = PendingChangeStatus.PendingApproval, CreatedAt = DateTime.UtcNow, ExpiresAt = DateTime.UtcNow.AddHours(24) // 24小时过期 }); // 4. 发送 WebSocket 通知(需人工审批) await _realtimeService.NotifyUserAsync( _currentUser.Id, "PendingChangeCreated", new { pendingChangeId = pendingChange.Id, diffPreview }); // 5. 返回 Diff Preview 结果 return new McpToolResult { Content = new[] { new McpToolResultContent { Type = "text", Text = $"Issue creation queued for approval. Pending Change ID: {pendingChange.Id}\n\n" + $"**Diff Preview**:\n" + $"```json\n{JsonSerializer.Serialize(diffPreview, new JsonSerializerOptions { WriteIndented = true })}\n```\n\n" + $"Please review and approve/reject this change in the ColaFlow dashboard." } }, IsError = false }; } } ``` **审批流程 API**: ```csharp // GET /api/mcp/pending-changes - 列出待审批的变更 // GET /api/mcp/pending-changes/{id} - 获取变更详情 // POST /api/mcp/pending-changes/{id}/approve - 审批通过(自动执行操作) // POST /api/mcp/pending-changes/{id}/reject - 拒绝(记录日志) // DELETE /api/mcp/pending-changes/{id} - 取消(未审批前可取消) ``` **审批通过后自动执行**: ```csharp public async Task ApproveAsync(Guid pendingChangeId, Guid approverId) { var pendingChange = await _repository.GetByIdAsync(pendingChangeId); if (pendingChange.Status != PendingChangeStatus.PendingApproval) throw new InvalidOperationException("Change is not pending approval"); // 1. 执行实际操作 var result = await ExecuteToolOperationAsync(pendingChange); // 2. 更新状态 pendingChange.Status = PendingChangeStatus.Approved; pendingChange.ApprovedBy = approverId; pendingChange.ApprovedAt = DateTime.UtcNow; pendingChange.ExecutedAt = DateTime.UtcNow; pendingChange.ResultData = JsonSerializer.Serialize(result); await _repository.UpdateAsync(pendingChange); // 3. 记录审计日志 await _auditLogService.LogAsync(new AuditLog { TenantId = pendingChange.TenantId, UserId = approverId, Action = "ApprovedMcpChange", EntityType = pendingChange.EntityType, EntityId = result.EntityId, BeforeData = pendingChange.BeforeData, AfterData = pendingChange.AfterData, Metadata = new { pendingChangeId, toolName = pendingChange.ToolName } }); // 4. 通知用户(WebSocket) await _realtimeService.NotifyUserAsync( pendingChange.UserId, "PendingChangeApproved", new { pendingChangeId, result }); } ``` **验收标准**: - [ ] 所有 10 个 Tools 正确生成 Diff Preview - [ ] Diff Preview 准确显示 before/after 数据 - [ ] 审批通过后自动执行操作 - [ ] 审批拒绝后记录日志(不执行操作) - [ ] 24小时内未审批自动过期 - [ ] WebSocket 实时通知工作正常 - [ ] 审批记录在审计日志中可追溯 - [ ] 租户隔离:用户只能审批自己租户的变更 --- #### 2.1.3 MCP Prompts (AI 提示词模板) **目标**: 为 AI 工具提供预设的任务模板,提升交互效率 **Prompt 列表** (8个核心 Prompts): | Prompt Name | 描述 | 使用场景 | 优先级 | 预计工时 | |-------------|------|----------|--------|---------| | `generate_prd` | 生成产品需求文档 | 用户描述功能 → AI 生成 PRD | P0 | 3h | | `split_epic_to_stories` | 将 Epic 拆分为 Stories | Epic 创建后 → AI 自动拆分 | P0 | 3h | | `estimate_story_points` | 估算 Story Points | Story 创建后 → AI 估算工作量 | P1 | 2h | | `generate_acceptance_criteria` | 生成验收标准 | Story 缺少 AC → AI 生成候选 AC | P0 | 2h | | `detect_risks` | 检测项目风险 | 定期扫描 → AI 生成风险报告 | P1 | 3h | | `generate_standup_summary` | 生成站会纪要 | Sprint 中 → AI 汇总团队进度 | P1 | 2h | | `suggest_next_sprint_items` | 建议下个 Sprint 任务 | Sprint 规划 → AI 推荐优先级任务 | P2 | 2h | | `analyze_burndown` | 分析燃尽图趋势 | Sprint 进行中 → AI 分析进度 | P2 | 2h | **总工时**: 19 小时 (2.5 天) **技术实现**: ```csharp // MCP Prompt 定义示例 public class GeneratePrdPrompt : IMcpPrompt { public string Name => "generate_prd"; public string Description => "Generate a Product Requirements Document (PRD) from a feature description"; public McpPromptArgument[] Arguments => new[] { new McpPromptArgument { Name = "feature_description", Description = "A brief description of the feature to be implemented", Required = true }, new McpPromptArgument { Name = "target_users", Description = "Target user personas (e.g., 'developers', 'project managers')", Required = false }, new McpPromptArgument { Name = "success_metrics", Description = "How to measure success (e.g., 'reduce task creation time by 30%')", Required = false } }; public Task GetMessagesAsync( McpPromptGetRequest request, CancellationToken cancellationToken) { var featureDescription = request.Arguments["feature_description"]; var targetUsers = request.Arguments.GetValueOrDefault("target_users", "all users"); var successMetrics = request.Arguments.GetValueOrDefault("success_metrics", "user satisfaction"); var systemPrompt = new McpPromptMessage { Role = "system", Content = new McpPromptContent { Type = "text", Text = "You are a Product Manager AI assistant for ColaFlow. " + "Your task is to generate a well-structured PRD based on the provided feature description. " + "Follow this structure:\n\n" + "# [Feature Name] PRD\n\n" + "## 1. Background & Goals\n" + "- Business context\n" + "- User pain points\n" + "- Objectives\n\n" + "## 2. Requirements\n" + "### Core Functionality\n" + "- Functional requirement 1\n" + "- Functional requirement 2\n\n" + "### User Scenarios\n" + "- Scenario 1: [User action] → [Expected outcome]\n\n" + "### Priority Levels\n" + "- P0 (Must have): [Requirements]\n" + "- P1 (Should have): [Requirements]\n" + "- P2 (Nice to have): [Requirements]\n\n" + "## 3. Acceptance Criteria\n" + "- [ ] Criterion 1\n" + "- [ ] Performance: [Metric] < [Target]\n\n" + "## 4. Timeline\n" + "- Estimated effort: [X weeks]\n" + "- Target milestone: M[X]" } }; var userPrompt = new McpPromptMessage { Role = "user", Content = new McpPromptContent { Type = "text", Text = $"**Feature Description**: {featureDescription}\n\n" + $"**Target Users**: {targetUsers}\n\n" + $"**Success Metrics**: {successMetrics}\n\n" + "Please generate a comprehensive PRD for this feature." } }; return Task.FromResult(new[] { systemPrompt, userPrompt }); } } ``` **验收标准**: - [ ] 所有 8 个 Prompts 正确返回提示词消息 - [ ] Prompts 生成的内容符合 ColaFlow 的业务规范 - [ ] AI 使用 Prompts 后输出质量提升 50%+ - [ ] Prompts 支持动态参数(如 featureDescription) - [ ] Prompts 可通过配置文件自定义(JSON/YAML) --- #### 2.1.4 API Key 管理与认证 **目标**: 为 MCP 客户端提供安全的认证机制 **核心功能**: | 功能 | 描述 | API 端点 | 优先级 | 预计工时 | |------|------|----------|--------|---------| | 创建 API Key | 生成新的 MCP API Key | POST /api/mcp/keys | P0 | 2h | | 列出 API Keys | 查看所有 API Keys | GET /api/mcp/keys | P0 | 1h | | 撤销 API Key | 禁用 API Key | DELETE /api/mcp/keys/{id} | P0 | 1h | | 刷新 API Key | 重新生成 Key 值 | POST /api/mcp/keys/{id}/refresh | P1 | 2h | | 设置权限范围 | 限制 Key 的操作范围(只读/读写) | PUT /api/mcp/keys/{id}/permissions | P0 | 3h | | 设置 IP 白名单 | 限制 Key 的访问 IP | PUT /api/mcp/keys/{id}/ip-whitelist | P1 | 2h | | API Key 使用统计 | 查看调用次数、成功率 | GET /api/mcp/keys/{id}/stats | P1 | 2h | **总工时**: 13 小时 (1.5 天) **API Key 格式**: ``` colaflow_sk_live_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6 ^ ^ ^ ^ | | | | | | | +-- 40字符随机字符串(SHA-256 后存储) | | +------- 环境标识 (live/test) | +----------- Key 类型 (sk = Secret Key) +---------------------- 产品前缀 ``` **数据库表设计**: ```sql CREATE TABLE mcp_api_keys ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), tenant_id UUID NOT NULL REFERENCES tenants(id) ON DELETE CASCADE, user_id UUID NOT NULL REFERENCES users(id) ON DELETE CASCADE, key_hash VARCHAR(64) NOT NULL UNIQUE, -- SHA-256(key) key_prefix VARCHAR(16) NOT NULL, -- 前16字符明文(用于识别) name VARCHAR(255) NOT NULL, description TEXT, permissions JSONB NOT NULL, -- { "resources": ["*"], "tools": ["create_issue"], "read_only": false } ip_whitelist JSONB, -- ["192.168.1.0/24", "10.0.0.1"] rate_limit_per_minute INT DEFAULT 60, last_used_at TIMESTAMPTZ, expires_at TIMESTAMPTZ, is_active BOOLEAN DEFAULT true, created_at TIMESTAMPTZ DEFAULT NOW(), updated_at TIMESTAMPTZ DEFAULT NOW(), INDEX idx_mcp_api_keys_tenant_id (tenant_id), INDEX idx_mcp_api_keys_key_hash (key_hash), INDEX idx_mcp_api_keys_user_id (user_id) ); CREATE TABLE mcp_api_key_usage ( id UUID PRIMARY KEY DEFAULT gen_random_uuid(), api_key_id UUID NOT NULL REFERENCES mcp_api_keys(id) ON DELETE CASCADE, request_id UUID NOT NULL, endpoint VARCHAR(255) NOT NULL, -- "resources/projects.list" or "tools/create_issue" method VARCHAR(10) NOT NULL, -- "GET", "POST" status_code INT NOT NULL, response_time_ms INT NOT NULL, ip_address VARCHAR(45) NOT NULL, user_agent TEXT, error_message TEXT, created_at TIMESTAMPTZ DEFAULT NOW(), INDEX idx_mcp_api_key_usage_api_key_id (api_key_id), INDEX idx_mcp_api_key_usage_created_at (created_at) ); ``` **认证中间件**: ```csharp public class McpApiKeyAuthenticationMiddleware { public async Task InvokeAsync(HttpContext context, RequestDelegate next) { // 1. 从 Header 提取 API Key if (!context.Request.Headers.TryGetValue("X-MCP-Api-Key", out var apiKeyValue)) { context.Response.StatusCode = 401; await context.Response.WriteAsJsonAsync(new { error = "Missing API Key" }); return; } // 2. 验证 API Key 格式 var apiKey = apiKeyValue.ToString(); if (!apiKey.StartsWith("colaflow_sk_")) { context.Response.StatusCode = 401; await context.Response.WriteAsJsonAsync(new { error = "Invalid API Key format" }); return; } // 3. 查询数据库(缓存优化) var keyHash = ComputeSha256Hash(apiKey); var apiKeyRecord = await _cache.GetOrSetAsync( $"mcp_api_key:{keyHash}", async () => await _repository.GetByKeyHashAsync(keyHash), TimeSpan.FromMinutes(5)); if (apiKeyRecord == null || !apiKeyRecord.IsActive) { context.Response.StatusCode = 401; await context.Response.WriteAsJsonAsync(new { error = "Invalid or inactive API Key" }); return; } // 4. 检查过期时间 if (apiKeyRecord.ExpiresAt.HasValue && apiKeyRecord.ExpiresAt < DateTime.UtcNow) { context.Response.StatusCode = 401; await context.Response.WriteAsJsonAsync(new { error = "API Key expired" }); return; } // 5. 检查 IP 白名单 var clientIp = context.Connection.RemoteIpAddress?.ToString(); if (apiKeyRecord.IpWhitelist != null && apiKeyRecord.IpWhitelist.Count > 0) { if (!IsIpAllowed(clientIp, apiKeyRecord.IpWhitelist)) { context.Response.StatusCode = 403; await context.Response.WriteAsJsonAsync(new { error = "IP not whitelisted" }); return; } } // 6. 速率限制检查 var rateLimitKey = $"mcp_rate_limit:{apiKeyRecord.Id}"; var currentCount = await _cache.IncrementAsync(rateLimitKey, TimeSpan.FromMinutes(1)); if (currentCount > apiKeyRecord.RateLimitPerMinute) { context.Response.StatusCode = 429; await context.Response.WriteAsJsonAsync(new { error = "Rate limit exceeded" }); return; } // 7. 设置当前租户上下文 _tenantContext.SetTenantId(apiKeyRecord.TenantId); _currentUser.SetUser(apiKeyRecord.UserId); // 8. 更新最后使用时间(异步,不阻塞请求) _ = Task.Run(async () => { apiKeyRecord.LastUsedAt = DateTime.UtcNow; await _repository.UpdateAsync(apiKeyRecord); }); // 9. 记录使用日志(异步) _ = Task.Run(async () => { await _usageRepository.CreateAsync(new McpApiKeyUsage { ApiKeyId = apiKeyRecord.Id, RequestId = context.TraceIdentifier, Endpoint = context.Request.Path, Method = context.Request.Method, IpAddress = clientIp, UserAgent = context.Request.Headers["User-Agent"] }); }); // 10. 继续处理请求 await next(context); } } ``` **验收标准**: - [ ] API Key 创建/撤销功能正常 - [ ] API Key 认证中间件正确拦截未授权请求 - [ ] IP 白名单功能正确工作 - [ ] 速率限制功能正确工作(60 req/min) - [ ] API Key 使用日志完整记录 - [ ] 租户隔离:API Key 只能访问自己租户的数据 - [ ] 缓存优化:热 API Keys 响应时间 < 10ms --- #### 2.1.5 Diff Preview UI (人工审批界面) **目标**: 提供友好的 Web UI,让用户审批 AI 的操作 **核心页面**: | 页面 | 描述 | 功能 | 优先级 | 预计工时 | |------|------|------|--------|---------| | Pending Changes 列表页 | 显示所有待审批变更 | 列表、过滤、排序 | P0 | 4h | | Diff Preview 详情页 | 显示单个变更的 before/after | 高亮差异、JSON 格式化 | P0 | 6h | | 审批操作面板 | 批准/拒绝/取消按钮 | 批量操作、审批备注 | P0 | 3h | | AI 操作历史页 | 查看所有 AI 操作记录 | 时间线、过滤、导出 | P1 | 4h | | API Key 管理页 | 创建/撤销 API Keys | CRUD 操作、权限设置 | P0 | 5h | **总工时**: 22 小时 (2.5 天) **UI 原型 (Pending Changes 列表页)**: ``` ┌─────────────────────────────────────────────────────────────────┐ │ Pending AI Changes (3) [Approve All] [↻] │ ├─────────────────────────────────────────────────────────────────┤ │ │ │ ⏳ PENDING · 2 minutes ago · AI Agent: Claude Desktop │ │ ┌─────────────────────────────────────────────────────────────┐ │ │ │ CREATE Issue: "Implement MCP Server authentication" │ │ │ │ │ │ │ │ Tool: create_issue │ │ │ │ Project: ColaFlow Core │ │ │ │ │ │ │ │ Changes: │ │ │ │ + title: "Implement MCP Server authentication" │ │ │ │ + type: Task │ │ │ │ + priority: High │ │ │ │ + assignee: @john.doe │ │ │ │ │ │ │ │ [View Diff] [✓ Approve] [✕ Reject] │ │ │ └─────────────────────────────────────────────────────────────┘ │ │ │ │ ⏳ PENDING · 5 minutes ago · AI Agent: ChatGPT │ │ ┌─────────────────────────────────────────────────────────────┐ │ │ │ UPDATE Issue: "Fix login bug" → Status: Done │ │ │ │ │ │ │ │ Tool: update_status │ │ │ │ Project: ColaFlow Web │ │ │ │ │ │ │ │ Changes: │ │ │ │ ~ status: InProgress → Done │ │ │ │ │ │ │ │ [View Diff] [✓ Approve] [✕ Reject] │ │ │ └─────────────────────────────────────────────────────────────┘ │ │ │ └─────────────────────────────────────────────────────────────────┘ ``` **Diff Viewer 组件 (JSON Diff)**: ```typescript import ReactDiffViewer from 'react-diff-viewer-continued'; interface DiffPreviewProps { beforeData: any; afterData: any; } export function DiffPreview({ beforeData, afterData }: DiffPreviewProps) { const oldValue = beforeData ? JSON.stringify(beforeData, null, 2) : '// No previous data (CREATE operation)'; const newValue = JSON.stringify(afterData, null, 2); return (
); } ``` **验收标准**: - [ ] Pending Changes 列表正确显示待审批项 - [ ] Diff Preview 正确高亮 before/after 差异 - [ ] 批准操作成功触发后端执行 - [ ] 拒绝操作正确记录日志 - [ ] WebSocket 实时更新(新变更自动出现) - [ ] 过滤和排序功能正常 - [ ] 批量审批功能正常(选中 3+ 项批量批准) - [ ] 响应式设计(支持移动端) --- #### 2.1.6 Claude Desktop 集成 (PoC) **目标**: 实现首个 AI 工具集成,验证 MCP Server 可用性 **集成步骤**: 1. **配置 Claude Desktop** (5 分钟) ```json // ~/.config/claude/mcp_config.json { "mcpServers": { "colaflow": { "command": "node", "args": ["/path/to/colaflow-mcp-server/dist/index.js"], "env": { "COLAFLOW_API_URL": "https://api.colaflow.com", "COLAFLOW_API_KEY": "colaflow_sk_live_a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6" } } } } ``` 2. **测试场景 1: 自然语言创建任务** (15 分钟) ``` User: "帮我在 ColaFlow 创建一个任务:实现 MCP Server 的 API Key 管理功能,优先级 High,分配给 @john" Claude: [调用 colaflow://issues.search 查询是否存在类似任务] Claude: 我没有找到相似的任务,我将为您创建新任务。 [Claude 调用 create_issue tool] Claude: 我已为您生成任务创建请求: **任务详情**: - 标题: 实现 MCP Server 的 API Key 管理功能 - 类型: Task - 优先级: High - 分配给: @john **待审批**: 请在 ColaFlow 仪表板审批此变更。 ``` 3. **测试场景 2: AI 生成 PRD** (20 分钟) ``` User: "帮我生成一个 PRD,功能是:让用户能够导出项目的燃尽图为 PNG 图片" Claude: [调用 generate_prd prompt] Claude: 我已为您生成 PRD 草稿: # 导出燃尽图为 PNG 图片 - PRD ## 1. Background & Goals **业务背景**: 用户需要在汇报会议中展示项目进度,但目前 ColaFlow 的燃尽图只能在系统内查看,无法方便地导出到 PPT 或邮件。 **用户痛点**: - 需要手动截图,图片质量不佳 - 无法批量导出多个 Sprint 的燃尽图 - 无法自定义导出的分辨率和样式 **目标**: - 支持一键导出燃尽图为 PNG/JPEG/SVG 格式 - 支持自定义分辨率(1920x1080, 3840x2160) - 导出时间 < 3 秒 ## 2. Requirements ### Core Functionality - [ ] 燃尽图页面添加"导出"按钮 - [ ] 支持 3 种格式:PNG(默认)、JPEG、SVG - [ ] 支持 3 种分辨率:HD (1280x720), Full HD (1920x1080), 4K (3840x2160) - [ ] 导出文件自动命名:`{projectName}_{sprintName}_burndown_{date}.png` ### User Scenarios - Scenario 1: 项目经理在周会前导出当前 Sprint 燃尽图 → 3秒内获得高质量 PNG 文件 - Scenario 2: 批量导出所有 Sprint 燃尽图用于季度汇报 → ZIP 文件下载 ### Priority Levels - P0 (Must have): 单个燃尽图导出 PNG, 默认分辨率 1920x1080 - P1 (Should have): 多格式支持(JPEG, SVG), 自定义分辨率 - P2 (Nice to have): 批量导出, 自定义样式(颜色、字体) ## 3. Acceptance Criteria - [ ] 导出功能在所有燃尽图页面可用 - [ ] 导出时间 < 3 秒 (1920x1080 PNG) - [ ] 导出图片包含完整图例和坐标轴标签 - [ ] 图片质量清晰,适合投影仪展示 - [ ] 多租户隔离:用户只能导出自己租户的燃尽图 ## 4. Timeline - Estimated effort: 3-4 days - Target milestone: M2 User: 很好!请帮我基于这个 PRD 创建一个 Epic 任务。 Claude: [调用 create_issue tool, type=Epic] Claude: 我已为您生成 Epic 创建请求,待审批。 ``` **验收标准**: - [ ] Claude Desktop 成功连接 ColaFlow MCP Server - [ ] Claude 能正确调用所有 Resources(读取数据) - [ ] Claude 能正确调用所有 Tools(生成 Diff Preview) - [ ] Claude 能使用 Prompts 生成高质量内容 - [ ] 用户能在 Claude 中自然对话式操作 ColaFlow - [ ] 所有操作都需人工审批(安全机制生效) **预计工时**: 8 小时 (1 天) - 集成 + 测试 --- ### 2.2 次要功能 (P1 优先级) #### 2.2.1 MCP Server 性能优化 - [ ] Redis 缓存热数据(Resources) - [ ] 数据库查询优化(索引、分页) - [ ] 压缩响应(Gzip/Brotli) - [ ] CDN 加速(静态资源) **预计工时**: 8 小时 (1 天) #### 2.2.2 MCP Server 监控与告警 - [ ] API 调用量监控(Grafana) - [ ] 错误率告警(> 5% 触发告警) - [ ] 性能监控(P95 响应时间) - [ ] 审批通过率跟踪 **预计工时**: 12 小时 (1.5 天) #### 2.2.3 MCP Client SDK (TypeScript) - [ ] npm 包:`@colaflow/mcp-client` - [ ] 封装所有 Resources/Tools/Prompts - [ ] TypeScript 类型定义 - [ ] 使用示例和文档 **预计工时**: 16 小时 (2 天) --- ### 2.3 未来功能 (P2 优先级, 延后至 M3) #### 2.3.1 ChatGPT 集成 - [ ] MCP Client for ChatGPT Plugin - [ ] OAuth 认证流程 - [ ] 聊天上下文保持 **预计工时**: 16 小时 (2 天) #### 2.3.2 Cursor IDE 集成 - [ ] Cursor MCP 扩展 - [ ] 代码注释 → Issue 自动创建 - [ ] Git commit → Issue 状态自动更新 **预计工时**: 20 小时 (2.5 天) #### 2.3.3 Batch Operations (批量操作) - [ ] 批量创建 Issues - [ ] 批量更新 Status - [ ] 批量分配 Assignee **预计工时**: 12 小时 (1.5 天) --- ## 三、用户故事与验收标准 ### 3.1 核心用户故事 #### User Story 1: 自然语言创建任务 **作为** 项目经理 **我想要** 在 Claude Desktop 中用自然语言描述任务 **以便于** 快速创建任务而无需打开 ColaFlow Web 界面 **验收标准**: - [ ] 用户在 Claude 中输入"创建一个任务:修复登录 bug,优先级 High" - [ ] Claude 调用 `create_issue` tool 生成 Diff Preview - [ ] 用户在 ColaFlow 仪表板看到待审批变更 - [ ] 用户点击"批准",任务自动创建在 Backlog - [ ] 整个流程 < 2 分钟(含审批时间) **优先级**: P0 **预计工时**: 已包含在 MCP Tools 实现中 --- #### User Story 2: AI 自动生成 PRD **作为** 产品经理 **我想要** AI 根据我的功能描述自动生成 PRD 草稿 **以便于** 减少 70% 的文档编写时间 **验收标准**: - [ ] 用户在 Claude 中输入功能描述 - [ ] Claude 调用 `generate_prd` prompt - [ ] Claude 返回结构化的 PRD(包含背景、需求、验收标准、时间线) - [ ] PRD 内容准确度 ≥ 80%(人工评估) - [ ] 用户可直接复制到 Notion/Confluence **优先级**: P0 **预计工时**: 已包含在 MCP Prompts 实现中 --- #### User Story 3: AI 拆分 Epic 为 Stories **作为** 开发团队 Lead **我想要** AI 自动将大 Epic 拆分为多个可执行的 Stories **以便于** 团队能快速开始 Sprint 规划 **验收标准**: - [ ] 用户在 Claude 中输入"将 Epic #123 拆分为 Stories" - [ ] Claude 读取 Epic 详情(调用 `issues.get` resource) - [ ] Claude 调用 `split_epic_to_stories` prompt - [ ] Claude 生成 3-8 个 Story 建议(包含标题、描述、验收标准) - [ ] 用户选择需要的 Stories,Claude 批量创建(调用 `create_issue` tool) - [ ] 所有 Stories 自动关联到 Epic(调用 `link_issues` tool) **优先级**: P0 **预计工时**: 已包含在功能实现中 --- #### User Story 4: AI 检测项目风险 **作为** 项目经理 **我想要** AI 定期扫描项目并生成风险报告 **以便于** 提前识别进度延误和资源瓶颈 **验收标准**: - [ ] 用户在 Claude 中输入"检测项目 #456 的风险" - [ ] Claude 调用 `detect_risks` prompt - [ ] Claude 分析以下数据: - 未完成任务数量和截止日期 - 团队成员工作负载 - Sprint 燃尽图趋势 - 高优先级 Bug 数量 - [ ] Claude 生成风险报告(包含风险等级、影响、建议) - [ ] 风险报告准确率 ≥ 75%(对比人工评估) **优先级**: P1 **预计工时**: 已包含在 MCP Prompts 实现中 --- #### User Story 5: 审批 AI 操作 **作为** 项目管理员 **我想要** 在批准 AI 的操作前看到详细的 Diff Preview **以便于** 确保 AI 不会误操作重要数据 **验收标准**: - [ ] AI 执行写操作后,用户在 ColaFlow 收到 WebSocket 通知 - [ ] 用户打开 Pending Changes 页面,看到待审批项 - [ ] 用户点击"View Diff",看到 JSON 格式的 before/after 对比 - [ ] 差异高亮显示(绿色=新增,红色=删除,黄色=修改) - [ ] 用户点击"批准",操作立即执行(< 1 秒) - [ ] 用户点击"拒绝",操作取消并记录日志 **优先级**: P0 **预计工时**: 已包含在 Diff Preview UI 实现中 --- ### 3.2 次要用户故事 (P1) #### User Story 6: 批量审批 AI 操作 **作为** 项目管理员 **我想要** 批量批准多个低风险的 AI 操作 **以便于** 提高审批效率 **验收标准**: - [ ] 用户在 Pending Changes 页面选中 3+ 待审批项 - [ ] 用户点击"批量批准"按钮 - [ ] 系统并行执行所有操作(总耗时 < 5 秒) - [ ] 成功/失败结果分别显示 - [ ] 失败的操作不影响成功的操作 **预计工时**: 4 小时 --- #### User Story 7: API Key 管理 **作为** 租户管理员 **我想要** 创建多个 API Keys 并设置不同的权限 **以便于** 为不同的 AI 工具提供差异化的访问控制 **验收标准**: - [ ] 管理员在设置页面点击"创建 API Key" - [ ] 管理员输入名称、描述、权限范围(只读/读写) - [ ] 系统生成 API Key 并显示(仅显示一次) - [ ] 管理员可以撤销 API Key(立即失效) - [ ] 管理员可以查看 API Key 使用统计(调用次数、错误率) **预计工时**: 已包含在 API Key 管理实现中 --- ## 四、时间规划与里程碑 ### 4.1 M2 总体时间线 **M2 阶段**: 2025-12-01 至 2026-03-31 (16 周) **阶段划分**: - **Phase 1: Foundation** (Week 1-2) - 基础设施搭建 - **Phase 2: Resources** (Week 3-4) - 只读 API 实现 - **Phase 3: Tools + Diff Preview** (Week 5-8) - 写操作 + 审批流程 - **Phase 4: Security & Audit** (Week 9-10) - 安全加固 - **Phase 5: Claude Integration** (Week 11-12) - AI 工具集成 - **Phase 6: Testing & Optimization** (Week 13-14) - 全面测试 - **Phase 7: Documentation** (Week 15-16) - 文档和培训 --- ### 4.2 详细周计划 #### Week 1-2: Phase 1 - Foundation (基础设施搭建) **目标**: 搭建 MCP Server 项目结构,完成数据库设计和基础认证 **任务列表**: - [ ] **Day 1-2**: MCP Server 项目初始化 - 安装 ModelContextProtocol SDK v0.4.0 (C# 版本) - 创建 ColaFlow.McpServer 项目(Clean Architecture 结构) - 配置 DI 容器(Services, Repositories, DbContext) - 配置日志(Serilog + Application Insights) - 预计工时: 12 小时 - [ ] **Day 3-4**: 数据库设计与 Migration - 创建 3 张表:`mcp_api_keys`, `mcp_pending_changes`, `mcp_api_key_usage` - 设计索引和外键约束 - 编写 EF Core Migration - 编写数据库 Seed 脚本(测试数据) - 预计工时: 12 小时 - [ ] **Day 5-6**: API Key 认证系统 - 实现 API Key 生成逻辑(SHA-256 + Redis 缓存) - 实现认证中间件(McpApiKeyAuthenticationMiddleware) - 实现速率限制(基于 Redis) - 实现 IP 白名单验证 - 预计工时: 12 小时 - [ ] **Day 7**: API Key 管理 API - 7 个 API 端点(Create, List, Revoke, Refresh, Permissions, IP Whitelist, Stats) - 单元测试(90% 覆盖率) - 预计工时: 6 小时 - [ ] **Day 8-9**: MCP Server 基础架构 - 实现 McpServerBuilder 配置 - 实现 IMcpResource 接口和基类 - 实现 IMcpTool 接口和基类 - 实现 IMcpPrompt 接口和基类 - 实现 McpRequestHandler(路由请求到对应 Resource/Tool/Prompt) - 预计工时: 12 小时 - [ ] **Day 10**: 集成测试 + Phase 1 验收 - 端到端测试:API Key 创建 → 认证 → 调用 MCP Server - 性能测试:1000+ requests/s 压测 - 文档:Phase 1 技术文档 - 预计工时: 6 小时 **Phase 1 交付物**: - ✅ MCP Server 项目骨架(Clean Architecture) - ✅ 数据库 Schema + Migration - ✅ API Key 认证系统(含速率限制、IP 白名单) - ✅ API Key 管理 API (7 endpoints) - ✅ MCP Server 基础架构(Resource/Tool/Prompt 接口) **Phase 1 验收标准**: - [ ] API Key 认证中间件正确拦截未授权请求 - [ ] 速率限制功能正确工作(60 req/min) - [ ] IP 白名单功能正确工作 - [ ] 集成测试通过率 ≥ 95% - [ ] API 响应时间 < 50ms (P95) --- #### Week 3-4: Phase 2 - Resources (只读 API 实现) **目标**: 实现所有 MCP Resources,让 AI 工具能读取 ColaFlow 数据 **任务列表**: - [ ] **Day 11-12**: Projects Resources (2个) - `projects.list` - 列出所有项目 - `projects.get` - 获取项目详情 - Redis 缓存优化(5 分钟 TTL) - 单元测试 + 集成测试 - 预计工时: 8 小时 - [ ] **Day 13-14**: Issues Resources (4个) - `issues.search` - 搜索任务(支持过滤、分页) - `issues.get` - 获取任务详情 - `epics.list` - 列出所有 Epic - `stories.list` - 列出所有 Story - `tasks.list` - 列出所有 Task - 预计工时: 12 小时 - [ ] **Day 15-16**: Sprints & Users Resources (4个) - `sprints.current` - 获取当前 Sprint - `sprints.backlog` - 获取 Backlog - `users.list` - 列出团队成员 - `reports.burndown` - 获取燃尽图数据 - 预计工时: 10 小时 - [ ] **Day 17**: Resource 缓存优化 - 实现 Redis 缓存层(IResourceCache) - 热数据预加载(用户登录时加载常用 Resources) - 缓存失效策略(写操作自动失效相关缓存) - 预计工时: 6 小时 - [ ] **Day 18-19**: 集成测试 + Phase 2 验收 - Claude Desktop 集成测试(读取项目/任务数据) - 性能测试:1000+ issues 场景,响应时间 < 200ms - 租户隔离测试:跨租户数据访问验证 - 文档:Resources API 文档(OpenAPI/Swagger) - 预计工时: 10 小时 **Phase 2 交付物**: - ✅ 11 个 MCP Resources 实现 - ✅ Redis 缓存优化(命中率 > 80%) - ✅ Resources API 文档(Swagger) - ✅ Claude Desktop PoC(只读操作) **Phase 2 验收标准**: - [ ] 所有 Resources 正确返回数据 - [ ] 租户隔离 100% 验证通过 - [ ] 性能:P95 响应时间 < 200ms - [ ] 缓存命中率 > 80% - [ ] Claude Desktop 能成功读取 ColaFlow 数据 --- #### Week 5-8: Phase 3 - Tools + Diff Preview (写操作 + 审批流程) **目标**: 实现所有 MCP Tools,搭建 Diff Preview 机制和人工审批流程 **任务列表**: - [ ] **Day 20-22**: Pending Changes 数据库设计 - `mcp_pending_changes` 表 Schema 优化 - Pending Change 状态机(Pending → Approved/Rejected → Executed/Cancelled) - Domain Events(PendingChangeCreated, Approved, Rejected, Expired) - 预计工时: 12 小时 - [ ] **Day 23-25**: Core Tools 实现 (4个) - `create_project` - 创建新项目 - `create_issue` - 创建新任务 - `update_issue` - 更新任务详情 - `update_status` - 更改任务状态 - Diff Preview 生成逻辑(JSON Diff) - 预计工时: 18 hours - [ ] **Day 26-28**: Assignment & Sprint Tools (4个) - `assign_issue` - 分配任务 - `create_sprint` - 创建 Sprint - `start_sprint` - 启动 Sprint - `create_epic` - 创建 Epic - 预计工时: 14 小时 - [ ] **Day 29-30**: Advanced Tools (2个) - `add_comment` - 添加评论 - `link_issues` - 关联任务(父子关系) - 预计工时: 8 小时 - [ ] **Day 31-33**: 审批流程 API (5个端点) - GET /api/mcp/pending-changes - 列出待审批变更 - GET /api/mcp/pending-changes/{id} - 获取变更详情 - POST /api/mcp/pending-changes/{id}/approve - 批准(自动执行) - POST /api/mcp/pending-changes/{id}/reject - 拒绝 - DELETE /api/mcp/pending-changes/{id} - 取消 - 审批后自动执行 Tool 操作 - 预计工时: 14 小时 - [ ] **Day 34-36**: Diff Preview UI (前端) - Pending Changes 列表页(React) - Diff Preview 详情页(react-diff-viewer-continued) - 审批操作面板(批准/拒绝/批量操作) - WebSocket 实时更新(SignalR 集成) - 预计工时: 20 小时 - [ ] **Day 37-38**: 集成测试 + Phase 3 验收 - 端到端测试:AI 创建任务 → 人工审批 → 自动执行 - 审批拒绝测试:确保拒绝后不执行操作 - 过期测试:24 小时未审批自动过期 - WebSocket 实时性测试:通知延迟 < 1 秒 - Claude Desktop PoC:完整读写流程 - 预计工时: 12 小时 **Phase 3 交付物**: - ✅ 10 个 MCP Tools 实现 - ✅ Diff Preview 机制(JSON Diff) - ✅ 审批流程 API (5 endpoints) - ✅ Diff Preview UI(React) - ✅ Claude Desktop PoC(读写操作) **Phase 3 验收标准**: - [ ] 所有 Tools 正确生成 Diff Preview - [ ] 审批通过后自动执行操作(成功率 ≥ 99%) - [ ] 审批拒绝后不执行操作(100% 验证) - [ ] 24 小时未审批自动过期 - [ ] WebSocket 通知延迟 < 1 秒 - [ ] Claude Desktop 能完整执行读写操作 --- #### Week 9-10: Phase 4 - Security & Audit (安全加固) **目标**: 实现字段级权限控制、审计日志、回滚机制 **任务列表**: - [ ] **Day 39-40**: 字段级权限控制 - 白名单配置(JSON):哪些字段可以被 AI 读写 - 运行时权限验证(Middleware) - 敏感字段保护(如 API Keys, Passwords) - 预计工时: 10 小时 - [ ] **Day 41-42**: MCP Audit Log (MCP 操作日志) - `mcp_audit_logs` 表设计 - 记录所有 Tool 调用(入参、出参、耗时、状态) - 记录所有审批操作(谁批准/拒绝了什么) - 审计日志查询 API(GET /api/mcp/audit-logs) - 预计工时: 12 小时 - [ ] **Day 43-44**: 回滚机制 - 回滚 API:POST /api/mcp/pending-changes/{id}/rollback - 补偿事务模式:回滚操作本身也记录审计日志 - 回滚限制:只能回滚 7 天内的操作 - 版本冲突检测:回滚前检查数据是否被修改 - 预计工时: 12 小时 - [ ] **Day 45-46**: 安全测试 - OWASP Top 10 安全扫描(SQL Injection, XSS, CSRF) - 租户隔离安全测试(100+ 场景) - API Key 泄露测试(撤销后立即失效) - 速率限制测试(1000+ req/s 攻击) - 预计工时: 12 小时 - [ ] **Day 47-48**: Phase 4 验收 - 渗透测试报告 - 安全审计报告 - 性能测试报告(1000+ users, 10000+ issues) - 文档:安全最佳实践指南 - 预计工时: 8 小时 **Phase 4 交付物**: - ✅ 字段级权限控制 - ✅ MCP Audit Log(完整日志) - ✅ 回滚机制(7 天内可回滚) - ✅ 安全测试报告(无 CRITICAL 漏洞) **Phase 4 验收标准**: - [ ] 字段级权限正确拦截未授权操作 - [ ] 审计日志完整记录所有 MCP 操作 - [ ] 回滚功能正确工作(10+ 测试场景) - [ ] OWASP Top 10 无 CRITICAL 漏洞 - [ ] 租户隔离 100% 验证通过 --- #### Week 11-12: Phase 5 - Claude Integration (AI 工具集成) **目标**: 实现 Claude Desktop 集成,验证完整的 AI 辅助工作流 **任务列表**: - [ ] **Day 49-50**: Claude Desktop 配置 - 编写 MCP Server Wrapper(Node.js) - 配置 mcp_config.json - 本地测试:Claude Desktop 连接 ColaFlow - 预计工时: 10 小时 - [ ] **Day 51-52**: MCP Prompts 实现 (8个) - `generate_prd` - 生成 PRD - `split_epic_to_stories` - 拆分 Epic - `estimate_story_points` - 估算工作量 - `generate_acceptance_criteria` - 生成验收标准 - `detect_risks` - 风险检测 - `generate_standup_summary` - 站会纪要 - `suggest_next_sprint_items` - 推荐 Sprint 任务 - `analyze_burndown` - 分析燃尽图 - 预计工时: 16 小时 - [ ] **Day 53-54**: 端到端测试场景 - 场景 1:自然语言创建任务 - 场景 2:AI 生成 PRD - 场景 3:AI 拆分 Epic 为 Stories - 场景 4:AI 检测项目风险 - 场景 5:AI 生成站会纪要 - 每个场景录屏演示 - 预计工时: 12 小时 - [ ] **Day 55-56**: Phase 5 验收 - Claude Desktop 集成测试报告 - 用户体验测试(5+ 内部用户) - AI 输出质量评估(准确率 ≥ 80%) - 文档:Claude Desktop 集成指南 - 预计工时: 8 小时 **Phase 5 交付物**: - ✅ Claude Desktop 集成(完整配置) - ✅ 8 个 MCP Prompts 实现 - ✅ 5 个端到端测试场景(含录屏) - ✅ Claude Desktop 集成指南 **Phase 5 验收标准**: - [ ] Claude Desktop 成功连接 ColaFlow - [ ] 所有 Prompts 正确返回提示词 - [ ] 5 个测试场景全部通过 - [ ] AI 输出质量准确率 ≥ 80% - [ ] 用户体验评分 ≥ 4.0/5.0 --- #### Week 13-14: Phase 6 - Testing & Optimization (全面测试) **目标**: 全面测试、性能优化、Bug 修复 **任务列表**: - [ ] **Day 57-59**: 性能测试 - 1000+ concurrent users - 10000+ issues - 1000+ MCP requests/minute - 数据库查询优化(EXPLAIN ANALYZE) - Redis 缓存优化 - 预计工时: 18 小时 - [ ] **Day 60-62**: 负载测试 - Apache JMeter 压测(1000+ req/s) - WebSocket 并发测试(100+ connections) - 内存泄漏检测(dotMemory) - CPU 瓶颈分析(dotTrace) - 预计工时: 18 小时 - [ ] **Day 63-65**: Bug 修复 - 修复性能测试中发现的问题 - 修复负载测试中发现的问题 - 修复用户反馈的 UI 问题 - 回归测试(确保修复没有引入新问题) - 预计工时: 18 小时 - [ ] **Day 66-67**: Phase 6 验收 - 性能测试报告(所有指标达标) - 负载测试报告(无崩溃、无内存泄漏) - Bug 修复报告(所有 P0/P1 bugs 已修复) - 预计工时: 10 小时 **Phase 6 交付物**: - ✅ 性能测试报告(所有 KPIs 达标) - ✅ 负载测试报告(1000+ req/s 稳定) - ✅ Bug 修复报告(0 P0 bugs) **Phase 6 验收标准**: - [ ] API 响应时间:P95 < 200ms, P99 < 500ms - [ ] 并发支持:1000+ users 稳定运行 - [ ] 内存使用:< 2GB (1000+ users 场景) - [ ] CPU 使用:< 60% (正常负载) - [ ] 无崩溃、无内存泄漏 --- #### Week 15-16: Phase 7 - Documentation (文档和培训) **目标**: 完善技术文档、用户指南、培训材料 **任务列表**: - [ ] **Day 68-70**: API 文档 - MCP Resources 文档(11个 Resources) - MCP Tools 文档(10个 Tools) - MCP Prompts 文档(8个 Prompts) - OpenAPI/Swagger 规范 - Postman Collection - 预计工时: 18 小时 - [ ] **Day 71-73**: 集成指南 - Claude Desktop 集成指南(详细步骤 + 截图) - ChatGPT 集成指南(准备 M3) - Cursor IDE 集成指南(准备 M3) - MCP Client SDK 使用指南(TypeScript) - 预计工时: 18 小时 - [ ] **Day 74-76**: 用户指南 - 管理员指南(API Key 管理、权限设置) - 用户指南(如何使用 AI 助手) - 最佳实践(如何编写高质量 Prompts) - 故障排除(常见问题 FAQ) - 预计工时: 18 小时 - [ ] **Day 77-79**: 培训材料 - 视频教程(5 个场景演示,共 30 分钟) - 幻灯片(M2 产品发布会 PPT) - 发布公告(博客文章、社交媒体) - 预计工时: 18 小时 - [ ] **Day 80**: M2 完成验收 - 最终验收测试(所有 KPIs 达标) - 产品发布会准备 - M2 阶段回顾报告 - M3 规划启动 - 预计工时: 8 小时 **Phase 7 交付物**: - ✅ 完整 API 文档(Swagger + Postman) - ✅ 集成指南(Claude Desktop + ChatGPT + Cursor) - ✅ 用户指南(管理员 + 用户 + 最佳实践) - ✅ 培训材料(视频 + PPT + 博客) **Phase 7 验收标准**: - [ ] API 文档完整(100% 覆盖所有接口) - [ ] 集成指南可操作(任何人可按指南完成集成) - [ ] 用户指南清晰(用户可自助解决 90% 问题) - [ ] 培训材料质量高(视频播放量 > 100, 点赞率 > 90%) --- ### 4.3 关键里程碑 | 里程碑 | 日期 | 交付物 | 验收标准 | |--------|------|--------|---------| | M2.1: Foundation Complete | Week 2 (2025-12-14) | MCP Server 基础架构 + API Key 认证 | 集成测试通过率 ≥ 95% | | M2.2: Resources Complete | Week 4 (2025-12-28) | 11 个 MCP Resources 实现 | Claude Desktop 能读取数据 | | M2.3: Tools Complete | Week 8 (2026-01-25) | 10 个 MCP Tools + Diff Preview UI | Claude Desktop 能执行写操作 | | M2.4: Security Complete | Week 10 (2026-02-08) | 字段级权限 + 审计日志 + 回滚 | 无 CRITICAL 安全漏洞 | | M2.5: Claude Integration | Week 12 (2026-02-22) | Claude Desktop 完整集成 + 8 Prompts | 5 个测试场景全部通过 | | M2.6: Testing Complete | Week 14 (2026-03-08) | 性能测试 + 负载测试 + Bug 修复 | 所有 KPIs 达标 | | M2.7: M2 Release | Week 16 (2026-03-22) | 完整文档 + 培训材料 + 产品发布 | M2 验收通过 | --- ## 五、验收标准与 KPI ### 5.1 功能完整性 KPI | 指标 | 目标 | 测量方法 | |------|------|---------| | MCP Resources 实现率 | 100% (11/11) | 单元测试 + 集成测试 | | MCP Tools 实现率 | 100% (10/10) | Diff Preview 生成成功率 | | MCP Prompts 实现率 | 100% (8/8) | AI 输出质量评估 | | API Key 管理功能 | 100% (7/7 endpoints) | 功能测试 | | Diff Preview UI 完整性 | 100% (所有功能) | UI 测试 | --- ### 5.2 性能 KPI | 指标 | 目标 | 测量方法 | |------|------|---------| | API 响应时间(P95) | < 200ms | Apache JMeter 压测 | | API 响应时间(P99) | < 500ms | Apache JMeter 压测 | | 并发支持 | 1000+ users | 负载测试 | | MCP 请求吞吐量 | 1000+ req/min | 压测 + 监控 | | 数据库查询时间 | < 10ms (单次查询) | EF Core 日志分析 | | Redis 缓存命中率 | > 80% | Redis Monitoring | | WebSocket 通知延迟 | < 1s | SignalR 监控 | --- ### 5.3 安全 KPI | 指标 | 目标 | 测量方法 | |------|------|---------| | 租户隔离验证通过率 | 100% | 安全测试(100+ 场景) | | OWASP Top 10 漏洞 | 0 CRITICAL | 安全扫描工具 | | API Key 认证成功率 | 100% | 集成测试 | | 审批通过率 | ≥ 90% | 用户行为分析 | | 回滚成功率 | 100% | 功能测试(10+ 场景) | | 审计日志完整性 | 100% | 日志审计 | --- ### 5.4 AI 输出质量 KPI | 指标 | 目标 | 测量方法 | |------|------|---------| | PRD 生成准确率 | ≥ 80% | 人工评估(5+ 样本) | | Epic 拆分合理性 | ≥ 75% | 人工评估(5+ 样本) | | 风险检测准确率 | ≥ 75% | 对比人工评估 | | Story Points 估算误差 | ≤ 30% | 对比实际完成时间 | | 验收标准生成质量 | ≥ 80% | 人工评估(5+ 样本) | --- ### 5.5 用户体验 KPI | 指标 | 目标 | 测量方法 | |------|------|---------| | AI 操作成功率 | ≥ 95% | 系统日志分析 | | 审批流程完成时间 | < 2 分钟 (平均) | 用户行为分析 | | 用户满意度 | ≥ 4.0/5.0 | 用户调查问卷(5+ 用户) | | AI 减少手动工作量 | ≥ 50% | 时间追踪对比 | | Diff Preview 可读性 | ≥ 4.5/5.0 | 用户调查问卷 | --- ### 5.6 项目管理 KPI | 指标 | 目标 | 测量方法 | |------|------|---------| | M2 按时完成率 | 100% (16周内完成) | 项目进度跟踪 | | Sprint 燃尽图趋势 | 线性递减 | Sprint 回顾 | | Bug 修复及时性 | P0 bugs < 24h, P1 bugs < 3 days | Bug 追踪系统 | | 代码审查覆盖率 | 100% (所有 PR) | GitHub PR 统计 | | 测试覆盖率 | ≥ 80% | Code Coverage 工具 | --- ## 六、风险识别与应对策略 ### 6.1 技术风险 #### 风险 1: MCP SDK 不成熟 **描述**: ModelContextProtocol SDK v0.4.0 是新技术,可能缺少必要功能或存在 bug **影响**: 高 **概率**: 中 (40%) **严重程度**: MEDIUM **应对策略**: 1. **缓解措施**: - Week 1-2 提前验证 SDK 核心功能(Resources/Tools/Prompts) - 准备 Fallback 方案:如果 SDK 不可用,自己实现 MCP 协议(基于 JSON-RPC 2.0) - 与 MCP 社区保持联系,及时反馈问题 2. **应急计划**: - 如果 SDK 严重不可用(Week 4 前发现),切换到自研 MCP 实现 - 预留 2 周 buffer 时间用于 SDK 问题处理 3. **监控指标**: - SDK bug 数量(目标: < 5 个 CRITICAL bugs) - SDK 功能完整性(目标: 100% 核心功能可用) --- #### 风险 2: Diff Preview 性能问题 **描述**: JSON Diff 计算可能较慢,影响用户体验 **影响**: 中 **概率**: 中 (30%) **严重程度**: LOW **应对策略**: 1. **缓解措施**: - 使用高性能 Diff 库(如 `JsonDiffPatch.Net`) - 对大对象(> 10KB)进行异步 Diff 计算 - 前端使用虚拟滚动(react-window)优化大 Diff 显示 2. **应急计划**: - 如果 Diff 计算 > 5s,改为后台异步计算 + WebSocket 通知 - 提供"简化 Diff"模式(仅显示关键字段变更) 3. **监控指标**: - Diff 计算时间(目标: P95 < 500ms) - 用户投诉率(目标: < 5%) --- #### 风险 3: 数据库性能瓶颈 **描述**: 1000+ users, 10000+ issues 场景下,数据库查询可能较慢 **影响**: 高 **概率**: 低 (20%) **严重程度**: MEDIUM **应对策略**: 1. **缓解措施**: - Week 6 开始性能压测(提前发现瓶颈) - 添加更多复合索引(针对 MCP Resources 常用查询) - 使用 Redis 缓存热数据(Projects, Issues) - 考虑读写分离(CQRS 架构已就绪) 2. **应急计划**: - 如果查询 > 100ms,启用 PostgreSQL 查询优化(EXPLAIN ANALYZE) - 如果仍不够快,引入 Elasticsearch 做全文搜索 3. **监控指标**: - 数据库查询时间(目标: P95 < 10ms) - 慢查询数量(目标: < 1% queries) --- ### 6.2 安全风险 #### 风险 4: AI 误操作导致数据损坏 **描述**: AI 生成错误的 Tool 参数,导致数据被错误修改或删除 **影响**: 高 **概率**: 中 (30%) **严重程度**: HIGH **应对策略**: 1. **缓解措施**: - 所有写操作强制人工审批(Diff Preview 机制) - 关键操作(删除、批量修改)增加二次确认 - 完整的审计日志 + 7 天回滚能力 - 字段级权限控制(敏感字段 AI 不可修改) 2. **应急计划**: - 如果发生误操作,立即使用回滚功能恢复数据 - 提供"撤销"按钮(5 分钟内可一键撤销) - 定期数据库备份(每日全量 + 每小时增量) 3. **监控指标**: - 误操作率(目标: < 1%) - 回滚使用率(目标: < 5%) - 审批拒绝率(目标: 5-10%,说明 AI 有错误但被拦截) --- #### 风险 5: API Key 泄露 **描述**: 用户不慎将 API Key 泄露到公共代码库(如 GitHub) **影响**: 高 **概率**: 中 (40%) **严重程度**: CRITICAL **应对策略**: 1. **缓解措施**: - API Key 创建时显示安全提示("请妥善保管,仅显示一次") - 实现 API Key 前缀明文存储(方便识别哪个 Key 泄露) - 提供"紧急撤销"功能(一键撤销所有 Keys) - IP 白名单功能(限制 Key 只能从特定 IP 访问) - 集成 GitHub Secret Scanning(自动检测泄露的 Keys) 2. **应急计划**: - 如果检测到 Key 泄露,立即自动撤销并通知用户 - 提供"泄露通知"邮件(告知风险和修复步骤) 3. **监控指标**: - API Key 泄露检测率(目标: 100% 检测到) - 泄露后撤销时间(目标: < 5 分钟) - 用户安全意识评分(目标: ≥ 4.0/5.0) --- ### 6.3 进度风险 #### 风险 6: M2 完成时间延期 **描述**: 16 周计划过于乐观,可能延期至 18-20 周 **影响**: 中 **概率**: 高 (50%) **严重程度**: MEDIUM **应对策略**: 1. **缓解措施**: - 预留 2 周 buffer 时间(实际规划 14 周核心功能) - 优先完成 P0 功能,P1/P2 功能可延后至 M2.5 - 每 2 周进行 Sprint 回顾,及时调整计划 - 前后端并行开发,减少依赖阻塞 2. **应急计划**: - 如果 Week 10 进度 < 60%,考虑砍掉部分 P2 功能 - 如果 Week 14 无法完成,延后至 Week 18(M2.5 小版本) 3. **监控指标**: - Sprint 燃尽图趋势(目标: 线性递减) - 每周完成任务数(目标: 10+ tasks/week) - M2 完成度(Week 8: 50%, Week 12: 75%, Week 16: 100%) --- #### 风险 7: 人力资源不足 **描述**: 后端/前端开发人员不足,导致进度延误 **影响**: 高 **概率**: 中 (30%) **严重程度**: HIGH **应对策略**: 1. **缓解措施**: - 提前招聘 1-2 名后端开发工程师(Week 4 前到岗) - 外包部分 UI 开发工作(Diff Preview UI, API Key 管理页) - 使用低代码工具加速前端开发(如 Ant Design Pro) - 自动化测试(减少人工测试工作量) 2. **应急计划**: - 如果人力不足,优先完成 P0 功能 - 延后 P1/P2 功能至 M2.5 或 M3 3. **监控指标**: - 团队人数(目标: 2 后端 + 1 前端 + 1 QA) - 人均任务数(目标: < 10 tasks/person) - 加班时间(目标: < 10h/week) --- ### 6.4 业务风险 #### 风险 8: AI 输出质量不达标 **描述**: AI 生成的 PRD/Story/风险报告质量不高,用户不信任 AI **影响**: 高 **概率**: 中 (40%) **严重程度**: MEDIUM **应对策略**: 1. **缓解措施**: - Week 11 开始进行 AI 输出质量评估(5+ 样本) - 优化 Prompts(增加示例、约束条件) - 提供"AI 助手模式"(AI 生成草稿,人工润色) - 收集用户反馈,持续迭代 Prompts 2. **应急计划**: - 如果准确率 < 70%,暂停发布 AI 功能 - 进行 Prompts 专项优化(2-3 周) - 考虑切换到更强的 AI 模型(如 GPT-4o) 3. **监控指标**: - AI 输出准确率(目标: ≥ 80%) - 用户编辑率(目标: < 30%,说明 AI 输出质量高) - 用户满意度(目标: ≥ 4.0/5.0) --- #### 风险 9: 用户采用率低 **描述**: 用户不习惯使用 AI 助手,仍然手动操作 **影响**: 中 **概率**: 中 (30%) **严重程度**: LOW **应对策略**: 1. **缓解措施**: - Week 15-16 制作详细的培训材料(视频 + 文档) - 内部试点(5+ 用户),收集反馈并优化 - 提供"新手引导"(首次使用时逐步教学) - 提供"快捷操作"提示(在合适的时机推荐使用 AI) 2. **应急计划**: - 如果采用率 < 30%,进行用户调研(找出阻碍因素) - 优化 UX(降低学习成本) - 提供激励机制(使用 AI 完成任务获得徽章) 3. **监控指标**: - AI 操作数量(目标: ≥ 50% 任务通过 AI 创建) - 活跃用户数(目标: ≥ 80% 用户使用 AI 功能) - 用户留存率(目标: ≥ 90% 用户持续使用) --- ## 七、依赖与约束 ### 7.1 技术依赖 | 依赖项 | 状态 | 风险等级 | 应对措施 | |--------|------|---------|---------| | M1 核心功能完成 | ✅ 85% 完成 (Day 14) | LOW | M1 剩余任务在 M2 Week 1 前完成 | | ModelContextProtocol SDK v0.4.0 | ⏳ 待验证 | MEDIUM | Week 1 验证,准备 Fallback 方案 | | PostgreSQL 16+ | ✅ 已部署 | LOW | 稳定版本,性能达标 | | Redis 7+ | ⏳ 待部署 | LOW | Week 2 前部署,用于缓存和速率限制 | | Claude Desktop 最新版 | ⏳ 待测试 | MEDIUM | Week 11 开始测试,确保兼容性 | --- ### 7.2 团队依赖 | 角色 | 人数 | 时间投入 | 风险 | |------|------|---------|------| | 后端开发工程师 | 2 人 | 100% (16周) | MEDIUM - 人力不足 | | 前端开发工程师 | 1 人 | 80% (12周) | LOW - 可外包部分工作 | | QA 工程师 | 1 人 | 60% (10周) | LOW - 自动化测试 | | 架构师 | 1 人 | 20% (3周) | LOW - 技术评审和指导 | | 产品经理 | 1 人 | 30% (5周) | LOW - 需求澄清和验收 | **总人力**: 2 后端 + 1 前端 + 1 QA + 0.2 架构 + 0.3 PM = **4.5 人月 × 4 月 = 18 人月** --- ### 7.3 外部约束 | 约束项 | 描述 | 影响 | |--------|------|------| | 预算限制 | M2 预算上限 $50,000 | MEDIUM - 可能需要砍掉部分 P2 功能 | | 时间限制 | M2 必须在 2026-03-31 前完成 | HIGH - 影响 M3 启动时间 | | 合规要求 | GDPR + SOC 2 合规(企业客户要求) | HIGH - 必须满足 | | 技术栈限制 | 必须使用 .NET 9 + PostgreSQL | LOW - 已确定 | | AI 模型限制 | Claude/ChatGPT API 调用额度 | LOW - 按需扩展 | --- ## 八、成功标准 ### 8.1 M2 完成的定义 (Definition of Done) **功能完整性**: - [ ] 11 个 MCP Resources 全部实现且测试通过 - [ ] 10 个 MCP Tools 全部实现且测试通过 - [ ] 8 个 MCP Prompts 全部实现且测试通过 - [ ] API Key 管理功能完整(7 个端点) - [ ] Diff Preview UI 完整(列表页 + 详情页 + 审批面板) - [ ] Claude Desktop 集成成功(5 个测试场景) **性能指标**: - [ ] API 响应时间 P95 < 200ms - [ ] 并发支持 1000+ users - [ ] 数据库查询 < 10ms - [ ] Redis 缓存命中率 > 80% - [ ] WebSocket 通知延迟 < 1s **安全指标**: - [ ] 租户隔离 100% 验证通过 - [ ] OWASP Top 10 无 CRITICAL 漏洞 - [ ] 审计日志完整性 100% - [ ] 回滚功能正确工作(10+ 场景) **AI 质量指标**: - [ ] PRD 生成准确率 ≥ 80% - [ ] Epic 拆分合理性 ≥ 75% - [ ] 风险检测准确率 ≥ 75% - [ ] 用户满意度 ≥ 4.0/5.0 **文档完整性**: - [ ] API 文档完整(Swagger + Postman) - [ ] 集成指南完整(Claude Desktop + ChatGPT) - [ ] 用户指南完整(管理员 + 用户) - [ ] 培训材料完整(视频 + PPT + 博客) **测试覆盖率**: - [ ] 单元测试覆盖率 ≥ 80% - [ ] 集成测试通过率 ≥ 95% - [ ] 端到端测试 5 个场景全部通过 --- ### 8.2 M2 成功的标志 1. **技术成功**: - Claude Desktop 能完整执行读写操作(5 个测试场景) - 所有 KPIs 达标(性能、安全、质量) - 无 P0/P1 bugs 2. **业务成功**: - 5+ 内部用户试用并提供正面反馈 - AI 减少手动工作量 ≥ 50%(对比 M1) - 用户满意度 ≥ 4.0/5.0 3. **项目管理成功**: - 按时完成(2026-03-31 前) - 预算控制(< $50,000) - 团队士气高(无加班、无冲突) --- ## 九、下一步行动 ### 9.1 立即行动 (Week 0, 准备阶段) 1. **产品需求确认** (Day 1-2) - 产品经理与主协调器确认 PRD - 架构师评审技术可行性 - 确认预算和人力资源 - 输出: 最终版 M2 PRD 2. **团队招募** (Day 3-7) - 招聘 1-2 名后端开发工程师 - 招聘 1 名 QA 工程师 - 确认前端开发资源(内部或外包) - 输出: 团队组建完成 3. **技术准备** (Day 8-10) - 安装 ModelContextProtocol SDK v0.4.0 - 验证 SDK 核心功能(Resources/Tools/Prompts) - 准备开发环境(Docker, PostgreSQL, Redis) - 输出: 技术验证报告 4. **M2 启动会** (Day 11) - 产品经理宣讲 M2 目标和计划 - 架构师讲解技术架构 - 团队讨论风险和依赖 - 输出: M2 启动会纪要 --- ### 9.2 Week 1 行动计划 **Week 1 目标**: 完成 MCP Server 项目初始化 + API Key 认证系统 **具体任务**: - [ ] Day 1-2: MCP Server 项目结构搭建 - [ ] Day 3-4: 数据库设计 + Migration - [ ] Day 5-6: API Key 认证中间件实现 - [ ] Day 7: API Key 管理 API 实现 - [ ] Day 8-9: MCP Server 基础架构实现 - [ ] Day 10: 集成测试 + Phase 1 验收 **负责人**: - 后端开发: Backend Team (2 人) - 架构评审: Architect Agent - 测试验证: QA Engineer **验收标准**: - [ ] API Key 认证中间件正确拦截未授权请求 - [ ] 速率限制功能正确工作(60 req/min) - [ ] 集成测试通过率 ≥ 95% --- ### 9.3 M3 规划预告 **M3 目标** (2026-04-01 至 2026-06-30, 3个月): - ChatGPT 集成 PoC - AI → PRD → 任务 完整闭环 - 外部系统接入准备(GitHub, Slack) **M3 准备工作** (M2 期间): - Week 10: 研究 ChatGPT Plugin 开发 - Week 12: 研究 GitHub OAuth + Webhook - Week 14: 设计 M3 架构方案 --- ## 十、附录 ### 10.1 术语表 | 术语 | 定义 | |------|------| | MCP | Model Context Protocol - AI 工具与应用系统的标准通信协议 | | Resource | MCP 中的只读数据暴露接口(如 `projects.list`) | | Tool | MCP 中的写操作接口(如 `create_issue`) | | Prompt | MCP 中的 AI 提示词模板(如 `generate_prd`) | | Diff Preview | AI 操作的 before/after 数据对比预览 | | Pending Change | 等待人工审批的 AI 操作 | | API Key | MCP 客户端的认证凭证 | | Tenant | 租户(多租户系统中的独立组织) | --- ### 10.2 参考文档 | 文档 | 路径 | |------|------| | 项目计划书 | `c:\Users\yaoji\git\ColaCoder\product-master\product.md` | | M1 剩余任务清单 | `c:\Users\yaoji\git\ColaCoder\product-master\M1_REMAINING_TASKS.md` | | 后端进度报告 | `c:\Users\yaoji\git\ColaCoder\product-master\BACKEND_PROGRESS_REPORT.md` | | Audit Log 技术方案 | (Day 14 完成, 15,000+ 字研究报告) | | MCP 协议官方文档 | https://modelcontextprotocol.io/ | | headless-pm 参考项目 | https://github.com/headless-pm (MCP Server 参考实现) | --- ### 10.3 联系人 | 角色 | 姓名 | 职责 | |------|------|------| | 产品经理 | Product Manager Agent | M2 规划、需求管理、验收 | | 技术负责人 | Architect Agent | 架构设计、技术评审 | | 后端负责人 | Backend Agent | MCP Server 开发、API 实现 | | 前端负责人 | Frontend Agent | Diff Preview UI、API Key 管理页 | | QA 负责人 | QA Agent | 测试计划、质量保证 | | 主协调器 | Main Coordinator | 整体协调、进度跟踪 | --- ### 10.4 变更记录 | 日期 | 版本 | 变更说明 | 责任人 | |------|------|---------|--------| | 2025-11-04 | 1.0 | 初始版本 - M2 完整 PRD | Product Manager Agent | --- **文档结束** **下一步**: 请主协调器审核此 PRD,确认后开始 M2 Phase 1 实施。