Skill: svenzhexu/xpeng-china-delivery (version 1.0.1)

--- 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 请求失败 | 该配置输出"查询失败"，继续其他配置 |


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)