--- inclusion: always --- # 逻辑改动前置调研(强制) 任何涉及逻辑改动的任务(ETL 流程、业务规则、API 接口、数据模型、前端交互逻辑等),在写第一行代码之前,必须完成以下调研步骤: ## 强制流程 ### 1. 委托子代理调研(节省主流程上下文) 使用 `context-gatherer` 子代理执行调研,传入以下指令要点: - 要改动的模块/文件路径 - 搜索 `docs/audit/changes/` 中相关的历史审计记录 - **查询 Session 索引**:读取 `docs/audit/session_logs/_session_index.json`,按 `summary.files_modified` 筛选涉及目标模块的历史 session,提取 `description`(操作摘要)和 `startTime`,了解该模块近期被修改的上下文和原因(详见 `docs/audit/SESSION-LOG-GUIDE.md`) - 阅读涉及模块的 README、PRD spec(`docs/prd/specs/`) - 数据库相关:BD 手册(`docs/database/BD_Manual_*.md`) - ETL 相关:产品说明、数据流报告 - 接口相关:OpenAPI spec、接口文档 - 读取要修改的文件及其直接依赖(调用方、被调用方) - 确认数据流向:上游输入 → 当前处理 → 下游消费 - 识别潜在影响范围(哪些模块/表/接口会受波及) 子代理返回精炼摘要,主流程不直接读取大量文件,保持上下文干净。 > **Session 日志作为调研数据源**:Session 索引(`_session_index.json`)记录了每轮 AI 操作的结构化摘要(文件变更、子代理调用、错误、LLM 生成的操作描述),是了解"某个文件/模块近期发生了什么"的最高效数据源。相比逐个打开审计记录,索引查询零 Token 成本且信息密度更高。 ### 2. 输出上下文摘要 基于子代理返回的调研结果,向用户输出简要的「改动前上下文摘要」,包含: - 当前模块的职责和关键逻辑 - 历史变更要点(如有) - 本次改动的影响范围评估 - 需要注意的风险点或边界条件 用户确认后再开始实施。 ## 例外 - 纯格式调整(缩进、空行、import 排序) - 注释/文档纯文字修改(不涉及逻辑描述变更) - 用户明确说"直接改"或"跳过调研" - 新建文件且不涉及已有逻辑的修改