# runtime_assert

> 运行时断言：在运行中的游戏上验证节点状态/场景结构/屏幕文本/性能/截图对比。agent 可任意时刻调用，不必走 workflow.dev_loop。全部依赖 game-bridge（需先 game_bridge_install + 游戏运行中）。

| 属性 | 值 |
|------|-----|
| 所属层 | bridge |
| 安全级别 | danger-api |
| 需要 Godot | 是 |
| 需要编辑器 | 否 |
| 只读 | 是 |
| 长耗时 | 否 |

## Actions

- `node_state`
- `scene_structure`
- `screen_text`
- `perf`
- `screenshot_diff`

## Parameters

| 参数 | 类型 | 必填 | 说明 |
|------|------|------|------|
| `action` | enum (5 项) | ✓ | 断言类型 |
| `project_path` | string |  | 项目路径（screenshot_diff 必填：解析 user:// 截图落盘位置） |
| `path` | string |  | node_state: 节点路径（如 /root/Main/Player） |
| `expect` | object |  | node_state: 期望的属性键值对（如 {"health": 100, "position": {"x": 0}}） |
| `tolerance` | number |  | node_state/perf: 数值容差（默认 0，精确匹配） |
| `nodes` | array |  | scene_structure: 期望的节点列表 |
| `text` | string |  | screen_text: 要查找的文本 |
| `present` | boolean |  | screen_text: true=断言文本存在（默认），false=断言不存在 |
| `baseline` | object |  | perf: 期望的性能基线（如 {"fps": 60}） |
| `reference` | string |  | screenshot_diff: 参考截图路径（res://、项目相对或绝对路径；须在白名单内） |
| `threshold` | number |  | screenshot_diff: 像素差异容忍阈值（0-1，默认 0.12）。per-pixel 归一化 RGB 距离严格大于此值才计为差异像素；值越小越严格 |
| `max_diff_ratio` | number |  | screenshot_diff: 允许的差异像素占比上限（0-1，默认 0.05）。严格像素回归传 0；常规视觉回归建议以同布局好图对校准（本仓实测同布局好图对 ≈0.176，勿低于该量级） |

## 风险分布

读 5

---
<!-- AUTO-GENERATED by scripts/gen-tool-docs.mjs from capability-matrix.json v0.32.21. DO NOT edit manually; re-run npm run gen:tool-docs after tool changes. -->
