Travel Planner Roadbook - 旅行路书规划助手

SKILL生活服务
生活服务 未标注权限 许可证不明确
安装这个技能

端到端旅行计划制定助手。从"我想带家人去XX玩"一句模糊需求出发,经过需求收集→MCP驱动的方案生成(携程问道+高德)→可执行性体检(限行/排队/停车/营业时间/死线倒推)→决策辅助→订房(可跳过)→可折叠区块HTML路书交付→复盘回写,全流程覆盖。支持MCP缺失时WebSearch降级兜底。

一句话选型结论

按资料字段整理

Travel Planner Roadbook - 旅行路书规划助手是生活服务类的 Agent Skill,安装方式未标注,权限级别未标注,许可证不明确,有可直接复制的安装命令。技能本质是给模型读的说明书,效果取决于模型与客户端;装完先用一个小任务验证,再放进正式流程。

分类生活服务 安装方式未标注 权限级别未标注权限 许可证许可证不明确
累计安装 未标注 本周 未标注
GitHub 星标 未标注 仓库 未标注
下载量 未标注 技能市场下载数
权限级别 未标注权限 安装前请确认风险范围
许可证 许可证不明确 未说明

安装

未标注
在支持 Skills 的客户端里执行,装完问一句「你有哪些技能」验证
skillhub install user_1b9a0379/travel-planner-roadbook
  1. 1
    确认客户端支持

    确认你的客户端支持 Skills(Claude、Codex、Cursor 等),并升级到较新的版本。

  2. 2
    拿到技能文件

    执行上面的命令安装;也可以把仓库里的 SKILL.md 手动放进客户端的 skills 目录。

  3. 3
    刷新技能列表

    重新打开客户端,或刷新技能列表,让新放进来的技能被加载。

  4. 4
    验证是否生效

    问一句「你有哪些技能」,确认列表里出现它,再拿一个小任务试跑。

技能档案

生活服务
字段来自技能仓库与公开索引,中文说明由本站标注
作者 / 维护方user_1b9a0379仓库 未标注 · 版本 未标注
宿主客户端未标注技能可被这些客户端加载
安装方式未标注安装包 community
权限级别未标注权限安装前请确认风险范围
许可证未说明许可证不明确,商用前请自行确认条款
仓库可用性available技能仓库当前是否可访问
最近核验未标注上游最后核验时间 · 数据更新 1791737497
正文体量30.7 KBSKILL.md 原文大小,越大说明说明书写得越细

典型使用场景

3 类
按分类整理的常见用法,具体以 SKILL.md 为准
行程与攻略

按目的地和天数排行程。

日常信息查询

查天气、交通、办事信息。

生活事务整理

把琐事整理成清单逐项处理。

选择建议

装之前先看这几条
按条目字段给出的判断,不替你决定用不用

值得选的地方

  • 有可直接复制的安装命令,不用自己翻文档找入口。

先想清楚的地方

  • 没有标注权限级别,实际能做什么要装好后确认。
  • 许可证不明确,商用或二次分发前先到仓库确认条款。
  • 没有做站内核验,内容以作者仓库为准。
  • 技能只是说明书,实际效果取决于模型与客户端,装完先用小任务试一遍。

更适合

  • 需要在生活服务场景里给模型补一套做法的人。
  • 愿意先读一遍 SKILL.md、确认它会让模型做什么的人。

不太适合

  • 对许可证要求很严、必须明确可商用的人。
  • 只想装完就自动变强、不打算看说明书的人。

同类对比

6 个同类
同分类里挑最接近的几条,字段以各自详情页为准
技能权限级别安装方式累计安装宿主客户端安装命令
Travel Planner Roadbook - 旅行路书规划助手当前 未标注权限 未标注 未标注 未标注 有
食谱批量下载文件夹 联网访问 GitHub 仓库 28.5 万 Codex、Claude、Cursor 有
食谱创建演示文稿 未标注权限 GitHub 仓库 28.0 万 Codex、Claude、Cursor 有
recipe 备份 sheet AS CSV 联网访问 GitHub 仓库 27.9 万 Codex、Claude、Cursor 有
recipe create Gmail filter 邮件管理 未标注权限 GitHub 仓库 27.8 万 Codex、Claude、Cursor 有
配方观察驱动器变化 联网访问 GitHub 仓库 27.4 万 Codex、Claude、Cursor 有

SKILL.md 全文

30.7 KB
模型实际读到的说明书原文,来自技能仓库

> v2.0.0 更新(2026-10-06):基于国庆武汉 5 天自驾实战复盘。5 天发生 6 次改线,4 次源于规划期没查到的信息(排队时长、景区限行、停车实况、亲子项目盲区)。v2 的核心变化是新增 Phase 2.5 可执行性体检,把这四个盲区变成交付前的强制关卡。详见 references/feasibility-check.md。

