# CLAUDE.md # Claude Code 开发约束(A股 Deep Research 项目) 版本:v1.0 最后更新:2026-06-16 --- # 一、项目定位 本项目目标: 构建一个面向 A 股投资研究的私有化 Deep Research 平台。 核心能力包括: * 财经新闻抓取; * 中文新闻提取; * 投资事件抽取; * 向量知识库; * MCP 服务; * Cherry Studio Agent 深度研究。 本项目不是: * 自动交易系统; * 股票预测系统; * 投资顾问系统。 Claude Code 必须始终围绕“研究辅助平台”进行设计。 --- # 二、Claude Code 总体行为准则 Claude Code 必须遵守以下原则: ## 2.1 分阶段开发 禁止一次性完成整个项目。 必须: * 每次只完成一个 Milestone; * 等待人工验收; * 验收通过后再进入下一阶段。 禁止: * 擅自推进后续阶段; * 推翻已完成模块。 --- ## 2.2 最小改动原则 修改代码时: 优先局部修改。 禁止: 为了优化而重写整个模块。 除非明确要求: “允许重构”。 否则: 保持向后兼容。 --- ## 2.3 先理解,再编码 开始编码前必须: 明确: * 当前目标; * 输入; * 输出; * 验收标准。 如果需求冲突: 必须先提问。 不得自行猜测。 --- # 三、开发环境规范 ## 3.1 Python 版本 统一使用: Python 3.11 禁止: * Python 3.13; * Python 3.10 以下版本。 --- ## 3.2 依赖管理 统一使用: uv 禁止: requirements.txt 手工维护。 依赖定义: pyproject.toml 安装命令: uv sync 新增依赖: uv add 包名 开发依赖: uv add --dev 包名 --- ## 3.3 虚拟环境 统一使用: .venv 禁止: 使用 Conda。 禁止: 多个虚拟环境混用。 --- # 四、代码规范 ## 4.1 类型注解 所有新增代码必须包含类型注解。 示例: def search_news( keyword: str, top_k: int ) -> list[dict]: ... 禁止: 省略类型。 --- ## 4.2 中文说明 要求: 代码使用英文命名。 注释与文档使用中文。 例如: # 新闻去重处理 def deduplicate_articles(): ... --- ## 4.3 函数长度 单个函数: 建议 ≤ 50 行。 超过: 必须拆分。 --- ## 4.4 文件长度 单文件: 建议 ≤ 500 行。 超过: 必须拆分模块。 --- ## 4.5 禁止魔法数字 禁止: importance = 5 应写成: MAX_IMPORTANCE = 5 --- # 五、日志规范 统一使用: logging 禁止: print() 日志级别: DEBUG INFO WARNING ERROR CRITICAL 日志格式: 时间 - 模块 - 级别 消息 示例: 2026-06-16 09:00:00 - crawler - INFO 开始抓取新浪财经 --- # 六、异常处理规范 禁止: except: pass 必须: 记录日志。 抛出明确异常。 示例: except Exception as e: logger.exception(e) raise --- # 七、测试规范 新增功能必须提供测试。 优先使用: pytest 测试目录: tests/ 命名: test_xxx.py 测试覆盖: 核心模块必须覆盖。 包括: * crawler * extractor * dedup * qdrant * llm --- # 八、配置规范 禁止硬编码。 配置统一放置: configs/ 支持: YAML 环境变量 .env 禁止: API Key 写入源码。 --- # 九、Prompt 管理规范 Prompt 必须独立维护。 目录: prompts/ 禁止: 在代码中直接拼接长 Prompt。 Prompt 文件命名: event_extraction.md company_analysis.md industry_analysis.md risk_analysis.md --- # 十、数据模型规范 统一使用: Pydantic 禁止: 大量裸 dict。 核心对象必须定义模型。 例如: Article Event EmbeddingResult SearchResult --- # 十一、数据库规范 Qdrant 为唯一向量数据库。 SQLite 用于: 任务状态; 缓存; 调试。 禁止: 引入多种向量数据库。 除非用户明确要求。 --- # 十二、Docker 规范 所有服务必须支持 Docker。 必须提供: docker-compose.yml 必须支持: docker compose up -d 启动。 不得依赖: 手工安装。 --- # 十三、Git 提交规范 完成每个 Milestone 后: 更新: README.md continuation.md docs/ 提交信息格式: feat: 新增功能 fix: 问题修复 refactor: 重构 docs: 文档更新 test: 测试 chore: 杂项 示例: feat: 完成 Crawl4AI 新闻抓取模块 --- # 十四、README 更新规范 每次功能完成后: README 必须更新: 包括: 功能说明; 部署方法; 配置说明; 示例命令; 常见问题。 禁止: README 长期不维护。 --- # 十五、continuation.md 维护规范 Claude Code 每次结束工作前: 必须更新 continuation.md。 内容包括: 当前 Milestone; 完成内容; 待办事项; 已知问题; 技术债务; 下次建议。 用于恢复上下文。 --- # 十六、性能要求 目标: 支持至少: 50 个财经新闻源。 支持: 并发抓取。 新闻处理吞吐: ≥100篇/分钟。 Qdrant 检索: Top-K 响应时间 ≤ 2 秒。 --- # 十七、安全规范 禁止: 提交: .env API Key Cookie Token 个人隐私数据 必须: 提供: .env.example 示例配置。 --- # 十八、禁止事项 Claude Code 禁止: 1. 未经允许重构已验收模块; 2. 一次性生成整个项目; 3. 擅自修改数据库结构; 4. 删除已有测试; 5. 使用 print 调试; 6. 忽略异常; 7. 跳过验收直接进入下一阶段; 8. 引入未经说明的新技术栈; 9. 将 Prompt 写死在代码中; 10. 编写无法运行的伪代码冒充完成。 --- # 十九、输出格式要求 Claude Code 完成任务时必须输出: 【任务目标】 【完成内容】 【修改文件】 【运行方法】 【测试结果】 【存在问题】 【下一步建议】 不得只输出代码。 必须提供可验证说明。 --- # 二十、最高优先级原则 当多个原则冲突时,优先级如下: 第一优先级: 代码正确、可运行。 第二优先级: 稳定性与可维护性。 第三优先级: 向后兼容。 第四优先级: 性能优化。 第五优先级: 代码优雅。 宁可代码普通,也不要复杂炫技。 本项目追求: “小步迭代、稳定演进、长期维护”。 —— CLAUDE.md 结束 ——