29 lines
2.5 KiB
Plaintext
29 lines
2.5 KiB
Plaintext
# 需求工单:添加 design 子命令(增强版)
|
||
name: 新增 design 子命令,用于更新或重新生成 design.json 并同步 README
|
||
description: |
|
||
当前工具仅在初始化(init)阶段生成 design.json,后续增强或修复时不会主动更新设计文件。
|
||
为提升维护性,需新增一个独立的子命令 `design`,支持以下功能:
|
||
- 重新生成完整的 design.json(基于最新 README.md 和项目所有代码文件)
|
||
- 指定单个文件,仅更新该文件在 design.json 中的条目(如摘要、函数、类等)
|
||
- 在更新 design.json 后,同步更新 README.md 中的项目描述,确保文档与设计一致
|
||
- **重要**:无论是完整重新生成还是更新单个文件,都必须将相关文件的**当前内容**作为上下文提交给 LLM,以便 LLM 准确提取文件的结构信息。
|
||
|
||
affected_files:
|
||
- src/llm_codegen/cli.py # 添加新的子命令
|
||
- README.md # 更新使用说明
|
||
|
||
acceptance_criteria:
|
||
- 执行 `llm-codegen design` 时,基于当前 README.md 和项目中所有代码文件(递归扫描 src/ 目录)重新生成完整的 design.json,并覆盖原文件。
|
||
- 必须将每个代码文件的内容作为上下文提交给 LLM,确保 LLM 能理解文件实际代码,准确提取函数、类、依赖等信息。
|
||
- 执行 `llm-codegen design --file path/to/file.py` 时,仅更新指定文件在 design.json 中的条目,其他部分保持不变。
|
||
- **必须将该文件的当前内容作为上下文提交给 LLM**,以便 LLM 分析该文件的最新结构,生成准确的摘要、函数列表等。
|
||
- 如果文件不存在,应报错并退出。
|
||
- 更新 design.json 后,自动同步更新 README.md 中的项目描述(例如文件列表、功能摘要等),确保两者一致。
|
||
- 同步更新时,也应基于最新的 design.json 内容生成 README 描述。
|
||
- 提供 `--force` 选项:如果指定 `--force`,即使 design.json 已存在也重新生成(默认可选择跳过或询问,需合理设计)。
|
||
- 子命令应能正确处理异常情况:
|
||
- README.md 不存在时,应给出明确提示。
|
||
- 指定的文件不在 design.json 中时,应提示并退出。
|
||
- LLM 调用失败时,应回滚变更或给出错误信息。
|
||
- 新增功能不影响现有的 `init`、`enhance`、`fix` 子命令的正常工作。
|
||
- 更新 README.md 文档,添加 `design` 子命令的使用说明和示例,特别说明文件内容会被提交给 LLM 以获取准确信息。 |