# SF-02 Requirement Engineering Factory

> **Status:** ✅ Active  
> **Domain:** requirement-engineering  
> **Dependency:** SF-01 Product Strategy Factory  

## Purpose

SF-02 Requirement Engineering Factory 将 SF-01 产出的 Product Strategy Package 自动转换为完整的 Requirement Package。

SF-02 是 SF-01（战略）→ SF-03（设计）之间的关键桥梁。它把模糊的战略意图转化为结构化、可验证、可追踪的需求体系。

**SF-02 只负责需求工程，不生成代码、不设计数据库、不设计架构、不设计 UI。**

## Domain Model

SF-02 建立了统一的需求领域模型，包含 15 个核心概念：

| # | 概念 | 类型 | 说明 |
|---|------|------|------|
| 1 | RequirementPackage | 容器 | 顶层需求包，包含全部需求产物 |
| 2 | Epic | 需求 | 史诗级需求，可分解为 Feature |
| 3 | Feature | 需求 | 功能需求，属于某个 Epic |
| 4 | UserStory | 需求 | 用户故事，As a/I want/So that 格式 |
| 5 | AcceptanceCriteria | 验证 | Given/When/Then 格式验收标准 |
| 6 | BusinessRule | 规则 | 业务约束、流程规则、审批规则等 |
| 7 | Constraint | 约束 | 技术/业务/合规/资源/时间约束 |
| 8 | NonFunctionalRequirement | NFR | 性能/安全/可靠性/可扩展性等 |
| 9 | PermissionRequirement | 权限 | RBAC/ABAC/Hybrid 权限模型 |
| 10 | IntegrationRequirement | 集成 | 支付/短信/邮件/AI等集成需求 |
| 11 | DataRequirement | 数据 | 实体需求（不设计数据库） |
| 12 | RiskRequirement | 风险 | 需求相关风险识别与管理 |
| 13 | TraceabilityLink | 追踪 | 需求元素间可追溯关系 |
| 14 | Priority | 优先级 | MoSCoW/RICE/WSJF 优先级 |
| 15 | Dependency | 依赖 | 需求间依赖关系 |
| 16 | RequirementVersion | 版本 | 需求变更版本追踪 |

## Workflow

```
SF-01 Product Strategy Package
         │
         ▼
┌─────────────────────────────────────────────────┐
│              SF-02 Factory Pipeline              │
│                                                  │
│  1. 接收 SF-01 Strategy Package                  │
│  2. Strategy → Requirement Conversion            │
│  3. Epic Generation (Part C)                     │
│  4. Feature Generation (Part D)                  │
│  5. User Story Generation (Part E)               │
│  6. Acceptance Criteria Generation (Part F)      │
│  7. Business Rules Generation (Part G)           │
│  8. Permission Requirements (Part H)             │
│  9. NFR Generation (Part I)                      │
│  10. Integration Requirements (Part J)           │
│  11. Data Requirements (Part K)                  │
│  12. Dependency Graph (Part L)                   │
│  13. Priority Matrix (Part M)                    │
│  14. MVP Scope (Part N)                          │
│  15. Traceability Matrix (Part O)                │
│  16. Requiremente Package Assembly               │
└─────────────────────────────────────────────────┘
         │
         ▼
SF-03 Product Design Factory
```

## Artifact Model

SF-02 产出 14 种 Artifact：

| # | Artifact | Kind | 说明 |
|---|----------|------|------|
| 1 | requirement-package | requirement | 完整需求包（Markdown 报告） |
| 2 | epic-catalog | requirement | Epic 目录（JSON） |
| 3 | feature-catalog | requirement | Feature 目录（JSON） |
| 4 | user-story-catalog | requirement | User Story 目录（JSON） |
| 5 | acceptance-criteria-package | requirement | 验收标准包（JSON） |
| 6 | business-rules-catalog | requirement | 业务规则目录（JSON） |
| 7 | permission-requirements | requirement | 权限需求（JSON） |
| 8 | nfr-package | requirement | 非功能需求包（JSON） |
| 9 | integration-requirements | requirement | 集成需求（JSON） |
| 10 | data-requirements | requirement | 数据需求（JSON） |
| 11 | dependency-graph | requirement | 依赖图（JSON） |
| 12 | priority-matrix | requirement | 优先级矩阵（JSON） |
| 13 | mvp-scope | requirement | MVP 范围定义（JSON） |
| 14 | traceability-matrix | requirement | 追踪矩阵（JSON） |

## Priority Model

SF-02 支持三种优先级方法：

### MoSCoW
- **Must Have** (30%): MVP 核心功能
- **Should Have** (30%): V1 重要功能
- **Could Have** (25%): V2 增强功能
- **Won't Have** (15%): 远期规划

### RICE
```
Score = Reach × Impact × Confidence / Effort
```

### WSJF
```
Score = (Business Value + Time Criticality + Risk Reduction) / Job Duration
```

## Traceability Model

建立完整的需求追踪链：

```
SF-01 Strategy
    │
    ▼ (strategy→epic)
  Epic
    │
    ▼ (epic→feature)
  Feature
    │
    ▼ (feature→story)
  User Story
    │
    ├── (story→ac) ──► Acceptance Criteria
    ├── (story→business-rule) ──► Business Rules
    ├── (story→nfr) ──► NFRs
    └── (story→data) ──► Data Requirements

Epic → Permission Requirements (epic→permission)
Epic → Integration Requirements (epic→integration)
```

