# ISS-0002: 诊断流程中无主动的节点/组件健康检查

## Background

多个 case 中观察到 agent 在分析 latency spike / 性能问题时，没有主动检查节点是否有重启、下线、OOM 等基础设施层面的异常。agent 直接跳入查询分析（TopSQL、SlowQuery），但对于基础设施故障场景（节点重启、worker 下线、OOM），组件健康信号是最先出现的。

### TCOC-5011 中的表现

3/4 coprocessor TiKV worker 同时下线导致集群 50 分钟中断，但 agent 没有主动检查组件运行状态和重启次数，而是先分析查询。

### TCOC-5140 中的表现

4 个 TiKV 节点在 ScaleResourcePool 操作中滚动重启，导致 latency spike。Agent 收集了 metrics/TopSQL/SlowQuery 但：
- 没有主动检查哪些节点重启了（需要用户第 2 轮提问才去查）
- 没有检查重启类型（SIGTERM vs SIGKILL，需要用户第 3 轮提问）
- 没有检查 Activity Hub 中的运维操作（需要用户第 4 轮提问）

## Root Cause

`collect_evidence.py` A2 段已采集组件健康数据（process_start_time、重启次数、worker 内存），但 SKILL.md Node C 的分析路由中没有将"节点重启/下线"作为优先路由信号。Agent 收到 A2 的健康数据后不知道该怎么用。

## Fix Plan

### Step 1: 在 SKILL.md Node C 增加健康检查路由

在 Node C（分析路由决策）开头增加：

```markdown
### Node Health Check (FIRST — before query analysis)

Check A2 evidence for node restarts or anomalies:

1. **Any node restarted in the event window?** (process_start_time changed)
   - YES → enter Node Restart Analysis path:
     a. Query Activity Hub events for human operations (ISS-0039)
     b. Check termination signals SIGTERM vs SIGKILL (ISS-0038)
     c. Check memory vs node spec for OOM assessment
     d. Correlate restart timing with latency spikes
   - NO → continue to query analysis (TopSQL/SlowQuery)

2. **Any component count changed?** (worker count decreased)
   - YES → enter Component Failure path:
     a. Identify which components went offline
     b. Check if remaining capacity is sufficient
     c. Correlate with observed symptoms
   - NO → continue to query analysis
```

### Step 2: 在 collect_evidence.py A2 输出中高亮重启信号

当 A2 检测到 process_start_time 在事件窗口内时，在 summary 中显式标注：

```
⚠️ NODE RESTART DETECTED: tikv-0tx048 restarted at 02:50 UTC (within event window)
⚠️ NODE RESTART DETECTED: tikv-14rj46 restarted at 02:52 UTC (within event window)
→ ROUTING: Enter Node Restart Analysis before query analysis
```

### Step 3: 验证

1. Replay TCOC-5140：agent 应在首轮自动发现 4 个节点重启，主动查 Activity Hub 和终止信号
2. Replay TCOC-5011：agent 应在首轮发现 worker 数量变化，优先进入 worker 分析路径
