# 失败点和人工修复点

> 2026-06-05 — Software Generator MVP v1 真实需求验证

## 测试方法

用 3 个真实软件需求（BookShelf 读书管理、TeamFlow 团队看板、MealPrep 备餐管理）跑完整链路，暴露了 benchmark 未能发现的核心缺陷。

---

## 🔴 P0 — 致命缺陷

### 1. project-intake-agent 域匹配覆盖用户输入

**现象:** 所有真实需求都被映射到预定义模板（note/ecommerce），用户的具体需求被完全忽略。

| 输入需求 | 生成结果 | 期望 |
|---------|---------|------|
| BookShelf 读书管理 | NoteApp (note) | BookShelf (book) |
| TeamFlow 团队看板 | NoteApp (note) | TeamFlow (project) |
| MealPrep 备餐管理 | ShopApp (ecommerce) | MealPrep (health) |

**根因:** `matchDomain()` 函数优先级高于实际输入解析。当输入文本命中某个域的关键词（如"管理"→ note/ecommerce），就直接使用该域的模板，不再解析用户的具体需求。

**影响:** 10 个 benchmark 领域能通过，是因为它们的输入文本恰好匹配了预定义域。真实需求无法通过。

**修复方向:**
- 用户输入应优先于域匹配
- 域匹配应作为 fallback，而非 override
- 需要增加"自定义域"路径，当匹配度低时走纯需求解析

---

### 2. Features/Pages/APIs 数量为 0

**现象:** BookShelf PRD 生成了 0 个 features、0 个 pages、0 个 APIs（后端仍有 routes，但不是从 PRD 来的）。

**根因:** 当域匹配命中预定义模板时，模板的 features/pages/apis 被使用。但这些模板的字段可能为空或未正确填充。

**影响:** 前端和后端生成器依赖 PRD 中的 features/pages/apis 来决定生成什么。当这些为空时，生成器使用默认模板（note/ecommerce），导致生成的项目与需求完全不匹配。

---

### 3. Benchmark 只验证结构，不验证语义

**现象:** 10/10 benchmark 全部通过，但真实需求全部失败。

**根因:** 回归测试验证的是：
- ✅ 有没有 package.json
- ✅ 有没有 routes/ 目录
- ✅ 有没有 auth.ts
- ❌ 不验证生成的内容是否匹配输入需求

**影响:** benchmark 给出了虚假的安全感。系统能生成"看起来正确"的项目，但内容与需求无关。

---

## 🟡 P1 — 高优先级

### 4. 域匹配阈值过低

**现象:** "做一个备餐管理系统" 被匹配到 ecommerce，matchConfidence 未设置。

**修复:** 提高匹配阈值，增加"无匹配"的处理路径。

### 5. 中文需求解析能力不足

**现象:** 详细的中文需求描述（包含具体功能点、字段名、业务逻辑）被忽略。

**修复:** 需要增强 NLU 层，从中文需求中提取实体、功能点、业务规则。

---

## 🟢 P2 — 中优先级

### 6. 3 个 benchmark 领域的 PRD 特性数偏低

**现象:** project-mgmt/asset/appointment 只生成 3 个特性（其他领域 5-7 个）。

**影响:** 回归测试阈值已从 4 降到 3，但仍是质量问题。

### 7. 项目名称不从输入提取

**现象:** 输入"叫 BookShelf"，生成的项目名是 "NoteApp"。

**修复:** 增加项目名称提取逻辑，识别"叫 XXX"、"命名为 XXX"等模式。

---

## 人工修复点

### 修复 1: 自定义域路径

在 `project-intake-agent.mjs` 中增加分支：当用户输入包含详细功能描述时，走"需求解析"路径而非"域匹配"路径。

```javascript
// 伪代码
if (inputHasDetailedFeatures(input)) {
  // 直接解析用户需求，不走域匹配
  return parseCustomRequirements(input);
} else {
  // 走域匹配模板
  return matchDomain(input);
}
```

### 修复 2: 域匹配降级

当域匹配置信度低于阈值时，使用通用模板而非强制匹配。

### 修复 3: 需求关键词提取

从输入中提取：
- 项目名称（"叫 XXX"、"命名为 XXX"）
- 实体（"书籍"、"客户"、"任务"）
- 功能（"添加"、"管理"、"统计"）
- 字段（"书名、作者、ISBN"）

---

## 总结

| 类别 | 数量 | 说明 |
|------|------|------|
| P0 致命 | 3 | 真实需求无法生成正确项目 |
| P1 高 | 2 | 域匹配和中文解析 |
| P2 中 | 2 | PRD 质量和命名 |

**结论:** MVP v1 的管线架构（7 个 Agent 链路）是正确的，但 project-intake-agent 的域匹配逻辑是瓶颈。修复域匹配后，系统应能处理真实需求。

**下一步:** 修复 P0 缺陷，重新用 3 个真实案例验证。