每条需求都可以从 Strategy 追溯到最终的 Acceptance Criteria。

## Conversion Logic

### Epic 生成

从产品分类（AI平台/企业SaaS/电商平台/教育平台/通用）匹配领域模板，自动生成 5~12 个 Epic。

例如：**AI客服平台** → 8 个 Epic：

| Epic | Category | Objective |
|------|----------|-----------|
| 用户管理 | 用户管理 | 建立完整的用户身份体系 |
| 知识库管理 | 内容管理 | 构建高质量可检索的知识体系 |
| Agent管理 | 智能/AI | 实现 Agent 全生命周期管理 |
| 对话管理 | 业务流程 | 提供流畅的 AI 对话体验 |
| 权限管理 | 安全合规 | 保证系统安全性 |
| 运营分析 | 运营分析 | 数据驱动的产品优化 |
| 系统设置 | 系统设置 | 灵活的系统管理能力 |
| 集成对接 | 集成对接 | 开放生态集成能力 |

### Feature 生成

每个 Epic 按标题匹配 Feature 模板。例如**知识库管理** → 7 个 Feature：

- 知识库创建 (CRUD)
- 文档上传 (CRUD)
- 文档解析 (workflow)
- 知识编辑 (CRUD)
- 索引构建 (workflow)
- 版本管理 (CRUD)
- 知识分类 (configuration)

### User Story 生成

根据 Feature 类型（CRUD/workflow/analytics/configuration/integration/notification/search）自动生成标准格式的 User Story。

例如：**文档上传 (CRUD)** → 6 个 Story：

```
As a 用户, I want 浏览文档管理列表, so that 查找所需的知识库信息. (Must Have)
As a 用户, I want 查看文档管理详情, so that 了解知识库的完整信息. (Should Have)
As a 用户, I want 创建新的文档, so that 添加新的知识库条目. (Should Have)
As a 用户, I want 编辑已有文档, so that 保持知识库信息准确. (Could Have)
As a 管理员, I want 删除文档, so that 清理无效的知识库数据. (Could Have)
As a 管理员, I want 批量管理文档管理, so that 高效处理大量知识库数据. (Could Have)
```

### Acceptance Criteria 生成

每个 Story 自动生成 6~10 条 AC，覆盖：

1. 正常流程
2. 数据展示
3. 空数据状态
4. 数据验证
5. 权限控制
6. 并发处理
7. 故事特定场景（创建重复/删除确认/搜索/导出等）

## Files

| File | Purpose |
|------|---------|
| `src/sf-02-requirement-engineering/domain-model.mjs` | 需求领域模型（15 个类型） |
| `src/sf-02-requirement-engineering/strategy-to-requirement.mjs` | 策略→需求转换引擎 |
| `src/sf-02-requirement-engineering/dependency-engine.mjs` | 依赖/优先级/MVP/追踪引擎 |
| `src/sf-02-requirement-engineering/index.mjs` | Factory 入口 + 注册 + 报告 |
| `test/sf-02-requirement-engineering.test.mjs` | 89 项测试 |
| `docs/factories/sf-02-requirement-engineering.md` | 本文档 |

## Integration Flow

### With SF-01
```
SF-01.analyze("AI Agent平台")
  → FactoryInput { factoryId: "SF-01" }
  → FactoryOutput { artifacts: [StrategyPackage, ...] }
  → FactoryInput { factoryId: "SF-02", upstreamArtifacts: [...] }
  → FactoryOutput { artifacts: [RequirementPackage, ...] }
```

### With PR-36 Factory Registry
```javascript
const registry = createFactoryRegistry();
registerSF01(registry);
registerSF02(registry);

const sf01Out = registry.execute("SF-01", input);
const sf02Out = registry.execute("SF-02", { upstreamArtifacts: sf01Out.artifacts });
// sf02Out.status === "passed"
// sf02Out.artifacts.length === 14
```

### With PR-35 Runtime
```javascript
const task = createTask({ id: "T-001", title: "Req Engineering" });
// Execute within runtime context...
```

## Examples

### AI 客服平台完整转换

输入：SF-01 分析的 "AI客服平台"  
输出：
- **8 Epics**: 用户管理/知识库管理/Agent管理/对话管理/权限管理/运营分析/系统设置/集成对接
- **40+ Features**: 每个 Epic 3~7 个 Feature
- **120+ User Stories**: 标准 As a/I want/So that 格式
- **240+ Acceptance Criteria**: Given/When/Then 格式
- **7 Business Rules**: 验证/约束/流程/审批/状态机
- **10 NFRs**: 性能/安全/可靠性/扩展性/可观测性/国际化/兼容性
- **6 Integration Reqs**: AI模型/邮件/短信/对象存储/搜索引擎/第三方登录
- **5 Data Reqs**: 用户/角色权限/知识库/对话记录/操作日志
- **100+ Dependencies**: Epic/Feature/Story 三级依赖
- **400+ Traceability Links**: 全链追踪

## Next Step: SF-03

SF-03 Product Design Factory 将以 SF-02 的 Requirement Package 为输入，产出：
- 信息架构
- 交互流程
- 页面结构
- 原型设计

SF-02 产出的所有 Artifact 都是 SF-03 的 `upstreamArtifacts` 输入。

---

_Generated by SF-02 Requirement Engineering Factory | 2026-06-05_