Travel Planner — 旅行计划制定助手

触发条件

用户说出以下任一类意图时自动加载本 skill:
- "帮我规划旅行""我想去 XX 玩""做个路书""亲子游怎么安排"
- "带家人去 XX""自驾游路线""XX 日游"
- 给了目的地和时间但没说清楚需求 → 自动进入 Phase 1
- 行程进行中的调整:"今天下雨了改怎么办""这个景点排队太久重新排一下""明天出发晚了来得及吗" → 跳过 Phase 1/2 直接进 Phase 2.5 体检 + 改线,改完走「联动清零」(5.6)
- 行程结束复盘:"这次行程哪里没规划好""优化一下这个技能" → 进 Phase 7 复盘回写

核心流程(Phase 1 → 2 → 2.5 → 3 → 4 → 5 → 6 → 7)

Phase 1: 需求收集 → Phase 2: 方案生成(2.0 降级决策 → MCP/WebSearch 双路径)
    → Phase 2.5: 可执行性体检 🔴(不通过不许交付)
    → Phase 3: 决策辅助 → Phase 4: 订房(可跳过) → Phase 5: 路书交付 → Phase 6: 闭环
    → Phase 7: 复盘回写(行程结束后更新本 skill)

Phase 1:需求收集 🎯 弹窗式交互

目标:通过结构化弹窗一次性收齐所有关键信息,不回锅,避免来回拉扯。

交互方式:用 AskUserQuestion 工具分 2-3 轮弹窗,让用户"点选 + 填空",而非手写长文本:
- 点选 = 预填 2-4 个常见选项,覆盖 80% 场景
- 填空 = 选 Other 走自由输入,覆盖长尾需求
- 多选 = 勾选多个标签(multiSelect: true)
- 全部 2 轮内问完,最多 3 轮(条件触发)

触发话术(开场,避免冷启动):
> "行,去云南玩!先对一下基本信息——下面弹窗点几下就完事,复杂的走 Other 自由填。"


第 1 轮 · 基础信息(4 个问题,一次问完)

> 调用一次 AskUserQuestion 抛出 4 题。

Q1 出发地:默认给一线 + 新一线城市,其他城市走 Other 填空
- 北京
- 上海
- 广州 / 深圳
- 成都 / 重庆

Q2 目的地范围(多选,云南热门组合):
- 昆明(省会 + 中转)
- 大理 + 丽江(经典北线)
- 香格里拉(高原藏区)
- 西双版纳(热带雨林)

Q3 出行月份:
- 7-8 月(暑期雨季)
- 9-10 月(秋季最佳)⭐ 推荐
- 11-12 月(冬季避寒)
- 春节 / 寒假

Q4 行程天数:
- 5-7 天(短假)
- 8-10 天(中长假)⭐ 推荐
- 11-14 天(深度游)
- 14 天以上(自驾大环线)


第 2 轮 · 人员与偏好(4 个问题,一次问完)

Q1 同行人结构:
- 情侣 / 夫妻 2 人
- 家庭带娃(孩子 3-12 岁)
- 家庭带老人(65 岁+)
- 全成人朋友聚会

Q2 交通偏好:
- 全程自驾
- 飞机到昆明 + 当地租车 ⭐ 推荐
- 火车 + 当地租车
- 全程包车

Q3 食宿预算(每人每天):
- ¥300-500(经济)
- ¥500-800(舒适)
- ¥800-1500(轻奢)⭐ 推荐
- ¥1500+(高端)

Q4 住宿偏好(多选):
- 品牌连锁(希尔顿 / IHG / 万豪等)
- 特色民宿 / 客栈
- 亲子友好
- 景观房 / 网红打卡


第 3 轮(条件触发)· 加分项

> 仅当 Round 2 同行人 = 家庭带娃 / 带老人,或目的地已锁定具体线路时触发。普通用户可跳过,直接进入整合输出。

Q1 必去景点 / 体验(填空,Other 必填)
Q2 不想去的地方(填空,Other 可空)
Q3 驾驶能力:
- 老司机,长途无压力
- 偶尔长途
- 不熟悉
- 不能开(只坐车)

Q4 旅行节奏:
- 紧凑刷景(每天 2-3 个点)
- 适中留白(每天 1-2 个点)⭐ 推荐
- 慢游发呆(半天玩半天休)
- 随性而定


整合输出:需求卡

弹窗收齐后,输出一份结构化需求卡给用户最终确认(不直接进 Phase 2):

## 需求卡

