Skill flagged — suspicious patterns detected

ClawHub Security flagged this skill as suspicious. Review the scan results before using.

Local Guide - Food & Travel

v1.0.0

本地通推荐技能 - 利用互联网全域搜索,绕过商业评价平台,挖掘真正受当地人认可的地道去处。支持美食、小吃、酒店、景点、温泉、停车场等多种类型推荐。触发词:本地通推荐、本地人推荐、老字号、地道美食、小众景点、性价比酒店。

0· 63·0 current·0 all-time

Install

OpenClaw Prompt Flow

Install with OpenClaw

Best for remote or guided setup. Copy the exact prompt, then paste it into OpenClaw for pythonmango/local-guide.

Previewing Install & Setup.
Prompt PreviewInstall & Setup
Install the skill "Local Guide - Food & Travel" (pythonmango/local-guide) from ClawHub.
Skill page: https://clawhub.ai/pythonmango/local-guide
Keep the work scoped to this skill only.
After install, inspect the skill metadata and help me finish setup.
Use only the metadata you can verify from ClawHub; do not invent missing requirements.
Ask before making any broader environment changes.

Command Line

CLI Commands

Use the direct CLI path if you want to install manually and keep every step visible.

OpenClaw CLI

Bare skill slug

openclaw skills install local-guide

ClawHub CLI

Package manager switcher

npx clawhub@latest install local-guide
Security Scan
VirusTotalVirusTotal
Suspicious
View report →
OpenClawOpenClaw
Suspicious
medium confidence
!
Purpose & Capability
The skill's purpose (web search-based local recommendations and optional Feishu card output) aligns with the included scripts (search_module.py, feishu_card.py, send_feishu_card.py). However the skill metadata declares no required environment variables or credentials while README and the scripts clearly require EXA_API_KEY (core search API) and optionally FEISHU_APP_ID / FEISHU_APP_SECRET for Feishu output. That omission is an incoherence: a search-based skill legitimately needs a search API key, and the FEISHU creds are reasonable for the card-sending feature — but they should be declared in the skill's metadata.
!
Instruction Scope
SKILL.md describes automated multi-round web searches and instructs converting results to detailed outputs and, when on Feishu, producing JSON and calling the included send_feishu_card.py. The code implements these behaviors. Two problematic details in the instructions/code: (1) search_module.py uses subprocess.run with shell=True to call an mcporter CLI and constructs the shell command by interpolating user-provided query strings (mcporter call exa.web_search_exa query='{query}' ...). That enables command injection if queries are maliciously crafted. (2) search_module.py inserts '~/.agents/skills' literally into sys.path (tilde not expanded) and attempts to import a local orchestrator; fallback behaviors and assumptions about host tooling (mcporter/search-default) are brittle. The SKILL.md also requires extracting phone numbers/navigation/pricing from arbitrary web sources — that implies scraping and data collection but the instructions do not bound how that data is fetched or sanitized.
Install Mechanism
There is no install spec; this is instruction+script only. No remote downloads or archive extraction are performed by the skill itself. That reduces supply-chain installation risk. The included Python scripts use requests and subprocess but do not attempt to fetch or execute code from untrusted URLs.
!
Credentials
The skill metadata lists no required environment variables, but README and the scripts require EXA_API_KEY (core search engine) and optionally FEISHU_APP_ID / FEISHU_APP_SECRET to obtain a tenant_access_token and send Feishu messages. Requesting FEISHU app credentials is proportionate to the Feishu feature, but the credential requirement is omitted from the declared metadata. Also the skill suggests adding EXA_API_KEY to shell profile files; storing API keys in shell rc files is common but has operational security tradeoffs. The skill does not send credentials to unknown endpoints — Feishu calls go to open.feishu.cn and the EXA dependency is invoked via mcporter/exa — but undeclared credentials reduce transparency.
Persistence & Privilege
The skill does not request always:true, does not modify other skills, and does not attempt system-wide configuration changes. It reads environment variables and runs subprocesses in-process; normal for this type of skill. No evidence of attempts to persist or escalate privileges beyond using provided environment variables.
What to consider before installing
What to consider before installing/running: - Missing declared credentials: The skill metadata did not declare required env vars but the code and README require EXA_API_KEY (search API) and optionally FEISHU_APP_ID/FEISHU_APP_SECRET. Treat those as required if you want full functionality. Ask the publisher to add them to the skill metadata for transparency. - Command injection risk: search_module.py constructs a shell command with user-supplied queries and calls subprocess.run(..., shell=True). If queries come from untrusted inputs this can lead to command injection. Before running, either run the skill in a sandboxed environment or patch the code to use subprocess.run([...], shell=False) with properly quoted/escaped arguments. - Feishu credentials: If you provide FEISHU_APP_ID/FEISHU_APP_SECRET, the skill will exchange them for a tenant_access_token and can post messages as the app. Only provide these credentials if you trust the skill and plan to use the Feishu card feature. Consider creating a least-privilege Feishu app or testing in a non-production tenant. - Provenance & author: Owner ID and homepage are unknown and the README lists a personal author. If you do not trust the source, request the author/publisher to supply provenance, publish the skill in an official registry, or review the code line-by-line. - Operational recommendations: Run in an isolated environment (container), review/patch these items before use: (1) replace subprocess shell=True usage with safe argument lists, (2) expand/resolve tilde in sys.path insertion, (3) add explicit input validation/sanitization for queries, (4) ensure the skill's declared metadata lists EXA and FEISHU env vars. - If you need help: ask the publisher to (a) update skill metadata to declare EXA_API_KEY and FEISHU_* env vars, (b) remove shell=True or sanitize inputs, and (c) provide a short privacy note describing what data is sent to EXA or Feishu and whether any scraped data is logged externally.

