llmcodegen/issues/design-subcommand.issue

29 lines
2.5 KiB
Plaintext
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 需求工单:添加 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 以获取准确信息。