feat: 新建项目时支持通过提示词初始化子 Workspace
- Dominant language
- TypeScript
- Stars
- 2.7k
- Forks
- 395
- Avg merge
- 21h 48m
- Merged PRs (30d)
- 776
Description
**提交人**: LumiAI
**客户端版本**: 0.1.46
---
## 使用场景
在当前工作区中创建一个新项目时,用户希望通过自然语言描述直接得到一个可以继续工作的子 Workspace。
## 当前痛点
现有创建流程需要手动选择保存地址并输入项目名称,创建完成后仅得到空文件夹;用户还需要自行补充目录、文件和项目上下文。
## 诉求
将“新建项目”升级为提示词驱动的初始化流程:用户描述想创建的项目后,系统在当前工作区下创建一个子 Workspace,并生成可继续工作的初始项目内容。
## 建议方案
1. 用户在当前工作区点击“新建项目”。
2. 系统弹出临时对话框,提供提示词输入框。
3. 用户输入项目描述,例如“创建一个支持用户登录和数据统计的记账 Web 应用”。
4. 用户点击“创建项目”。
5. 系统在当前工作区下创建一个新的子 Workspace。
6. 系统根据提示词初始化项目结构和内容。
7. 初始化完成后,项目进入可继续工作的状态。
## 功能要求
- 新建项目主流程不再要求用户手动选择保存地址。
- 新项目默认创建在当前工作区下,作为子 Workspace。
- 提示词不能为空;未输入有效内容时应阻止提交。
- 创建结果必须包含初始化产物,不能只是空文件夹。
- 初始化期间展示进度状态,并防止重复提交。
- 用户取消创建时,不生成项目目录或项目记录。
- 名称冲突时不得覆盖已有目录或文件。
- 初始化失败时显示明确错误并提供重试入口;未成功完成初始化的项目不展示为创建成功。
## 验收标准
- [ ] 点击“新建项目”后出现提示词输入对话框。
- [ ] 主创建流程不再要求用户手动选择项目路径。
- [ ] 未输入有效提示词时无法提交。
- [ ] 提交有效提示词后,当前工作区下生成新的子 Workspace。
- [ ] 新 Workspace 中存在根据提示词产生的初始化内容,而不是空文件夹。
- [ ] 创建期间具有明确的进行中状态,且连续点击不会重复生成项目。
- [ ] 取消创建后不会留下目录或项目记录。
- [ ] 名称冲突时不会覆盖已有内容。
- [ ] 初始化失败时能够看到错误信息并重试,且不会被标记为创建成功。
## 非目标
- 不要求一次生成完整、可发布的成熟产品。
- 不支持将项目创建到当前工作区之外的任意地址。
- 暂不包含模板市场、技术栈选择器或高级脚手架配置。
## 待确认
- [ ] 项目名称由提示词自动生成,还是生成后允许用户确认和修改?
- [ ] 初始化的最低产物是项目说明和任务计划,还是必须包含可运行的代码骨架?
- [ ] 初始化成功后是否自动打开新 Workspace?
- [ ] 初始化失败时自动清理目录,还是保留为“未完成项目”供恢复?
- [ ] 原有的手动选址创建方式是否保留为高级入口?
---
**版本区域**: CN
**OS**: win32 x64 (10.0.19045)
**界面语言**: zh-CN
Contributor guide
Research direction
No files, tests, or entry points are named. Start by tracing the existing new-project flow and workspace initialization, then resolve the open product questions before implementation; done means prompt-based child Workspace creation handles validation, progress, cancellation, conflicts, failure/retry, and initialized content without leaving incomplete records.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- desktop
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 35/100