Not in the top 1,000 by GitHub stars

mater1996/travel-planning

travel planning

History

Review weekly changes to SKILL.md before updating. Dates mark the weeks in which we observed each version; checks apply to the recorded commits.

View weekly changes

plugins/travel-planning/skills/amap-maps/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

4cff84c8a5ae → 4cff84c8a5ae

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 4cff84c8a5ae

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-planning/skills/flyai/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

4cff84c8a5ae → 4cff84c8a5ae

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 4cff84c8a5ae

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-planning/skills/travel-planning/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Local scripts → After Local scripts

4cff84c8a5ae → 4cff84c8a5ae

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Local scripts

First observation → 4cff84c8a5ae

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-planning/skills/variflight/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Instructions only → After Instructions only

4cff84c8a5ae → 4cff84c8a5ae

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Instructions only

First observation → 4cff84c8a5ae

No earlier version was observed for comparison.

Compare on GitHub

plugins/travel-planning/skills/xiaohongshu/SKILL.md

Week of Nov 2, 2026 · +0 / −0 lines

Before Network or broad shell → After Network or broad shell

4cff84c8a5ae → 4cff84c8a5ae

Diff text is unavailable under the recorded licenses. Line counts and the GitHub link remain available.

Compare on GitHub

Week of Oct 26, 2026 · Line counts unavailable

Before Not checked yet → After Network or broad shell

First observation → 4cff84c8a5ae

No earlier version was observed for comparison.

Compare on GitHub

View on GitHubAdd to my skills

Verified commit 4cff84c8a5ae9f60fa01d88ec62cc68e4f1f5e33

git clone --filter=blob:none --no-checkout https://github.com/mater1996/travel-planning.git .hotskills/mater1996-travel-planning && git -C .hotskills/mater1996-travel-planning checkout --detach 4cff84c8a5ae9f60fa01d88ec62cc68e4f1f5e33 # Copy each selected skill directory from .hotskills/mater1996-travel-planning into .claude/skills/<skill-name>/
git clone --filter=blob:none --no-checkout https://github.com/mater1996/travel-planning.git .hotskills/mater1996-travel-planning && git -C .hotskills/mater1996-travel-planning checkout --detach 4cff84c8a5ae9f60fa01d88ec62cc68e4f1f5e33 # Copy each selected skill directory from .hotskills/mater1996-travel-planning into .agents/skills/<skill-name>/
321GitHub stars
1star in 7 days
5skills in this repository
0commits in 30 days

Heat

3.3
  • Star growth, last 7 daysNot available
  • Star growth, last 24 hoursNot available
  • Rank movement, last 7 daysNot available
  • Commits, last 30 daysNot available
  • Accounts asking about it through MCP, last 7 daysNot available
  • Hot votes this weekNot available

Heat never changes the order by stars, and sponsorship never touches it. How heat works

Stars over time

Oct 25, 2026Nov 6, 2026321

30-day change not yet available: not enough history.

Individual skills in this repository

  • amap-maps plugins/travel-planning/skills/amap-maps
  • flyai plugins/travel-planning/skills/flyai
  • travel-planning plugins/travel-planning/skills/travel-planning
  • variflight plugins/travel-planning/skills/variflight
  • xiaohongshu plugins/travel-planning/skills/xiaohongshu

How it works

amap-maps

When your agent uses it

使用插件已配置的高德地图 MCP 查询中国境内地址坐标、POI、周边地点、路线、距离和城市天气。适用于“高德查地点/导航/路线/经纬度/附近”等只读请求;不用于高德 JSAPI 前端开发或境外地图检索。

What it loads into context

Frontmatter

77 tokens

Always available to the agent

SKILL.md

763 tokens

When the skill is activated

Reference documents

731 tokens

Loaded on request

Token counts are estimates. Scripts run separately; they are not counted as reference context.

The playbook

  1. 工具路由
  2. 约束

Files

  • ../../.claude-plugin/plugin.jsonasset239 bytes
  • SKILL.mdcore2,872 bytes
  • references/tool-routing.mddoc2,465 bytes

No excerpt is shown for this license. Read the source on GitHub.

View the complete source on GitHub

Skills included

  • amap-maps
  • flyai
  • travel-planning
  • variflight
  • xiaohongshu

Repository facts

License
No license detected
Created
Sep 21, 2026
Last pushed
Oct 8, 2026
Forks
32
Open issues
0
Project activity
Active

Before you install

Network or broad shell

Automated signals, not a guarantee

Checked Nov 6, 2026

Not fully analyzed: some files were too long, unreadable or missing. This never lowers the level.

Show 27 notes
  • plugins/travel-planning/skills/flyai/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/travel-planning/skills/travel-planning/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/travel-planning/skills/travel-planning/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/travel-planning/skills/travel-planning/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/travel-planning/skills/travel-planning/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/travel-planning/skills/travel-planning/SKILL.md:1 Analysis incomplete: Referenced executable target unavailable; not analyzed
  • plugins/travel-planning/skills/travel-planning/assets/example-itinerary.json:306 Analysis incomplete: physical or joined line exceeds character limit
  • plugins/travel-planning/skills/travel-planning/assets/example-itinerary.json:307 Analysis incomplete: physical or joined line exceeds character limit
  • plugins/travel-planning/skills/travel-planning/assets/example-itinerary.json:308 Analysis incomplete: physical or joined line exceeds character limit
  • plugins/travel-planning/skills/travel-planning/assets/frontend/itinerary-app.js:1 Analysis incomplete: physical or joined line exceeds character limit
  • plugins/travel-planning/skills/travel-planning/scripts/render_itinerary.py:1994 Analysis incomplete: physical or joined line exceeds character limit
  • plugins/travel-planning/skills/travel-planning/scripts/render_itinerary.py:1992 Analysis incomplete: physical or joined line exceeds character limit
  • plugins/travel-planning/skills/travel-planning/scripts/render_itinerary.py:1993 Analysis incomplete: physical or joined line exceeds character limit
  • plugins/travel-planning/skills/travel-planning/scripts/render_itinerary.py:2001 Analysis incomplete: physical or joined line exceeds character limit
  • plugins/travel-planning/skills/travel-planning/scripts/render_itinerary.py:2002 Analysis incomplete: physical or joined line exceeds character limit
  • plugins/travel-planning/skills/travel-planning/scripts/render_itinerary.py:2005 Analysis incomplete: physical or joined line exceeds character limit
  • plugins/travel-planning/skills/travel-planning/scripts/render_itinerary.py:2006 Analysis incomplete: physical or joined line exceeds character limit
  • plugins/travel-planning/skills/travel-planning/scripts/render_itinerary.py:2007 Analysis incomplete: physical or joined line exceeds character limit
  • plugins/travel-planning/skills/travel-planning/scripts/render_itinerary.py:2011 Analysis incomplete: physical or joined line exceeds character limit
  • plugins/travel-planning/skills/travel-planning/scripts/render_itinerary.py:2012 Analysis incomplete: physical or joined line exceeds character limit
Show all 337 signals by file

plugins/travel-planning/skills/amap-maps/SKILL.md

  • Network accessline 26
    - 返回的是查询时的平台结果。营业、临时封路、景区入口开放等会变化的信息应标注查询时间,并在必要时回到运营方或景区官方来源复核。 - 餐厅详情可能返回评分但不返回评价量或评论正文;保留真实评分并明确缺失项,不把不完整平台信号写成“无评分”,也不据此声称口碑最佳。 - 已核验高德 POI 可使用官方 URI API 生成 `https://uri.amap.com/poidetail` 详情入口;有 GCJ-02 坐标时可生成 `https://uri.amap.com/nav
  • Network accessline 27
    - 餐厅详情可能返回评分但不返回评价量或评论正文;保留真实评分并明确缺失项,不把不完整平台信号写成“无评分”,也不据此声称口碑最佳。 - 已核验高德 POI 可使用官方 URI API 生成 `https://uri.amap.com/poidetail` 详情入口;有 GCJ-02 坐标时可生成 `https://uri.amap.com/navigation` 导航入口。链接只用于查看和导航,不代表预约或下单。 - 不输出、记录或传递 `AMAP_MAPS_API_KEY
  • Network accessline 28
    - 已核验高德 POI 可使用官方 URI API 生成 `https://uri.amap.com/poidetail` 详情入口;有 GCJ-02 坐标时可生成 `https://uri.amap.com/navigation` 导航入口。链接只用于查看和导航,不代表预约或下单。
  • Access to secretsline 29
    [Credential-related source omitted]