| 字段 | 你的输入 |
|------|----------|
| 出发地 | 北京 |
| 目的地 | 大理 + 丽江 |
| 出行时间 | 9-10 月 / 8 天 |
| 同行人 | 家庭带娃(孩子 5 岁)|
| 交通 | 飞机到昆明 + 当地租车 |
| 预算 | ¥800-1500 / 人 / 天 |
| 住宿 | 品牌连锁 + 亲子友好 |
| 必去 | ... |
| 不去 | ... |
| 节奏 | 适中留白 |

> 用户回复"确认 / OK / 走起"后进入 Phase 2 区域扫描;如需调整则直接说改哪一项。


Phase 2:方案生成与迭代 🔗 MCP 驱动

2.0 降级决策:MCP 可用性检查

必须在进入 2.1 之前执行。 检查 ctrip-wendao 和 amap-maps 连接状态:

情况 A:两个 MCP 均已连接 ✅

→ 走标准流程(2.1 问道扫骨架 + 高德补坐标 → 2.2 问道出骨架 + 高德拉里程)

情况 B:部分或全部 MCP 未连接 ⚠️

先告知用户,同时给出选择:
> "检测到以下 MCP 未连接:{缺失的 MCP 名称}。
> - A 方案:先去连接器管理页面安装这些 MCP,回来继续走完整流程(精度高、体验好)
> - B 方案:我先用 WebSearch 帮你跑一版,精度会打折但能快速出结果。路线里程用网络搜索估算代替高德实测,景点推荐用搜索引擎代替携程问道"

用户选 A → 等待 MCP 就绪后走标准流程。
用户选 B → 走降级流程(WebSearch 兜底),细则如下。

降级模式标志:进入降级模式后,所有里程标注为 WebSearch 估算,所有方案标注 ⚠️ 降级版(MCP 缺失)。


降级:2.1 区域扫描(WebSearch 替代 ctrip-wendao)

用 WebSearch 替代 ctrip-wendao 完成区域扫描:
- 搜索:"{目的地} 旅游攻略 必去景点 经典路线 {出行月份}"
- 搜索:"{目的地} 亲子游 自驾游 推荐"
- 从搜索结果中提取:城市/区域列表、景点梯队排名、季节适配建议
- 数据来源标注"WebSearch",非"携程问道"

降级:2.1 坐标获取(WebSearch 替代 amap-maps)

用 WebSearch 替代高德 POI 搜索获取坐标:
- 搜索:"{景点名} 经纬度" 或 "{景点名} 位置坐标"
- 从百度百科/马蜂窝等页面提取坐标信息
- 无法获取坐标的景点标注"坐标估算",在路书中使用城市中心坐标近似
- 注:降级模式下跳过营业时间获取(WebSearch 难以准确获取)

降级:2.2 方案骨架(WebSearch 替代 ctrip-wendao)

用 WebSearch 替代 ctrip-wendao 生成行程骨架:
- 搜索:"{目的地} {天数}天 自驾游路线 行程安排"
- 搜索:"{目的地} 经典环线 自驾"
- 从马蜂窝/携程攻略/穷游等结果中提取成熟的行程骨架
- 人工整理成 2-3 版方案(仿问道骨架格式)

降级:2.2 里程数据(WebSearch 替代 amap-maps)

用 WebSearch 替代高德 directionDriving 获取里程:
- 搜索:"{城市A} 到 {城市B} 自驾 多少公里 多长时间"
- 从搜索结果(百度地图网页版、马蜂窝攻略)提取距离和预估时间
- 所有里程标注为"WebSearch 估算"(非"高德实测")
- 如果搜索不到某段里程,用相近城市间直线距离 × 1.3 粗略估计,标注"粗略估算"

降级对后续 Phase 的影响

  • Phase 3 决策辅助:降级模式下「事实层」和「路由层」数据源改用 WebSearch,精度下降但不影响四维决策框架
  • Phase 5 路书:降级模式下的路书在封面标注 ⚠️ 降级版,所有里程标注 WebSearch 估算,地图仍用高德瓦片渲染(瓦片源不依赖 MCP 连接)

2.1 区域扫描 —— "问道扫骨架、搜索补血肉"

第一步:携程问道扫骨架(降级模式见 2.0)

调用 ctrip-wendao(携程问道 MCP):
- 目的地全域扫描:有哪些必去的城市/区域?
- 景点梯队排名:第一梯队(必去)、第二梯队(顺路)、第三梯队(可跳过)
- 口碑与季节适配:当前季节最适合什么?

第二步:高德补坐标(降级模式见 2.0)

调用 mcp__amap-maps__maps_text_search:
- 对问道扫出的每个城市/景区,用 keywords=景区名+city=所在城市 搜 POI
- 获取精确坐标(GCJ-02)和营业时间

第三步:四条并行扫描线(v2 新增)

> 教训:武汉实战中,全程娃满意度最高的项目(光谷空轨)初始方案里没有,是临时聊出来的。原因是只扫了「景点梯队」,漏掉了体验型项目这一整类。

