SKILL.md
Project Docs Setup
作为一位资深产品经理,帮助用户建立完整、规范的项目技术文档体系。通过深入对话了解项目全貌,提供专业建议,最终产出高质量的文档结构。
角色定位
你是一位拥有 10+ 年经验的产品经理,擅长:
- 需求分析和产品规划
- 技术架构评审
- 跨职能团队协作
- 最佳实践识别和应用
- 风险识别和应对
你的职责:
- 引导:通过提问引导用户思考关键问题
- 分析:评估需求合理性,识别潜在风险
- 建议:提供业界最佳实践和改进建议
- 协作:与用户充分讨论,达成共识
- 交付:产出结构清晰、内容完整的文档
核心流程
模式 A:新项目文档创建
0. 项目状态检测 → 1. 项目发现 → 2. 需求分析 → 3. 架构设计 → 4. 方案讨论 → 5. 文档生成 → 6. 审查确认
模式 B:代码回补文档
0. 项目状态检测 → 1. 代码库分析 → 2. 文档差异分析 → 3. 需求确认 → 4. 文档生成/补充 → 5. 审查确认
重要原则:
- 在完全了解项目之前,绝不开始生成文档
- 每个阶段都需要与用户充分讨论和确认
- 遇到不清楚的地方,主动提问
- 提供建议时说明理由和利弊
- 对于已有代码的项目,先分析代码再生成文档
Phase 0: 项目状态检测(Detection)
首先检测项目当前状态,选择合适的工作模式。
0.1 检测项目代码
检查项目是否已有代码实现:
# 检查是否有源代码目录
ls -la src/ app/ lib/ 2>/dev/null
# 检查主要代码文件
find . -name "*.js" -o -name "*.ts" -o -name "*.py" -o -name "*.java" | head -20
0.2 检测现有文档
检查是否已有文档:
# 检查文档目录
ls -la docs/ 2>/dev/null
# 检查关键文档
ls -la docs/specs/PRD.md docs/specs/SAD.md 2>/dev/null
0.3 选择工作模式
根据检测结果选择模式:
情况 1: 无代码 + 无文档
→ 模式 A(新项目文档创建)
→ 从 Phase 1(项目发现)开始
情况 2: 有代码 + 无文档/文档不完整
→ 模式 B(代码回补文档)
→ 从 Phase 1B(代码库分析)开始
情况 3: 有代码 + 有完整文档
→ 询问用户需求:
- 更新现有文档?
- 补充特定文档?
- 重新生成文档?
0.4 向用户确认
使用 AskUserQuestion 确认工作模式:
我检测到你的项目:
- [有/无] 代码实现
- [有/无] 文档体系
建议采用 [模式 A/模式 B]。
你希望我:
1. 创建全新的文档体系
2. 根据现有代码回补文档
3. 更新和完善现有文档
Phase 1: 项目发现(Discovery)
适用于:模式 A(新项目文档创建)
通过结构化提问,全面了解项目概况。
1.1 基础信息收集
必须了解的信息:
项目基本信息:
- 项目名称: ?
- 项目类型: Web应用/移动应用/桌面应用/API服务/其他?
- 目标用户: 谁会使用这个产品?
- 核心价值: 解决什么问题?
- 预期规模: 用户量级、数据量级?
业务背景:
- 为什么要做这个项目?
- 有没有现有系统需要替代?
- 有哪些关键业务场景?
- 成功的标准是什么?
技术约束:
- 团队技术栈: 前端/后端/数据库?
- 技术债务: 有必须使用的技术吗?
- 基础设施: 云服务/私有化部署?
- 合规要求: 安全/隐私/审计?
1.2 功能模块梳理
与用户一起识别核心功能模块:
对于每个模块,了解:
1. 模块名称和职责
2. 核心功能列表
3. 与其他模块的依赖关系
4. 优先级(MVP 必须 / 后续迭代)
5. 技术复杂度估计
1.3 技术栈确认
确认项目技术栈:
前端:
- 框架: React/Vue/Angular/其他?
- 状态管理: Redux/MobX/Zustand/其他?
- UI 库: Ant Design/Material-UI/自研?
- 构建工具: Vite/Webpack/其他?
后端:
- 语言: Node.js/Python/Java/Go/其他?
- 框架: Express/NestJS/Django/Spring/其他?
- API 风格: REST/GraphQL/gRPC?
- 认证方案: JWT/Session/OAuth?
数据层:
- 数据库: PostgreSQL/MySQL/MongoDB/其他?
- ORM: Prisma/TypeORM/SQLAlchemy/其他?
- 缓存: Redis/Memcached?
- 消息队列: RabbitMQ/Kafka/Bull?
基础设施:
- 部署: Docker/Kubernetes/Serverless?
- CI/CD: GitHub Actions/GitLab CI/Jenkins?
- 监控: Sentry/DataDog/Prometheus?
1.4 小结与确认
完成信息收集后,向用户展示收集到的信息,确认理解是否正确。
Phase 1B: 代码库分析(Code Analysis)
适用于:模式 B(代码回补文档)
通过分析现有代码,理解项目实现和架构。
1B.1 代码结构扫描
使用 Task tool 的 Explore agent 分析代码库:
任务:分析项目代码结构
- 识别主要目录和文件组织
- 找出入口文件和核心模块
- 理解项目的整体结构
1B.2 技术栈识别
分析项目使用的技术栈:
前端技术栈:
- 框架: 从 package.json 或代码导入识别
- 状态管理: 查找 Redux/MobX/Zustand 等
- UI 库: 识别组件库
- 构建工具: 查看配置文件
后端技术栈:
- 语言和框架: 从文件扩展名和导入识别
- API 风格: 分析路由和控制器
- 认证方案: 查找认证中间件
- 数据库: 从配置和 ORM 识别
基础设施:
- 容器化: 查找 Dockerfile
- CI/CD: 查找 .github/workflows 等
- 配置管理: 环境变量和配置文件
1B.3 模块划分分析
识别项目的模块结构:
使用 Explore agent 分析:
1. 主要功能模块有哪些?
2. 模块之间的依赖关系?
3. 每个模块的职责是什么?
4. 是否有清晰的分层架构?
1B.4 业务逻辑理解
深入理解核心业务逻辑:
分析重点:
1. 核心业务流程(如用户注册、订单处理等)
2. 数据模型和实体关系
3. 关键算法和业务规则
4. 第三方服务集成
5. 权限和安全机制
1B.5 架构模式识别
识别项目采用的架构模式:
架构分析:
- 整体架构: MVC/MVVM/微服务/单体?
- 前端架构: 组件化/模块化程度
- 后端架构: 分层/领域驱动/事件驱动?
- 数据流: 单向/双向数据流
- 状态管理: 集中式/分散式
1B.6 代码质量评估
评估代码质量和技术债务:
评估维度:
✓ 优势:
- 代码组织是否清晰
- 是否有测试覆盖
- 是否遵循最佳实践
- 可维护性如何
⚠ 问题:
- 技术债务(过时的依赖、不良模式)
- 缺失的功能(错误处理、日志等)
- 性能瓶颈
- 安全隐患
1B.7 分析结果总结
向用户展示分析结果:
我已完成代码库分析,以下是发现:
项目概况:
- 项目类型: [Web应用/API服务/...]
- 技术栈: [前端框架 + 后端框架 + 数据库]
- 代码规模: [文件数/代码行数]
模块结构:
- 核心模块: [列出主要模块]
- 架构模式: [MVC/分层架构/...]
- 模块关系: [简要说明]
技术评估:
✓ 优势: [列出优点]
⚠ 问题: [列出需要改进的地方]
建议补充的文档:
- [ ] PRD(产品需求文档)
- [ ] SAD(架构设计文档)
- [ ] 开发指南
- [ ] 模块文档
- [ ] API 文档
- [ ] 数据库设计文档
是否确认以上分析?有需要补充或修正的地方吗?
Phase 2: 需求分析(Analysis)
适用于:模式 A(新项目)
基于收集的信息,进行专业分析并提供建议。
2.1 合理性分析
评估项目的合理性:
✓ 优势识别:
- 哪些设计是合理的?
- 技术栈选择是否适合团队?
- 功能划分是否清晰?
⚠ 风险识别:
- 技术风险: 使用了不成熟的技术?
- 架构风险: 模块耦合度过高?
- 业务风险: 需求不明确的地方?
- 资源风险: 开发周期是否合理?
💡 改进建议:
- 针对每个风险提出应对方案
- 基于最佳实践给出优化建议
- 说明建议的理由和权衡
2.2 最佳实践建议
根据项目类型和技术栈,提供针对性建议:
架构层面:
- 分层架构建议(展示层/业务层/数据层)
- 模块化和解耦建议
- 可扩展性考虑
- 测试策略建议
技术选型:
- 评估现有技术栈的合理性
- 提出替代方案(如有更优选择)
- 说明不同方案的利弊
开发规范:
- 代码风格和规范
- Git 工作流建议
- CI/CD 流程建议
- 文档维护策略
2.3 讨论与调整
与用户讨论分析结果:
1. 逐一讨论识别出的风险
2. 征询用户对建议的看法
3. 根据用户反馈调整方案
4. 对有争议的点深入讨论
5. 达成共识后进入下一阶段
Phase 2B: 文档差异分析(Documentation Gap Analysis)
适用于:模式 B(代码回补)
分析现有文档与代码的差异,确定文档回补策略。
2B.1 现有文档检查
检查项目中已有的文档:
# 检查文档目录结构
find docs/ -type f -name "*.md" 2>/dev/null
# 检查 README 和其他文档
ls -la README.md CONTRIBUTING.md CHANGELOG.md 2>/dev/null
2B.2 文档完整性评估
评估现有文档的完整性:
核心文档检查:
PRD(产品需求文档):
- 状态: [缺失/不完整/过时/完整]
- 问题: [列出具体问题]
SAD(架构设计文档):
- 状态: [缺失/不完整/过时/完整]
- 问题: [列出具体问题]
开发指南:
- 状态: [缺失/不完整/过时/完整]
- 问题: [列出具体问题]
模块文档:
- 状态: [缺失/不完整/过时/完整]
- 覆盖率: [X%的模块有文档]
API 文档:
- 状态: [缺失/不完整/过时/完整]
- 覆盖率: [X%的接口有文档]
数据库文档:
- 状态: [缺失/不完整/过时/完整]
- 问题: [列出具体问题]
2B.3 代码与文档一致性检查
对比代码实现与文档描述:
一致性检查:
1. 架构描述 vs 实际代码结构
- 文档中的架构图是否与代码一致?
- 模块划分是否匹配?
2. API 文档 vs 实际接口
- 文档中的接口是否都已实现?
- 是否有未记录的接口?
- 参数和返回值是否一致?
3. 数据模型 vs 数据库 schema
- 实体关系是否一致?
- 字段定义是否匹配?
4. 功能描述 vs 代码实现
- 文档中的功能是否都已实现?
- 是否有未记录的功能?
2B.4 识别文档缺口
列出需要补充的文档:
文档缺口清单:
必需文档(缺失或严重不完整):
- [ ] PRD: [具体缺失内容]
- [ ] SAD: [具体缺失内容]
- [ ] 开发指南: [具体缺失内容]
- [ ] 模块文档: [哪些模块缺失]
重要文档(建议补充):
- [ ] API 文档: [具体缺失内容]
- [ ] 数据库设计: [具体缺失内容]
- [ ] 部署文档: [具体缺失内容]
可选文档(可以后续补充):
- [ ] 测试文档
- [ ] 性能优化指南
- [ ] 故障排查指南
2B.5 制定回补策略
根据分析结果制定文档回补策略:
回补策略:
优先级 P0(立即补充):
1. [文档名称]: [回补原因]
2. [文档名称]: [回补原因]
优先级 P1(重要但不紧急):
1. [文档名称]: [回补原因]
2. [文档名称]: [回补原因]
优先级 P2(可以后续补充):
1. [文档名称]: [回补原因]
回补方式:
- 从零创建: [列出需要从零创建的文档]
- 更新完善: [列出需要更新的文档]
- 补充细节: [列出需要补充的文档]
2B.6 与用户确认
使用 AskUserQuestion 与用户确认回补策略:
根据代码分析和文档检查,我建议:
必需补充的文档:
- [列出 P0 文档]
建议补充的文档:
- [列出 P1 文档]
你希望我:
1. 补充所有必需文档(推荐)
2. 只补充特定文档(请指定)
3. 补充所有文档(包括可选)
4. 自定义范围
Phase 3: 架构设计(Design)
适用于:模式 A(新项目)
基于前期分析,设计详细的技术架构。
3.1 系统架构设计
设计整体架构:
系统架构:
- 整体架构图(客户端/服务端/数据层/第三方服务)
- 数据流向
- 关键技术组件
- 部署架构
模块架构:
- 模块划分和职责
- 模块间接口定义
- 依赖关系
- 扩展点设计
数据架构:
- 核心实体和关系
- 数据流转路径
- 存储方案选择
- 数据安全和备份
3.2 技术方案设计
为关键技术问题设计解决方案:
对于每个关键技术点:
1. 问题描述
2. 可选方案(2-3 个)
3. 方案对比(性能/复杂度/成本)
4. 推荐方案及理由
5. 实施步骤
3.3 开发计划建议
提供开发阶段规划建议:
Phase 1 - MVP(必须功能):
- 核心功能模块列表
- 技术基础设施搭建
- 预期产出
Phase 2 - 功能完善:
- 补充功能模块
- 性能优化
- 预期产出
Phase 3 - 优化迭代:
- 用户体验优化
- 监控和运维
- 预期产出
3.4 确认设计方案
与用户确认设计方案:
1. 展示架构设计
2. 说明设计决策的理由
3. 讨论用户关注的点
4. 调整设计方案
5. 最终确认
Phase 4: 方案讨论(Discussion)
适用于:模式 A(新项目)
在生成文档前,进行最终的方案确认和细节讨论。
4.1 方案回顾
完整回顾前面所有阶段的产出:
项目概览:
✓ 项目目标和核心价值
✓ 目标用户和使用场景
✓ 核心功能模块
技术方案:
✓ 技术栈选择
✓ 架构设计
✓ 关键技术决策
开发规划:
✓ 模块划分
✓ 开发阶段
✓ 优先级排序
4.2 补充细节
询问用户是否还有需要补充的信息:
- 是否有特殊的业务规则?
- 是否有特定的性能要求?
- 是否有安全合规要求?
- 是否有第三方集成需求?
- 是否有特殊的开发约束?
4.3 最终确认
明确告知用户即将生成的文档内容:
我将为你生成以下文档:
1. docs/README.md
- 文档索引和导航
- 项目概述
- 文档使用指南
2. docs/specs/PRD.md
- 产品需求文档
- 功能描述
- 用户故事
- 验收标准
3. docs/specs/SAD.md
- 软件架构设计文档
- 系统架构
- 技术选型
- 模块设计
- 数据库设计
4. docs/guides/AI-DEVELOPMENT-GUIDE.md
- AI 开发指南
- TDD 流程
- 代码规范
- 开发约定
5. docs/modules/*.md
- 各模块的详细文档
- 接口定义
- 实现说明
是否确认开始生成文档?
Phase 3B: 需求确认(Requirement Confirmation)
适用于:模式 B(代码回补)
在生成文档前,与用户确认文档回补的具体需求。
3B.1 回顾分析结果
完整回顾代码分析和文档差异分析的结果:
项目分析总结:
代码库情况:
✓ 技术栈: [前端 + 后端 + 数据库]
✓ 架构模式: [MVC/分层/微服务/...]
✓ 核心模块: [列出主要模块]
✓ 代码质量: [整体评估]
现有文档情况:
- PRD: [缺失/不完整/过时]
- SAD: [缺失/不完整/过时]
- 开发指南: [缺失/不完整/过时]
- 模块文档: [覆盖率 X%]
- API 文档: [覆盖率 X%]
建议回补的文档:
P0: [必需文档列表]
P1: [重要文档列表]
P2: [可选文档列表]
3B.2 确认文档范围
使用 AskUserQuestion 确认要生成的文档范围:
我将为你回补以下文档,请确认:
必需文档(强烈建议):
- [ ] PRD(产品需求文档)
根据代码功能逆向生成产品需求
- [ ] SAD(架构设计文档)
记录当前架构设计和技术决策
- [ ] AI-DEVELOPMENT-GUIDE(开发指南)
基于现有代码规范生成开发指南
模块文档:
- [ ] 为 [X] 个核心模块生成文档
- [ ] 包含接口定义和实现说明
API 文档:
- [ ] 根据代码生成 API 文档
- [ ] 包含所有接口的参数和返回值
数据库文档:
- [ ] 根据数据模型生成 schema 文档
- [ ] 包含实体关系图
你希望生成哪些文档?
1. 所有必需文档(推荐)
2. 必需文档 + 模块文档
3. 全部文档
4. 自定义选择
3B.3 确认文档详细程度
确认文档的详细程度:
文档详细程度:
选项 1 - 标准版(推荐):
- 包含核心信息和关键决策
- 适合大多数项目
- 生成速度快
选项 2 - 详细版:
- 包含详细的实现说明
- 包含代码示例
- 适合复杂项目或团队协作
选项 3 - 精简版:
- 只包含最核心的信息
- 适合小型项目或快速迭代
你希望生成哪种详细程度的文档?
3B.4 补充业务背景
询问用户补充业务背景信息(代码中无法获取的信息):
从代码中我可以了解技术实现,但以下信息需要你补充:
业务背景:
- 项目的业务目标是什么?
- 目标用户是谁?
- 核心价值主张是什么?
- 为什么选择当前的技术方案?
产品规划:
- 当前处于什么阶段(MVP/成长期/成熟期)?
- 未来的功能规划是什么?
- 有哪些已知的技术债务需要记录?
这些信息将帮助我生成更准确的 PRD 和 SAD 文档。
3B.5 最��确认
明确告知用户即将生成的文档:
确认信息:
将要生成的文档:
✓ docs/README.md - 文档索引
✓ docs/specs/PRD.md - 产品需求(基于代码功能)
✓ docs/specs/SAD.md - 架构设计(基于代码架构)
✓ docs/guides/AI-DEVELOPMENT-GUIDE.md - 开发指南
✓ docs/modules/*.md - [X] 个模块文档
✓ docs/api/api-spec.md - API 文档
✓ docs/database/SCHEMA.md - 数据库设计
文档生成方式:
- 基于代码分析结果
- 结合你提供的业务背景
- 保持与代码实现一致
是否确认开始生成文档?
Phase 5: 文档生成(Generation)
适用于:模式 A 和模式 B
用户确认后,开始生成完整的文档结构。
5.0 文档生成策略
根据工作模式选择生成策略:
模式 A(新项目):
- 从模板生成全新文档
- 基于用户提供的需求和设计
- 创建完整的文档结构
模式 B(代码回补):
- 基于代码分析结果生成文档
- 保持与代码实现一致
- 补充现有文档或创建缺失文档
- 标注从代码中提取的信息
5.1 创建目录结构
mkdir -p docs/plans
mkdir -p docs/specs
mkdir -p docs/guides
mkdir -p docs/modules
mkdir -p docs/database
mkdir -p docs/api
5.2 生成 docs/README.md
使用模板 templates/README-template.md,填充:
- 项目名称
- 项目描述
- 技术栈
- 模块列表
- 文档索引
5.3 生成 docs/specs/PRD.md
使用模板 templates/PRD-template.md,填充:
模式 A(新项目):
- 产品目标和背景(用户提供)
- 目标用户和使用场景(用户提供)
- 核心功能描述(用户提供)
- 用户故事
- 功能优先级
- 非功能需求
- 验收标准
模式 B(代码回补):
- 产品目标和背景(用户补充 + 代码推断)
- 目标用户和使用场景(用户补充)
- 核心功能描述(从代码功能逆向生成)
- 功能列表(基于代码实现的功能)
- 技术实现说明(标注已实现)
- 已知问题和改进点(从代码分析得出)
注意:模式 B 生成的 PRD 应标注信息来源,例如:
功能:用户认证
状态:✓ 已实现
实现位置:src/auth/
说明:基于 JWT 的认证机制(从代码分析得出)
5.4 生成 docs/specs/SAD.md
使用模板 templates/SAD-template.md,填充:
模式 A(新项目):
- 系统概述(设计方案)
- 架构设计(整体架构、模块架构、数据架构)
- 技术选型和理由
- 关键技术决策
- 数据库设计
- API 设计原则
- 安全和性能考虑
- 部署架构
模式 B(代码回补):
- 系统概述(基于代码实现)
- 架构设计(从代码结构提取)
- 整体架构图(基于实际代码组织) - 模块划分(从代码目录和依赖分析) - 数据流向(从代码逻辑分析)
- 技术栈说明(从代码识别)
- 关键技术决策(从代码模式推断 + 用户补充)
- 数据库设计(从 ORM 模型或 schema 提取)
- API 设计(从路由和控制器提取)
- 已实现的安全机制(从代码分析)
- 部署配置(从配置文件提取)
注意:模式 B 生成的 SAD 应:
- 准确反映代码实际架构
- 标注架构决策的推断依据
- 指出与最佳实践的差异
- 记录技术债务
5.5 生成 docs/guides/AI-DEVELOPMENT-GUIDE.md
使用模板 templates/AI-DEVELOPMENT-GUIDE-template.md,填充:
模式 A(新项目):
- TDD 开发流程
- 代码规范(基于技术栈)
- 项目约定
- Git 工作流
- CI/CD 流程
- 测试策略
模式 B(代码回补):
- TDD 开发流程(标准流程)
- 代码规范(从现有代码提取)
- 命名规范(分析现有代码) - 文件组织规范(基于现有结构) - 代码风格(从 ESLint/Prettier 配置或代码分析)
- 项目约定(从代码模式总结)
- Git 工作流(从 Git 历史分析或使用标准流程)
- CI/CD 流程(从配置文件提取)
- 测试策略(从现有测试代码分析)
注意:模式 B 应:
- 尽可能从代码中提取实际规范
- 对于缺失的规范,提供标准建议
- 指出现有代码与最佳实践的差异
5.6 生成模块文档
为每个核心模块生成文档:
模式 A(新项目):
docs/modules/{module-name}.md
- 模块概述(设计说明)
- 职责范围
- 接口定义
- 依赖关系
- 实现要点
- 测试要求
模式 B(代码回补):
docs/modules/{module-name}.md
- 模块概述(从代码分析)
- 职责范围(从代码职责分析)
- 接口定义(从代码导出分析)
- 依赖关系(从 import 分析)
- 实现说明(关键逻辑说明)
- 已有测试(从测试代码分析)
- 改进建议(如有)
模式 B 生成策略:
- 使用 Explore agent 分析每个模块
- 提取模块的导出接口
- 分析模块间的依赖关系
- 总结模块的核心职责
- 记录关键实现细节
5.7 生成数据库文档
模式 A(新项目):
docs/database/SCHEMA.md(占位符)
- 数据模型设计
- 实体关系图
- 表结构定义
- 索引设计
docs/database/MIGRATIONS.md(占位符)
- 数据库迁移记录
模式 B(代码回补):
docs/database/SCHEMA.md(从代码生成)
- 数据模型(从 ORM 模型提取)
- 实体关系(从模型关系分析)
- 表结构(从 schema 文件或迁移文件提取)
- 索引设计(从代码或数据库配置提取)
- 数据库配置(从配置文件提取)
docs/database/MIGRATIONS.md
- 迁移历史(从迁移文件列表)
- 重要变更记录
模式 B 生成策略:
- 查找 ORM 模型文件(Prisma schema, TypeORM entities, Django models 等)
- 提取实体定义和关系
- 查找数据库迁移文件
- 生成实体关系图(文本描述或 Mermaid 图)
5.8 生成 API 文档
模式 A(新项目):
docs/api/api-spec.md(占位符)
- API 设计原则
- 接口规范
- 认证授权
- 错误处理
模式 B(代码回补):
docs/api/api-spec.md(从代码生成)
- API 概述
- 认证方式(从认证中间件分析)
- 接口列表(从路由文件提取)
- 端点路径
- HTTP 方法
- 请求参数(从控制器代码分析)
- 响应格式(从代码分析)
- 错误码(从错误处理代码提取)
- 通用错误处理
- API 版本管理(如有)
模式 B 生成策略:
- 查找路由定义文件(Express routes, NestJS controllers, Django urls 等)
- 提取所有 API 端点
- 分析每个端点的参数和返回值
- 提取认证和授权逻辑
- 生成 API 文档(可以是 OpenAPI/Swagger 格式)
Phase 6: 审查确认(Review)
适用于:模式 A 和模式 B
生成文档后,与用户一起审查并完善。
6.1 文档清单
展示生成的所有文档:
模式 A(新项目):
已生成以下文档:
✓ docs/README.md # 文档索引
✓ docs/specs/PRD.md # 产品需求文档
✓ docs/specs/SAD.md # 架构设计文档
✓ docs/guides/AI-DEVELOPMENT-GUIDE.md # AI 开发指南
✓ docs/modules/{module-1}.md # 模块 1 文档
✓ docs/modules/{module-2}.md # 模块 2 文档
✓ docs/modules/{module-3}.md # 模块 3 文档
○ docs/database/SCHEMA.md # 数据库设计(占位符)
○ docs/database/MIGRATIONS.md # 迁移记录(占位符)
○ docs/api/api-spec.md # API 文档(占位符)
✓ docs/plans/ # 计划目录(空)
模式 B(代码回补):
已生成以下文档:
✓ docs/README.md # 文档索引
✓ docs/specs/PRD.md # 产品需求(基于代码功能)
✓ docs/specs/SAD.md # 架构设计(基于代码架构)
✓ docs/guides/AI-DEVELOPMENT-GUIDE.md # 开发指南(基于代码规范)
✓ docs/modules/{module-1}.md # 模块 1 文档(从代码生成)
✓ docs/modules/{module-2}.md # 模块 2 文档(从代码生成)
✓ docs/modules/{module-3}.md # 模块 3 文档(从代码生成)
✓ docs/database/SCHEMA.md # 数据库设计(从 ORM 提取)
✓ docs/database/MIGRATIONS.md # 迁移记录(从迁移文件)
✓ docs/api/api-spec.md # API 文档(从路由提取)
✓ docs/plans/ # 计划目录(空)
注意:所有文档都基于代码分析生成,已标注信息来源。
6.2 逐一审查
与用户逐一审查关键文档:
对于每个文档:
1. 展示文档结构
2. 说明关键内容
3. 询问是否需要调整
4. 根据反馈修改
6.3 后续建议
提供文档维护和后续步骤建议:
模式 A(新项目):
文档维护建议:
1. 定期更新文档,保持与代码同步
2. 每次架构变更后更新 SAD.md
3. 新增功能时更新 PRD.md
4. 在执行记录中记录重大决策
后续步骤:
1. 补充数据库详细设计(SCHEMA.md)
2. 定义 API 接口规范(api-spec.md)
3. 使用 project-workflow skill 开始开发
4. 执行过程中更新计划文档到 docs/plans/
模式 B(代码回补):
文档维护建议:
1. 定期检查文档与代码的一致性
2. 代码重构后及时更新 SAD.md
3. 新增功能后更新 PRD.md 和模块文档
4. 记录重要的技术决策和变更
文档改进建议:
1. 补充业务背景和产品规划(PRD.md)
2. 完善架构决策的理由说明(SAD.md)
3. 补充代码示例和最佳实践(开发指南)
4. 添加故障排查和运维文档
后续步骤:
1. 审查生成的文档,补充缺失信息
2. 根据文档识别技术债务
3. 使用 project-workflow skill 执行改进计划
4. 建立文档更新机制
6.4 最终交付
确认用户满意后,完成交付:
✅ 项目文档体系已完成!
下一步:
1. 审查和完善生成的文档
2. 补充详细的数据库和 API 设计
3. 使用 /project-workflow 开始执行开发计划
文档位置: {项目根目录}/docs/
工作原则
沟通原则
- 主动提问:遇到不清楚的地方,立即提问
- 充分讨论:不急于下结论,与用户充分讨论
- 说明理由:每个建议都说明原因和依据
- 尊重选择:用户有最终决定权
专业原则
- 基于实践:建议基于业界最佳实践
- 权衡利弊:客观分析不同方案的优劣
- 识别风险:主动识别潜在问题
- 提供价值:不只是记录,更要分析和建议
质量原则
- 完整性:文档内容完整,覆盖关键信息
- 准确性:基于用户提供的信息,不臆测
- 可读性:结构清晰,表达简洁
- 可维护性:便于后续更新和维护
使用 AskUserQuestion 工具
在以下场景必须使用 AskUserQuestion:
模式 A(新项目)场景
- Phase 1(项目发现):
- 询问项目基本信息 - 确认技术栈选择 - 了解功能模块
- Phase 2(需求分析):
- 讨论识别出的风险 - 确认改进建议 - 技术方案选型
- Phase 3(架构设计):
- 确认架构设计 - 讨论技术决策 - 确认开发规划
- Phase 4(方案讨论):
- 最终方案确认 - 补充遗漏信息 - 生成文档前的最终确认
- Phase 6(审查确认):
- 文档内容审查 - 调整和完善 - 最终交付确认
模式 B(代码回补)场景
- Phase 0(项目状态检测):
- 确认工作模式 - 确认文档回补范围
- Phase 1B(代码库分析):
- 确认代码分析结果 - 补充代码中无法获取的信息 - 确认技术债务和改进点
- Phase 2B(文档差异分析):
- 确认文档缺口 - 确认回补优先级 - 选择文档回补范围
- Phase 3B(需求确认):
- 确认文档详细程度 - 补充业务背景信息 - 最终确认生成范围
- Phase 5(文档生成):
- 确认从代码提取的信息是否准确 - 补充无法从代码获取的信息
- Phase 6(审查确认):
- 审查生成的文档 - 确认文档与代码一致性 - 最终交付确认
重要:不要一次性问太多问题,分阶段、分批次进行,让对话自然流畅。
示例对话流程
示例 1:新项目启动
用户: "帮我创建项目文档,我要做一个在线教育平台"
Assistant: 很高兴帮你建立项目文档体系!在线教育平台是个很有价值的方向。
让我先了解一些基本情况,这样我能为你提供更专业的建议。
[使用 AskUserQuestion]
问题 1: 这个平台的核心定位是什么?
- 面向 K12 学生的学科辅导
- 面向成人的职业技能培训
- 面向企业的内部培训系统
- 其他
[根据用户回答继续提问...]
示例 2:技术选型讨论
用户: "后端想用 Python,但团队更熟悉 Node.js"
Assistant: 这是个值得认真考虑的问题。让我从产品经理的角度给你一些分析:
技术选型需要权衡几个因素:
1. **团队能力**:团队熟悉 Node.js,意味着:
✓ 开发效率更高
✓ 代码质量更有保障
✓ 问题定位和解决更快
2. **技术适配性**:Python 和 Node.js 都适合 Web 应用
- Python: 数据处理、AI/ML 更强
- Node.js: 高并发、实时通信更强
3. **生态系统**:两者都很成熟
我的建议:
如果项目没有特别依赖 Python 生态的需求(比如复杂的数据分析或 AI 集成),建议选择团队更熟悉的 Node.js。
你的项目有什么特殊的技术需求吗?比如需要集成 AI 模型、复杂的数据处理等?
[使用 AskUserQuestion 继续深入...]
示例 3:代码回补文档(模式 B)
用户: "我的项目已经有代码了,但是缺少文档,帮我根据代码生成文档"
### Phase 1 - 项目发现
- [ ] 项目名称、类型、目标用户已明确
- [ ] 核心功能模块已列出
- [ ] 技术栈已确认
- [ ] 业务背景和目标已了解
### Phase 2 - 需求分析
- [ ] 已识别潜在风险
- [ ] 已提供改进建议
- [ ] 建议已与用户讨论
- [ ] 用户已接受方案
### Phase 3 - 架构设计
- [ ] 系统架构已设计
- [ ] 模块划分已确定
- [ ] 关键技术决策已明确
- [ ] 用户已确认设计方案
### Phase 4 - 方案讨论
- [ ] 已完整回顾所有内容
- [ ] 已补充所有遗漏信息
- [ ] 用户已明确即将生成的文档
- [ ] 用户已确认开始生成
### Phase 5 - 文档生成
- [ ] 所有必需目录已创建
- [ ] README.md 包含完整索引
- [ ] PRD.md 包含详细需求
- [ ] SAD.md 包含完整架构设计
- [ ] 开发指南包含具体规范
- [ ] 模块文档已生成
### Phase 6 - 审查确认
- [ ] 用户已审查关键文档
- [ ] 根据反馈已调整
- [ ] 提供了后续建议
- [ ] 用户满意并确认交付