# ISS-0060: Agent 忽略用户在对话中提供的 Clinic URL

## Background

Issue #389 workspace `ws-1778030624057-6fb0878b4`：用户在对话开始时就提供了一个 Clinic URL
（包含了 orgId、projectId、clusterId、clusterName 等全部信息）。用户后来抱怨：
"Didn't I give you the URL at first?" — 说明 agent 在后续诊断中没有利用这个 URL，
而是重新通过其他手段查找集群信息，甚至失败。

Clinic URL:
```
https://clinic.pingcap.com/portal/dashboard/cloud/ngm.html?provider=aws&region=ap-east-1&orgName=xiao%27s+Org&orgId=1372813089209299036&projectId=1372813089454617035&clusterId=10654346955651917737&clusterName=Cluster0&deployType=shared&version=v8.5.3#/slow_query?digest=&from=86400&limit=100&show_internal=true&term=inner_game&to=now
```

从 URL 可以提取：
- `orgId`: 1372813089209299036
- `projectId`: 1372813089454617035
- `clusterId`: 10654346955651917737
- `clusterName`: Cluster0
- `deployType`: shared
- `version`: v8.5.3
- `region`: ap-east-1
- `provider`: aws
- 还有 slow_query 时间窗口和关键词 `term=inner_game`

Workspace: ws-1778030624057-6fb0878b4
Reported via: GitHub issue #389

## Observed Behavior

- 用户提供了完整的 Clinic URL（包含 clusterId 等关键信息）
- Agent 在后续诊断中没有解析并利用这个 URL 中的参数
- 导致后续查询时找不到集群或使用错误的集群信息
- 用户不得不重复提供信息

## Root Cause

SKILL.md 中没有"解析用户提供的 URL 中的参数"这一步骤。
Agent 没有被指导在诊断开始时检查用户消息中是否包含 Clinic URL 或其他含有集群标识的 URL，
并从中提取 `clusterId`、`orgId`、`projectId`、`deployType` 等参数用于后续 API 调用。

## Fix Plan

### Step 1: 在 SKILL.md Step 0（初始化）增加 URL 解析步骤

```
Step 0b: 检查用户消息中的 URL（新增）
若用户消息或 workspace context 中包含 Clinic URL，解析以下参数：
- clusterId → 用于 Clinic API 调用
- orgId, projectId → 用于 TiDB Cloud API 调用
- deployType (shared/dedicated/premium) → 决定 API 路由
- version → 记录 TiDB 版本
- region, provider → 记录部署环境
- URL fragment 中的 time range → 作为时间窗口参考

将这些参数存储并在后续 A0-A6 各段使用，避免重复查找。
```

### Step 2: 在 collect_evidence.py 支持从 URL 初始化参数

```python
# 支持通过 --clinic-url 传入 Clinic URL，自动解析并覆盖 cluster_id 等参数
# 示例: python collect_evidence.py --clinic-url "https://clinic.pingcap.com/..."
```

### Step 3: SKILL.md 中增加 URL 参数提取示例

文档化 Clinic URL 格式及可提取参数，供 Agent 参考。

## Verification

1. 在 SKILL.md 中添加 Step 0b 后，使用包含 Clinic URL 的 workspace 重跑
2. 验证 collect_evidence.py 使用了 URL 中的 clusterId，而非重新查找