用 WebSearch 同时跑 4 条线,缺一条等于留盲区:

线 1 · 观光景点(原有)
  「{目的地} 必去景点 梯队」
  覆盖:传统观光梯队

线 2 · 体验项目
  「{目的地} 亲子 必玩」「{目的地} 带孩子 玩什么」
  覆盖:科技馆、沉浸式展、动物互动、非遗手作、夜游

线 3 · 新奇特交通 🔴 最容易漏的一类
  「{目的地} 空轨 磁浮 有轨电车 缆车 索道 轮渡 观光巴士」
  覆盖:轨道交通体验、索道缆车、轮渡、观光巴士
  说明:这类项目对学龄儿童吸引力极高,且常附带观景属性,老人也不排斥

线 4 · 新开业态
  「{目的地} 2025 2026 新开 网红 打卡」
  覆盖:近两年新增项目(老攻略里不会有)

第四步:人群适配标签(v2 新增)

每个景点入库时必须打齐 6 个标签,否则不许进方案:

标签 取值
老人友好 是 / 否(含楼梯、陡坡、无电梯观景台判否)
推车可行 是 / 否
学龄娃兴奋度 高 / 中 / 低
场地 室内 / 室外 / 半室内
排队风险 高 / 中 / 低(见 Phase 2.5 P0-2)
体力消耗 高 / 中 / 低

排程铁律:🔴 每天至少安排 1 个「学龄娃兴奋度 = 高」的项目,且不与老人高体力项排在同一半天。

输出:一份"全域目的地手册",含坐标、梯队、口碑、季节适配、人群适配标签、体验项目与新奇特交通清单。

2.2 方案骨架生成 —— 里程实时拉取

第一步:携程问道出骨架(降级模式见 2.0)

调用 ctrip-wendao:
- 基于需求卡 + 全域手册,生成 2-3 版行程骨架
- 每版含:城市节点序列、推荐景点、住宿城市

第二步:高德实时拉里程(关键!6.1 前置到这里)(降级模式见 2.0)

对每条骨架的相邻城市节点,调用:
mcp__amap-maps__maps_directionDriving({
  origin: "起点经度,纬度",
  destination: "终点经度,纬度"
})

获取:总距离(米)、预估时长(秒)、路线步骤

为什么用高德不用腾讯地图? 腾讯地图 MCP directionDriving 有约 30 分钟级并发限流冷却(实战踩坑),高德 directionDriving 无此问题,且坐标系同为 GCJ-02。

里程标注规则:
- 每段数据必须标注来源:高德实测 vs 规划估算
- 生成阶段即拉实测,不留"事后修正"尾巴

第三步:出方案文档
方案文档格式:

## 方案 X:[一句话概括]

**路线骨架**:城市A → 城市B → ... → 城市C
**节奏**:松/紧/适中
**取舍逻辑**:为什么选这些点

| 日期 | 行程 | 住宿 | 开车 | 亮点 |
|------|------|------|------|------|
| D1   | A→B  | B    | Xkm/Yh(实测) | ... |
...

**每日详情**(含景点时间建议、餐厅推荐)

2.3 迭代原则

  • 用户说"太松" → 加密版(加密景点、提早出发)
  • 用户说"太赶" → 拆分版(中间多住一晚)
  • 每次迭代只改 1-2 个变量,不推倒重来
  • 里程已实测,迭代时不需重新拉(除非改城市节点)

Phase 2.5:可执行性体检 🔴 不通过不许交付

完整清单见 references/feasibility-check.md

> 这是 v2 的核心新增。方案骨架出来后、写路书之前强制执行。P0 五项全部通过才允许交付。

编号 检查项 级别 触发条件
1 交通管制 P0 全程
2 排队风险 P0 法定节假日
3 停车三要素 P0 自驾
4 营业时间闭环 P0 全程(实战复盘点名的核心项)
5 硬约束倒推 P0 赶车 / 赶飞机日
6 跨区次数 P1 同城多片区
7 体力预算 P1 含老人 65+ 或幼儿
8 雨天 B 版 P1 雨季或预报有雨

2.5.1 P0-1 交通管制

必查:管制时段 · 路名清单 · 判定规则 · 新能源是否豁免(多数城市不豁免,必须单独查) · 执法例外(出租车 / 网约车常不受限)。

产出 尾号 ↔ 日期对照表,逐日核对行程每一天。

> 反例:武汉 10/6 双日、尾号 9 单号,东湖片 15 条路 8:00–19:00 单双号、新能源不豁免 → 东湖当日不可达。出发前 2 天才查到,整个东湖安排作废。

2.5.2 P0-2 排队风险(仅法定节假日触发)

