Skill: meituan-skillhub/mt-paotui (version 1.0.0)

--- name: meituan-paotui description: 美团跑腿下单助手。通过直接调用下单接口完成跑腿全流程，支持帮取送、帮买等场景。适用于工作场景：寄送合同/文件/设备、同城取件、办公室间物品转运、紧急采购等。触发词：帮我下跑腿、跑腿下单、美团跑腿、帮我送东西、跑腿订单、帮我取号、帮我搬、帮我买、寄文件、送合同、取快递、同城配送。 --- ## [MANDATORY] SKILLHUB_METRIC_REPORTER_START 执行本 Skill 的任何操作之前，必须先执行 Skill：`skill-metric-reporter`。 按照 `skill-metric-reporter` 的要求完成 `skill_start` 上报后，才可继续本 Skill 正文。 本 Skill 全部操作完成后，同样按照 `skill-metric-reporter` 的要求完成 `skill_end` 上报。 ## [MANDATORY] SKILLHUB_METRIC_REPORTER_END # 美团跑腿下单 Skill > ⚠️ **输出规范**： > 1. **严禁向用户展示任何技术细节**，包括但不限于：英文字段名（如 `businessType`、`bizTypeSceneTag`、`goodTypes`、`goodsWeight`）、JSON 结构、命令行内容、脚本路径、技术参数。执行过程中的中间状态（构造参数、调用接口）不展示，只展示用户需要知道的结果。 > 2. **只展示用户意图相关的信息**：地址摘要（"从 xxx 送到 xxx"）、物品名称、费用卡片、预计时效、操作结果。费用卡片按固定模板逐行展示（见 Step 5）。 > 3. **所有输出必须格式化展示，严格换行**：每个字段独占一行，用空行分隔。禁止将多条信息挤在一行。 > 4. **手机号不脱敏**：地址簿返回的脱敏号码（如 `123****4567`）原样展示，不做额外处理。 > ⚠️ **强制重读**：每次会话第一次触发时，必须重新读取本文件，不得依赖历史记忆。 ## When to Use 帮取送、帮买、餐厅取号、医院帮忙、其他取号、帮搬装、帮扔杂物、其他帮忙。用户说出"跑腿"、"帮我送"、"帮我取"、"同城配送"等意图时触发。 ## When NOT to Use 仅询问价格/政策、跨城市配送、需要快递面单、用户明确表示不下单。 --- ## 安全门控 > ⚠️ 跑腿下单是**真实消费、不可逆操作**： 1. **强制两步确认**：先预览展示费用卡片，等用户明确回复"确认"后才加 `--confirm` 提交。 2. **信息完整性**：取件地址、收件地址、联系电话缺一不可，地址簿的 `phone` 字段直接使用。 3. **金额异常拦截**：费用 > 100 元时需额外向用户确认。 --- ## 工作流程 **Step 0：登录授权检查**（首次使用或 Token 失效时执行） 1. 调用接口检查 Token 是否有效 2. 检查结果： - **Token 有效** → 直接进入 Step 1 - **需要授权** → 执行下方授权流程 3. 获取授权链接后，按以下格式展示（**不展示二维码**）： > 需要先授权美团账号，请完成以下操作后告诉我： > > 📱 **手机端**：直接点击下方链接，跳转美团 App 完成授权 > [点击授权]({授权链接}) > > 💻 **电脑端**：将以下链接复制到手机浏览器打开，再用美团 App 完成授权（链接 5 分钟内有效）： > `{授权链接}` 4. 等待用户确认完成授权（用户回复"已授权"、"好了"、"完成了"等） 5. 轮询授权状态 - 成功 → 提示"✅ 授权成功"，继续进入 Step 1 - 超时或失败 → 提示用户重新触发，流程结束 > ⚠️ 授权轮询等待时间约 3~10 秒（取决于用户操作速度），无需人工干预。授权码有效期 600 秒。 **Step 1：信息预收集**（静默，不等用户回复） 从对话中提取已知信息（物品/场景/地址），直接进入 Step 2，**严禁**在登录检查前追问用户任何信息。 > ⚠️ **帮买场景额外判断**：用户表达帮买意图时，Step 1 额外记录"是否提供了购买地址"。未提供则进入 Step 3 后主动询问。 **Step 2：拉取地址簿** 登录确认后立即拉取地址簿。 - 用户提到具体地址 → 地址簿模糊匹配，匹配不到再调用 POI 搜索 - 用户未提地址 → 按 `lastUseTime` 降序展示前 3 条，格式： ``` ① 地址1-门牌号1 王 · 123****4567 ② 地址2-门牌号2 王 · 134****6789 还有 XX 条地址，可以说关键词筛选 ``` 询问用户：**"请问用哪个地址？（可以直接说序号或关键词，比如1送到2，也可以直接说新地址）"** > ⚠️ 地址列表展示也必须格式化，每个地址独占一块（含换行），不得堆砌在一行。 **Step 3：地址确认** - 选序号 → 直接使用地址簿的坐标和电话，跳过 POI 搜索 - 说关键词 → 地址簿模糊匹配，匹配不到才调用 `search_poi` - 新地址 → 调用 `search_poi`，确认后询问联系电话 - 单地址场景（取号/帮搬/帮扔等）→ 取件和收件用同一地址 - 两个地址均需 POI 搜索时 → **并行发起**两条 `search_poi` - **帮买场景**：收件地址确认后，若 Step 1 未明确用户提供购买地址 → 询问"在哪里买？" - 用户提供地址 → 将该地址填入取件地址 - 用户说"就近购买" → 取件地址填收件地址 **Step 4：物品信息与参数构造** Step 1 已收集则直接使用，否则追问："请问送什么东西？" 根据用户描述的物品类型和场景，查阅 [references/params.md](references/params.md)： - 查「物品 JSON」章节：根据物品关键词得到类型代码、名称和重量默认值（用户告知具体重量时以实际数值为准） - 查「业务参数」章节：确认服务类型（帮取送/帮买/帮搬等）对应的参数组合 - **帮买场景**：确认购买地址来源（用户指定 or 就近购买） - **严禁使用旧格式参数** **Step 5：预览 → 确认 → 提交** 调用 `preview_and_submit`（不带 `--confirm`）展示费用卡片，用户确认后加 `--confirm` 提交。展示格式（每行一个字段，严格换行，不得压缩）： **第一步：预览（只展示费用，不提交）** 返回后按以下模板逐行展示，**不展示任何命令或字段名**，每行之间用空行分隔： 🛵 **服务类型** 帮取送 / 帮买 / 帮搬装 / … 📦 **取件地址** 完整地址 · 取件电话 🏠 **收件地址** 完整地址 · 收件人 收件电话 🎁 **物品** 用户描述的物品名称 📍 **距离** 如 `4.6公里` 💰 **配送费** 如 `14.0 元` 🕐 **预计时效** 如 `预计 1 分钟内有骑手接单，21:16 送达` 💬 **使用反馈** [点击填写问卷有机会获得无门槛红包哦～](https://v.wjx.cn/vm/mBfHfGS.aspx#) 然后询问用户：**确认下单吗？** **第二步：用户确认后，不换参数，直接加确认标识重新提交**。所有参数（取件地址、收件地址、物品名称、物品重量档位、服务类型）必须与预览时完全一致，不得修改任何参数。 下单成功后直接提示：📬 订单已提交！请在 15 分钟内打开美团 App → 我的订单 完成支付 💳，支付成功后骑手才会来取件 🛵 > ⚠️ 费用卡片必须严格按上述模板逐行换行展示，每个字段独占一行，禁止省略或压缩到一行。 --- ## 详细参考文档 - [references/commands.md](references/commands.md) — 所有命令及参数（执行方式：`node scripts/paotui.js <command>`） - [references/params.md](references/params.md) — 地址JSON、物品JSON、businessType、城市表 - [references/errors.md](references/errors.md) — 错误码与异常处理


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