Files

98 lines
2.7 KiB
Markdown
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
---
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
## 目标
功能、入口以及分析范围。
## 调用链
入口方法
→ 中间方法
→ 核心实现
→ 输出方法
每一步标注对应文件和符号。
## 数据流
| 阶段 | 输入 | 处理 | 输出 | 单位/坐标系 |
|---|---|---|---|---|
## 状态变化
| 位置 | 状态 | 变化 | 影响 |
|---|---|---|---|
没有状态变化时明确说明。
## 分支与异常路径
说明关键条件分支、提前返回、异常处理和失败结果。
## 最终输出
说明最终返回值、发送消息、文件写入或硬件指令。
## 待确认
列出无法通过静态代码确定的信息。
```