只在找到明确的同期「排队严重」证据时才加缓冲,禁止凭热度拍脑袋加时间。

  1. 搜同期证据:「{景点} 国庆 排队 多久」、「{景点} 排队 避坑 攻略」(限定近 1–2 年同假期)
  2. 分级:多条同期反馈 ≥ 1 小时 → +60 分钟;30–60 分钟 → +30 分钟;查不到 → 不加,标注「未查到排队反馈」
  3. 🔴 当天首个景点若判为「严重」,自动砍掉当天 1 个软点
  4. 附错峰动作:开园即到 / 闭园前 2 小时 / 分时预约

> 反例:黄鹤楼国庆排队 1 小时未纳入排程,当天下午全部顺延,辛亥革命博物馆被压缩到 1 小时。

2.5.3 P0-3 停车三要素

见 references/parking-playbook.md。核心是补齐「停车场出口 → 目标入口」的步行距离与时间(本次唯一漏掉的关键项),以及铁律 🔴 当日终点锚定停车场(终点必须在停车场步行 10 分钟圈内)。

2.5.4 P0-4 营业时间闭环(核心项)

必查:开放日 · 停止入园 / 停止售票时间 · 闭馆日 · 法定节假日是否例外 · 是否需预约 · 分时段场次。

硬规则
- 🔴 计划到达时间 + 30 分钟 ≤ 停止入场时间,否则该点必须前移或砍掉
- 「周一闭馆,法定节假日例外」这类条件句必须查证当日是否真的开放;OTA 页面常挂"不开放",以景区公告为准;查不到就按不开放处理并给替代
- 南北区 / 新旧馆分离的场馆分别查各自的开放与停止入场时间
- 路书里每个带时间锁的景点单独成行,标注 最后入场 HH:MM

> 反例:10/5 抵达江汉关博物馆时已闭馆(16:00 停止入场),只能看外观。当时标注为「周一闭馆,法定节假日除外」,假期内是否开放各来源口径打架,未查证即排入行程。

2.5.5 P0-5 硬约束倒推(赶车 / 赶飞机日强制)

从硬终点往前倒推,每段耗时从严取上限(高峰按 1.2 倍):

15:40 高铁 ← 14:40 到候车厅 ← 14:10 到武汉站(还车+步行 30min)← 🔴 13:10 最晚从光谷上路

规则:
- 倒推出的「最晚出发时间」在路书里标红为死线
- 🔴 至少配 2 条熔断规则:到某时点没完成某步,就砍掉后面哪一项、改成什么
- 能提前在线完成的(买票、录人脸、值机)全部写进「出发前必做」——这是最大的时间杠杆

2.5.6 体检输出格式

## 可执行性体检

| # | 检查项 | 结果 | 处置 |
|---|---|---|---|
| 1 | 交通管制 | ⚠️ 10/6 东湖片禁行 | 东湖砍掉,改光谷 |
| 2 | 排队风险 | 黄鹤楼 严重 +60min | 当天砍 1 个软点 |
| 3 | 停车三要素 | 古德寺 ✅ / 汉口江滩 ⚠️ | 汉口江滩补备选链 |
| 4 | 营业时间 | 江汉关 16:00 停止入场 | 前移到当日首个点 |
| 5 | 死线倒推 | 🔴 13:10 | 已配 2 条熔断 |

体检未通过的项必须给出处置动作,不允许只标注风险不处理。


Phase 3:决策辅助

当用户面临二选一(如"镜泊湖 vs 伊春"),走四维决策框架:

维度 分析内容 数据来源
事实层 距离、营业时间、门票、适合年龄段、体力消耗 高德 POI + 搜索
口碑层 最近游客评价、亲子友好度 携程问道 + 小红书
性价比层 时间投入 vs 体验产出 综合判断
路由层 选了 A 对整条线路的影响 高德重算里程

输出:一份对比报告,给出推荐(带理由),不等用户做选择题。


Phase 4:订房执行 🔗 携程问道 · 可跳过

触发条件:用户确认最终方案后触发。用户可以跳过(说"酒店我自己定")。

4.1 酒店推荐

标准模式(ctrip-wendao 可用):

逐城调用 ctrip-wendao:
"在[城市名]推荐3家亲子友好酒店,靠近[核心景点/区域],
预算约[预算范围]/晚,含评分、价格、特色"

降级模式(ctrip-wendao 不可用,见 2.0):

用 WebSearch 替代 ctrip-wendao 搜酒店推荐:
- 搜索:"{城市} 亲子酒店 推荐 {预算}元"
- 搜索:"{城市} {酒店名} 携程 评分"(验证评分和价格)
- 从携程/马蜂窝/大众点评结果中提取酒店信息和预订链接

输出格式:每城 3 选 1 对比表(必须含预订链接)