plugins/travel-planning/skills/amap-maps/references/tool-routing.md

  • Network accessline 21
    3. 当前 MCP 周边工具未暴露 `sortrule`,不得根据返回顺序声称“评分最高”或“高德官方推荐”。路线排序由调用方基于逐候选路线结果计算。 4. 详情可能缺少评价量和评论正文。评分可展示为“高德评分 X,评价量未取得”,但不能据此形成口碑最佳结论。 5. 已核验 POI 可生成 `https://uri.amap.com/poidetail?poiid=<POI_ID>&src=travel-planning&callnative=1`;有坐标时再生成 `http
  • Network accessline 23
    5. 已核验 POI 可生成 `https://uri.amap.com/poidetail?poiid=<POI_ID>&src=travel-planning&callnative=1`;有坐标时再生成 `https://uri.amap.com/navigation` 到店入口。URI API 参数必须来自本次核验结果。
  • Network accessline 42
    官方来源:<https://lbs.amap.com/api/mcp-server/summary>

plugins/travel-planning/skills/flyai/references/search-hotel.md

  • Network accessline 40
    "latitude": "30.259204",           "longitude": "120.159246",           "mainPic": "https://img.alicdn.com/...",
  • Network accessline 41
    "longitude": "120.159246",           "mainPic": "https://img.alicdn.com/...",           "detailUrl": "...",
  • Network accessline 42
    "mainPic": "https://img.alicdn.com/...",

plugins/travel-planning/skills/flyai/references/search-marriott-hotel.md

  • Network accessline 37
    "latitude": "31.224612",         "longitude": "121.442115",         "mainPic": "https://img.alicdn.com/...",
  • Network accessline 38
    "longitude": "121.442115",         "mainPic": "https://img.alicdn.com/...",         "detailUrl": "...",
  • Network accessline 39
    "mainPic": "https://img.alicdn.com/...",

plugins/travel-planning/skills/flyai/references/search-marriott-package.md

  • Network accessline 29
    "cityName": "上海",         "price": "¥899",         "detailUrl": "https://...",
  • Network accessline 30
    "price": "¥899",         "detailUrl": "https://...",         "mainPic": "https://img.alicdn.com/...",
  • Network accessline 31
    "detailUrl": "https://...",
  • Network accessline 32
    "mainPic": "https://img.alicdn.com/...",

plugins/travel-planning/skills/flyai/references/search-poi.md

  • Network accessline 30
    "address": "陕西省西安市莲湖区北院门...",           "id": "177224",           "mainPic": "https://img.alicdn.com/tfscom/...",
  • Network accessline 31
    "id": "177224",           "mainPic": "https://img.alicdn.com/tfscom/...",           "jumpUrl": "...",
  • Network accessline 32
    "mainPic": "https://img.alicdn.com/tfscom/...",

