Skip to content

Latest commit

 

History

History
21 lines (11 loc) · 3.32 KB

requirements-input.md

File metadata and controls

21 lines (11 loc) · 3.32 KB

需求输入与分析依据

日期:2026-10-12。

原来的需求规格步骤只接收新建工作项时的 request 文本,没有需求附件入口。现在将需求正文和原始文档作为工作项的独立输入管理;模型生成的规格、设计与任务仍在“文档产物”中维护。

在开发流程顶部点击“查看 / 编辑需求”,或打开“需求输入”标签页。可以直接填写正文、上传 UTF-8 Markdown/TXT、粘贴文档,或按仓库相对路径导入文档。新建工作项时也可上传文档,可以仅提供附件而不另填正文。每份文档上限 512 KiB,最多 20 份,正文及文档合计上限 1 MiB。

必须点击“保存需求”后再运行步骤。右侧“已保存的分析依据”显示当前正文、文档内容和历史版本;开发流程右侧“输入依据”可返回编辑入口。有未保存草稿时,界面暂停步骤派发。草稿在切换页面、刷新和并发保存冲突后保留;浏览器存储空间不足时保留在当前窗口并明确提示。

仓库导入读取注册仓库中的文件,并保存内容快照。应用不会因为原始文件后来变化而替换已保存的需求。需要更新时重新导入并保存一个新版本。仓库读取复用工作空间路径检查,拒绝绝对路径、越界路径和越界符号链接;读取前检查类型、大小和 UTF-8 编码,且采用有上限的读取。

requirementRevisions 在 SQLite 中保存不可变的正文与文档快照、版本号和内容哈希。工作项通过 requirementRevisionId 指向当前版本。每次模型尝试把需求全文加入固定的 prompt,并将需求版本与内容哈希纳入输入哈希。运行记录和工程导出保留此次使用的版本。

需求更新后,已有分析、复核和下游节点被标记为过期。生成文档通过 requirementRevisionId 追溯原始需求;上游消费、文档接纳、执行结果放行、后续任务派发、恢复和代码接纳都会检查需求版本。运行中更新需求不改变旧尝试的固定上下文,其输出不能按新需求放行。已接纳工作项禁止继续编辑原始需求,后续变更使用新工作项。

升级时保留已有工作项的描述为初始需求,并把已有尝试和文档绑定到这一初始来源,保留历史 prompt 和输入哈希。

验证结果:28 项自动测试全部通过,构建和类型检查通过,Windows 打包桌面操作验收通过。验证命令:npm test、npm run build、npm run desktop:smoke:requirements。后者启动打包后的桌面程序和隔离数据目录,验证实际上传、保存、撤回草稿、重新打开草稿、并发冲突、仓库导入、派发上下文与版本失效,以及 1440/1000px 桌面布局和页面运行错误,不调用云端模型。证据输出到 release/requirements-smoke.json 和 release/requirements-input-desktop.png。本次未验收真实云端模型质量或 macOS 原生运行。

Claude Code 复核入口:apps/server/src/requirements.ts、apps/server/src/service.ts、apps/server/src/artifacts.ts、apps/web/src/Requirements.tsx、tests/requirements.test.ts、scripts/requirements-smoke.mjs。重点检查需求快照与冻结 prompt 一致性、失效传播、并发保存、接纳前二次检查和仓库读取边界。本次未调用外部 Claude Code。