Like a lobster shell, security has layers — review code before you run it.

foodvk974zmv0p9pb94bnph4mh8fvk984rpa6guidevk974zmv0p9pb94bnph4mh8fvk984rpa6latestvk974zmv0p9pb94bnph4mh8fvk984rpa6localvk974zmv0p9pb94bnph4mh8fvk984rpa6parkingvk974zmv0p9pb94bnph4mh8fvk984rpa6restaurantvk974zmv0p9pb94bnph4mh8fvk984rpa6travelvk974zmv0p9pb94bnph4mh8fvk984rpa6
63downloads
0stars
1versions
Updated 2w ago
v1.0.0
MIT-0

本地通推荐 (Local Guide)

技能描述

利用互联网全域搜索,绕过商业评价平台,挖掘真正受当地人认可的地道去处。支持美食、小吃、酒店、景点、温泉等多种类型推荐。

触发词

  • 本地通推荐 [类型] [地名]
  • 本地通 [类型] [地名]
  • [地名] 本地通 [类型]

支持的类型:

  • 美食 / 小吃
  • 甜品 / 糖水
  • 酒店 / 住宿 / 民宿
  • 好玩 / 景点 / 玩乐
  • 温泉 / 泡温泉
  • 购物 / 商场
  • 咖啡 / 咖啡馆
  • 酒吧 / 夜生活
  • 停车 / 停车场 / 停车位

使用示例

# 美食推荐
本地通 美食 南海桂城
本地通推荐 小吃 佛山市南海区桂城
本地通 糖水 广州天河

# 景点推荐
本地通 好玩 佛山南海
本地通推荐 景点 广州市番禺区
本地通 小众景点 深圳

# 停车场推荐
本地通 停车 佛山南海千灯湖公园
本地通推荐 停车场 广州天河城
本地通 停车位 广东省中医院

# 温泉推荐
本地通 温泉 广州从化
本地通推荐 泡温泉 佛山三水

# 酒店推荐
本地通 酒店 佛山南海
本地通推荐 性价比酒店 广州越秀

核心逻辑

1. 严格的来源排除 (Anti-Spam Filter)

严禁引用:

  • 大众点评
  • 美团
  • 携程(美食林/酒店/景点)
  • 小红书商业推广笔记
  • 马蜂窝商业推广

理由: 避开算法推荐、商业竞价排名及刷单污染的数据。

2. 深度搜索渠道 (Source Targeting)

优先检索并分析以下来源:

官方权威来源(优先级最高):

  • 地方政府官方推荐(如文旅局、商务局、旅游局)
  • 地方新闻媒体的专题报道(如南方+、南方网、本地日报等)
  • 地方政府认定的"老店"、"老字号"名录
  • 官方评选活动(如"十大名店"、"最佳景点"等)

生活方式社区:

  • 豆瓣同城/小组
  • 知乎(搜索"本地人推荐"、"从小去到大"等话题)

社交媒体原生态内容:

  • 微博实时搜索
  • Bilibili 探店/探景视频评论区
  • 本地生活博主(非营销号)的非赞助分享

地方性平台:

  • 地方性论坛(如上海宽带山、广州妈妈网等)
  • 当地街坊社区讨论

3. 搜索关键词策略 (Search Query Strategy)

根据类型使用不同的关键词组合:

官方推荐类(优先):

[地名] 官方推荐 [类型]
[地名] 文旅 推荐 [类型]
[地名] 旅游局 推荐 [类型]
[地名] 政府 推荐 [类型]
南方+ [地名] [类型]

本地人口碑类:

[地名] 本地人推荐 [类型]
[地名] 本地人常去 [类型]
[地名] 街坊推荐 [类型]
[地名] 只有本地人才知道的 [类型]
[地名] 从小去到大 [类型]
[地名] 老字号 [类型]
[地名] 排队 [类型]

类型特定关键词:

美食/小吃:

[地名] 老店 美食
[地名] 十大名小吃
[地名] 苍蝇小馆
[地名] 居民楼 美食

甜品/糖水:

[地名] 老字号 糖水
[地名] 本地人推荐 甜品
[地名] 老店 糖水
[地名] 传统糖水
[地名] 榴莲甜品
[地名] 双皮奶 姜撞奶
[地名] 糖水铺 推荐

酒店/住宿:

[地名] 本地人推荐 酒店
[地名] 性价比高 酒店
[地名] 特色民宿
[地名] 老牌酒店

好玩/景点:

[地名] 本地人常去 景点
[地名] 免费景点
[地名] 小众景点
[地名] 周末去哪玩

温泉:

[地名] 本地人推荐 温泉
[地名] 性价比高 温泉
[地名] 老牌温泉
[地名] 温泉酒店

停车/停车场:

[地名] 停车位 便宜
[地名] 停车场 收费标准
[地名] 停车 地下停车场
[地名] 停车 免费停车
[地名] 商场 停车
[地名] 医院 停车
[地名] 停车攻略

4. 输出标准 (Output Format)

对于搜寻到的每一个推荐,给出:

基本信息:

  • 名称与大致位置(具体的街道或标志物)
  • 联系电话
  • 导航地址(可以直接在高德导航的地址)
  • 人均消费(价格区间,如:¥10-20、¥30-50、¥80-150等)
  • 营业/开放时间

推荐理由: 必须包含该地被认为是"地道"或"本地人喜欢"的证据,例如:

  • 政府官方推荐(如文旅局推荐、官方评选等)
  • 开了多年的老店/老景点(10年以上即可)
  • 本地人常去、街坊口碑好
  • 隐藏在居民区或老街区
  • 本地人从小去到大
  • 本地媒体多次报道
  • 性价比高、不宰客

避雷参考: 提及可能存在的缺点,增加信息真实性:

  • 服务态度一般
  • 环境简陋/设施老旧
  • 不接受预约
  • 营业时间不固定
  • 只收现金
  • 周末人多需排队
  • 交通不便

输出格式示例

通用类型格式(美食/酒店/景点/温泉/购物/咖啡/酒吧)

# 🎯 [地名] 本地通推荐 - [类型]

根据官方推荐([来源])和本地口碑,为您精选以下地道去处:

---

## 🏆 官方认证推荐

### 1. [名称] ⭐⭐⭐
📍 **位置**:[具体街道/标志物]
📞 **电话**:[联系电话]
🗺️ **导航**:[高德地址]
⏰ **营业时间**:[营业时间]
💰 **人均消费**:[人均价格]

✨ **推荐理由**:
- [地道证据1]
- [地道证据2]
- [地道证据3]

