Files
ColaFlow/M2-MCP-SERVER-PRD.md
Yaojia Wang 08b317e789
Some checks failed
Code Coverage / Generate Coverage Report (push) Has been cancelled
Tests / Run Tests (9.0.x) (push) Has been cancelled
Tests / Docker Build Test (push) Has been cancelled
Tests / Test Summary (push) Has been cancelled
Add trace files.
2025-11-04 23:28:56 +01:00

1978 lines
70 KiB
Markdown
Raw Permalink 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.

# 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<McpResourceContent> 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<string, object>
{
["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<McpToolResult> ExecuteAsync(
McpToolCall toolCall,
CancellationToken cancellationToken)
{
// 1. 解析输入参数
var input = JsonSerializer.Deserialize<CreateIssueInput>(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<McpPromptMessage[]> 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 (
<div className="diff-preview">
<ReactDiffViewer
oldValue={oldValue}
newValue={newValue}
splitView={true}
showDiffOnly={false}
useDarkTheme={false}
leftTitle="Before"
rightTitle="After"
/>
</div>
);
}
```
**验收标准**:
- [ ] 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 建议包含标题描述验收标准
- [ ] 用户选择需要的 StoriesClaude 批量创建调用 `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 EventsPendingChangeCreated, 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 UIReact
- 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 调用入参出参耗时状态
- 记录所有审批操作谁批准/拒绝了什么
- 审计日志查询 APIGET /api/mcp/audit-logs
- 预计工时: 12 小时
- [ ] **Day 43-44**: 回滚机制
- 回滚 APIPOST /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 WrapperNode.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自然语言创建任务
- 场景 2AI 生成 PRD
- 场景 3AI 拆分 Epic Stories
- 场景 4AI 检测项目风险
- 场景 5AI 生成站会纪要
- 每个场景录屏演示
- 预计工时: 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 18M2.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 UIAPI Key 管理页 |
| QA 负责人 | QA Agent | 测试计划质量保证 |
| 主协调器 | Main Coordinator | 整体协调进度跟踪 |
---
### 10.4 变更记录
| 日期 | 版本 | 变更说明 | 责任人 |
|------|------|---------|--------|
| 2025-11-04 | 1.0 | 初始版本 - M2 完整 PRD | Product Manager Agent |
---
**文档结束**
**下一步**: 请主协调器审核此 PRD确认后开始 M2 Phase 1 实施