---
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` + `apps/etl/connectors/feiqiu/docs/database/`）
- ETL 相关：产品说明、数据流报告
- 接口相关：OpenAPI spec、接口文档
- 读取要修改的文件及其直接依赖（调用方、被调用方）
- 确认数据流向：上游输入 → 当前处理 → 下游消费
- 识别潜在影响范围（哪些模块/表/接口会受波及）

子代理返回精炼摘要，主流程不直接读取大量文件，保持上下文干净。

> **Session 日志作为调研数据源**：Session 索引（`_session_index.json`）记录了每轮 AI 操作的结构化摘要（文件变更、子代理调用、错误、LLM 生成的操作描述），是了解"某个文件/模块近期发生了什么"的最高效数据源。相比逐个打开审计记录，索引查询零 Token 成本且信息密度更高。

### 2. 输出上下文摘要
基于子代理返回的调研结果，向用户输出简要的「改动前上下文摘要」，包含：
- 当前模块的职责和关键逻辑
- 历史变更要点（如有）
- 本次改动的影响范围评估
- 需要注意的风险点或边界条件

用户确认后再开始实施。

## 例外
- 纯格式调整（缩进、空行、import 排序）
- 注释/文档纯文字修改（不涉及逻辑描述变更）
- 用户明确说"直接改"或"跳过调研"
- 新建文件且不涉及已有逻辑的修改
