Files
AIEC_Skills/.claude/skills/requirement-generator-v1/开发文档.md
2025-12-11 14:19:36 +08:00

394 lines
14 KiB
Markdown
Raw 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.

# requirement-generator-v1 - 开发文档
## 核心设计理念
设计原则:
1. **动态适应用户能力**: 业务语言优先,通过观察用户回答动态评估其技术深度,切换语言风格
2. **允许用户中途介入**:允许用户中途完全介入,及时修正
3. **多专家博弈评审**4位专家独立评审 + 两轮交叉博弈,通过观点碰撞提升评审质量
4. **用户需求基准原则**:以用户原始需求为最高准则,专家建议不可违背用户核心需求
5. **最终校验确保质量**:确保最终的需求文档以客观、陈述性输出,前后逻辑闭环,无明显矛盾
## 执行流程概览
```mermaid
flowchart TB
subgraph Phase1_4["阶段 1-4: 需求生成"]
A[用户描述] --> B[项目类型判断]
B --> C[智能访谈]
C --> D[生成 requirement.md]
end
subgraph Phase5["阶段 5: 用户交互"]
D --> E{用户选择}
E -->|修改| F[修改文档]
F --> E
E -->|结束| G[流程结束]
end
subgraph Phase6["阶段 6: 多角色评审"]
E -->|进入评审| H[领域识别]
subgraph Review["独立评审"]
H --> I1[开发专家]
H --> I2[产品经理]
H --> I3[AI专家]
H --> I4[领域专家]
end
subgraph Debate1["博弈-评价阶段"]
I2 & I3 & I4 --> J1[开发专家评价]
I1 & I3 & I4 --> J2[产品经理评价]
I1 & I2 & I4 --> J3[AI专家评价]
I1 & I2 & I3 --> J4[领域专家评价]
end
subgraph Debate2["博弈-回应阶段"]
J2 & J3 & J4 --> K1[开发专家回应]
J1 & J3 & J4 --> K2[产品经理回应]
J1 & J2 & J4 --> K3[AI专家回应]
J1 & J2 & J3 --> K4[领域专家回应]
end
K1 & K2 & K3 & K4 --> L{决策模式}
L -->|用户确认| M1[req_consolidator]
L -->|自动应用| M2[req_auto_consolidator]
M1 & M2 --> N[requirement_final.md]
N --> O[质量审查]
O --> P[输出最终总结]
end
```
## 阶段详细说明
### 阶段 1-4: 需求生成
```
用户描述 → 项目类型判断 → 智能访谈 → 生成需求文档(requirement.md)
```
### 阶段 5: 用户交互
系统展示文档概览,询问用户选择下一步操作:
- **修改**: 用户编辑或提出修改建议,完成后再次询问
- **进入多角色评审**: 进入阶段6
- **结束**: 直接使用当前版本
### 阶段 6: 多角色评审
#### 6.1 领域识别与角色生成
读取 requirement.md分析项目领域特征生成领域专家角色定义保存到 `temp/domain_role.md`
#### 6.2 独立评审(并行)
4位专家并行评审 requirement.md
| 专家 | 输出文件 | 评审重点 |
|------|----------|----------|
| 开发专家 | `temp/review_dev.json` | 技术可行性、架构、性能、风险 |
| 产品经理 | `temp/review_pm.json` | 业务目标、用户价值、场景完整性 |
| AI专家 | `temp/review_ai.json` | 智能化需求合理性、AI能力边界 |
| 领域专家 | `temp/review_domain.json` | 领域合规性、行业规范、特殊要求 |
#### 6.3 博弈-评价阶段:交叉评价(并行)
每位专家阅读其他3位专家的评审结果对有冲突、不合理或需要补充的观点进行评价
| 专家 | 读取文件 | 输出文件 |
|------|----------|----------|
| 开发专家 | review_pm/ai/domain.json | `temp/evaluate_dev.json` |
| 产品经理 | review_dev/ai/domain.json | `temp/evaluate_pm.json` |
| AI专家 | review_dev/pm/domain.json | `temp/evaluate_ai.json` |
| 领域专家 | review_dev/pm/ai.json | `temp/evaluate_domain.json` |
**评价输出格式**(必须包含目标定位):
```json
{
"responses": [
{
"target_expert": "产品经理",
"target_file": "temp/review_pm.json",
"target_location": "issues[2]",
"target_content": "对方观点摘要",
"my_comment": "我的评价",
"reasoning": "专业理由"
}
]
}
```
#### 6.4 博弈-回应阶段:交叉回应(并行)
每位专家只读取针对自己的评价,决定是否修正原始观点,确定最终立场:
| 专家 | 读取内容 | 输出文件 |
|------|----------|----------|
| 开发专家 | evaluate_*.json 中 target_expert="开发专家" | `temp/response_dev.json` |
| 产品经理 | evaluate_*.json 中 target_expert="产品经理" | `temp/response_pm.json` |
| AI专家 | evaluate_*.json 中 target_expert="AI专家" | `temp/response_ai.json` |
| 领域专家 | evaluate_*.json 中 target_expert="领域专家" | `temp/response_domain.json` |
**回应输出包含**
- `final_issues`: 最终问题列表(含 consensus_level: unanimous/majority/contested
- `withdrawn_issues`: 被说服后撤回的问题
- `new_issues_from_debate`: 博弈中新发现的问题
#### 6.5 决策模式选择
询问用户选择处理方式:
- **用户确认模式**: 调用 `req_consolidator`,逐项与用户确认
- **自动应用模式**: 调用 `req_auto_consolidator`,自动评估并应用
#### 6.6 汇总整合
汇总Agent读取 **14个文件**
| 类别 | 文件 | 数量 |
|------|------|------|
| 用户需求基准 | `temp/interview_result.json` | 1 |
| 原始需求文档 | `requirement.md` | 1 |
| 初始评审 | `temp/review_*.json` | 4 |
| 交叉评价 | `temp/evaluate_*.json` | 4 |
| 交叉回应 | `temp/response_*.json` | 4 |
**合并决策规则**
1. **可以采纳**: 优化补充用户需求、细化实现细节的建议
2. **谨慎采纳**: 与用户需求有出入但专家一致认同的建议
3. **禁止采纳**: 完全背离用户原始需求的建议(即使专家全员同意)
**共识度处理**
- `unanimous`(全员一致): 自动采纳
- `majority`(多数同意): 自动采纳
- `contested`(存在争议): 按裁决规则处理或询问用户
#### 6.7 质量审查
调用 `review_report` 检查最终文档:
- 文档结构是否符合模板(不能有多余章节)
- 客观性(无评审标注、讨论性词汇)
- 逻辑严谨性(前后无矛盾)
- 闭环性(功能描述完整)
- 业务完整性(无"待确认"的业务问题)
## 专家博弈流程图
```mermaid
sequenceDiagram
participant Main as 主窗口
participant Dev as 开发专家
participant PM as 产品经理
participant AI as AI专家
participant Domain as 领域专家
participant Consolidator as 汇总Agent
Note over Main: 阶段6.2 独立评审
par 并行评审
Main->>Dev: mode: review
Main->>PM: mode: review
Main->>AI: mode: review
Main->>Domain: mode: review
end
Dev-->>Main: review_dev.json
PM-->>Main: review_pm.json
AI-->>Main: review_ai.json
Domain-->>Main: review_domain.json
Note over Main: 阶段6.3 博弈-评价阶段
par 并行评价
Main->>Dev: mode: evaluate
Main->>PM: mode: evaluate
Main->>AI: mode: evaluate
Main->>Domain: mode: evaluate
end
Dev-->>Main: evaluate_dev.json
PM-->>Main: evaluate_pm.json
AI-->>Main: evaluate_ai.json
Domain-->>Main: evaluate_domain.json
Note over Main: 阶段6.4 博弈-回应阶段
par 并行回应
Main->>Dev: mode: respond
Main->>PM: mode: respond
Main->>AI: mode: respond
Main->>Domain: mode: respond
end
Dev-->>Main: response_dev.json
PM-->>Main: response_pm.json
AI-->>Main: response_ai.json
Domain-->>Main: response_domain.json
Note over Main: 阶段6.6 汇总整合
Main->>Consolidator: 整合14个文件
Consolidator-->>Main: requirement_final.md
```
## Agent 协作架构
### 需求生成 Agents (阶段1-4)
| Agent | 职责 | 关键能力 |
|-------|------|---------|
| **project_type_matcher** | 项目类型识别 | 语义匹配,置信度分级 |
| **req_interviewer** | 智能访谈 | 动态评估技术深度,业务到技术转化 |
| **req_writer** | 文档生成 | 模板驱动,决策标注 |
### 评审 Agents (阶段6)
| Agent | 视角 | 重点 | 工作模式 |
|-------|------|------|----------|
| **dev_expert_reviewer** | 技术 | 可行性、架构、性能、风险 | review/evaluate/respond |
| **pm_reviewer** | 业务 | 目标、价值、场景、验收标准 | review/evaluate/respond |
| **ai_expert_reviewer** | 智能化 | AI能力边界、智能化合理性 | review/evaluate/respond |
| **domain_expert_reviewer** | 领域 | 合规性、行业规范、特殊要求 | review/evaluate/respond |
| **req_consolidator** | 整合 | 用户确认模式,多轮交互 | - |
| **req_auto_consolidator** | 整合 | 自动评估模式,无用户交互 | - |
| **review_report** | 质量 | 客观性、逻辑严谨性、业务完整性 | - |
## 目录结构
```
requirement-generator-v1/
├── SKILL.md # 主流程(简化版)
├── 开发文档.md # 本文档
├── references/ # 详细指南(渐进式披露)
│ ├── phase3_interview_guide.md
│ └── phase6_review_guide.md
├── assets/ # 项目类型配置
│ ├── agent_dev.md
│ ├── feature_update.md
│ └── testing.md
└── templates/ # 需求文档模板
├── agent_dev_template.md
├── feature_update_template.md
└── testing_template.md
项目 agents/ (D:\AA_Work\AIEC-团队开发规范Skills\.claude\agents\)
├── project_type_matcher.md
├── req_interviewer.md
├── req_writer.md
├── dev_expert_reviewer.md
├── pm_reviewer.md
├── ai_expert_reviewer.md
├── domain_expert_reviewer.md
├── req_consolidator.md
├── req_auto_consolidator.md
└── review_report.md
temp/ (运行时生成)
├── interview_result.json # 访谈结果
├── domain_role.md # 领域专家角色定义
├── review_dev.json # 开发专家初始评审
├── review_pm.json # 产品经理初始评审
├── review_ai.json # AI专家初始评审
├── review_domain.json # 领域专家初始评审
├── evaluate_dev.json # 开发专家交叉评价
├── evaluate_pm.json # 产品经理交叉评价
├── evaluate_ai.json # AI专家交叉评价
├── evaluate_domain.json # 领域专家交叉评价
├── response_dev.json # 开发专家交叉回应
├── response_pm.json # 产品经理交叉回应
├── response_ai.json # AI专家交叉回应
├── response_domain.json # 领域专家交叉回应
└── consolidation_report.json # 汇总应用记录(自动模式)
```
## 数据传递策略
本 Skill 采用以下数据传递模式:
| 传递方向 | 策略 | 说明 |
|----------|------|------|
| 主窗口 → Agent | 标识符/模式 | 仅传递 `mode: review/evaluate/respond` |
| Agent → temp/ | JSON文件 | 结构化数据存储便于其他Agent读取 |
| Agent → 主窗口 | 概要文字 | 简洁提示,详细数据在文件中 |
| Agent → Agent | 文件路径 | 通过 `temp/*.json` 传递,主窗口不加载 |
## 关键设计决策
### 1. 专家博弈机制
采用博弈机制提升评审质量,每轮博弈包含两个阶段:
- **评价阶段**: 专家指出其他专家观点中的问题
- **回应阶段**: 专家根据评价决定是否修正
**设计理由**: 单轮评审可能存在盲点,博弈过程可发现更多问题,共识度标注帮助汇总决策。
### 2. 原始评审不可变
`review_*.json` 在生成后保持不变,所有修正记录在 `response_*.json` 中。
**设计理由**: 保留完整的观点演变历史,便于追溯和审计。
### 3. 用户需求基准原则
汇总时以 `interview_result.json` 中的用户原始需求为最高准则,专家建议不可违背。
**设计理由**: 专家是辅助角色,最终产品要满足用户需求。
### 4. Agent 自治性
所有 Agent 采用自治设计模式:
- 执行规则、工具使用规范固化在 Agent 定义中
- Agent 自行读取配置文件(路径在 Agent 定义中硬编码)
- 主窗口仅传递模式标识,不传递执行逻辑
### 5. 文档版本管理
采用双文档策略保留完整历史:
- `requirement.md`: 初版文档,生成后不再修改
- `requirement_final.md`: 评审优化版仅在阶段6生成
## 扩展指南
### 添加新项目类型
1. 参考现有配置文件(如 `assets/agent_dev.md`)创建新配置
2. 编辑 frontmatter 字段type, keywords, priority
3. 定义核心问题(业务版本 + 技术版本)
4. 设计业务到技术的映射规则
5. 创建对应的文档模板 `templates/{type}_template.md`
6. 测试访谈流程和文档生成完整性
### 添加新评审专家
1.`agents/` 目录创建新专家定义文件
2. 实现三种工作模式review/evaluate/respond
3. 定义专家视角和评审重点
4. 更新 SKILL.md 和 phase6_review_guide.md 中的调用列表
5. 更新汇总 Agent 的文件读取列表
## 常见场景处理
### 用户描述过于简短
当 project_type_matcher 返回低置信度时:
1. 系统列出所有可用项目类型供用户选择
2. req_interviewer 通过多轮访谈补充缺失信息
### 用户选择"未知类型"
系统采用开放式访谈模式:
1. req_interviewer 通过开放式问题理解项目本质
2. Agent 自主决定文档结构
3. req_writer 根据 custom_sections 构建文档(不使用预定义模板)
### 专家意见严重冲突
`contested` 级别问题较多时:
- **用户确认模式**: 向用户展示争议双方观点,由用户决定
- **自动应用模式**: 按裁决规则处理(合规性优先 > 技术可行性优先 > 用户价值优先)
### 博弈后仍有分歧
即使博弈后仍有 `contested` 问题:
1. 汇总 Agent 根据裁决规则自动处理
2.`consolidation_report.json` 中记录裁决过程
3. 用户可事后查看裁决依据
---
**最后更新**: 2025-12-01
**Skill 版本**: v1