--- name: trace-code-flow description: "快速追踪用户指定功能从入口到输出的调用链、数据流、状态变化、单位和坐标系。只进行代码分析,不修改文件,仅在用户显式调用 $trace-code-flow 时使用。" --- # 追踪代码执行流程 快速分析指定功能在代码中的完整执行路径,只读检查代码,不修改任何文件。 ## 分析范围 1. 读取当前目录适用的 `AGENTS.md`。 2. 以用户指定的函数、类、接口、事件或功能为起点。 3. 用户未指定目标时,先询问,不默认扫描整个项目。 4. 只检查完成追踪所必需的文件。 5. 跳过第三方依赖、编译产物、缓存、日志和自动生成文件。 ## 追踪内容 重点追踪: - 功能入口和触发条件; - 上层调用者; - 实际执行的函数和实现类; - 参数和数据来源; - 中间的数据转换; - 条件分支和提前返回; - 对象字段、全局状态和缓存的变化; - 文件、数据库、网络、串口等外部交互; - 最终返回值、输出消息或执行结果; - 数值单位、坐标系、方向和角度约定。 ## 分析原则 - 优先依据当前代码,不根据函数名猜测行为。 - 区分接口声明、具体实现和实际调用位置。 - 遇到重载、继承、事件、委托、回调或依赖注入时,确认可能执行的实现。 - 无法静态确认的动态路径标记为“运行时决定”。 - 每项重要结论尽量标注文件路径、类名和方法名。 - 不展开与目标无关的辅助函数。 - 不运行耗时较长的完整构建或测试,除非用户明确要求。 ## 单位和坐标系 发现数值传递时,检查: - 长度是 `m`、`cm` 还是 `mm`; - 速度是 `m/s`、`km/h` 还是其他单位; - 角度是 `rad` 还是 `deg`; - 时间是 `s`、`ms` 还是时间戳; - 坐标属于世界、地图、车辆、传感器或局部坐标系; - 是否存在缩放、归一化、符号取反或坐标变换。 代码不能确认时标记为“待确认”,不得自行推断。 ## 输出格式 按照以下结构输出: ```markdown ## 目标 功能、入口以及分析范围。 ## 调用链 入口方法 → 中间方法 → 核心实现 → 输出方法 每一步标注对应文件和符号。 ## 数据流 | 阶段 | 输入 | 处理 | 输出 | 单位/坐标系 | |---|---|---|---|---| ## 状态变化 | 位置 | 状态 | 变化 | 影响 | |---|---|---|---| 没有状态变化时明确说明。 ## 分支与异常路径 说明关键条件分支、提前返回、异常处理和失败结果。 ## 最终输出 说明最终返回值、发送消息、文件写入或硬件指令。 ## 待确认 列出无法通过静态代码确定的信息。 ```