Skill: miracleaaa/maldives-island-picker (version 1.0.3)

--- name: maldives-island-picker description: 马尔代夫选岛助手，帮助用户根据旅行类型、个人诉求、交通偏好和预算，从各种攻略中筛选合适的马尔代夫岛屿，并生成结构化选岛报告。当用户提到"马尔代夫选岛"、"马代选岛"、"马尔代夫去哪个岛"、"马尔代夫推荐"、"马代推荐岛屿"、"马尔代夫亲子/蜜月/度假选岛"、"马尔代夫预算"等关键词时，请使用此 skill。即使用户只是笼统地说想去马尔代夫但不知道选哪个岛，也应该触发此 skill。英文关键词：Maldives island selection, Maldives resort recommendation, Maldives honeymoon, Maldives family trip, which Maldives island to choose. --- # 马尔代夫选岛助手 通过四个步骤帮助用户找到最适合的马尔代夫岛屿：收集需求 → 搜索攻略 → 查询商品 → 生成报告。 ## ⚠️ 安全提示 - **输入验证**：所有岛屿名称会经过白名单验证，只允许中文、英文、数字和常见标点 - **命令执行**：优先使用 `npx` 运行外部工具，避免全局安装 - **文件操作**：报告保存到当前工作目录，请确保无重要文件会被覆盖 ## 概述 马尔代夫有上百个度假岛屿，每个岛的定位、设施、价格差异巨大。本 skill 通过结构化的需求收集、多源攻略搜索、飞猪实时商品查询和智能匹配，帮用户从海量选择中快速锁定 3-5 个最合适的岛屿。 ## 工作流程 ### 步骤 1：收集用户旅行意图 从用户消息中提取四个维度的信息：**旅行类型**（亲子/情侣/朋友/单人/多代）、**个人诉求**（浮潜/水屋/美食/沙滩等，选 1-3 个排优先级）、**交通偏好**（快艇/水飞/内飞/不限）、**预算**（穷游8k-1.5w/中等1.5w-3w/轻奢3w-5w/奢华5w+）。 - 如果用户已提供完整信息 → 直接整理确认，进入步骤 2 - 如果信息不完整 → 读取 `references/intent-collection.md` 获取详细引导维度，逐一询问 - 如果用户说"随便推荐" → 读取 `references/intent-collection.md` 中的兜底方案，输出热门岛屿速查矩阵 确认模板： ``` 好的，我整理一下你的需求： - 🧑‍🤝‍🧑 旅行类型：{旅行类型} - ⭐ 核心诉求：{诉求1} > {诉求2} > {诉求3} - ✈️ 交通偏好：{交通方式} - 💰 预算范围：{预算档位/具体数值} 确认无误的话，我来帮你搜索合适的岛屿！ ``` ### 步骤 2：多源搜索选岛攻略 根据步骤 1 收集到的用户需求，通过多个信息源搜索选岛攻略，确保信息全面可靠。 #### 2.1 执行搜索（3 轮并行搜索） 使用 `web_search` 工具**同时并行发起 3 轮**搜索，每轮覆盖不同维度的信息源： | 轮次 | 关键词模板 | 目标 | |------|-----------|------| | 第 1 轮 | `马尔代夫 {旅行类型} {核心诉求} 选岛攻略 {预算}` | 综合攻略（知乎、马蜂窝等） | | 第 2 轮 | `site:xiaohongshu.com 马尔代夫 {旅行类型} {核心诉求} 推荐` | 小红书真实体验 | | 第 3 轮 | `马尔代夫 {核心诉求} {预算} 岛屿排名 对比` | 排名和横向对比 | 3 轮搜索必须并行发起，不要等第 1 轮结果返回后再发第 2 轮。搜索结果汇总后，对信息最丰富的 1-2 个链接用 `web_fetch` 获取详细内容。 #### 2.2 信息提取 从搜索结果中直接提取以下信息（在搜索过程中顺带确认岛屿中英文名称的正确性）： - **岛屿名称**（中英文）、**星级**、**价格范围**、**交通方式** - **核心亮点**（浮潜/沙滩/餐饮评级）、**适合人群** - **真实评价**（标注来源平台） ### 步骤 3：飞猪商品查询（获取真实价格和预订链接） 在步骤 2 筛选出候选岛屿后，使用 `flyai-cli` 工具从飞猪平台获取每个岛屿的真实酒店商品、实时价格和预订链接。这一步能让报告从"攻略参考价"升级为"可直接下单的真实商品"。 #### 3.1 快速查询 **⚠️ 安全警告**：在执行任何命令前，必须对岛屿名称进行验证！ 对步骤 2 筛选出的候选岛屿，首先验证岛屿名称的安全性： 1. **白名单验证**：岛屿名称只能包含中文、英文字母、数字、空格和常见标点（`-`、`'`） 2. **长度限制**：岛屿名称不超过 50 个字符 3. **危险字符过滤**：移除 `; & | $ ` ( ) { } [ ] < > \ ` 等特殊字符 验证通过后，使用 `npx` 查询飞猪商品（无需全局安装）： ```bash npx @fly-ai/flyai-cli keyword-search --query "马尔代夫 {已验证的岛屿名} 酒店" ``` 从返回结果中为每个岛屿选 **1 个**最匹配用户需求的商品，提取：商品名称、图片（`picUrl`）、预订链接（`jumpUrl`）、套餐内容。 #### 3.2 失败处理 - `flyai-cli` 不可用 → 跳过此步骤，报告中标注攻略参考价 + 飞猪/携程手动搜索链接 - 某岛屿无商品 → 标注"暂无在售商品" - 岛屿名称包含特殊字符 → 拒绝执行查询，提示用户检查岛屿名称 ### 步骤 4：生成选岛报告 综合步骤 1-3 的信息生成结构化选岛报告。默认推荐 **3 个**岛屿（用户要求更多时可扩展到 5 个）。 生成报告前，读取 `references/report-template.md` 获取完整的报告模板和丰富度要求，严格按照模板输出。 报告的丰富度很重要——每个岛屿必须包含： - **信息表格**：星级、预算、交通、浮潜/沙滩/餐饮 A/B/C 评级 - **推荐理由**：至少 3 条，结合用户核心诉求 - **真实反馈**：至少 2 条，标注来源平台（如"—— 小红书用户"） - **商品卡片**：1-2 个飞猪商品，含图片 `![]({picUrl})`、商品表格、`[点击预订]({jumpUrl})` - **横向对比表**：所有岛屿统一 A/B/C 评级 - **选岛建议**：🎯最推荐 / 💰性价比 / ✨体验最佳 - **注意事项**：通用项 + 根据用户场景的个性化提示 #### 匹配度排序 按以下权重排序推荐岛屿：核心诉求匹配（35%）> 旅行类型（25%）= 预算匹配（25%）> 交通偏好（15%）。 ### 步骤 5：导出报告 报告生成后，**默认**使用 `create_file` 将报告保存到当前工作目录，文件名格式：`马尔代夫选岛报告-{日期}.md`。 ## 对话风格 - 像一个去过很多次马尔代夫的旅行达人朋友一样交流，热情但专业 - 使用 emoji 让对话更生动活泼 - 对用户的选择给予正面反馈，比如"浮潜+拖尾沙滩的组合太棒了！" - 在专业术语出现时自然地解释，比如"house reef（就是从岛上直接下水就能浮潜的珊瑚礁）" ## 错误处理 - **小红书搜索无结果**：尝试调整关键词重新搜索，或基于已有知识给出推荐 - **flyai-cli 不可用**： - 不要自动执行 `npm i -g`，而是提示用户使用 `npx` 或手动安装 - 跳过步骤 3，报告中标注价格为攻略参考价 - **岛屿名称包含特殊字符**： - 拒绝执行查询，提示用户检查岛屿名称 - 记录安全日志，防止潜在的攻击尝试 - **某岛屿无在售商品**：在该岛屿的商品卡片处标注"暂无在售商品"，给出飞猪搜索建议 - **用户需求矛盾**：如预算很低但想住顶奢岛，友善地说明情况并给出折中方案 - **信息不完整**：如果某个岛屿的信息不够完整，在报告中标注"信息待补充"，并建议用户进一步查证


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