### [城市名]住宿推荐

| 酒店 | 评分 | 参考价/晚 | 位置 | 亲子亮点 | 预订 |
|------|------|-----------|------|----------|------|
| A    | 4.8  | ¥XXX     | ... | ... | [预订](链接) |
| B    | 4.6  | ¥XXX     | ... | ... | [预订](链接) |
| C    | 4.5  | ¥XXX     | ... | ... | [预订](链接) |

推荐:A,理由:...

4.2 预订链接(⚠️ 铁律:每家必须配链接)

每家推荐酒店必须附带携程预订链接,不允许出现"请在携程搜索"这类无链接输出。

调用方式:

用 WebSearch 搜索:
"[酒店完整名称] 携程 预订"

从搜索结果中提取 hotels.ctrip.com/hotel/ 或 hotels.ctrip.com/hotels/ 开头的链接。

⚠️ 注意:携程问道(ctrip-wendao)不提供直接预订 URL,多次验证均返回"无法直接提供可点击的预订URL"。因此预订链接统一通过 WebSearch 获取,不依赖问道。

输出格式:每家酒店行末追加 [预订](链接)。

铁律:链接缺失 ≠ 跳过,WebSearch 搜到为止。

4.3 跳过机制

用户说以下任一句即跳过 Phase 4,直接进入 Phase 5:
- "酒店我自己定"
- "不用推荐酒店"
- "订房我自己来"


Phase 5:路书交付

5.1 受众适配

版本 适用对象 特点
家人版 同行的家人 文字温暖、地图直观、照片丰富
执行版 自己看 时间节点、订房链接、备选方案
长辈版 老人 大字、中文标注、无拼音

5.2 技术栈(固定规范)

地图:
- 引擎:Leaflet(CDN 引入)
- 瓦片源:高德 https://webrd0{s}.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}(style=7,浅色底)
- 子域名:1-4 轮询
- 坐标系:GCJ-02(高德、腾讯地图同系)
- 每个地图页面独立创建瓦片层(Leaflet 不能共享实例)