⚠️ **避雷参考**:
- [缺点1]
- [缺点2]

---

### 2. [名称] ⭐⭐
...

---

## 🏅 [其他分类](如:本地口碑推荐)

### 3. [名称] ⭐⭐
...

---

## 📝 温馨提示

1. **官方认证优先**:[说明]
2. **避开高峰**:[建议]
3. **提前确认**:[提醒]
4. **交通建议**:[建议]
5. **支付方式**:[说明]

**搜索来源**:[列出来源](已排除大众点评、美团、携程等商业平台)

停车场专用格式

# 🚗 [地名] 本地通推荐 - 停车场

根据官方信息和本地车主反馈,为您整理以下停车选择:

---

## 🏆 性价比推荐

### 1. [停车场名称] ⭐⭐⭐
📍 **位置**:[具体街道/标志物]
🗺️ **导航**:[高德地址]
🅿️ **车位数量**:[约XX个]
💰 **收费标准**:[如:首小时5元,之后2元/小时;或:全天封顶20元]
⏰ **开放时间**:[24小时/XX:XX-XX:XX]
🔌 **充电桩**:[有/无,如有注明数量]

✨ **推荐理由**:
- [优点1:如收费便宜]
- [优点2:如车位充足]
- [优点3:如位置便利]

⚠️ **注意事项**:
- [注意1:如限高2.2米]
- [注意2:如只支持现金/微信]

---

### 2. [停车场名称] ⭐⭐
...

---

## 🏅 免费停车

### 3. [停车场名称] ⭐⭐
📍 **位置**:[位置]
⏰ **免费时段**:[如:消费满50元免2小时]
📝 **使用条件**:[条件说明]

---

## 📝 停车小贴士

1. **高峰时段**:[如:周末10:00-14:00车位紧张]
2. **省钱建议**:[如:周边商场消费可免停车费]
3. **充电提醒**:[如:XX停车场有快充桩]
4. **限高注意**:[如:地下停车场限高2.0-2.2米]
5. **支付方式**:[如:大部分支持微信/支付宝]

**搜索来源**:[列出来源]

重要规则:

  1. 必须包含完整的基本信息(位置、电话、导航、营业时间、人均消费)
  2. 必须包含推荐理由(至少3条)
  3. 必须包含避雷参考(至少2条)
  4. 必须按照官方认证、本地口碑等分类组织
  5. 不得简化为列表形式,必须保持详细格式
  6. 每个推荐必须独立成段,用分隔线分开
  7. 停车场类型:重点标注收费标准、车位数量、充电桩等关键信息

飞书卡片输出

当检测到用户来自飞书渠道时,必须:

  1. 生成完整的详细内容(与 webchat 相同)
  2. 将内容转换为 JSON 格式
  3. 调用飞书卡片脚本发送卡片

JSON 数据格式

通用类型:

{
  "location": "广州天河",
  "type": "温泉",
  "sources": "广州市文旅局、南方+报道",
  "items": [
    {
      "name": "某某温泉度假村",
      "category": "官方认证推荐",
      "stars": 3,
      "address": "天河区某某路123号",
      "phone": "020-12345678",
      "navigation": "广州市天河区某某路123号","
      "hours": "09:00-22:00",
      "price": "¥128-298",
      "reasons": [
        "广州市文旅局官方推荐温泉度假村",
        "开业15年,本地人常去",
        "水质好,性价比高"
      ],
      "warnings": [
        "周末人多需提前预约",
        "部分设施较老旧"
      ]
    }
  ]
}

停车场类型:

{
  "location": "广州某医院",
  "type": "停车",
  "sources": "医院官网、本地车主反馈",
  "items": [
    {
      "name": "医院配套停车场",
      "category": "性价比推荐",
      "stars": 3,
      "address": "越秀区某某路88号",
      "navigation": "广州市越秀区某某路88号","
      "spaces": "约55个",
      "hour_rate": "5元/小时",
      "first_hour": "5元",
      "after_hour": "5元/小时",
      "daily_cap": "无封顶",
      "free_time": "无",
      "hours": "全天开放",
      "charging": "无",
      "reasons": [
        "距离医院最近",
        "收费相对便宜",
        "步行可达门诊"
      ],
      "warnings": [
        "车位紧张,高峰期难找位",
        "需注意停车时限规定"
      ]
    }
  ]
}

