# Fastsignaltrace

> FastSignalTrace 系列的唯一顶层入口。自动盘点源码扩展名和工程标记，选择 C#、Godot/GDScript 或 Rust+Tauri 子 skill，扫描全局/成员状态的生产者消费者角色并生成标准信号方程。适用于用户要求分析源码信号地图、生产消费关系、全局变量读写、if/switch/match 控制依赖或调用 FastSignalTrace，但没有明确指定语言版本的场景；遇到多语言范围歧义时停止并要求缩小根目录，不静默混扫。

- Skill: `elabalice-code/fastsignaltrace` (Agent Skill, multi-file: 3 files)
- Install (CLI): `npx skillmds@latest add elabalice-code/fastsignaltrace`
- Raw SKILL.md: https://api.skillmd.com/api/skills/elabalice-code/fastsignaltrace/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: elabalice-code (https://skillmd.com/u/elabalice-code)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/elabalice-code/fastsignaltrace

---


# FastSignalTrace

始终从本 skill 进入。让 `scripts/invoke.ps1` 自动检测项目语言，再调用同级的内部子 skill：

- C#：`fastsignaltrace-csharp`
- Godot/GDScript：`fastsignaltrace-godot`
- Rust、TypeScript/TSX、Tauri：`fastsignaltrace-rusttauri`

## 标准流程

1. 选择用户明确指定的单个源码根目录。一次测试只使用一个 Harness，不把多个实战工程放在同一根目录扫描。
2. 默认使用 `-Language Auto`。只有用户明确要求覆盖自动判定时才指定具体语言。
3. 优先把方程和变量表写入文件：

```powershell
powershell.exe -NoProfile -ExecutionPolicy Bypass -File "<skill>/scripts/invoke.ps1" `
  -SourceRoot "D:\Work\Project" `
  -EquationOutput "D:\Work\result\equations.txt" `
  -VariablesOutput "D:\Work\result\variables.tsv" `
  -Detailed
```

4. 从标准错误读取检测摘要，例如 `SelectedLanguage=CSharp` 以及各扩展名计数。
5. 退出码为 0 后，验证方程格式和 TSV 信号闭包，再汇报统计、输出路径和对应语言的静态分析边界。
6. 需要语言级语义时读取被选中子 skill 的 `SKILL.md`；需要完整 CLI 手册时再读取其 `references/使用手册.md`。

## 自动选择规则

- `.sln/.csproj` 强化 C# 判定。
- `project.godot` 强化 Godot 判定。
- `Cargo.toml`、`package.json`、`src-tauri`、`tauri.conf.json/json5` 强化 Rust+Tauri 判定。
- 如果只有一种受支持源码扩展名，直接选择对应子 skill。
- `project.godot` 对常见的 Godot+C# 混合工程拥有 Godot 路由优先权。Godot 与 Cargo/Tauri 同时出现，或独立 C# 与 Cargo/Tauri 同时出现时返回退出码 5；没有强标记时再按源码扩展名评分。歧义时不调用任何分析器。
- 完全没有 `.cs/.gd/.rs/.ts/.tsx` 时返回退出码 3。

## 退出码

- `0`：子 skill 扫描成功。
- `2`：参数或根目录错误。
- `3`：没有受支持源码，或强制语言与源码不匹配。
- `4`：检测或子分析器异常。
- `5`：语言/工程范围歧义，需要缩小根目录或显式指定语言。

不要把不同语言子 skill 的信号结果自动拼成跨语言调用图。Rust+Tauri 子 skill 虽统一扫描后端与前端，但当前不自动连接 Tauri `invoke` 和 Rust command。