plugins/travel-planning/skills/flyai/references/upstream.lock.json

  • Network accessline 1
    {   "name": "alibaba-flyai/flyai-skill",   "repository": "https://github.com/alibaba-flyai/flyai-skill.git",
  • Network accessline 2
    "name": "alibaba-flyai/flyai-skill",   "repository": "https://github.com/alibaba-flyai/flyai-skill.git",   "commit": "86fe2cc3e25464d0e0bd6a769b27b5f9f3b04128",
  • Network accessline 3
    "repository": "https://github.com/alibaba-flyai/flyai-skill.git",

plugins/travel-planning/skills/travel-planning/assets/example-itinerary.json

  • Network accessline 36
    "label": "复核杭州 2026-10-17 至 10-18 文旅公告",             "provider": "杭州文旅官方入口",             "url": "https://wgly.hangzhou.gov.cn/",
  • Network accessline 37
    "provider": "杭州文旅官方入口",             "url": "https://wgly.hangzhou.gov.cn/",             "checked_at": "2026-09-20",
  • Network accessline 38
    "url": "https://wgly.hangzhou.gov.cn/",
  • Network accessline 66
    "official": {           "physical_address": "浙江省杭州市西湖区湖滨路一带",           "homepage_url": "https://westlake.hangzhou.gov.cn/",
  • Network accessline 67
    "physical_address": "浙江省杭州市西湖区湖滨路一带",           "homepage_url": "https://westlake.hangzhou.gov.cn/",           "booking_url": null,
  • Network accessline 68
    "homepage_url": "https://westlake.hangzhou.gov.cn/",
  • Network accessline 69
    "booking_url": null,           "booking_status": "not_applicable",           "notice_url": "https://wgly.hangzhou.gov.cn/",
  • Network accessline 70
    "booking_status": "not_applicable",           "notice_url": "https://wgly.hangzhou.gov.cn/",           "checked_at": "2026-09-20"
  • Network accessline 71
    "notice_url": "https://wgly.hangzhou.gov.cn/",
  • Network accessline 80
    "confidence": "medium",         "action_links": [           {"type": "map", "label": "打开湖滨导航", "provider": "地图", "url": "https://maps.google.com/", "checked_at": "2026-09-20", "disclaimer": "路线以出发时实时导航为准"}
  • Network accessline 81
    "action_links": [           {"type": "map", "label": "打开湖滨导航", "provider": "地图", "url": "https://maps.google.com/", "checked_at": "2026-09-20", "disclaimer": "路线以出发时实时导航为准"}         ],
  • Network accessline 82
    {"type": "map", "label": "打开湖滨导航", "provider": "地图", "url": "https://maps.google.com/", "checked_at": "2026-09-20", "disclaimer": "路线以出发时实时导航为准"}
  • Network accessline 94
    "official": {           "physical_address": "浙江省杭州市西湖区龙井村",           "homepage_url": "https://westlake.hangzhou.gov.cn/",
  • Network accessline 95
    "physical_address": "浙江省杭州市西湖区龙井村",           "homepage_url": "https://westlake.hangzhou.gov.cn/",           "booking_url": null,
  • Network accessline 96
    "homepage_url": "https://westlake.hangzhou.gov.cn/",
  • Network accessline 97
    "booking_url": null,           "booking_status": "not_applicable",           "notice_url": "https://wgly.hangzhou.gov.cn/",
  • Network accessline 98
    "booking_status": "not_applicable",           "notice_url": "https://wgly.hangzhou.gov.cn/",           "checked_at": "2026-09-20"
  • Network accessline 99
    "notice_url": "https://wgly.hangzhou.gov.cn/",
  • Network accessline 125
    "live_status": "出发当天用地图复核",         "map_route": {"origin": "120.165438,30.255247", "destination": "120.156800,30.254900", "mode": "walk", "assumption": "演示坐标,实际酒店确定后重算"},         "action_links": [{"type": "map", "label": "在高德查看龙翔桥至湖滨路线", "
  • Network accessline 126
    "map_route": {"origin": "120.165438,30.255247", "destination": "120.156800,30.254900", "mode": "walk", "assumption": "演示坐标,实际酒店确定后重算"},         "action_links": [{"type": "map", "label": "在高德查看龙翔桥至湖滨路线", "provider": "高德地图", "url": "https://u
  • Network accessline 127
    "action_links": [{"type": "map", "label": "在高德查看龙翔桥至湖滨路线", "provider": "高德地图", "url": "https://uri.amap.com/navigation?from=120.165438,30.255247,龙翔桥&to=120.156800,30.254900,湖滨公园&mode=walk&policy=0&src=travel-planning&callnative=0"}],
  • Network accessline 142
    "live_status": "出发当天用地图复核",         "map_route": {"origin": "120.148270,30.263600", "destination": "120.100000,30.240000", "mode": "car", "assumption": "演示坐标,出发当天按实际上下车点重算"},         "action_links": [{"type": "map", "label": "在高德查看断桥至灵隐路线",
  • Network accessline 143
    "map_route": {"origin": "120.148270,30.263600", "destination": "120.100000,30.240000", "mode": "car", "assumption": "演示坐标,出发当天按实际上下车点重算"},         "action_links": [{"type": "map", "label": "在高德查看断桥至灵隐路线", "provider": "高德地图", "url": "https:/
  • Network accessline 144
    "action_links": [{"type": "map", "label": "在高德查看断桥至灵隐路线", "provider": "高德地图", "url": "https://uri.amap.com/navigation?from=120.148270,30.263600,断桥&to=120.100000,30.240000,灵隐片区上一站出口&mode=car&policy=0&src=travel-planning&callnative=0"}],
  • Network accessline 159
    "live_status": "出发当天复核",         "map_route": {"origin": "120.104000,30.223000", "destination": "120.165438,30.255247", "mode": "car", "assumption": "演示终点为酒店片区;酒店和返程车站确定后拆段重算"},         "action_links": [{"type": "map", "label": "在高德查看返程上车点至
  • Network accessline 160
    "map_route": {"origin": "120.104000,30.223000", "destination": "120.165438,30.255247", "mode": "car", "assumption": "演示终点为酒店片区;酒店和返程车站确定后拆段重算"},         "action_links": [{"type": "map", "label": "在高德查看返程上车点至酒店片区路线", "provider": "高德地图", "url
  • Network accessline 161
    "action_links": [{"type": "map", "label": "在高德查看返程上车点至酒店片区路线", "provider": "高德地图", "url": "https://uri.amap.com/navigation?from=120.104000,30.223000,龙井村返程上车点&to=120.165438,30.255247,龙翔桥酒店片区&mode=car&policy=0&src=travel-planning&callnative=0
  • Network accessline 176
    "live_status": "出发当天复核",         "map_route": {"origin": "120.110000,30.240000", "destination": "120.165438,30.255247", "mode": "car", "assumption": "演示坐标,按实际酒店入口重算"},         "action_links": [{"type": "map", "label": "在高德查看下午路线入口至酒店路线", "p
  • Network accessline 177
    "map_route": {"origin": "120.110000,30.240000", "destination": "120.165438,30.255247", "mode": "car", "assumption": "演示坐标,按实际酒店入口重算"},         "action_links": [{"type": "map", "label": "在高德查看下午路线入口至酒店路线", "provider": "高德地图", "url": "https:/
  • Network accessline 178
    "action_links": [{"type": "map", "label": "在高德查看下午路线入口至酒店路线", "provider": "高德地图", "url": "https://uri.amap.com/navigation?from=120.110000,30.240000,下午路线入口&to=120.165438,30.255247,龙翔桥酒店片区&mode=car&policy=0&src=travel-planning&callnative=0"}]
  • Network accessline 193
    "live_status": "出发当天复核",         "map_route": {"origin": "120.165438,30.255247", "destination": "120.104000,30.223000", "mode": "car", "assumption": "演示坐标,按实际酒店入口重算"},         "action_links": [{"type": "map", "label": "在高德查看酒店至龙井村路线", "prov
  • Network accessline 194
    "map_route": {"origin": "120.165438,30.255247", "destination": "120.104000,30.223000", "mode": "car", "assumption": "演示坐标,按实际酒店入口重算"},         "action_links": [{"type": "map", "label": "在高德查看酒店至龙井村路线", "provider": "高德地图", "url": "https://ur
  • Network accessline 195
    "action_links": [{"type": "map", "label": "在高德查看酒店至龙井村路线", "provider": "高德地图", "url": "https://uri.amap.com/navigation?from=120.165438,30.255247,龙翔桥酒店片区&to=120.104000,30.223000,龙井村公交站&mode=car&policy=0&src=travel-planning&callnative=0"}],
  • Network accessline 210
    "live_status": "出发当天复核",         "map_route": {"origin": "120.104000,30.223000", "destination": "120.103500,30.223500", "mode": "walk", "assumption": "演示坐标,按餐厅实际入口重算"},         "action_links": [{"type": "map", "label": "在高德查看徒步出口至午餐点路线", "p
  • Network accessline 211
    "map_route": {"origin": "120.104000,30.223000", "destination": "120.103500,30.223500", "mode": "walk", "assumption": "演示坐标,按餐厅实际入口重算"},         "action_links": [{"type": "map", "label": "在高德查看徒步出口至午餐点路线", "provider": "高德地图", "url": "https:/
  • Network accessline 212
    "action_links": [{"type": "map", "label": "在高德查看徒步出口至午餐点路线", "provider": "高德地图", "url": "https://uri.amap.com/navigation?from=120.104000,30.223000,龙井村公交站&to=120.103500,30.223500,龙井村农家菜A&mode=walk&policy=0&src=travel-planning&callnative=0"}]
  • Network accessline 227
    "live_status": "出发当天复核",         "map_route": {"origin": "120.102000,30.240000", "destination": "120.110000,30.240000", "mode": "walk", "assumption": "采用主选餐厅离店路线锚点"},         "action_links": [{"type": "map", "label": "在高德查看餐厅至下午路线入口", "prov
  • Network accessline 228
    "map_route": {"origin": "120.102000,30.240000", "destination": "120.110000,30.240000", "mode": "walk", "assumption": "采用主选餐厅离店路线锚点"},         "action_links": [{"type": "map", "label": "在高德查看餐厅至下午路线入口", "provider": "高德地图", "url": "https://ur
  • Network accessline 229
    "action_links": [{"type": "map", "label": "在高德查看餐厅至下午路线入口", "provider": "高德地图", "url": "https://uri.amap.com/navigation?from=120.102000,30.240000,灵隐杭帮面馆A&to=120.110000,30.240000,下午路线入口&mode=walk&policy=0&src=travel-planning&callnative=0"}],
  • Network accessline 244
    "live_status": "出发当天复核",         "map_route": {"origin": "120.103500,30.223500", "destination": "120.104000,30.223000", "mode": "walk", "assumption": "采用主选餐厅离店路线锚点"},         "action_links": [{"type": "map", "label": "在高德查看餐厅至返程上车点", "provi
  • Network accessline 245
    "map_route": {"origin": "120.103500,30.223500", "destination": "120.104000,30.223000", "mode": "walk", "assumption": "采用主选餐厅离店路线锚点"},         "action_links": [{"type": "map", "label": "在高德查看餐厅至返程上车点", "provider": "高德地图", "url": "https://uri
  • Network accessline 246
    "action_links": [{"type": "map", "label": "在高德查看餐厅至返程上车点", "provider": "高德地图", "url": "https://uri.amap.com/navigation?from=120.103500,30.223500,龙井村农家菜A&to=120.104000,30.223000,龙井村返程上车点&mode=walk&policy=0&src=travel-planning&callnative=0"}]
  • Network accessline 261
    "live_status": "出发当天复核",         "map_route": {"origin": "120.100000,30.240000", "destination": "120.102000,30.240000", "mode": "walk", "assumption": "采用主选餐厅进店路线锚点"},         "action_links": [{"type": "map", "label": "在高德查看下车点至午餐门店", "provi
  • Network accessline 262
    "map_route": {"origin": "120.100000,30.240000", "destination": "120.102000,30.240000", "mode": "walk", "assumption": "采用主选餐厅进店路线锚点"},         "action_links": [{"type": "map", "label": "在高德查看下车点至午餐门店", "provider": "高德地图", "url": "https://uri
  • Network accessline 263
    "action_links": [{"type": "map", "label": "在高德查看下车点至午餐门店", "provider": "高德地图", "url": "https://uri.amap.com/navigation?from=120.100000,30.240000,灵隐片区上一站出口&to=120.102000,30.240000,灵隐杭帮面馆A&mode=walk&policy=0&src=travel-planning&callnative=0"}
  • Network accessline 297
    "intercity_options": [],     "restaurants": [       {"id": "restaurant-lingyin-a", "name": "灵隐杭帮面馆 A", "cuisine": ["杭帮面食"], "location": {"physical_address": "浙江省杭州市西湖区灵隐路88号A座", "coordinates": "120.102000,30.240000", "coordinate_system": "G
  • Network accessline 298
    "restaurants": [       {"id": "restaurant-lingyin-a", "name": "灵隐杭帮面馆 A", "cuisine": ["杭帮面食"], "location": {"physical_address": "浙江省杭州市西湖区灵隐路88号A座", "coordinates": "120.102000,30.240000", "coordinate_system": "GCJ-02", "poi_id": "demo-lingy
  • Network accessline 299
    {"id": "restaurant-lingyin-a", "name": "灵隐杭帮面馆 A", "cuisine": ["杭帮面食"], "location": {"physical_address": "浙江省杭州市西湖区灵隐路88号A座", "coordinates": "120.102000,30.240000", "coordinate_system": "GCJ-02", "poi_id": "demo-lingyin-a", "poi_provider": 
  • Network accessline 300
    {"id": "restaurant-lingyin-b", "name": "灵隐杭帮面馆 B", "cuisine": ["杭帮菜"], "location": {"physical_address": "浙江省杭州市西湖区灵隐路96号B座", "coordinates": "120.103000,30.241000", "coordinate_system": "GCJ-02", "poi_id": "demo-lingyin-b", "poi_provider": "
  • Network accessline 301
    {"id": "restaurant-longjing-a", "name": "龙井村农家菜 A", "cuisine": ["杭帮菜"], "location": {"physical_address": "浙江省杭州市西湖区龙井村88号", "coordinates": "120.103500,30.223500", "coordinate_system": "GCJ-02", "poi_id": "demo-longjing-a", "poi_provider": "
  • Network accessline 302
    {"id": "restaurant-longjing-b", "name": "龙井村农家菜 B", "cuisine": ["杭帮菜"], "location": {"physical_address": "浙江省杭州市西湖区龙井村102号", "coordinates": "120.104500,30.224000", "coordinate_system": "GCJ-02", "poi_id": "demo-longjing-b", "poi_provider": 
  • Network accessline 303
    {"id": "restaurant-longjing-tea", "name": "龙井村茶歇点", "cuisine": ["茶点"], "location": {"physical_address": "浙江省杭州市西湖区龙井村88-1号", "coordinates": "120.104000,30.223800", "coordinate_system": "GCJ-02", "poi_id": "demo-longjing-tea", "poi_provider"
  • Network accessline 304
    ],     "restaurant_snapshots": [       {"schema_version": "restaurant-source-snapshot/v1", "snapshot_id": "snap-lingyin-a", "restaurant_id": "restaurant-lingyin-a", "applicable_date": "2026-10-17", "time_window": "12:10–13:10", "status": "p
  • Network accessline 305
    "restaurant_snapshots": [       {"schema_version": "restaurant-source-snapshot/v1", "snapshot_id": "snap-lingyin-a", "restaurant_id": "restaurant-lingyin-a", "applicable_date": "2026-10-17", "time_window": "12:10–13:10", "status": "platform
  • Network accessline 306
    {"schema_version": "restaurant-source-snapshot/v1", "snapshot_id": "snap-lingyin-a", "restaurant_id": "restaurant-lingyin-a", "applicable_date": "2026-10-17", "time_window": "12:10–13:10", "status": "platform_reported", "platform_signals": 
  • Network accessline 307
    {"schema_version": "restaurant-source-snapshot/v1", "snapshot_id": "snap-lingyin-b", "restaurant_id": "restaurant-lingyin-b", "applicable_date": "2026-10-17", "time_window": "12:10–13:10", "status": "platform_reported", "platform_signals": 
  • Network accessline 308
    {"schema_version": "restaurant-source-snapshot/v1", "snapshot_id": "snap-longjing-a", "restaurant_id": "restaurant-longjing-a", "applicable_date": "2026-10-18", "time_window": "12:10–13:10", "status": "platform_reported", "platform_signals"
  • Network accessline 309
    {"schema_version": "restaurant-source-snapshot/v1", "snapshot_id": "snap-longjing-b", "restaurant_id": "restaurant-longjing-b", "applicable_date": "2026-10-18", "time_window": "12:10–13:10", "status": "platform_reported", "platform_signals"
  • Network accessline 310
    {"schema_version": "restaurant-source-snapshot/v1", "snapshot_id": "snap-longjing-tea", "restaurant_id": "restaurant-longjing-tea", "applicable_date": "2026-10-18", "time_window": "10:35–10:55", "status": "to_recheck", "platform_signals": [
  • Network accessline 311
    ],     "meal_baseline_routes": [       {"id": "baseline-m1", "meal_id": "m1", "from_anchor": {"name": "灵隐片区上一站出口", "physical_address": "浙江省杭州市西湖区灵隐路灵隐片区公交站出口", "coordinates": "120.100000,30.240000", "coordinate_system": "GCJ-02"}, "to_ancho
  • Network accessline 312
    "meal_baseline_routes": [       {"id": "baseline-m1", "meal_id": "m1", "from_anchor": {"name": "灵隐片区上一站出口", "physical_address": "浙江省杭州市西湖区灵隐路灵隐片区公交站出口", "coordinates": "120.100000,30.240000", "coordinate_system": "GCJ-02"}, "to_anchor": {"n
  • Network accessline 313
    {"id": "baseline-m1", "meal_id": "m1", "from_anchor": {"name": "灵隐片区上一站出口", "physical_address": "浙江省杭州市西湖区灵隐路灵隐片区公交站出口", "coordinates": "120.100000,30.240000", "coordinate_system": "GCJ-02"}, "to_anchor": {"name": "下午路线入口", "physical_addres
  • Network accessline 314
    {"id": "baseline-m2", "meal_id": "m2", "from_anchor": {"name": "龙井村徒步出口", "physical_address": "浙江省杭州市西湖区龙井路龙井村公共步道出口", "coordinates": "120.104000,30.223000", "coordinate_system": "GCJ-02"}, "to_anchor": {"name": "龙井村返程上车点", "physical_addres
  • Network accessline 315
    {"id": "baseline-m3", "meal_id": "m3", "from_anchor": {"name": "龙井村步行路线中点", "physical_address": "浙江省杭州市西湖区龙井村公共步道中段", "coordinates": "120.104000,30.223000", "coordinate_system": "GCJ-02"}, "to_anchor": {"name": "龙井村返程步道入口", "physical_addres
  • Network accessline 316
    ],     "meal_route_evaluations": [       {"id": "eval-m1-a", "meal_id": "m1", "restaurant_id": "restaurant-lingyin-a", "baseline_route_id": "baseline-m1", "comparison_basis": {"mode": "walking", "routing_policy": "shortest_time", "departure
  • Network accessline 317
    "meal_route_evaluations": [       {"id": "eval-m1-a", "meal_id": "m1", "restaurant_id": "restaurant-lingyin-a", "baseline_route_id": "baseline-m1", "comparison_basis": {"mode": "walking", "routing_policy": "shortest_time", "departure_at": "
  • Network accessline 318
    {"id": "eval-m1-a", "meal_id": "m1", "restaurant_id": "restaurant-lingyin-a", "baseline_route_id": "baseline-m1", "comparison_basis": {"mode": "walking", "routing_policy": "shortest_time", "departure_at": "2026-10-17T12:10:00+08:00"}, "from
  • Network accessline 319
    {"id": "eval-m1-b", "meal_id": "m1", "restaurant_id": "restaurant-lingyin-b", "baseline_route_id": "baseline-m1", "comparison_basis": {"mode": "walking", "routing_policy": "shortest_time", "departure_at": "2026-10-17T12:10:00+08:00"}, "from
  • Network accessline 320
    {"id": "eval-m2-a", "meal_id": "m2", "restaurant_id": "restaurant-longjing-a", "baseline_route_id": "baseline-m2", "comparison_basis": {"mode": "walking", "routing_policy": "shortest_time", "departure_at": "2026-10-18T12:10:00+08:00"}, "fro
  • Network accessline 321
    {"id": "eval-m2-b", "meal_id": "m2", "restaurant_id": "restaurant-longjing-b", "baseline_route_id": "baseline-m2", "comparison_basis": {"mode": "walking", "routing_policy": "shortest_time", "departure_at": "2026-10-18T12:10:00+08:00"}, "fro
  • Network accessline 322
    {"id": "eval-m3-tea", "meal_id": "m3", "restaurant_id": "restaurant-longjing-tea", "baseline_route_id": "baseline-m3", "comparison_basis": {"mode": "walking", "routing_policy": "shortest_time", "departure_at": "2026-10-18T10:35:00+08:00"}, 
  • Network accessline 345
    "checked_at": "2026-09-20",         "action_links": [           {"type": "restaurant", "label": "查看灵隐片区餐厅候选", "provider": "携程", "url": "https://you.ctrip.com/food/hangzhou14.html", "checked_at": "2026-09-20", "disclaimer": "营业和排队情况以当天店铺为准"}
  • Network accessline 346
    "action_links": [           {"type": "restaurant", "label": "查看灵隐片区餐厅候选", "provider": "携程", "url": "https://you.ctrip.com/food/hangzhou14.html", "checked_at": "2026-09-20", "disclaimer": "营业和排队情况以当天店铺为准"}         ]
  • Network accessline 347
    {"type": "restaurant", "label": "查看灵隐片区餐厅候选", "provider": "携程", "url": "https://you.ctrip.com/food/hangzhou14.html", "checked_at": "2026-09-20", "disclaimer": "营业和排队情况以当天店铺为准"}
  • Network accessline 393
    ],     "weather": [       {"id": "wx-d1-hangzhou", "date": "2026-10-17", "location": "杭州西湖", "basis": "历史气候", "icon_code": "drizzle", "summary": "精确天气待出发前 7 天查询", "temperature": "待查询", "warning": "湖边降雨会增加湿滑风险", "status": "to_recheck", "chec
  • Network accessline 394
    "weather": [       {"id": "wx-d1-hangzhou", "date": "2026-10-17", "location": "杭州西湖", "basis": "历史气候", "icon_code": "drizzle", "summary": "精确天气待出发前 7 天查询", "temperature": "待查询", "warning": "湖边降雨会增加湿滑风险", "status": "to_recheck", "checked_at"
  • Network accessline 395
    {"id": "wx-d1-hangzhou", "date": "2026-10-17", "location": "杭州西湖", "basis": "历史气候", "icon_code": "drizzle", "summary": "精确天气待出发前 7 天查询", "temperature": "待查询", "warning": "湖边降雨会增加湿滑风险", "status": "to_recheck", "checked_at": "2026-09-20", "ac
  • Network accessline 396
    {"id": "wx-d2-hangzhou", "date": "2026-10-18", "location": "杭州龙井村", "basis": "历史气候", "icon_code": "partly_cloudy", "summary": "精确天气待出发前 7 天查询", "temperature": "待查询", "warning": "降雨时取消茶山步行", "status": "to_recheck", "checked_at": "2026-09-20"
  • Network accessline 405
    },     "booking_tasks": [       {"id": "b1", "title": "确认住宿", "deadline": "2026-10-03 前完成", "priority": "book_when_open", "status": "pending", "action_links": [{"type": "hotel", "label": "查看杭州 10月17日至18日住宿", "provider": "携程", "url": "https:
  • Network accessline 406
    "booking_tasks": [       {"id": "b1", "title": "确认住宿", "deadline": "2026-10-03 前完成", "priority": "book_when_open", "status": "pending", "action_links": [{"type": "hotel", "label": "查看杭州 10月17日至18日住宿", "provider": "携程", "url": "https://hotel
  • Network accessline 407
    {"id": "b1", "title": "确认住宿", "deadline": "2026-10-03 前完成", "priority": "book_when_open", "status": "pending", "action_links": [{"type": "hotel", "label": "查看杭州 10月17日至18日住宿", "provider": "携程", "url": "https://hotels.ctrip.com/", "checked_a
  • Network accessline 458
    "exit": {"name": "断桥东侧", "location_query": "杭州断桥残雪"},             "checkpoints": [               {"id": "cp-d1-lakefront", "order": 1, "time": "09:00", "end_time": "09:35", "name": "湖滨公园湖岸", "kind": "visit", "required": true, "instruction":
  • Network accessline 459
    "checkpoints": [               {"id": "cp-d1-lakefront", "order": 1, "time": "09:00", "end_time": "09:35", "name": "湖滨公园湖岸", "kind": "visit", "required": true, "instruction": "沿湖岸向北步行,在开阔湖面完成第一段观景", "narration": "先看湖岸线与远山层次;早晨逆光时不要在同一机位久等。"
  • Network accessline 460
    {"id": "cp-d1-lakefront", "order": 1, "time": "09:00", "end_time": "09:35", "name": "湖滨公园湖岸", "kind": "visit", "required": true, "instruction": "沿湖岸向北步行,在开阔湖面完成第一段观景", "narration": "先看湖岸线与远山层次;早晨逆光时不要在同一机位久等。", "move_from_previous": {"mode"
  • Network accessline 636
    ],   "sources": [     {"id": "s-restaurant-platform", "title": "示例餐厅平台详情", "url": "https://example.com/restaurants", "kind": "restaurant_platform", "provider": "amap", "provider_poi_ids": ["demo-lingyin-a", "demo-lingyin-b", "demo-longjing-
  • Network accessline 637
    "sources": [     {"id": "s-restaurant-platform", "title": "示例餐厅平台详情", "url": "https://example.com/restaurants", "kind": "restaurant_platform", "provider": "amap", "provider_poi_ids": ["demo-lingyin-a", "demo-lingyin-b", "demo-longjing-a", "
  • Network accessline 638
    {"id": "s-restaurant-platform", "title": "示例餐厅平台详情", "url": "https://example.com/restaurants", "kind": "restaurant_platform", "provider": "amap", "provider_poi_ids": ["demo-lingyin-a", "demo-lingyin-b", "demo-longjing-a", "demo-longjing-b",
  • Network accessline 639
    {"id": "s-restaurant-community", "title": "示例近期社区体验", "url": "https://www.xiaohongshu.com/", "kind": "community", "provider": "xiaohongshu", "checked_at": "2026-09-20", "note": "演示近期口味、排队和服务体感;不证明营业或价格"},
  • Network accessline 640
    {"id": "s-restaurant-map", "title": "示例地图路线", "url": "https://lbs.amap.com/api/webservice/guide/api/direction", "kind": "map", "provider": "amap", "checked_at": "2026-09-20", "note": "演示餐厅候选双腿路线与额外绕行"}

plugins/travel-planning/skills/travel-planning/assets/frontend/itinerary-app.js

  • Possible obfuscationline 1
    (function(){function e(e){let t=Object.create(null);for(let n of e.split(`,`))t[n]=1;return e=>e in t}var t={},n=[],r=()=>{},i=()=>!1,a=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),o=e=>e.starts
  • Executable scriptline 1
    Executable file

plugins/travel-planning/skills/travel-planning/references/workspace/submission-and-evidence.md

  • Network accessline 36
    python3 skills/travel-planning/scripts/research_workspace.py archive    --workspace ".travel-research/hangzhou-2026-10"    --record-id "hangzhou-tourism-notices"    --task-id main --kind link    --title "杭州文旅公告入口"    --url "https://wgly.han
  • Network accessline 39
    --task-id main --kind link \   --title "杭州文旅公告入口" \   --url "https://wgly.hangzhou.gov.cn/" \
  • Network accessline 40
    --title "杭州文旅公告入口" \   --url "https://wgly.hangzhou.gov.cn/" \   --source-kind official --location "杭州" --topic "文旅公告" \
  • Network accessline 41
    --url "https://wgly.hangzhou.gov.cn/" \

plugins/travel-planning/skills/travel-planning/schemas/car-rental-option.schema.json

  • Network accessline 1
    {   "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 2
    "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 3
    "$id": "https://travel-planning.local/schemas/car-rental-option.schema.json",

plugins/travel-planning/skills/travel-planning/schemas/itinerary-plan.schema.json

  • Network accessline 1
    {   "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 2
    "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 3
    "$id": "https://example.invalid/travel-planning/itinerary-plan.schema.json",

plugins/travel-planning/skills/travel-planning/schemas/meal-baseline-route.schema.json

  • Network accessline 1
    {   "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 2
    "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 3
    "$id": "https://example.invalid/schemas/meal-baseline-route.schema.json",

plugins/travel-planning/skills/travel-planning/schemas/meal-route-evaluation.schema.json

  • Network accessline 1
    {   "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 2
    "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 3
    "$id": "https://example.invalid/schemas/meal-route-evaluation.schema.json",

plugins/travel-planning/skills/travel-planning/schemas/planning-decisions.schema.json

  • Network accessline 1
    {   "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 2
    "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 3
    "$id": "https://example.invalid/travel-planning/planning-decisions.schema.json",

plugins/travel-planning/skills/travel-planning/schemas/research-module-registry.schema.json

  • Network accessline 1
    {   "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 2
    "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 3
    "$id": "https://travel-planning.local/schemas/research-module-registry.schema.json",

plugins/travel-planning/skills/travel-planning/schemas/research-profile.schema.json

  • Network accessline 1
    {   "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 2
    "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 3
    "$id": "https://travel-planning.local/schemas/research-profile.schema.json",

plugins/travel-planning/skills/travel-planning/schemas/restaurant-source-snapshot.schema.json

  • Network accessline 1
    {   "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 2
    "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 3
    "$id": "https://example.invalid/schemas/restaurant-source-snapshot.schema.json",

plugins/travel-planning/skills/travel-planning/schemas/restaurant.schema.json

  • Network accessline 1
    {   "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 2
    "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 3
    "$id": "https://example.invalid/schemas/restaurant.schema.json",

plugins/travel-planning/skills/travel-planning/schemas/road-trip-plan.schema.json

  • Network accessline 1
    {   "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 2
    "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 3
    "$id": "https://travel-planning.local/schemas/road-trip-plan.schema.json",

plugins/travel-planning/skills/travel-planning/schemas/travel-source-error.schema.json

  • Network accessline 1
    {   "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 2
    "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 3
    "$id": "https://travel-planning.local/schemas/travel-source-error.schema.json",

plugins/travel-planning/skills/travel-planning/schemas/travel-source-snapshot.schema.json

  • Network accessline 1
    {   "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 2
    "$schema": "https://json-schema.org/draft/2020-12/schema",
  • Network accessline 3
    "$id": "https://travel-planning.local/schemas/travel-source-snapshot.schema.json",

plugins/travel-planning/skills/travel-planning/scripts/assemble_itinerary.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 169
    "action_link": {                     "type": "train", "label": "铁路12306最终复核", "provider": "铁路12306",                     "url": "https://www.12306.cn/",
  • Network accessline 170
    "type": "train", "label": "铁路12306最终复核", "provider": "铁路12306",                     "url": "https://www.12306.cn/",                 },
  • Network accessline 171
    "url": "https://www.12306.cn/",

plugins/travel-planning/skills/travel-planning/scripts/audit_itinerary.py

  • Executable scriptline 1
    #!/usr/bin/env python3

plugins/travel-planning/skills/travel-planning/scripts/generate_itinerary_plan.py

  • Executable scriptline 1
    #!/usr/bin/env python3

plugins/travel-planning/skills/travel-planning/scripts/render_itinerary.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 160
    if waypoint.get("poi_id"):             params[f"via[{index}][id]"] = str(waypoint["poi_id"])     return "https://ditu.amap.com/dir?" + urlencode(params)
  • Network accessline 162
    return "https://ditu.amap.com/dir?" + urlencode(params)
  • Network accessline 175
    destination = f'{map_route["destination"]},{route.get("to") or "终点"}'     return (         "https://m.amap.com/navigation/carmap/"
  • Network accessline 176
    return (         "https://m.amap.com/navigation/carmap/"         f"saddr={quote(start, safe=',')}&daddr={quote(destination, safe=',')}&sort=dist"
  • Network accessline 177
    "https://m.amap.com/navigation/carmap/"
  • Network accessline 295
    "type": "restaurant",         "label": "在高德查看门店",         "url": "https://uri.amap.com/poidetail?" + urlencode({
  • Network accessline 296
    "label": "在高德查看门店",         "url": "https://uri.amap.com/poidetail?" + urlencode({             "poiid": poi_id,
  • Network accessline 297
    "url": "https://uri.amap.com/poidetail?" + urlencode({
  • Network accessline 321
    action for action in meal.get("action_links") or []             if action.get("type") == "restaurant_search"             and str(action.get("url") or "").startswith("https://ditu.amap.com/search?")
  • Network accessline 322
    if action.get("type") == "restaurant_search"             and str(action.get("url") or "").startswith("https://ditu.amap.com/search?")         ),
  • Network accessline 323
    and str(action.get("url") or "").startswith("https://ditu.amap.com/search?")
  • Network accessline 345
    "checked_at": meal.get("checked_at"),         "disclaimer": "营业、排队和门店状态以高德实时页为准",         "url": "https://ditu.amap.com/search?" + urlencode({
  • Network accessline 346
    "disclaimer": "营业、排队和门店状态以高德实时页为准",         "url": "https://ditu.amap.com/search?" + urlencode({             "query": "餐厅",
  • Network accessline 347
    "url": "https://ditu.amap.com/search?" + urlencode({
  • Network accessline 1278
    raise ValueError(                                 f"景点“{attraction.get('name') or title}”的 official.wechat.guide_url "                                 "必须使用 https://mp.weixin.qq.com"
  • Network accessline 1279
    f"景点“{attraction.get('name') or title}”的 official.wechat.guide_url "                                 "必须使用 https://mp.weixin.qq.com"                             )
  • Network accessline 1280
    "必须使用 https://mp.weixin.qq.com"
  • Possible obfuscationline 1994
    :root{{--yellow:#ffd92f;--ink:#20201d;--muted:#6f706b;--line:#e7e5de;--paper:#fff;--wash:#f6f5f0;--accent:#ff6b35;--shadow:0 8px 26px rgba(40,38,25,.09)}}*{{box-sizing:border-box}}html{{scroll-behavior:smooth}}body{{margin:0;background:var(
  • Possible obfuscationline 1996
    .hero{{position:relative;top:auto}}.hero-inner{{padding-bottom:18px}}.day{{position:relative;scroll-margin-top:24px;margin-bottom:42px}}.day:before{{content:"";position:absolute;left:11px;top:18px;bottom:-30px;width:2px;background:var(--lin
  • Possible obfuscationline 2002
    .card-tools{{display:flex;align-items:center;gap:8px}}.weather-badge{{display:grid;place-items:center;width:42px;height:42px;border:1px solid #dfe4dd;border-radius:50%;background:#f8faf7;text-decoration:none;font-size:21px;box-shadow:0 2px 
  • Possible obfuscationline 2003
    .checkpoint-list{{padding:14px;background:#f8faf7}}.checkpoint-list ol{{position:relative;margin-top:8px}}.checkpoint-list ol:before{{content:"";position:absolute;left:56px;top:18px;bottom:18px;width:2px;background:#cfdcd3}}.checkpoint-list
  • Possible obfuscationline 2007
    .restaurant-comparison{{margin-top:14px;border-top:1px solid var(--line);padding-top:12px}}.restaurant-comparison-head strong,.restaurant-comparison-head small{{display:block}}.restaurant-comparison-head strong{{margin-top:3px;font-size:13p
  • Possible obfuscationline 2013
    .view-switcher{{display:inline-grid;grid-template-columns:repeat(3,1fr);gap:3px;margin:2px 0 16px;padding:3px;border:1px solid rgba(74,64,0,.18);border-radius:11px;background:rgba(255,255,255,.48)}}.view-switcher button{{min-width:104px;min
  • Possible obfuscationline 2016
    .route-map,.route-map-head,.route-map-head>div:first-child,.route-stop-list{{min-width:0;max-width:100%}}.route-map-head strong{{overflow-wrap:anywhere}}.route-stop-list{{display:flex;gap:0;margin:0 0 11px;padding:0 2px;list-style:none;over

plugins/travel-planning/skills/travel-planning/scripts/research_profiles.py

  • Executable scriptline 1
    #!/usr/bin/env python3

plugins/travel-planning/skills/travel-planning/scripts/research_sources.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 52
    OPEN_METEO_GEOCODING = "https://geocoding-api.open-meteo.com/v1/search"
  • Network accessline 53
    OPEN_METEO_FORECAST = "https://api.open-meteo.com/v1/forecast"
  • Network accessline 54
    AMAP_API = "https://restapi.amap.com"
  • Network accessline 55
    AMAP_DOCS = "https://lbs.amap.com/api/webservice/guide/api/direction"
  • Network accessline 56
    NOMINATIM_SEARCH = "https://nominatim.openstreetmap.org/search"
  • Network accessline 58
    SKILL_ROOT = Path(__file__).resolve().parents[1] LOCAL_CONFIG_FILE = source_config_file(os.environ) XHS_DEFAULT_URL = "http://127.0.0.1:18060/mcp"
  • Network accessline 59
    [Credential-related source omitted]
  • Access to secretsline 59
    [Credential-related source omitted]
  • Network accessline 60
    XHS_DEFAULT_URL = "http://127.0.0.1:18060/mcp"
  • Access to secretsline 63
    [Credential-related source omitted]
  • Access to secretsline 151
    [Credential-related source omitted]
  • Access to secretsline 158
    [Credential-related source omitted]
  • Access to secretsline 159
    [Credential-related source omitted]
  • Access to secretsline 216
    [Credential-related source omitted]
  • Access to secretsline 226
    [Credential-related source omitted]
  • Network accessline 346
    "source": {             "title": "小红书公开笔记搜索",             "url": "https://www.xiaohongshu.com/explore",
  • Network accessline 347
    "title": "小红书公开笔记搜索",             "url": "https://www.xiaohongshu.com/explore",             "kind": "community_search",
  • Network accessline 348
    "url": "https://www.xiaohongshu.com/explore",
  • Access to secretsline 410
    [Credential-related source omitted]
  • Access to secretsline 427
    [Credential-related source omitted]
  • Access to secretsline 432
    [Credential-related source omitted]
  • Access to secretsline 437
    [Credential-related source omitted]
  • Access to secretsline 438
    [Credential-related source omitted]
  • Access to secretsline 443
    [Credential-related source omitted]
  • Access to secretsline 445
    [Credential-related source omitted]
  • Access to secretsline 449
    [Credential-related source omitted]
  • Access to secretsline 450
    [Credential-related source omitted]
  • Access to secretsline 455
    [Credential-related source omitted]
  • Access to secretsline 457
    [Credential-related source omitted]
  • Access to secretsline 465
    [Credential-related source omitted]
  • Network accessline 501
    "shares": interactions.get("sharedCount"),         },         "source_url": f"https://www.xiaohongshu.com/explore/{note_id}" if note_id else None,
  • Network accessline 502
    },         "source_url": f"https://www.xiaohongshu.com/explore/{note_id}" if note_id else None,     }
  • Network accessline 503
    "source_url": f"https://www.xiaohongshu.com/explore/{note_id}" if note_id else None,
  • Network accessline 547
    for feed in feeds:         if feed.get("id") and not feed.get("sourceUrl"):             feed["sourceUrl"] = f"https://www.xiaohongshu.com/explore/{feed['id']}"
  • Network accessline 548
    if feed.get("id") and not feed.get("sourceUrl"):             feed["sourceUrl"] = f"https://www.xiaohongshu.com/explore/{feed['id']}"     cache_xhs_mcp_tokens(feeds, args.keyword)
  • Network accessline 549
    feed["sourceUrl"] = f"https://www.xiaohongshu.com/explore/{feed['id']}"
  • Network accessline 559
    "source": {             "title": "小红书公开笔记搜索",             "url": "https://www.xiaohongshu.com/explore",
  • Network accessline 560
    "title": "小红书公开笔记搜索",             "url": "https://www.xiaohongshu.com/explore",             "kind": "community_search",
  • Network accessline 561
    "url": "https://www.xiaohongshu.com/explore",
  • Access to secretsline 611
    [Credential-related source omitted]
  • Network accessline 629
    "credential_required": False,             "fields": ["近期预报", "降雨", "风速", "紫外线", "日出", "日落", "图标代码", "天气查看入口", "预警复核入口"],             "warning_fallback": "https://www.nmc.cn/publish/alarm.html",
  • Network accessline 630
    "fields": ["近期预报", "降雨", "风速", "紫外线", "日出", "日落", "图标代码", "天气查看入口", "预警复核入口"],             "warning_fallback": "https://www.nmc.cn/publish/alarm.html",         },
  • Network accessline 631
    "warning_fallback": "https://www.nmc.cn/publish/alarm.html",
  • Access to secretsline 648
    [Credential-related source omitted]
  • Network accessline 662
    "integration": "授权平台只读查询 + 12306 官方查询页用户会话交接",             "reason": "不调用或逆向 12306 非公开接口;平台结果不能替代 12306 最终余票与出票确认",             "manual_url": "https://www.12306.cn/index/",
  • Network accessline 663
    "reason": "不调用或逆向 12306 非公开接口;平台结果不能替代 12306 最终余票与出票确认",             "manual_url": "https://www.12306.cn/index/",         },
  • Network accessline 664
    "manual_url": "https://www.12306.cn/index/",
  • Network accessline 670
    "integration": "平台查询页用户会话交接",             "reason": "未配置获授权的官方数据接口",             "manual_url": "https://www.ctrip.com/",
  • Network accessline 671
    "reason": "未配置获授权的官方数据接口",             "manual_url": "https://www.ctrip.com/",         },
  • Network accessline 672
    "manual_url": "https://www.ctrip.com/",
  • Access to secretsline 754
    [Credential-related source omitted]
  • Access to secretsline 755
    [Credential-related source omitted]
  • Access to secretsline 756
    [Credential-related source omitted]
  • Access to secretsline 879
    [Credential-related source omitted]
  • Network accessline 1208
    "label": f"在 Windy 查看{location_label}天气",                 "provider": "Windy",                 "url": "https://www.windy.com/",
  • Network accessline 1209
    "provider": "Windy",                 "url": "https://www.windy.com/",                 "checked_at": checked_at(),
  • Network accessline 1210
    "url": "https://www.windy.com/",
  • Network accessline 1216
    "label": "查看中央气象台预警",                 "provider": "中央气象台",                 "url": "https://www.nmc.cn/publish/alarm.html",
  • Network accessline 1217
    "provider": "中央气象台",                 "url": "https://www.nmc.cn/publish/alarm.html",                 "checked_at": checked_at(),
  • Network accessline 1218
    "url": "https://www.nmc.cn/publish/alarm.html",
  • Network accessline 1222
    ],         "sources": [             {"title": "Open-Meteo Forecast API", "url": "https://open-meteo.com/en/docs", "kind": "weather_api"},
  • Network accessline 1223
    "sources": [             {"title": "Open-Meteo Forecast API", "url": "https://open-meteo.com/en/docs", "kind": "weather_api"},             {"title": "中央气象台预警", "url": "https://www.nmc.cn/publish/alarm.html", "kind": "manual_warning_check"},
  • Network accessline 1224
    {"title": "Open-Meteo Forecast API", "url": "https://open-meteo.com/en/docs", "kind": "weather_api"},
  • Network accessline 1225
    {"title": "中央气象台预警", "url": "https://www.nmc.cn/publish/alarm.html", "kind": "manual_warning_check"},
  • Access to secretsline 1234
    [Credential-related source omitted]
  • Network accessline 1250
    marker_url = None         if name and location:             marker_url = "https://uri.amap.com/marker?" + urlencode(
  • Network accessline 1251
    if name and location:             marker_url = "https://uri.amap.com/marker?" + urlencode(                 {
  • Network accessline 1252
    marker_url = "https://uri.amap.com/marker?" + urlencode(
  • Network accessline 1276
    "places": places,         "checked_at": checked_at(),         "source": {"title": "高德地图 Web 服务 API", "url": "https://lbs.amap.com/api/webservice/guide/api-advanced/newpoisearch"},
  • Network accessline 1277
    "checked_at": checked_at(),         "source": {"title": "高德地图 Web 服务 API", "url": "https://lbs.amap.com/api/webservice/guide/api-advanced/newpoisearch"},         "disclaimer": "景区入口名称与开放状态仍需景区官方来源确认。",
  • Network accessline 1278
    "source": {"title": "高德地图 Web 服务 API", "url": "https://lbs.amap.com/api/webservice/guide/api-advanced/newpoisearch"},
  • Network accessline 1301
    map_url = None         if lat and lon:             map_url = f"https://www.openstreetmap.org/?mlat={lat}&mlon={lon}#map=18/{lat}/{lon}"
  • Network accessline 1302
    if lat and lon:             map_url = f"https://www.openstreetmap.org/?mlat={lat}&mlon={lon}#map=18/{lat}/{lon}"         places.append(
  • Network accessline 1303
    map_url = f"https://www.openstreetmap.org/?mlat={lat}&mlon={lon}#map=18/{lat}/{lon}"
  • Network accessline 1322
    "places": places,         "checked_at": checked_at(),         "source": {"title": "OpenStreetMap Nominatim", "url": "https://nominatim.org/release-docs/latest/api/Search/"},
  • Network accessline 1323
    "checked_at": checked_at(),         "source": {"title": "OpenStreetMap Nominatim", "url": "https://nominatim.org/release-docs/latest/api/Search/"},         "disclaimer": "仅用于低频地点候选检索;名称和坐标需与景区官网或地图平台交叉核对,入口开放状态以景区官方为准。",
  • Network accessline 1324
    "source": {"title": "OpenStreetMap Nominatim", "url": "https://nominatim.org/release-docs/latest/api/Search/"},
  • Network accessline 1377
    {"origin": args.origin, "destination": args.destination, "city": args.city, "extensions": "all"},     )     navigation_url = "https://uri.amap.com/navigation?" + urlencode(
  • Network accessline 1378
    )     navigation_url = "https://uri.amap.com/navigation?" + urlencode(         {
  • Network accessline 1379
    navigation_url = "https://uri.amap.com/navigation?" + urlencode(
  • Network accessline 1432
    if args.date:             label += f"·{args.date}"         links.append(manual_link(label, "https://www.12306.cn/index/", "12306", f"核对车次、时刻、席别价格和查询时余票;{args.recheck}"))
  • Network accessline 1433
    label += f"·{args.date}"         links.append(manual_link(label, "https://www.12306.cn/index/", "12306", f"核对车次、时刻、席别价格和查询时余票;{args.recheck}"))     elif args.kind == "ctrip":
  • Network accessline 1434
    links.append(manual_link(label, "https://www.12306.cn/index/", "12306", f"核对车次、时刻、席别价格和查询时余票;{args.recheck}"))
  • Network accessline 1435
    elif args.kind == "ctrip":         product = args.product or "旅行产品"         links.append(manual_link(f"在携程查询{product}:{summary or '请填写查询条件'}", "https://www.ctrip.com/", "携程", f"库存与价格以平台当时显示为准;{args.recheck}"))
  • Network accessline 1436
    product = args.product or "旅行产品"         links.append(manual_link(f"在携程查询{product}:{summary or '请填写查询条件'}", "https://www.ctrip.com/", "携程", f"库存与价格以平台当时显示为准;{args.recheck}"))     elif args.kind == "map":
  • Network accessline 1437
    links.append(manual_link(f"在携程查询{product}:{summary or '请填写查询条件'}", "https://www.ctrip.com/", "携程", f"库存与价格以平台当时显示为准;{args.recheck}"))
  • Network accessline 1439
    query = args.keywords or args.destination or args.city or "目的地"         if args.map_provider == "google":             url = "https://www.google.com/maps/search/?" + urlencode({"api": 1, "query": query})
  • Network accessline 1440
    if args.map_provider == "google":             url = "https://www.google.com/maps/search/?" + urlencode({"api": 1, "query": query})             links.append(manual_link(f"在 Google Maps 查询:{summary or query}", url, "Google Maps", f"复核入口、路线和实时
  • Network accessline 1441
    url = "https://www.google.com/maps/search/?" + urlencode({"api": 1, "query": query})
  • Network accessline 1442
    links.append(manual_link(f"在 Google Maps 查询:{summary or query}", url, "Google Maps", f"复核入口、路线和实时耗时;{args.recheck}"))         else:             url = "https://uri.amap.com/search?" + urlencode(
  • Network accessline 1443
    else:             url = "https://uri.amap.com/search?" + urlencode(                 {"keyword": query, "city": args.city or "", "src": "travel-planning", "callnative": 0}
  • Network accessline 1444
    url = "https://uri.amap.com/search?" + urlencode(
  • Network accessline 1447
    links.append(manual_link(f"在高德地图查询:{summary or query}", url, "高德地图", f"复核入口、路线和实时耗时;{args.recheck}"))     elif args.kind == "weather":         links.append(manual_link(f"在中国天气网查询:{summary or '目的地与日期'}", "https://www.weather.com.cn/", "中国天气网
  • Network accessline 1448
    elif args.kind == "weather":         links.append(manual_link(f"在中国天气网查询:{summary or '目的地与日期'}", "https://www.weather.com.cn/", "中国天气网", f"复核预报、降雨和紫外线;{args.recheck}"))         links.append(manual_link("查看中央气象台当前预警", "https://www.nmc.cn/pub
  • Network accessline 1449
    links.append(manual_link(f"在中国天气网查询:{summary or '目的地与日期'}", "https://www.weather.com.cn/", "中国天气网", f"复核预报、降雨和紫外线;{args.recheck}"))
  • Network accessline 1450
    links.append(manual_link("查看中央气象台当前预警", "https://www.nmc.cn/publish/alarm.html", "中央气象台", f"确认是否存在有效预警;{args.recheck}"))
  • Network accessline 1455
    elif args.kind == "xiaohongshu":         query = args.keywords or args.destination or args.city or "目的地 当季 入口 避坑"         links.append(manual_link(f"在小红书搜索:{query}", "https://www.xiaohongshu.com/explore", "小红书", f"需登录后输入该检索词;社区经验须与官方来源交叉核验;
  • Network accessline 1456
    query = args.keywords or args.destination or args.city or "目的地 当季 入口 避坑"         links.append(manual_link(f"在小红书搜索:{query}", "https://www.xiaohongshu.com/explore", "小红书", f"需登录后输入该检索词;社区经验须与官方来源交叉核验;{args.recheck}"))     return {
  • Network accessline 1457
    links.append(manual_link(f"在小红书搜索:{query}", "https://www.xiaohongshu.com/explore", "小红书", f"需登录后输入该检索词;社区经验须与官方来源交叉核验;{args.recheck}"))

plugins/travel-planning/skills/travel-planning/scripts/research_workspace.py

  • Executable scriptline 1
    #!/usr/bin/env python3

plugins/travel-planning/skills/travel-planning/scripts/source_adapters.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 77
    executable="flyai",         credential_env="FLYAI_API_KEY",         source_url="https://github.com/alibaba-flyai/flyai-skill",
  • Network accessline 78
    [Credential-related source omitted]
  • Access to secretsline 78
    [Credential-related source omitted]
  • Network accessline 79
    source_url="https://github.com/alibaba-flyai/flyai-skill",
  • Network accessline 89
    executable="variflight-mcp",         credential_env="VARIFLIGHT_API_KEY",         source_url="https://github.com/variflight/variflight-mcp",
  • Network accessline 90
    [Credential-related source omitted]
  • Access to secretsline 90
    [Credential-related source omitted]
  • Network accessline 91
    source_url="https://github.com/variflight/variflight-mcp",
  • Network accessline 101
    executable="variflight-mcp",         credential_env="VARIFLIGHT_API_KEY",         source_url="https://github.com/variflight/tripmatch-mcp",
  • Network accessline 102
    [Credential-related source omitted]
  • Access to secretsline 102
    [Credential-related source omitted]
  • Network accessline 103
    source_url="https://github.com/variflight/tripmatch-mcp",
  • Access to secretsline 139
    [Credential-related source omitted]
  • Access to secretsline 161
    [Credential-related source omitted]
  • Access to secretsline 163
    [Credential-related source omitted]
  • Access to secretsline 456
    [Credential-related source omitted]
  • Access to secretsline 468
    [Credential-related source omitted]
  • Access to secretsline 469
    [Credential-related source omitted]
  • Access to secretsline 490
    [Credential-related source omitted]
  • Access to secretsline 505
    [Credential-related source omitted]
  • Access to secretsline 516
    [Credential-related source omitted]
  • Access to secretsline 525
    [Credential-related source omitted]
  • Access to secretsline 529
    [Credential-related source omitted]
  • Access to secretsline 535
    [Credential-related source omitted]
  • Access to secretsline 566
    [Credential-related source omitted]
  • Access to secretsline 568
    [Credential-related source omitted]
  • Access to secretsline 580
    [Credential-related source omitted]
  • Access to secretsline 691
    [Credential-related source omitted]
  • Access to secretsline 915
    [Credential-related source omitted]
  • Access to secretsline 917
    [Credential-related source omitted]
  • Access to secretsline 918
    [Credential-related source omitted]

plugins/travel-planning/skills/variflight/SKILL.md

  • Access to secretsline 33
    [Credential-related source omitted]

plugins/travel-planning/skills/variflight/references/tool-routing.md

  • Network accessline 35
    官方来源:<https://github.com/variflight/variflight-mcp>、<https://github.com/variflight/tripmatch-mcp>

plugins/travel-planning/skills/xiaohongshu/references/NOTICE.md

  • Network accessline 5
    Source: <https://github.com/xpzouying/xiaohongshu-mcp>

plugins/travel-planning/skills/xiaohongshu/references/tool-routing.md

  • Network accessline 3
    服务地址由插件固定为 `http://127.0.0.1:18060/mcp`。旅行研究优先使用下列只读工具:

plugins/travel-planning/skills/xiaohongshu/references/upstream.lock.json

  • Network accessline 1
    {   "name": "xpzouying/xiaohongshu-mcp",   "repository": "https://github.com/xpzouying/xiaohongshu-mcp.git",
  • Network accessline 2
    "name": "xpzouying/xiaohongshu-mcp",   "repository": "https://github.com/xpzouying/xiaohongshu-mcp.git",   "version": "v2.5.2",
  • Network accessline 3
    "repository": "https://github.com/xpzouying/xiaohongshu-mcp.git",
  • Network accessline 6
    "license": "Apache-2.0",   "integration": "local Streamable HTTP MCP with separately installed verified release binaries",   "endpoint": "http://127.0.0.1:18060/mcp",
  • Network accessline 7
    "integration": "local Streamable HTTP MCP with separately installed verified release binaries",   "endpoint": "http://127.0.0.1:18060/mcp",   "assets": {
  • Network accessline 8
    "endpoint": "http://127.0.0.1:18060/mcp",

plugins/travel-planning/skills/xiaohongshu/scripts/setup.py

  • Executable scriptline 1
    #!/usr/bin/env python3
  • Network accessline 21
    UPSTREAM_REPOSITORY = "https://github.com/xpzouying/xiaohongshu-mcp"
  • Network accessline 23
    UPSTREAM_COMMIT = "8eae4eb22ca1135e53f3e2da6c449fdfe5b492ff" RELEASE_BASE_URL = f"{UPSTREAM_REPOSITORY}/releases/download/{UPSTREAM_VERSION}" DEFAULT_ENDPOINT = "http://127.0.0.1:18060"
  • Network accessline 24
    RELEASE_BASE_URL = f"{UPSTREAM_REPOSITORY}/releases/download/{UPSTREAM_VERSION}" DEFAULT_ENDPOINT = "http://127.0.0.1:18060" DEFAULT_DATA_ROOT = Path.home() / ".local" / "share" / "travel-planning" / "xiaohongshu-mcp"
  • Network accessline 25
    DEFAULT_ENDPOINT = "http://127.0.0.1:18060"
  • Access to secretsline 27
    [Credential-related source omitted]
  • Access to secretsline 207
    [Credential-related source omitted]
  • Access to secretsline 258
    [Credential-related source omitted]

How the signals fit together

Facts from a static read of the files at the pinned commit. They describe what the code does, not why.

Some files could not be read; the facts below still hold.

Declared and executed: 17 facts
Signal confidence: 203 facts

and 153 more

Works with

Agent compatibility, from the files in this repository
AgentStatusEvidenceInstall to
Claude CodeNativeManifest plugins/travel-planning/.claude-plugin/plugin.json.claude/skills/<skill-name>/
CodexNativePath .codex/config.toml.agents/skills/<skill-name>/
CursorCompatibleStandard SKILL.md plugins/travel-planning/skills/amap-maps/SKILL.md.cursor/skills/<skill-name>/
Gemini CLICompatibleStandard SKILL.md plugins/travel-planning/skills/amap-maps/SKILL.md.gemini/skills/<skill-name>/
GitHub CopilotCompatibleStandard SKILL.md plugins/travel-planning/skills/amap-maps/SKILL.md.github/skills/<skill-name>/
OpenCodeCompatibleStandard SKILL.md plugins/travel-planning/skills/amap-maps/SKILL.md.opencode/skills/<skill-name>/
  • Native The repository ships a manifest, folder or frontmatter field for this agent.
  • Compatible A standard SKILL.md that this agent can read.
  • Unknown No evidence either way.

Derived automatically from paths, manifests and frontmatter. Not tested on each agent.