← Back to Skills Marketplace
miracleaaa

maldives-island-picker

by miracleaaa · GitHub ↗ · v1.0.3 · MIT-0
cross-platform ⚠ suspicious
104
Downloads
1
Stars
0
Active Installs
4
Versions
Install in OpenClaw
/install maldives-island-picker
Description
马尔代夫选岛助手,帮助用户根据旅行类型、个人诉求、交通偏好和预算,从各种攻略中筛选合适的马尔代夫岛屿,并生成结构化选岛报告。当用户提到"马尔代夫选岛"、"马代选岛"、"马尔代夫去哪个岛"、"马尔代夫推荐"、"马代推荐岛屿"、"马尔代夫亲子/蜜月/度假选岛"、"马尔代夫预算"等关键词时,请使用此 skill。即使用...
README (SKILL.md)

马尔代夫选岛助手

通过四个步骤帮助用户找到最适合的马尔代夫岛屿:收集需求 → 搜索攻略 → 查询商品 → 生成报告。

⚠️ 安全提示

  • 输入验证:所有岛屿名称会经过白名单验证,只允许中文、英文、数字和常见标点
  • 命令执行:优先使用 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. 危险字符过滤:移除 ; & | $ ( ) { } [ ] \x3C > \ ` 等特殊字符

验证通过后,使用 npx 查询飞猪商品(无需全局安装):

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,报告中标注价格为攻略参考价
  • 岛屿名称包含特殊字符

    • 拒绝执行查询,提示用户检查岛屿名称
    • 记录安全日志,防止潜在的攻击尝试
  • 某岛屿无在售商品:在该岛屿的商品卡片处标注"暂无在售商品",给出飞猪搜索建议

  • 用户需求矛盾:如预算很低但想住顶奢岛,友善地说明情况并给出折中方案

  • 信息不完整:如果某个岛屿的信息不够完整,在报告中标注"信息待补充",并建议用户进一步查证

Usage Guidance
What to check before installing/use: 1) Inspect SKILL.md in a raw/text editor for hidden unicode control characters (zero‑width, LRM/RLM, etc.) and remove them. The pre-scan flagged this — it can be used to hide instructions or manipulate evaluation. 2) Confirm how flyai-cli is expected to authenticate: the skill calls npx @fly-ai/flyai-cli but lists no API key or env var. Ask the publisher whether the CLI needs credentials and where they are stored; do not provide unrelated secrets. 3) Audit the island‑name validation rules (the SKILL.md lists disallowed characters) to ensure they cover quotes/backticks/newlines and prevent shell injection when the agent constructs npx commands. 4) Treat npx executions as running third‑party code: prefer running in a sandbox or require manual confirmation before the agent executes npx. 5) Note that create_file writes to the current working directory—ensure the runtime environment has appropriate permissions and no sensitive files will be overwritten. 6) The included export-pdf.py is small and standard; if you will use it, install dependencies locally and verify they come from PyPI. If you want stronger assurance, request the skill author to (a) remove hidden control chars, (b) document flyai-cli auth requirements, and (c) add explicit, conservative validation/escaping around any shell calls.
Capability Analysis
Type: OpenClaw Skill Name: maldives-island-picker Version: 1.0.3 The skill utilizes risky capabilities including shell command execution via `npx`, web searching, and file system access, which are plausibly required for its stated purpose but represent significant attack surfaces. While `SKILL.md` includes proactive security instructions for the AI agent to perform input sanitization and whitelisting to prevent shell injection, the reliance on external CLI tools and the potential for SSRF in the `scripts/export-pdf.py` script (via `weasyprint` processing external content) are inherent vulnerabilities. No evidence of intentional malice, data exfiltration, or obfuscation was found.
Capability Assessment
Purpose & Capability
Name/description (Maldives island picker) align with the instructions: collecting user intent, searching web sources, and querying marketplace results via an external CLI to build a report. No unrelated credentials, binaries, or system-level accesses are requested.
Instruction Scope
SKILL.md stays within the stated purpose: guides intent collection, parallel web_search/web_fetch, validation of island names, calling npx @fly-ai/flyai-cli, and saving a markdown report. This necessarily fetches arbitrary web content and runs an external CLI; that is expected for this use case but raises normal risks (remote content parsing and running an external package via npx). The skill includes whitelist and filtering steps to reduce command injection risk, which is good, but the validation rules should be audited for completeness.
Install Mechanism
Instruction-only skill with no install spec. The only included code is a small export-pdf.py helper (standard Markdown→PDF using markdown + weasyprint). No downloads from arbitrary URLs or archive extraction are present.
Credentials
The skill requests no environment variables or credentials, which is appropriate. However, it instructs use of npx @fly-ai/flyai-cli to query marketplace data; the SKILL.md does not declare whether flyai-cli requires API keys or how they would be provided. That mismatch (external CLI usage without declared credentials) is worth confirming.
Persistence & Privilege
always is false, agent-autonomy is default. The skill writes reports to the current working directory via create_file (documented). It does not request persistent system-wide changes or other skills' configs.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install maldives-island-picker
  3. After installation, invoke the skill by name or use /maldives-island-picker
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.3
maldives-island-picker 1.0.3 - No code or content changes detected in this version. - Functionality and documentation remain identical to the previous release.
v1.0.2
- 增加 `flyai-cli` 工具认证说明,明确无需认证或凭据,可直接搜索商品。 - 调整 PDF 导出推荐方案:首选本地 pandoc 工具转换,避免用户上传敏感数据到第三方服务,移除在线转换工具推荐。 - 优化表述和结构,无核心功能变更。
v1.0.1
**本次为安全与用户体验提升小版本更新。** - 增加关键安全提示:输入验证、命令执行与文件操作安全,防止恶意或错误输入影响运行环境。 - 对飞猪商品查询步骤增加岛屿名称安全验证,自动过滤危险字符,仅允许安全字符,拒绝执行可疑命令。 - 优化 `flyai-cli` 工具使用方式,推荐 `npx` 运行,避免全局安装带来的风险。 - 更新 PDF 报告导出建议,主推在线转换和 pandoc,减少自动安装依赖,提升兼容性与安全性。 - 明确异常处理方案,在报告和交互中对各类错误提供更友好的说明和解决建议。 - 其他流程及对话风格保持不变。
v1.0.0
Initial release of maldives-island-picker. - Helps users choose the best Maldives islands based on travel type, priorities, transport preference, and budget. - Guides users through four steps: demand collection, multi-source strategy search, real-time product query, and structured island report generation. - Triggers automatically when related keywords are detected, including general user intent about Maldives island selection. - Generates comprehensive reports with island highlights, real user reviews, product cards, and actionable booking links. - Offers robust error handling and guidance even with incomplete user information.
Metadata
Slug maldives-island-picker
Version 1.0.3
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 4
Frequently Asked Questions

What is maldives-island-picker?

马尔代夫选岛助手,帮助用户根据旅行类型、个人诉求、交通偏好和预算,从各种攻略中筛选合适的马尔代夫岛屿,并生成结构化选岛报告。当用户提到"马尔代夫选岛"、"马代选岛"、"马尔代夫去哪个岛"、"马尔代夫推荐"、"马代推荐岛屿"、"马尔代夫亲子/蜜月/度假选岛"、"马尔代夫预算"等关键词时,请使用此 skill。即使用... It is an AI Agent Skill for Claude Code / OpenClaw, with 104 downloads so far.

How do I install maldives-island-picker?

Run "/install maldives-island-picker" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is maldives-island-picker free?

Yes, maldives-island-picker is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does maldives-island-picker support?

maldives-island-picker is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created maldives-island-picker?

It is built and maintained by miracleaaa (@miracleaaa); the current version is v1.0.3.

💬 Comments