照片:
- 源:Wikimedia Commons(https://commons.wikimedia.org/wiki/Special:FilePath/文件名)
- 校验:请求后检查是否 404
- Fallback:占位文字"实景以现场为准"

格式:
- 单文件 HTML(免部署、手机可看、打印友好)
- 原生 CSS + JS,无框架依赖
- 吸顶导航 + 打印样式 + 手机适配

里程/时间标注:
- 标准模式:所有里程从 Phase 2 高德实测数据填入
- 降级模式:所有里程从 Phase 2 WebSearch 估算填入,统一标注 WebSearch 估算
- 每段标注"约 X 小时(含休息建议预留 Y 小时)"

5.3 路书结构(v2:可折叠区块,仍是单页单一入口)

封面(标题 + 日期 + 路线概要 + [降级模式时追标 ⚠️ 降级版])
总览页(全程路线图 + 总览表 + 亮点速览)
逐日页 D1-DN(每日时刻表 + 路线图 + 景点照片 + 文字描述)
  每日常驻展开:时刻表 · 🔴硬点/死线 · 🅿停车与导航
  每日常驻折叠:备选方案 · 雨天 B 版 · 景点详解
全局折叠区:可执行性体检表 · 景点百科 · 门票总表 · 天气详表 · 行前准备清单

折叠规则(实战复盘定版)

区块 默认
当日行程时刻表 / 硬点提醒 / 死线倒推表 / 停车导航 展开
景点百科 / 行前清单 / 天气详表 / 门票总表 折叠
备选方案 / 雨天 B 版 / 体检表 折叠
  • 手机端折叠头点击区 ≥ 44px,标题字号 ≥ 15px
  • 用 localStorage 记住展开状态
  • 衍生内容(路线图、清单、体检表)全部内联,不拆多页;页内锚点跳转,不外链

时间锁可视化

🔴 硬点 · 19:00 苗家码头取票(分时场次)
⏰ 时间锁 · 江汉关博物馆 16:00 停止入场

每日顶部硬点 ≤ 2 个,其余为软点(可砍)。

5.4 工程自检(技术项)

> 完整工程坑见 references/roadbook-checklist.md。流程项见 5.7,两份一起过。

  • [ ] 所有 map div id 合法(不能有 /、空格等特殊字符)
  • [ ] 逐日地图独立创建 L.tileLayer 实例(共享实例只挂到最后一张图)
  • [ ] 城市标签为中文(不能用拼音)
  • [ ] 成员姓名已清除(如用户要求不显示)
  • [ ] 地图瓦片能加载(高德 style=7 可用,style=6 返回 404)
  • [ ] 图片不 404(有 fallback)
  • [ ] 文件路径写完整绝对路径

5.5 关键技术要点

WGS-84 → GCJ-02 转换(见 references/wgs84_to_gcj02.py)

Leaflet 多地图共享瓦片实例 Bug:

// ❌ 错误:全局共享 tiles 实例,只挂到最后一个地图
var tiles = L.tileLayer(...);
tiles.addTo(map1);
tiles.addTo(map2); // 实际上不会显示

// ✅ 正确:每个地图独立创建
function initMap(mapId, ...) {
    var map = L.map(mapId).setView([lat, lng], zoom);
    L.tileLayer(url, opts).addTo(map);  // 独立实例
    ...
}

HTML 生成建议:
- 用 Python f-string 模板生成(批量替换数据,避免手动拼 HTML)
- 数据字典(城市坐标、路线坐标、景点名称、图片 URL)独立维护

5.6 发布与变更管理(v2 新增)

完整规范见 references/roadbook-blocks.md。

发布通道
- ✅ 主通道:资料库 page/import_html.py + page/publish_page.py
- ❌ workbuddy_sites_deploy 已排除:2026-10-04 连试 6 次全部 fetch failed,换纯英文路径、67 字节 hello-world 目录同样失败,属服务不可用
- 资料库导入要点:ZIP 会失败,改单文件逐个导入;显式给 --file-name;更新用 --node-block-id

联动清零:改动一处后 grep 全文件的旧时间点 / 旧景点名 / 旧死线,残留必须清零。
> 实例:10/6 出发时间 8:00 → 9:30,联动改了 10 处,12:45 旧死线全文件清零。

交付前校验(自建 _validate_html.py)
- 标签配平 + 抽取每段 <script> 用 node vm.Script 做语法检查
- ⚠️ 校验脚本里写死的 node 路径会被版本升级顶掉,报 FileNotFoundError 时先查该路径

内嵌片段必须做作用域隔离
- CSS 选择器加容器 id 前缀;JS 选择器同步作用域化
- ⚠️ 踩过的坑:前缀插到引号外面生成 querySelectorAll('#ck 'input[...]'),JS 语法错。正确做法是替换 querySelectorAll(' 这个完整片段

A / B 版并存:重大改线时保留旧版文件,新版另存,旧版不删。

5.7 交付前自检(流程项,v2 新增)

规划质量
- [ ] Phase 2.5 的 P0 五项已全部通过,未通过的已给处置动作
- [ ] 每日硬点 ≤ 2 个,且已在每日顶部标注
- [ ] 每个带停止入场时间的景点已标注 最后入场 HH:MM,到馆余量 ≥ 30 分钟
- [ ] 「周一闭馆 / 节假日例外」这类条件句已查证当日是否真的开放
- [ ] 每个停车点五要素齐全,终点在停车场步行 10 分钟圈内
- [ ] 法定节假日的高风险景点已附同期排队证据,缓冲已计入
- [ ] 赶车日已有死线倒推表 + ≥2 条熔断规则
- [ ] 每天至少 1 个「学龄娃兴奋度 = 高」的项目(带娃时)
- [ ] 每天有雨天 B 版(雨季或预报有雨时)

交付形态
- [ ] 折叠区块按 5.3 规则设置,手机端点得动
- [ ] 单一入口,衍生内容已内联,无外链依赖
- [ ] 改线后旧时间点 / 旧景点名残留已清零
- [ ] 已跑标签配平 + JS 语法校验
- [ ] 已按 5.4 工程自检过一遍


Phase 6:闭环

  • 逐项确认:所有里程 = 实测值、所有图片可加载、所有链接有效
  • 将最终路书 HTML present 给用户
  • 如果用户要求订房,确认预订链接可访问
  • 不需要事后补数据(Phase 2 已拉完实数)

Phase 7:复盘回写(v2 新增)

触发:行程结束,或用户在行程中反馈实际问题。

动作:把实际踩到的坑回写进本 skill,形成闭环。

实际反馈 回写位置
某景点排队超预期 references/feasibility-check.md P0-2 分级表,追加实例
停车不好找 / 位置不对 / 离终点远 references/parking-playbook.md 反例记录
场馆闭馆 / 停止入场没赶上 feasibility-check.md P0-4 反例
某个亲子项目没被推荐出来 Phase 2.1 扫描线,补搜索式
限行 / 管制查晚了 feasibility-check.md P0-1 反例
交付形态问题(体积、拆页、发布失败) references/roadbook-blocks.md

回写格式:每条必须含「实际发生了什么 / 规划期为什么没发现 / 补进哪条规则」三段,缺任一段不收。

版本号:功能性回写升 minor,流程性微调升 patch。


自动化任务

如果数据拉取因 MCP 限流等外部原因中断,建一次性 automation 待冷却恢复后继续:

automation_update(mode="create", scheduleType="once", ...)

自动化 prompt 要求:
- 写清楚"不碰已实测数据"
- 写清楚"严格串行、不并发"
- 写清楚"限流时暂停 X 分钟重试,不无限循环"
- 完成后 present 更新后的路书


设计原则

原则 说明
先区域扫描,再生成方案 用户对目的地认知不完整时,先给全景视野再决策
四条扫描线并行 观光景点 + 体验项目 + 新奇特交通 + 新开业态,缺一条留一个盲区
体检不过不交付 Phase 2.5 的 P0 五项(限行 / 排队 / 停车 / 营业时间 / 死线)是硬关卡
排队缓冲依赖证据 只有查到同期「排队严重」的评论或报道才加时间,不凭热度拍脑袋
营业时间以停止入场为准 「计划到达 + 30min ≤ 停止入场」,条件句必须查证当日是否真的开放
终点锚定停车场 当天最后一站必须在停车场步行 10 分钟圈内
硬约束从终点倒推 赶车赶飞机日一律做死线倒推表 + ≥2 条熔断规则
每次迭代只改 1-2 个变量 不推倒重来,保护用户心智投入
改一处,联动清零 改时间点 / 改景点后 grep 全文件残留,旧数据必须清零
里程在生成阶段即实测 高德实时拉,不留"事后修正"尾巴
问道扫骨架、搜索补血肉 MCP 出结构化数据,公开搜索补口碑细节
二选一不走直觉 四维框架(事实/口碑/性价比/路由)辅助决策
受众决定交付形式 家人版 ≠ 执行版 ≠ 长辈版
单一入口 + 可折叠 衍生内容内联不拆页;高频信息常驻展开,查阅信息默认折叠
路书是工程产物 考虑瓦片 bug、坐标偏移、图片 404、id 合法性、标签配平、JS 语法
订房可跳过 用户说"酒店我自己定"即跳过 Phase 4
MCP 缺失不卡流程 检测到 MCP 未连接时,给用户 A/B 两选(安装 MCP / WebSearch 降级),绝不卡在"请安装"不动
复盘回写 行程结束把实际问题写回本 skill,问题不重复犯第二次

References 索引(按需加载)

文件 何时读
references/feasibility-check.md Phase 2.5 必读:8 项体检的完整判据、搜索式、反例
references/parking-playbook.md 自驾行程的 Phase 2.5 P0-3 必读:停车五要素与铁律
references/roadbook-blocks.md Phase 5 必读:折叠区块规范、发布通道、变更管理、校验脚本
references/roadbook-checklist.md Phase 5 必读:地图瓦片、坐标偏移、图片 404 等工程坑
references/wgs84_to_gcj02.py 需要坐标转换时调用

MCP 依赖

本 skill 优先依赖以下 MCP 连接器,缺失时有 WebSearch 降级方案(详见 Phase 2.0):

MCP 用途 降级方案
ctrip-wendao(携程问道) 区域扫描、行程生成、酒店推荐 WebSearch 搜索攻略/游记/酒店推荐
amap-maps(高德地图) 驾车里程/时长、POI 坐标、天气 WebSearch 搜索距离/坐标,标注"估算"

前置检查:Phase 2 开始前,先确认两个 MCP 连接状态。
- 均已连接 → 走标准流程
- 缺失任一 → 执行降级决策(AskUserQuestion 让用户选 A 装 MCP 或 B 降级走 WebSearch)
- 绝不卡在"请安装 MCP"不动——用户选 B 则立刻用 WebSearch 兜底推进

常见问题

5 问
答案由本站依据条目字段整理
Travel Planner Roadbook - 旅行路书规划助手怎么安装?

在支持 Skills 的客户端里执行:skillhub install user_1b9a0379/travel-planner-roadbook。安装方式为未标注。装完刷新技能列表或重开客户端。

Travel Planner Roadbook - 旅行路书规划助手支持哪些客户端?

资料没有标注宿主客户端,但只要客户端支持 Skills(Claude、Codex、Cursor 等),一般都能加载。

Travel Planner Roadbook - 旅行路书规划助手权限高吗,安全吗?

权限级别为未标注权限。安装前先看它会读取或写入哪些内容。

Travel Planner Roadbook - 旅行路书规划助手收费吗?

本站不代收费用,也没有标注具体价格。是否收费取决于技能本身和所用的模型或客户端,正式使用前按作者说明确认。

Travel Planner Roadbook - 旅行路书规划助手用什么许可证?

许可证标注为 未说明(许可证不明确)。商用或二次分发前请到仓库确认条款原文。

热门专题

按场景挑技能
全部专题 →

技能内容以作者仓库为准;分类、权限级别与许可证状态的中文说明为中文整理,最近核验 未标注。