小鹏汽车交付周期监控工具。XPeng China delivery lead time monitor. 查询指定小鹏车型(一个或多个)不同配置版本的交付周期(单位:周)。 Query XPeng (Xpeng) vehicle model delivery lead time / wait time in we...
---
name: xpeng-china-delivery
description: |
小鹏汽车交付周期监控工具。XPeng China delivery lead time monitor.
查询指定小鹏车型(一个或多个)不同配置版本的交付周期(单位:周)。
Query XPeng (Xpeng) vehicle model delivery lead time / wait time in weeks for China market.
当用户提到以下任何场景时,都应使用此 Skill:
- "小鹏交付周期"、"小鹏交付时间"、"小鹏提车周期"、"小鹏提车时间"
- "XPeng交付"、"小鹏交付监控"、"小鹏交付周期监控"
- "查询小鹏车型交付"、"小鹏各配置交付周期"
- "小鹏购车要等多久"、"小鹏订车到提车要多久"、"小鹏什么时候能提车"
- "小鹏GX交付"、"G7等几周"、"小鹏M03多久能到"
- "/xpeng-china-delivery"
- XPeng delivery time, XPeng delivery lead time, XPeng delivery wait, XPeng wait time
- XPeng delivery period, XPeng how long to deliver, XPeng delivery estimate
- When will my XPeng be delivered, XPeng delivery schedule, XPeng delivery weeks
- 当用户询问小鹏汽车某个/某些车型的交付等待时间、提车周期、订车到交付需要多久时,即使没有明确说"交付周期",也使用此 Skill
- When a user asks about XPeng vehicle delivery time, wait time, or lead time for any model, even without explicitly saying "delivery", use this Skill
---
# 小鹏汽车交付周期监控 Skill
## 目标
查询指定小鹏车型各配置版本的交付周期信息,以表格形式输出。交付周期单位为**周**。
## 技术实现
所有网络请求通过 `scripts/` 目录下的 Node.js 脚本执行,使用 Bash 工具运行 `node <script>.js`。不使用 Python、curl 或其他方式。
脚本目录:`.claude/skills/xpeng-china-delivery/scripts/`
| 脚本文件 | 用途 | 用法 |
|---------|------|------|
| `fetch_car_series.js` | 获取全部车型列表 | `node fetch_car_series.js` |
| `fetch_car_versions.js` | 获取指定车型的配置版本列表 | `node fetch_car_versions.js <carSeriesCode>` |
| `fetch_delivery_period.js` | 查询指定配置的交付周期 | 见下方详细说明 |
### fetch_delivery_period.js 用法
该脚本根据车型类型使用不同的 API 策略:
| 模式 | 用法 | 适用车型 | 输出格式 |
|------|------|---------|---------|
| Case 1 单版本 | `node fetch_delivery_period.js <carVersionCode> <carSeriesCode>` | GX、M03、P7 系列 | `OK\|min\|max\|carName` |
| Case 2 单版本 | `node fetch_delivery_period.js <carVersionCode> <carSeriesCode>` | 其他车型 | `OK\|min\|max\|carName` |
| Case 2 批量 | `node fetch_delivery_period.js <carSeriesCode> --all` | 其他车型(推荐) | `versionCode\|OK\|min\|max\|carName`(每行一个版本) |
脚本自动根据 carSeriesCode 判断使用 Case 1 还是 Case 2。
## 核心流程
### 步骤一:获取全部车型列表
运行 `scripts/fetch_car_series.js`,解析输出获取全部车型列表。
输出格式(每行一个):`序号|carSeriesCode|carSeriesName`
### 步骤二:识别用户想监控的车型
根据用户的问题识别用户想要监控哪几个(一个或多个)`carSeriesCode`。匹配时支持用户说车型名称(如"G6")或完整名称(如"2026款G6"),做模糊匹配。
如果用户没有提供具体车型,或提供的车型名无法匹配,则使用 AskUserQuestion 工具展示全部车型列表并让用户选择:
> | 序号 | carSeriesCode | carSeriesName |
> |------|--------------|---------------|
> | 1 | GX | GX |
> | 2 | M03_2026 | M03 |
> | ... | ... | ... |
>
> 请告诉我您想查询哪些车型的交付周期?可以提供车型名称或序号,支持多个(如:1,3,5 或 GX,G7)。
### 步骤三:获取每个车型的配置版本列表
针对用户选中的每个 `carSeriesCode`,运行 `scripts/fetch_car_versions.js <carSeriesCode>`。
输出格式(每行一个):`carVersionCode|carVersionName`
### 步骤四:查询每个配置版本的交付周期
根据车型是否为 GX/M03/P7 系列,使用不同的查询方式。脚本会根据 `carSeriesCode` 自动判断。
#### Case 1:GX/M03/P7 系列车型
针对每个 `carVersionCode`,运行:
```
node scripts/fetch_delivery_period.js <carVersionCode> <carSeriesCode>
```
**脚本内部逻辑:**
1. 请求 `listSpecGroupAndSpecList?carVersionSn=${carVersionCode}` 获取可选配置规格列表
2. 遍历每个配置组,在 `specList` 中找到 `isDefault=1` 的默认规格,收集其 `carSpecificationCode`
3. 组成排序后的 `carSpecificationCode` 列表,作为该车型的默认配置规格(列表可以为空,表示无默认选中配置)
4. 请求 `listCarInfoList?carVersionSn=${carVersionCode}` 获取 SKU 列表
5. 对每个 SKU,提取其 `specList` 中所有 `specCode` 组成列表并排序
6. 找到 `specCode` 列表与默认配置列表完全匹配的 SKU(应唯一)
7. 输出该 SKU 的 `minDeliveryPeriod`、`maxDeliveryPeriod` 和 `carName`
输出格式:`OK|minDeliveryPeriod|maxDeliveryPeriod|carName` 或 `NO_DATA|0|0|` 或 `ERROR|0|0|`
#### Case 2:其他车型
**推荐方式(批量查询):** 运行一次即可获取该车型所有版本的交付周期:
```
node scripts/fetch_delivery_period.js <carSeriesCode> --all
```
**脚本内部逻辑:**
1. 请求 `allInOne?carSeriesSn=${carSeriesCode}` 获取全部数据
2. 从响应中提取 `carSpecGroupVoMap`(配置规格)和 `carInfoVoMap`(SKU 信息),两者均以 `carVersionCode` 为 key
3. 对每个 `carVersionCode`:
- 从 `carSpecGroupVoMap` 中找到默认配置规格(同 Case 1 的匹配逻辑)
- 从 `carInfoVoMap` 中找到匹配的 SKU
- 输出该版本的交付周期
输出格式(每行一个版本):`carVersionCode|OK|minDeliveryPeriod|maxDeliveryPeriod|carName` 或 `carVersionCode|NO_DATA|0|0|`
**备选方式(单版本查询):** 也可按版本逐一查询:
```
node scripts/fetch_delivery_period.js <carVersionCode> <carSeriesCode>
```
输出格式同 Case 1:`OK|minDeliveryPeriod|maxDeliveryPeriod|carName` 或 `NO_DATA|0|0|` 或 `ERROR|0|0|`
#### 如何选择 Case
脚本自动判断,规则如下:
- **Case 1**:`carSeriesCode` 以 `GX`、`M03`、`P7`(不区分大小写)开头
- **Case 2**:其他所有车型
### 步骤五:输出结果
以表格形式输出每个车型下的交付周期。脚本输出中最后一个 `|` 后的字段即为 `carName`,**必须将完整的 carName 原样输出到表格的"车辆名称"列,不得省略或截断**。
| 车型 | 配置版本 | 车辆名称 | 最短交付周期 | 最长交付周期 |
|------|---------|---------|------------|------------|
| GX | 1585 四驱 Max | GX 1585 四驱 Max 仰望绿 | 4周 | 6周 |
| GX | 665 Max | GX 665 Max 星云白 | 6周 | 8周 |
## 执行约束
1. **严格遵守流程**:按步骤一至步骤五顺序执行,不跳过任何步骤。
2. **单位为周**:交付周期单位是**周**,不要理解为"天"或做任何转换。
3. **默认配置匹配**:交付周期取默认配置规格对应 SKU 的数据,不是取 SKU 列表第一个元素。
4. **统一使用 Node.js 脚本**:所有请求通过 `scripts/` 下的脚本执行,不使用 curl 或 Python。
5. **Case 2 优先批量**:对于非 GX/M03/P7 车型,优先使用 `--all` 模式一次获取全部版本,减少 API 请求次数。
6. **容错**:某个车型请求失败时,输出该车型查询失败,继续查询其他车型,不中断整个流程。
7. **完整输出 carName**:脚本输出的最后一个字段是 `carName`,输出表格时必须将其完整填入"车辆名称"列,不得省略、截断或简写。
## 异常处理
| 异常场景 | 处理方式 |
|---------|---------|
| navigationBar API 请求失败 | 报告网络错误,无法继续 |
| 用户提供的车型不在列表中 | 提示用户重新选择,展示完整列表 |
| 配置页 HTML 中未找到版本信息 | 该车型输出"暂无配置信息" |
| listSpecGroupAndSpecList / allInOne API 返回失败 | 该配置输出"查询失败",继续其他配置 |
| listCarInfoList API 返回空 data | 该配置输出"N/A" |
| 默认配置未匹配到任何 SKU | 该配置输出"N/A" |
| listCarInfoList API 请求失败 | 该配置输出"查询失败",继续其他配置 |
don't have the plugin yet? install it then click "run inline in claude" again.