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