🎉 init: 小龙的工作空间
This commit is contained in:
@@ -0,0 +1,209 @@
|
||||
# Project Intake & PRD Agent
|
||||
|
||||
> SF-01 — Automated Requirement-to-PRD Pipeline
|
||||
|
||||
## Overview
|
||||
|
||||
The Project Intake Agent converts a **one-sentence requirement** into a **structured PRD** suitable for downstream consumption by other agents (design, development, testing).
|
||||
|
||||
It uses a domain-knowledge-driven approach: keyword matching against a curated domain base (12 domains), platform detection, and feature-aware template assembly.
|
||||
|
||||
## Quick Start
|
||||
|
||||
```bash
|
||||
# Direct text input
|
||||
node scripts/project-intake-agent.mjs --input "做一个宠物管理 App" --pretty
|
||||
|
||||
# From file
|
||||
node scripts/project-intake-agent.mjs --input-file test/fixtures/project-intake/pet-management.json --pretty
|
||||
|
||||
# Output to file
|
||||
node scripts/project-intake-agent.mjs --input "做一个电商小程序" --output prd-output.json
|
||||
```
|
||||
|
||||
## Architecture
|
||||
|
||||
```
|
||||
┌─────────────────────────────┐
|
||||
One-Sentence │ Project Intake Agent │
|
||||
Requirement ──▶│ │
|
||||
│ 1. Input Parser │
|
||||
│ - Platform detection │
|
||||
│ - Feature extraction │
|
||||
│ - Constraint hints │
|
||||
│ │
|
||||
│ 2. Domain Matcher │
|
||||
│ - 12 domain KB │
|
||||
│ - Keyword match scoring │
|
||||
│ - Fallback to generic │
|
||||
│ │
|
||||
│ 3. PRD Generator │
|
||||
│ - Persona templates │
|
||||
│ - Feature catalog │
|
||||
│ - Page blueprint │
|
||||
│ - API design │
|
||||
│ - User story assembly │
|
||||
│ │
|
||||
│ 4. Task Decomposer │
|
||||
│ - Foundation phase │
|
||||
│ - UI + Backend tasks │
|
||||
│ - Integration + Testing │
|
||||
│ - Hour estimation │
|
||||
│ │
|
||||
└──────────┬──────────────────┘
|
||||
▼
|
||||
┌─────────────────────────────┐
|
||||
│ Structured PRD (JSON) │
|
||||
│ - projectName, summary │
|
||||
│ - personas, userStories │
|
||||
│ - features (P0/P1/P2) │
|
||||
│ - pages (with routes) │
|
||||
│ - apiRequirements │
|
||||
│ - mvpScope + estimatedWeeks │
|
||||
│ - techConstraints │
|
||||
│ - devTasks (with hours) │
|
||||
└─────────────────────────────┘
|
||||
```
|
||||
|
||||
## Supported Domains
|
||||
|
||||
| Domain | Key | Triggers (examples) |
|
||||
|--------|-----|---------------------|
|
||||
| 🐱 宠物管理 | `pet` | 宠物, 猫, 狗, 动物, 领养 |
|
||||
| 🛒 电商平台 | `ecommerce` | 电商, 商城, 购物, 订单, 小程序 |
|
||||
| 📚 在线教育 | `education` | 教育, 课程, 学习, 培训, 题库 |
|
||||
| 🏢 企业OA | `enterprise` | 企业, OA, 审批, 考勤, 部门 |
|
||||
| 💪 健身打卡 | `fitness` | 健身, 运动, 打卡, 跑步, 训练 |
|
||||
| 📝 笔记应用 | `note` | 笔记, 备忘录, 日记, 写作 |
|
||||
| 👥 社交平台 | `social` | 社交, 社区, 朋友圈, 动态 |
|
||||
| 🍔 美食应用 | `food` | 外卖, 点餐, 美食, 餐厅 |
|
||||
| ✈️ 旅游应用 | `travel` | 旅游, 旅行, 酒店, 攻略 |
|
||||
| 🔧 通用 | `generic` | 未匹配时降级 |
|
||||
|
||||
## PRD Output Schema
|
||||
|
||||
```json
|
||||
{
|
||||
"projectName": "PetCare",
|
||||
"chineseName": "宠物管理",
|
||||
"domain": "pet",
|
||||
"matchConfidence": "high",
|
||||
"summary": "一款帮助宠物主人管理...",
|
||||
"personas": [
|
||||
{
|
||||
"name": "宠物主人",
|
||||
"description": "...",
|
||||
"painPoints": ["...", "..."]
|
||||
}
|
||||
],
|
||||
"userStories": [
|
||||
{
|
||||
"id": "US-001",
|
||||
"as": "宠物主人",
|
||||
"want": "记录宠物的基本信息、品种、年龄、体重",
|
||||
"soThat": "解决痛点:忘记打疫苗时间",
|
||||
"priority": "P0"
|
||||
}
|
||||
],
|
||||
"mvpScope": {
|
||||
"description": "MVP 聚焦 宠物档案、健康日程...",
|
||||
"features": ["宠物档案", "健康日程", "..."],
|
||||
"pages": ["首页", "宠物档案", "..."],
|
||||
"estimatedWeeks": 3
|
||||
},
|
||||
"features": [
|
||||
{ "name": "宠物档案", "description": "...", "priority": "P0" }
|
||||
],
|
||||
"pages": [
|
||||
{ "name": "首页", "route": "/home", "description": "..." }
|
||||
],
|
||||
"apiRequirements": [
|
||||
{ "method": "POST", "path": "/api/pets", "description": "添加宠物档案" }
|
||||
],
|
||||
"techConstraints": {
|
||||
"platforms": ["mobile", "web"],
|
||||
"recommendedStack": "React Native / Flutter(跨平台)",
|
||||
"considerations": ["...", "..."]
|
||||
},
|
||||
"extraFeatures": ["wechat-pay", "logistics-tracking"],
|
||||
"devTasks": [
|
||||
{
|
||||
"id": "T-001",
|
||||
"title": "项目脚手架搭建",
|
||||
"description": "...",
|
||||
"phase": "Foundation",
|
||||
"estimatedHours": 8,
|
||||
"priority": "P0"
|
||||
}
|
||||
],
|
||||
"meta": {
|
||||
"generatedAt": "2026-06-05T00:00:00.000Z",
|
||||
"inputLength": 10,
|
||||
"domainMatchCount": 2
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## Feature Detection
|
||||
|
||||
The agent automatically detects special requirements from keywords:
|
||||
|
||||
| Keyword | Flag | Effect |
|
||||
|---------|------|--------|
|
||||
| 微信支付 | `wechat-pay` | Adds payment API, compliance notes |
|
||||
| 支付宝 | `alipay` | Adds alipay integration notes |
|
||||
| 物流/快递 | `logistics-tracking` | Adds logistics API endpoints |
|
||||
| 推送/通知 | `push-notification` | Adds push service integration |
|
||||
| AI/智能 | `ai-powered` | Adds AI service dependency note |
|
||||
| 离线 | `offline-mode` | Adds offline sync strategy |
|
||||
| 多语言/国际化 | `i18n` | Adds i18n integration note |
|
||||
| 实时 | `real-time` | Adds WebSocket recommendation |
|
||||
| iOS/Android/小程序/Web | Platform flags | Determines recommended stack |
|
||||
|
||||
## Platform Detection
|
||||
|
||||
| Input | Detected Platforms |
|
||||
|-------|-------------------|
|
||||
| (no mention) | `mobile`, `web` |
|
||||
| iOS | `ios` |
|
||||
| 安卓/Android | `android` |
|
||||
| 小程序 | `miniapp`, `wechat-miniapp` |
|
||||
| Web/网页 | `web` |
|
||||
| 桌面/PC | `desktop` |
|
||||
|
||||
## Downstream Integration
|
||||
|
||||
The structured PRD JSON is designed for consumption by:
|
||||
|
||||
- **SF-02 (Architecture Agent)**: Reads `features`, `apiRequirements`, `techConstraints` → produces architecture
|
||||
- **SF-03 (Design Agent)**: Reads `pages`, `personas` → produces UI wireframes
|
||||
- **SF-04 (Dev Agent)**: Reads `devTasks` → scaffolds project
|
||||
- **SF-05 (QA Agent)**: Reads `userStories`, `features` → generates test cases
|
||||
|
||||
## Test Coverage
|
||||
|
||||
58 tests across 15 suites:
|
||||
|
||||
| Suite | Tests |
|
||||
|-------|-------|
|
||||
| 1 — 宠物管理 App | 4 |
|
||||
| 2 — 电商小程序 | 5 |
|
||||
| 3 — 在线教育平台 | 3 |
|
||||
| 4 — 企业 OA 系统 | 5 |
|
||||
| 5 — 极简输入 | 2 |
|
||||
| 6 — 健身打卡 + 平台偏好 | 4 |
|
||||
| 7 — 空输入与错误处理 | 3 |
|
||||
| 8 — 通用领域降级 | 2 |
|
||||
| 9 — PRD 结构完整性 | 7 |
|
||||
| 10 — 任务拆解 | 5 |
|
||||
| 11 — File I/O | 3 |
|
||||
| 12 — 领域匹配引擎 | 3 |
|
||||
| 13 — 平台检测 | 3 |
|
||||
| 14 — 额外特性检测 | 4 |
|
||||
| 15 — CLI 端到端 | 5 |
|
||||
|
||||
Run with:
|
||||
|
||||
```bash
|
||||
node --test test/project-intake-agent.test.mjs
|
||||
```
|
||||
Reference in New Issue
Block a user