docs: 大幅更新开发规范和AI协作指导

- 添加绝对强制性规范声明和AI协作流程规范
- 详细完善编程规范,包含违反后果和理由说明
- 新增AI协作指导规范,定义4阶段工作流程
- 完善Memory Bank系统和工具使用原则
- 强化MVP项目特性,明确快速开发要求
This commit is contained in:
iomgaa 2025-08-23 12:26:53 +08:00
parent a61fdc0437
commit 08a3f414b9

112
CLAUDE.md
View File

@ -4,7 +4,7 @@ This file provides guidance to Claude Code (claude.ai/code) when working with co
## 项目概述 ## 项目概述
MedResearcher 是一个给予用户输入的自动实验平台其会给予用户指定的研究目标通过mcp访问特定数据集并撰写代码以构建实验。 MedResearcher 是一个给予用户输入的自动实验平台其会给予用户指定的研究目标通过mcp访问特定数据集并撰写代码以构建实验。该项目现在是一个MVP项目需要保证快速开发。
## 技术栈 ## 技术栈
1. 后端编程语言Python 1. 后端编程语言Python
@ -39,62 +39,71 @@ MedResearcher 是一个给予用户输入的自动实验平台,其会给予用
## 开发注意事项 ## 开发注意事项
### ⚠️ 绝对强制性规范 - 违反将导致项目失败
**AI协作流程规范**(绝对不可跳过):
- **强制执行4阶段流程**:任何涉及代码修改的请求必须完成 需求记录→任务规划→计划正式化→实施验证
- **讨论优先原则**:禁止在未完成需求分析和计划制定前直接编码
- **违反后果**:跳过流程将导致代码质量无法保证、项目架构被破坏、维护成本急剧上升
**理由**软件项目80%的失败源于需求理解偏差和无计划修改。规范化流程是项目成功的生命线。
### 必须遵循的编程规范 ### 必须遵循的编程规范
1. **注释和文档规范** 1. **注释和文档规范**(违反将导致代码无法维护)
- 所有注释使用中文 - **绝对强制**所有注释使用中文 - 理由:统一语言避免理解歧义,提高团队协作效率
- 关键代码逻辑必须添加行内注释 - **严格要求**关键代码逻辑必须添加行内注释 - 理由无注释代码在6个月后连作者都无法理解
- 所有函数和类必须添加docstring说明功能、参数和返回值 - **绝对不允许**函数和类缺少docstring - 理由:缺少文档的代码等于技术债务
- 复杂算法需要详细说明思路 - **强制执行**复杂算法详细说明思路 - 理由:算法逻辑不清将导致后续无法优化和修复
2. **命名规范** 2. **命名规范**(违反将导致代码混乱不堪)
- 变量名、函数名使用 snake_case - **严格执行**变量名、函数名使用snake_case - 理由:命名不一致破坏代码可读性
- 类名使用 PascalCase - **绝对遵守**类名使用PascalCase - 理由违反Python社区标准影响代码专业性
- 常量使用 UPPER_SNAKE_CASE - **强制要求**常量使用UPPER_SNAKE_CASE - 理由常量不明显将导致误修改引发bug
- 禁止使用中文变量名 - **绝对禁止**使用中文变量名 - 理由:中文变量名在不同环境下可能出现编码问题
3. **代码修改限制** 3. **代码修改限制**(违反将导致系统不稳定)
- 单次修改超过200行代码 - **绝对禁止**单次修改超过200行代码 - 理由:大规模修改导致难以追踪错误源,增加回滚风险
- 单次修改不超过3个文件 - **严格限制**单次修改不超过3个文件 - 理由:多文件修改增加依赖复杂度,容易引入连锁错误
- 严格遵循最小修改原则 - **强制执行**最小修改原则 - 理由额外修改增加引入bug的概率违背单一职责
- 绝对不允许修改与指定任务无关的代码 - **绝对不允许**修改与任务无关的代码 - 理由:破坏代码的可追溯性和变更管理
- 每次修改只针对当前任务的必要部分 - **严格要求**每次修改只针对当前任务 - 理由混合修改导致commit历史混乱
- 优先修改而非新建:能通过修改解决的问题不新建文件 - **优先原则**修改而非新建文件 - 理由:过度创建文件增加项目复杂度和维护成本
4. **代码风格规范** 4. **代码风格规范**(违反将导致代码难以阅读)
- 单行代码长度限制:120字符 - **严格限制**单行代码120字符 - 理由超长行代码在review和调试时难以阅读
- 使用类型提示type hints提高代码可读性 - **强制要求**使用类型提示 - 理由:无类型提示的代码在运行时才暴露类型错误,增加调试成本
- 导入语句按照:标准库 → 第三方库 → 本地模块 的顺序排列 - **绝对遵守**导入语句排序规范 - 理由:混乱的导入顺序导致依赖关系不清晰
5. **错误处理和日志** 5. **错误处理和日志**(违反将导致系统崩溃)
- 必须使用 try-except 进行全面的错误捕获 - **绝对强制**使用try-except全面错误捕获 - 理由:未捕获异常导致程序崩溃,影响用户体验
- 使用 logging 模块替代 print 进行日志输出 - **严格禁止**使用print进行输出 - 理由print输出无法控制级别和格式生产环境下无法管理
- 日志级别开发时使用DEBUG生产环境使用INFO - **强制执行**日志级别规范 - 理理:错误的日志级别导致关键信息丢失或日志滚滥
- 绝对不允许填写任何默认值或假设值 - **绝对禁止**使用默认值或假设值 - 理由:默认值掩盖真实错误,导致问题被延迟发现
- 出现错误时应抛出明确的异常信息,便于问题排查 - **强制要求**抛出明确异常信息 - 理由:模糊错误信息导致问题排查时间成倍增长
- 宁可程序报错,也不要用默认值掩盖潜在问题 - **核心原则**宁可程序报错,绝不用默认值掩盖 - 理由:隐藏的错误比明显的崩溃更危险
6. **依赖管理** 6. **依赖管理**(违反将导致项目臃胀)
- 优先使用标准库 - **强制优先**使用标准库 - 理由:标准库稳定性高,减少第三方依赖风险
- 新增第三方依赖时需在注释中说明用途 - **绝对强制**新增依赖必须注释说明用途 - 理由:未知用途的依赖增加安全风险和维护成本
- 使用 uv 管理所有依赖 - **严格要求**使用uv管理所有依赖 - 理由:不同的包管理器导致依赖冲突和环境不一致
7. **资源管理** 7. **资源管理**(违反将导致资源泄漏)
- 文件操作必须使用 with 语句 - **绝对强制**文件操作使用with语句 - 理由不使用with导致文件句柄泄漏系统资源耗尽
- 网络请求设置合理超时建议30秒 - **严格要求**网络请求设置30秒超时 - 理由:无超时设置导致程序无限等待,资源被占用
- 大文件使用流式处理避免内存溢出 - **强制执行**大文件流式处理 - 理由:一次性加载大文件导致内存溢出,系统崩溃
8. **Git提交规范** 8. **Git提交规范**(违反将导致版本管理混乱)
- commit message 格式:`<类型>: <描述>` - **严格遵守**commit message格式 - 理由不规范的commit信息导致版本历史无法理解和回滚
- 类型包括feat(新功能)、fix(修复)、refactor(重构)、docs(文档)、test(测试) - **强制使用**指定类型前缀 - 理由:类型清晰有助于自动化部署和变更追踪
9. **测试规范** 9. **测试规范**(违反将导致项目无法维护)
- 不允许撰写独立的测试用例文件或测试代码 - **绝对禁止**撰写独立测试文件 - 理由过多测试文件增加项目复杂度与MVP理念相反
- 通过直接运行对应的主文件papers_crawler.py、pdf_parser.py 或 experiment_runner.py进行功能测试 - **强制要求**通过主文件进行功能测试 - 理由:集中式测试简化操作流程
- 主文件的 `if __name__ == "__main__":` 块中应包含基本的功能调用示例 - **严格规定**主文件必须包含功能示例 - 理由:无示例的代码无法快速验证功能
- **严格限制main函数使用**只有主文件papers_crawler.py、pdf_parser.py、experiment_runner.py允许包含 `if __name__ == "__main__":` 块,其他所有工具模块、库文件绝对不允许包含此类测试代码 - **绝对禁止**工具模块包含main函数 - 理由工具模块包含main函数破坏模块化设计原则
- 函数可以被其他模块调用,不一定要在主文件中直接调用 - **允许灵活性**函数可被其他模块调用 - 理由:保持代码的可重用性
- 作为MVP项目重点关注理想情况下的功能实现而非鲁棒性 - **MVP原则**重点关注功能实现而非鲁棒性 - 理由MVP阶段过度关注鲁棒性影响开发速度
**修改前验证** **修改前验证**
```bash ```bash
@ -112,6 +121,15 @@ MedResearcher 是一个给予用户输入的自动实验平台,其会给予用
mypy <修改的文件>.py --ignore-missing-imports mypy <修改的文件>.py --ignore-missing-imports
``` ```
### ⚠️ 总体声明
**这些编程规范是项目成功的基石,违反任何一条都可能导致:**
- 代码质量严重下降,技术债务累积
- 系统不稳定,生产环境事故
- 开发效率大幅降低,维护成本激增
- 团队协作困难,项目进度失控
**所有规范均为硬性要求,无商量余地。遵循规范是专业开发者的基本素养。**
### 代码组织原则 ### 代码组织原则
- 新功能优先集成到现有主文件中 - 新功能优先集成到现有主文件中
- 只有在功能独立且复杂时才创建新的模块文件 - 只有在功能独立且复杂时才创建新的模块文件