不是 AI 不行,是需求没定型 在让 AI 写第一行代码之前,先让你的想法变成可执行的开发方案

定型 Formative 是一个 AI 驱动的产品开发方案生成器,专注于解决 VibeCoding 的"最前一公里"问题。
大多数人使用 AI 写代码失败,并不是因为 AI 不会写代码,而是因为一开始就说不清楚自己想要什么。
定型通过六个结构化阶段,帮助你:
你不需要懂架构、不需要会数据库,你只需要回答问题、做选择。剩下的复杂度,由定型替你承担。
用户往往只有一句话的想法:
于是 AI 开始猜,用户开始改;AI 不断生成,用户不断推倒。最后的结果通常只有三种:
问题不在代码,而在"需求没有定型"。
定型不是一个写代码的工具,它存在于 VibeCoding 的最前一公里。
在你让 AI 开始写第一行代码之前,定型会做三件关键的事:
当你完成定型流程,你最终拿到的不是聊天记录,而是:
这意味着:
# 克隆项目
git clone https://github.com/jaguarliuu/Formative.git
cd Formative
# 安装依赖
npm install
创建 .env.local 文件:
# LLM 配置
DEEPSEEK_API_KEY=your_deepseek_api_key
DEEPSEEK_BASE_URL=https://api.deepseek.com
# 或使用其他提供商
# QWEN_API_KEY=your_qwen_api_key
# OLLAMA_BASE_URL=http://localhost:11434
npm run dev
访问 http://localhost:3000 即可开始使用。
定型采用六阶段渐进式流程,从需求到方案逐步细化:
需求采集 → 风险分析 → 技术选型 → MVP规划 → 架构设计 → 文档生成
每个阶段完成后,会自动进入下一阶段,你也可以通过顶部标签页随时查看和编辑已完成的阶段。
目标:完整收集产品需求,达到 100% 完备度
两种模式可选:
必须收集的信息:
完成条件:所有必填字段都收集完毕,完备度达到 100%
目标:识别潜在风险,选择合适的实施方案
AI 会分析:
系统提供 3 种方案对比:
你需要做的:
目标:选择适合你的技术栈
基于你的需求和风险方案,AI 会推荐 3 种技术栈选项:
前端纯静态方案
全栈方案
BaaS 方案(Backend as a Service)
每个方案包含:
你需要做的:
目标:明确第一版本(MVP)的功能边界
AI 会:
功能分类:
你需要做的:
目标:可视化系统架构,生成技术图表
系统自动生成:
架构图 (Architecture Diagram)
时序图 (Sequence Diagram)
功能:
目标:生成完整的产品需求文档(PRD)
文档包含 9 个章节:
项目概述
需求分析
技术方案
功能设计
数据模型
API 设计
部署方案
风险与应对
项目排期
功能:
.md 文件使用场景:
定型适合以下人群和场景:
✅ 非技术创业者 有想法但不懂技术,需要把想法转化成技术方案
✅ 产品经理 需要快速输出 PRD 和技术选型建议
✅ 独立开发者 想在开发前理清思路,避免中途推倒重来
✅ AI 编程爱好者 使用 Cursor、Claude Code、Windsurf 等工具前,先生成清晰的方案文档
✅ 技术顾问 需要快速为客户生成可行性分析和技术方案
Formative/ ├── src/ │ ├── app/ # Next.js App Router │ │ ├── page.tsx # 首页(Hero Page) │ │ ├── main/ # 主应用页面 │ │ └── api/ # API 路由 │ │ ├── chat/ # 需求采集对话 │ │ ├── form-submit/ # 表单提交 │ │ ├── analyze-risks/ # 风险分析 │ │ ├── tech-stack/ # 技术选型 │ │ ├── mvp-plan/ # MVP 规划 │ │ ├── generate-diagrams/ # 架构图生成 │ │ └── generate-spec/ # 文档生成 │ │ │ ├── components/ # React 组件 │ │ ├── stages/ # 六个阶段组件 │ │ │ ├── RequirementStage.tsx # 需求采集 │ │ │ ├── RiskStage.tsx # 风险分析 │ │ │ ├── TechStackStage.tsx # 技术选型 │ │ │ ├── MVPStage.tsx # MVP 规划 │ │ │ ├── DiagramStage.tsx # 架构设计 │ │ │ └── DocumentStage.tsx # 文档生成 │ │ └── shared/ # 共享组件 │ │ ├── Button.tsx │ │ ├── LeftPanel.tsx # 左侧需求面板 │ │ └── SkeletonLoader.tsx │ │ │ ├── contexts/ # React Context │ │ └── StageContext.tsx # 全局状态管理 │ │ │ ├── lib/ # 核心业务逻辑 │ │ ├── agents/ # LangGraph Agents │ │ │ ├── extractor.ts # 信息提取 │ │ │ ├── planner.ts # 完备度评估 │ │ │ ├── asker.ts # 问题生成 │ │ │ ├── risk-analyst.ts # 风险分析 │ │ │ ├── tech-advisor.ts # 技术建议 │ │ │ ├── mvp-boundary.ts # MVP 规划 │ │ │ └── spec-generator.ts # 文档生成 │ │ │ │ │ ├── graph/ # LangGraph 工作流 │ │ │ ├── index.ts # 工作流编排 │ │ │ └── state.ts # 状态定义 │ │ │ │ │ ├── llm/ # LLM 调用封装 │ │ │ └── helper.ts │ │ │ │ │ ├── prompts/ # 提示词管理 │ │ │ └── index.ts │ │ │ │ │ ├── storage/ # IndexedDB 封装 │ │ │ └── sessionStore.ts │ │ │ │ │ └── logger.ts # 日志工具 │ │ │ ├── types/ # TypeScript 类型定义 │ │ └── index.ts │ │ │ └── utils/ # 工具函数 │ └── projectNameGenerator.ts │ ├── prompts/ # LLM 系统提示词 │ ├── extractor.system.md │ ├── planner.system.md │ ├── asker.system.md │ ├── risk-analyst.system.md │ ├── tech-advisor.system.md │ ├── mvp.system.md │ ├── diagram.system.md │ └── spec.system.md │ ├── docs/ # 项目文档 │ ├── FormativePrd.md # 产品需求文档 │ ├── MultiTabDesign.md # 多标签设计文档 │ └── PROGRESS.md # 项目进度 │ └── public/ # 静态资源
定型基于 LangGraph 实现状态机工作流,每个阶段由专门的 Agent 负责:
用户输入 ↓ Extractor (信息提取) ↓ Planner (完备度评估) ↓ [条件路由] ├─→ Asker (继续提问) → 等待用户输入 ├─→ Risk Analyst (风险分析) → 等待用户选择方案 ├─→ Tech Advisor (技术建议) → 等待用户选择技术栈 ├─→ MVP Boundary (MVP 规划) → 自动进入下一阶段 ├─→ Diagram Generator (架构设计) → 自动进入下一阶段 └─→ Spec Generator (文档生成) → 完成
| Agent | 职责 | 输入 | 输出 |
|---|---|---|---|
| Extractor | 从用户输入中提取结构化信息 | 用户消息 | 更新后的需求画像 |
| Planner | 评估需求完备度,决定下一步 | 当前需求画像 | 完备度、缺失字段、是否需要更多信息 |
| Asker | 生成引导性问题和选项 | 缺失字段 | 问题文本、选项卡片 |
| Risk Analyst | 分析风险并生成方案对比 | 完整需求画像 | 风险列表、3 个实施方案 |
| Tech Advisor | 推荐技术栈选项 | 需求画像、风险方案 | 3 个技术栈选项 |
| MVP Boundary | 定义 MVP 边界 | 需求画像、技术栈 | MVP 功能列表、非目标 |
| Diagram Generator | 生成架构图和时序图 | 技术栈、MVP 功能 | Mermaid 图表代码 |
| Spec Generator | 生成完整 PRD 文档 | 所有阶段汇总 | Markdown 文档 |
欢迎提交 Issue 和 Pull Request!
git checkout -b feature/AmazingFeature)git commit -m 'Add some AmazingFeature')git push origin feature/AmazingFeature)# 安装依赖
npm install
# 启动开发服务器
npm run dev
# 构建生产版本
npm run build
# 代码检查
npm run lint
问题:提示 "❌ LLM配置错误:请检查.env文件中的API密钥配置"
解决方案:
.env.local 文件是否存在DEEPSEEK_API_KEY 已正确配置问题:刷新页面后数据丢失
解决方案:
问题:架构图或时序图无法显示
解决方案:
MIT License
感谢以下开源项目和社区:
准备好让你的想法定型了吗? 5 分钟,从一句话到完整方案。