停车场JSON字段说明:

字段说明示例
hour_rate每小时费用(必填)"5元/小时"、"10元/小时"
first_hour首小时费用"免费"、"5元"
after_hour后续每小时费用"3元/小时"、"5元/小时"
daily_cap全天封顶"20元封顶"、"无封顶"
free_time免费时长"首15分钟免费"、"无"
spaces车位数量"约55个"
charging充电桩"有,5个快充"、"无"
  "charging": "无",
  "reasons": [
    "距离医院步行5分钟",
    "收费相对便宜",
    "路边停车方便"
  ],
  "warnings": [
    "高峰时段车位紧张",
    "需注意限时停车规定"
  ]
}

] }


### 飞书卡片脚本

使用 `scripts/send_feishu_card.py` 发送卡片:

```bash
echo '{JSON数据}' | python3 scripts/send_feishu_card.py {receive_id} {reply_to}

飞书渠道识别

当用户来自飞书时,在生成完整内容后,额外生成 JSON 数据并调用卡片脚本。


实施步骤

  1. 接收指令:识别"本地通推荐 [类型] [地名]"
  2. 类型识别:判断用户要查找的类型(美食/酒店/景点/温泉等)
  3. 多轮全面搜索(至少5-8轮):
    • 第1轮:官方推荐("[地名] 官方推荐 [类型]"、"[地名] 文旅 推荐 [类型]")
    • 第2轮:老店/老牌("[地名] 老字号 [类型]"、"[地名] 老牌 [类型]")
    • 第3轮:本地口碑("[地名] 本地人推荐 [类型]"、"[地名] 街坊常去 [类型]")
    • 第4轮:特色推荐("[地名] 特色 [类型]"、"[地名] 性价比高 [类型]")
    • 第5轮:补充搜索(根据前面结果补充不足的分类)
    • 第6-8轮:深度搜索(针对结果不足的分类,使用更多关键词组合搜索)
  4. 来源过滤:排除商业平台内容,优先采纳官方和本地社区来源
  5. 信息整合:汇总所有搜索结果,去重,按分类组织
  6. 数量检查:确保每个分类至少有10个推荐,如果不足则继续搜索(除非该类型在当地确实没有这么多)
  7. 信息提取:提取名称、位置、电话、地址、营业时间、人均消费
  8. 证据收集:收集"地道"证据(官方认证、本地口碑、开业年限等)和真实缺点
  9. 格式化输出严格按照输出格式示例生成回复,不得简化或改变结构
  10. 渠道一致性检查:确保飞书、webchat、群聊、私聊等所有渠道输出完全一致

注意事项

  • 不强求老字号:只要是本地人喜欢、常去的地方就可以推荐
  • 优先官方推荐:政府文旅、旅游局推荐的优先级最高
  • 多源验证:优先推荐有多个独立来源验证的地方
  • 避免网红化:排除过度商业化、主要靠营销的地方
  • 信息时效性:提醒用户可能已搬迁/关闭/装修,建议提前确认
  • 真实性:必须包含真实缺点,增加可信度
  • 格式统一:无论在任何渠道,都必须使用完整的详细格式,不得简化为列表
  • 数量要求:每个分类至少推荐10个地方,提供足够的选择(除非该类型在当地确实没有这么多)
  • 结果稳定性:使用相同的搜索关键词和来源,确保每次返回的结果基本一致
  • 全面搜索:必须进行至少5-8轮搜索,覆盖不同关键词组合,确保找到足够多的推荐(每分类至少10个)
  • 类型适配:根据不同类型调整搜索关键词和输出重点
    • 美食:重点关注口味、老店历史、本地口碑
    • 酒店:重点关注位置便利性、设施、性价比
    • 景点:重点关注独特性、人流量、最佳游览时间
    • 温泉:重点关注水质、环境、服务
    • 停车场:重点关注收费标准、车位数量、距离目的地远近、充电桩

Comments

Loading comments...