Install
openclaw skills install @liberalchang/jianhao-travel-planner见好 · 旅行规划器——出行路书工作流(通用版)。当用户提出旅游、出行、周末去哪、做攻略、做路书、目的地推荐、行程规划、自驾方案、当日行程、今天去哪、特产推荐等需求时触发。按「需求采集→目的地筛选→实查复核→六维度路书(吃/玩/住/行/拍+避雷)+随行两件套(当日旅行模式/特产三问)→行程中动态调整→素材采集→复盘回流」全流程执行,输出自包含路书文件。核心铁律:关键信息必须联网实查、未核实必标注、动线不绕路、天气定节奏、内容预埋(机位+钩子)。
openclaw skills install @liberalchang/jianhao-travel-planner公用版说明(2026-09-21 从作者本体 v3.26 派生;v1.1 于 2026-09-26 对齐作者本体 v3.34) 本文件是作者自用版 travel-planner 的公用/开源版:方法骨架、产出形态、自查清单与本体一致;按开源前置工序做了 7 项改造—— ① 抓取链切公开源:正餐情报走大众点评/高德地图/小红书等公开平台交叉验证,不再依赖博主作品抓取流水线(不需要任何登录态); ② 配套口径三改:证据分级适配公开源 / 收录门槛 R2 的「穷尽」判定改为「地图 POI+多源交叉穷尽」/ 信源名单由使用者自建(不预置任何博主白名单); ③ 脱敏去个人化:用户档案改填空模板、作者个人设定降级为参考示例、个人文件路径全部清除; ④ 长辈/官方版叠加档完整保留(四件套+决策替做+温馨提示); ⑤ 配图硬规矩保留 + Pexels 免费 key 自注册指引(2 分钟,见「工具与依赖」); ⑥ 工程工具随包附带(
tools/consistency.py骨架校验 +tools/desource.py脱敏),去 AI 味通道二改可选; ⑦ 版本演进记录原样保留——每条规矩后面的"血案"(翻车实录)是这套标准为什么成立的解释,比规矩本身更值得读。记录中的署名(作者 WW 与协作者 WB)是真实迭代存档,正文运行区已不含个人依赖。安装:整个目录(SKILL.md + assets/ + tools/)复制到
~/.claude/skills/jianhao-travel-planner/(全局)或项目.claude/skills/jianhao-travel-planner/(单项目)即可被 Claude Code 自动加载。 ⚠️ 与自用版的关系:本文件由作者的自用版本 travel-planner 派生(自用版含作者个人档案、不公开)。公用版技术名jianhao-travel-planner与自用版不同名,二者可在同一台机器共存、互不覆盖。
版本 v3.34(2026-09-26,分发上线工序定稿)|成稿 ≠ 终点——分发上线(新阶段):①🔴双产物——本地完整版(断网可开)与瘦身在线版并行:部署版图统一重压 820px/q72(3.0MB→1.39MB 实证),zip 内 index.html ②部署=任意静态托管 ③🔴上线实测三件套:curl 状态码+体积+耗时+title 抽查,缺一不算上线(实证 200/1.35MB/0.16s)④发布渠道策略——抖音站外链接严查:图片二维码重点严查禁用、置顶文字地址有折叠风险、兜底=评论区扣关键词+私信发图包(私信发图不受限);微信私发链接顺畅=部署主用途 ⑤发布物料规格——图文 3:4(1024×1365)、使用者网名水印右下角半透明、组合=首屏/总览导览图/路线卡/美食清单/实拍 5 张+私信图包 8 张(封面/每日长图/美食全表/门票避雷预算三合一)⑥署名口径——图上水印=使用者自己的平台网名,工具名只作文案卖点不进署名;发布动作由使用者本人执行 ⑦构建/部署命令禁静默吞错+产物新构建断言(吞错=拿旧产物跑假验证,实证)⑧升级传播矩阵——任何版本升级收尾过六项清单:本体/关联规范联动判定/派生物全量枚举/记忆卡/跨文件终验/账目,缺项=升级未完成(README 落后多版即案源)。 版本 v3.33(2026-09-26,定稿改称)|推荐池术语定稿「博主推荐」——原「作者推荐」全部改称「博主推荐」;实拍署名口径同步为「博主实拍」;旧称出现即视为回潮(验收三查:博主推荐≥1、本地人推荐=0、作者推荐=0)。 版本 v3.32(2026-09-26,抓机制缺口「改稿只改 HTML 不改底稿」)|🔴修正双写制——md 事实源与 HTML 成稿是双产物:任何成稿修正必须当批回写 md,只改 HTML=欠账;重建/重放必须从最新事实源派生,禁止从旧 HTML/旧快照拼装(重建丢 15 项修正实证——旧底稿派生=旧错误必然重演);交付校验加一道:md 与 HTML 关键决策点一致性 grep。 版本 v3.31(2026-09-26,三池归属定稿)|点名店三池归属:①彩蛋池(只在「博主推荐」彩蛋板块出现,行程与美食清单正文全清)②场地型豁免:兼具景点/餐饮场地属性的店可留行程动线,但删推荐类措辞,改读者视角描述(「景区里的一家店」「据点」)③主表:动线锚点店+自找店凑目标家数;主表≠推荐池,互不混池。 版本 v3.30(2026-09-26,批「SVG 垃圾/不调研不学/挑图没概念就搜」后固化)|①🔴挑图先建概念——挑图前先写下该地标的真实外观特征(重建年份/形制/颜色/标志物),再到图库挑图并核对文件描述页的拍摄对象+拍摄年份;三类直接跳过:古画/版画冒充实景(黄鹤楼=绢本古画实锤)、建设期照片(大桥=塔吊未合龙实锤)、重滤镜无标志物(湖泊=渔船剪影认不出实锤);验收逐张导出亲验——图注落位对≠图内容对,两层分开验 ②🔴SVG 导览图=v3.5 规范硬执行(6/6 全复发才立死规矩)——指北针必有、地标插画化、文字禁压线/禁入水/禁被遮挡、动线禁穿水系、每图 2-3 个地标小图标、支流汇入方向对照真实地图、交付前逐张截图亲验。 版本 v3.29(2026-09-26,实战回写「老毛病机械化+成稿工序补全」)|①🔴餐行机械钩——每日必须有早/午/晚三行,交付前逐日 grep 报数,「园内/高铁上解决」也要有行 ②🔴视觉资产三件套独立工序——配图≥天数+分散型景点 SVG 示意图+点名店标记样式,与内容填写并列、缺一不算完成 ③派生首检——从基准骨架派生第一动作=核对基准指纹+立即改 title ④点名店核销制——使用者点名店逐家勾销,交付报 N/N ⑤相对时间禁令——成稿禁「现在/明天」,一律绝对日期 ⑥**「雨天备用」→「雨天方案」——方案=正选之一 ⑦信史/民俗标注成稿删除**——内容保留、标签去掉 ⑧骨架组件修正——tips 标准结构示例(::before 数字占 44px 首列,内容必须包一层元素,裸文本溢出竖排实证)+observer rootMargin 监测带 15%→40%+页脚补家族标语 ⑨导航与页脚文案随趟定制 ⑩点名店集中呈现于美食清单结尾彩蛋板块(称呼定稿见 v3.33)⑪地理示意图必须先查真实地图对照再画——江向/区界/相对方位画错比不画更害人 ⑫气候数据实查+标来源——气温区间禁拍脑袋,口径=当地气象台历年同期实况+「出发前 3 天看当日预报终判」。 版本 v3.28(2026-09-26,双向复核沉淀+12 条方法论)|①🔴对外稿脱敏铁律——内部代号/信源列/他人消费账单一律不进对外稿,成稿 grep 必须 0 ②🔴口径变更重扫——标准升级后,旧口径下的通过项全部失效重扫 ③机位审美筛选线——信源≥3 源交叉,「大开大阖」大场景优先(江桥楼湖同框/天际线/日落蓝调),纯市井杂乱类剔除 ④夜景灯光秀专项——灯光秀时间锚+烟花秀等节点预约渠道必查(节假日以官方通稿为准)⑤场馆口径分歧——两说并列+给核实电话,不擅自裁决 ⑥节假日官宣必查 ⑦收录优先序+口碑分档——使用者点名店最高优先;早餐/宵夜只推好评店;「先看差评,差评能接受才去」进成稿 ⑧年份口碑店范式+点单口诀原话保留 ⑨机位补充包工作法(爆款图文→去重→三档归入)⑩特产伴手礼标准件。 版本 v3.27(2026-09-25,六维度补全)|stay 住宿区块升进基准骨架 IA——「住」是六维度之一,此前定稿 14 区块时漏了。基准骨架加
#stay(tips 与 cost 之间,含导航入口);consistency.py 基准即真值自动适配。同日三补:①骨架 nav 顺序 bug 修正+导航标签统一两字 ②h2 字号上调→指纹变更为9c3c6249a4(旧 769d1d9f64 作废)③lead 句克制+美食每餐≥2 家。页脚家族标准:主标语「方案仅供参考——安全和开心,才是最重要的。🌕」+副文案。Plan B 定位:放每天卡片尾部,sos 区块只收跨天全局兜底,两者禁重复。自查㉒家族对齐 diff:交付前全文逐段 diff 最接近的成品,数指标不算对比;区块措辞对照表进阶段 3.5(禁自创)。 版本 v3.26(2026-09-21,定情报卡 IA 分层)|情报卡结构=正餐动线在上 + 轻餐独立板块在下(与路书美食清单同构,定版原话「参考路书里的美食清单版块,先是正餐单独放在上部分,早餐下午茶宵夜单独放下部分」): ①🔴禁止轻餐穿插正餐分段——早/宵/下午茶卡不得混在正餐 ①②③④ 动线分段里(首版广佛补卡曾插在正餐分段内,被使用者打回); ②轻餐板块独立置底:分段带「☕ 早餐 / 下午茶 / 宵夜(城市A → 城市B · 全天候)」,放全部正餐卡之后; ③轻餐排序=城市序(先广州后顺德),城内按 早餐 → 下午茶 → 小吃 → 宵夜 排; ④正餐排序=行程动线序(Day1-3 驻地 → 老城 → 转场镇 → 顺路镇),禁抓取序/随机序(首版 26 店即抓取序被打回「顺序都是乱的」); ⑤侧栏导航两组:「正餐 · 按行程动线 · N 张」+「早 / 下午茶 / 宵夜 · M 张」,锚点与正文卡序一致; ⑥编号:正餐 01-N 连续,轻餐 N+1 起连续(轻餐卡标题带(早餐)(宵夜)(下午茶)(小吃)类型标)。 版本 v3.25(2026-09-21,定标准)|门票价格实时性铁律 + 去AI味双通道:①🔴门票价格=按当前询问时间实时检索(定版原话:"最新,最准,最真实是按当前询问的时间开始检索")——检索时点=当下(不许沿用会话早前结果/历史路书/记忆价);官方源优先序(官网/公众号>官方App>OTA>攻略只当线索);每条价格带时戳(¥350·2026-09-21 13:00 查·长隆官方公众号);查不到官方源→如实写「请自行比价」+给比价指引(官方公众号/小程序/大众点评/高德/抖音直播间看哪个优惠多,🔴比对好日期别搞混——不同渠道挂的不同日期档票价不同);网页价与官方价不一致并列写出。②去AI味升级双通道("有没有给路书文案去AI味的设定"——有⑫但执行弱):通道一 grep 高频词(原有)+ 通道二 humanizer 类工具全文过一道(抓 grep 抓不到的结构性问题:破折号滥用/粗体堆砌/三段式排比/通用积极结尾);定位语:路书像朋友交代攻略的口吻,不是旅游杂志文案。 版本 v3.24(2026-09-21,拍板双轨同写)|特种兵定义+打卡战报+体力红线+判定两问+六模式矩阵:①特种兵=重数量、不重体验和游玩品质的选点哲学(每点 20-40 分钟拍照即走、能串尽串;6:3:1 配比是深度轴默认、特种兵模式下不适用;仍守动线不绕路+实查纪律)②特种兵专属产出物「✅ 打卡清单」——每点一行(地名+机位+停留分钟)+总数显性给数字+勾选框+「已完成/计划」计数(复刻集齐感)③体力红线数字化:日行 3 万步=标准强度参照(排程标尺非上限承诺,超出预警)+连走 2 天第 3 天排半天缓冲;❌不写「晚睡」类条目④阶段 0 人数结构改判定两问:几个人什么关系(兄弟/闺蜜/情侣/家庭带娃/带长辈/混合/一人行)+有无体力特殊成员(原省力慢游触发)——「朋友局其实也是兄弟局」(定版原话),原条款默认了兄弟场景、闺蜜需求没覆盖 ⑤六模式矩阵重写人数结构切换段——闺蜜局=出片+氛围(互拍核心,拍照好看的店≥好吃的店)、情侣=两人时光(浪漫时段>打卡数量,大床景观房加分)为提案待实测(首次实测后按「看过不沉淀=没看过」回写修正);一人行/省力慢游既有条款全保留。 版本 v3.23(2026-09-20,定情报卡标准)|美食情报卡结构标准: ①收录优先级:⚡双源交叉 → 📌使用者指定 → 单源名店(区聚堆); ②卡片字段:城市·区域|店名|位置(门牌)|评星/人均/营业时间|特色菜/推荐菜|避雷/温馨提示——负面评价(两极分化/脾气火爆/上菜慢)写进避雷栏,别只夸不贬; ③介绍不呆:写记忆点(现烤皮脆/双源同探/晚6点售罄),不能只堆营业时间; ④朋友版情报卡全脱敏:不写采集来源/链接/证据块; ⑤🔴离主行程远的店去掉(先例:南海某店离广州/顺德主线远被划掉)。 版本 v3.22(2026-09-18,定标准)|美食清单结构标准 + 早/宵/下午茶抓取分工:①每日必须有午餐+晚餐行——「园内/高铁上解决」也要有行(写清在哪解决),不许静默省略;②早餐/宵夜用「随意」设定——不限定哪一天、显示地点、给具体店+营业时间(每天 2 家左右);酒店含早也写明;③下午茶:出名地推 2 家名店,不出名地推有品味的咖啡馆/小吃;④正餐 vs 早/宵/下午茶两条线——正餐从榜单+地图 POI 交叉抓;早餐/宵夜/下午茶从地图/点评自己抓,同样要营业时间;⑤每日行程卡午/晚只推 1 家,行尾加「(更多选择在美食清单)」——行程卡是导航、清单是菜单;⑥宵夜·随意设计升入基准骨架(早餐同款);⑦命名:攻略板块叫「美食清单」、独立按城餐饮情报文档叫「美食情报卡」,不混用。 ⑥(v3.26 增补)情报卡/清单 IA 分层:正餐(动线序)在上 + 早/宵/下午茶(城市序)独立板块在下—— ①🔴禁止轻餐穿插正餐分段——早/宵/下午茶卡不得混在正餐 ①②③④ 动线分段里; ②轻餐板块独立置底:分段带「☕ 早餐 / 下午茶 / 宵夜(城市A → 城市B · 全天候)」,放全部正餐卡之后; ③轻餐排序=城市序,城内按 早餐 → 下午茶 → 小吃 → 宵夜 排; ④正餐排序=行程动线序,禁抓取序/随机序; ⑤侧栏导航两组; ⑥编号:正餐 01-N 连续,轻餐 N+1 起连续。 版本 v3.21(2026-09-16 深夜,拍板:R2 是口径演进)|收录门槛三级分级(替代 v3.19 一刀切):R1 店名+门牌已核→收录 ✅;R2 无店名但有确切位置引导(乡镇/码头/「凌晨 4:30 开在菜场旁」类可辨认特征)→收录 📌+给认店口诀,且仅限信源穷尽后启用——画面物证精读+多源交叉后仍无店名才算穷尽,R2 不是绕过核查的捷径;R3 既无店名又无位置→不收(不进情报卡/美食清单/备选池,不挂「待补」);负面评价店→不收。背景:v3.19 一刀切与 R2 同日相撞(拍板=演进非冲突)。 版本 v3.20(2026-09-16 晚补账)|探店分工指针+名单对齐登记。教训:正文有了版本史没记=账目不可见——正文改动必须当次进版本行,笔误级也附注记一笔。 版本 v3.19(2026-09-16,定标准)|探店采集「收录硬门槛」:抓取美食/探店信息产出情报卡或攻略美食清单时,店名 和 位置 任一抓不到或核不实的店,一律不收录——不进情报卡/美食清单/备选池,也不挂「待补」。两条边界:①本条优先于 v3.10「搜到即用透」——不够格收录的店连"用透"的资格都没有;②与位置缺失处置并存——先做多源交叉取证(网搜/地图/评论区),该找的都找了仍取不到才弃收,不是"一抓不到就扔"。 版本 v3.18(2026-09-15,立规矩)|探店采集「只认指定名单」硬约束(此条为作者个人设定,公用版已降级为「信源自建指引」,见吃维度;此处保留供理解版本演进):默认只搜指定 6 位博主,不得擅自增补替换;无命中如实写「无命中」,禁止拿别的博主顶位;例外唯一入口=使用者明确点名。教训:①凡「搜不到」先复核认号,确认无号≠无作品 ②任何名单变动必须在交付说明里显式写出,不许静默替换。 版本 v3.17(2026-09-15 深夜:「特殊版也要在最新版的框架生成啊」)|骨架固化的适用边界明确到"特殊版":长辈版、亲子版、特种兵版、单人版这类"特殊版",同样必须从基准骨架派生,不许另写<style>、不许另起 IA 命名与导航机制。差异只允许落在两处:①正文层(内容、节奏、称呼、步速提示)②同一<style>内的变体钩子(<html data-variant="elder|kid|solo">+ 在既有 token 上做覆盖,不新增第二块样式表)。区块按内容裁剪是允许的——不自驾就没有#drive、没有加餐玩法就没有#boost——但 id 必须取自同一命名表、顺序仍按基准顺序、导航由同一份 JS 生成;「少几个区块」不等于「另起一套」。判据:该文件<style>指纹 == 基准指纹(或仅为已知钩子覆盖的增量),且区块 id 是基准命名表的子集、顺序单调。 版本 v3.16(2026-09-15 晚:「每一个地方的攻略都是大同小异没有一致性」)|路书 HTML 骨架固化(阶段 3.5 加第 6 条):实测盘上 11 份路书 = 7 个 CSS 指纹 / 4 套 IA 命名 / 8 套导航集合。根因:骨架从来没写进 skill——于是每趟要么「抄上一份」越抄越漂、要么从零做直接另起模板。本次三件事:①抽出基准骨架assets/路书_基准骨架.html(约 18KB,CSS 指纹记录在其<meta name="generator">里)+ 定稿 IA 14 区块(overview/drive/day1..N/boost/ticket/tips/cost/sos/eat/gift,intel仅自用版)+ 侧栏两组导航 + 8 个版式 token + JS 六件事契约 + 每趟只改 4 类常量;②🔴修正原家族一处真缺陷:旧版都有<section id="drive">但侧栏没有它的入口——读者根本点不到「行/路程」那一节 → 骨架补<a href="#drive">;③新增tools/consistency.py机械校验(CSS 指纹/IA/导航覆盖/token/字体/JS 六件事/存储键命名/残留占位符/每日配图 十项),交付前必跑。 版本 v3.15(2026-09-15 晚,定标准)|作息按人群模式分两根轴 + 特殊时段玩法必须主动提出(自查加㉑):定版原话「家庭游、自由行尽量安排睡到自然醒的时间行程。大学生特种兵玩法可以按你的想法拍,甚至可以晚上还可以排一点。但如果有特殊的时间段玩法需要提出来,比如夜爬泰山、拍星空,或者哪个地方适合排夜景,这些也要记录到旅游 skill 里,以后再做其他地方攻略也要记得这些要求和标准」。落成四条:①轴一 家庭游/自由行=睡到自然醒、主线取「10 点前后」的软目标;②轴二 大学生特种兵=可提前、可夜排、可连续暴走,不必迁就睡眠;③早起包 + 夜游包两个标准件;④🔴特殊时段玩法必须主动提出——凡「有最佳时段、错过就废」的玩法不许因为默认晚起就静默砍掉,必须显式交代「项目+为什么那个点+作息代价+归入哪个包+不去拿什么补」。同日二补:「说了上午 10 点左右,不是要求卡那么死」——统一改为「10 点前后」软目标 + 达标区间 9 点多~10 点半 + 禁止当 KPI 卡到分钟,只拦「6-8 点档起床赶路」这一档。 版本 v3.14(2026-09-15 晚)|「硬时刻除外」不得滥用 + 同一决策点全文同步(自查加⑳):①Day1 写「选 07:00-09:00 发车那几趟」——把自己挑的车次包装成客观限制,实际 4 小时高铁改成 10:00-11:00 发车同样成立。新判据:「硬时刻除外」只在当天全部可选班次都早于锚点时才成立,凡是"选 X 点那几趟"的句式一律视为可调项。 ②同一决策点会散布全文:一处时间/场次散在 6 个地方,改 5 处漏 1 处就前后矛盾 → 加自查 ⑳。③教训:作息锚点要看主线起点落在几点——改完必须把每天第一个非交通时段的时间打出来核一遍。 版本 v3.13(2026-09-15)|每日配图/停车补落地 + 图源改 Pexels + 自查加⑱⑲:「每日图片又缺失」——查证发现此前约定只在版本史里写了一句,正文与四件套里根本没有,等于从来没落地。教训:写在版本史里的"已固化"≠正文里有;改完必须回正文数一遍。①阶段 3.5 新增第 4 条「每日配图(必带)」+ 第 5 条「停车信息必查」②图源现实更正:Wikimedia 全域名境内网络不可达(不是偶发,别再等它通)→ 首选改 Pexels(免费可商用)③自查清单加 ⑱每日配图齐全(数<figure>个数,必须出数字)⑲停车信息已查。 版本 v3.12(2026-09-15 拍板)|探店情报「搜→抓→核」三级链+美食清单字段标准+证据分级(公用版已改写为公开源版,见「美食情报卡标准件」):①搜:逐位单搜定位命中 ②抓:命中对象的作品内/页面内信息必须实证——网搜标题/简介只能当线索,禁止当证据 ③核:以原始页面/卡面为准 ④美食清单字段标准:哪一顿/哪个地方(地界)/哪个店(含地址)/推荐什么菜/人均价格(不作硬性要求);全量信息进探店情报卡 ⑤证据分级:实证级=证据在盘|引用级=存在已核验但内容来自转述;机械核验交付前必跑。 v3.11(2026-09-15)|探店情报卡标准件(定产出形态:博主探店情报,落成按城市持续追加的「探店情报卡」——字段=店名/推荐菜/位置/评价/价格(有则记无则标);攻略美食板块只装店名+推荐菜(装不下更多),全量进卡片,路书引用卡片不复制(单一事实源)。卡结构=城市→分区+卡尾「按店索引」表(归拢"多源同探一家店"=交叉验证最强信号)。) v3.10(2026-09-15)|信源店「用透」机械自查钩(再犯 v3.9 半条:逐位单搜做了、"用透"没做。固化机械自问:交付前逐家过——命中的每家店,在美食清单或备选池里有没有它自己的行?没有=没用透,回炉。已进自查清单⑰) v3.9(2026-09-13)|配比偏好优先+探店信源多线取用:①6:3:1 是默认值不是铁律——采集阶段主动问"想热门热闹还是人少清静",用户表达任何偏向即动态调整 ②多线取用规则:交叉验证最强;按线取用不混战;进正文三匹配门槛(价位+菜品+位置);搜到即用透;用透的落点=按城市的「探店情报卡」。v3.8(2026-09-13)|玩法热度配比 6:3:1(替代 v3.7"真体验层"表述——亲历口碑供给有限不作为骨架依据):6 成热门(保底不出错)+3 成冷门(实锤的私藏点:本地食客多/多源验证,不是"没人去")+1 成弹性(亲历口碑/新开彩蛋,有则用无则不强凑)。禁止全热门(中规中矩攻略架)也禁止全冷门(拿行程冒险)。v3.6(2026-09-13)|作息锚点 10 点制+早起包标准件(朋友吐槽 6:30 出发/8:00 坐船"不科学"后定):家庭自驾游出发日锚点 10:00、游玩日主线锚点 10:00 后——堵车/行程压力用「预留时间」解决,不压缩睡眠;早起包标准件:有老人/早起者时每天给「🌅 早起的人(自愿)」条,硬时间项目一律入早起包不进主线。v3.5(2026-09-13)|景区示意图规范+视觉参考当场沉淀(批"只是能看"+看过没学会,固化):①何时出:分散型多景点/需换乘的大景区必出 ②信息层六要素:入口(含停车/换乘)/游览路线/景点/厕所/方向(指北针)/行程动线①②③按天标注③表现层清单:地标插画化(画小图标不是圆点)、地形渲染(水系宽窄+波纹、远山氛围)、手绘感路线曲线、胶囊标签禁裸文字、低饱和主题色 2-3 色+奶白底、图例框、手机 390px 缩放后标签可读 ④视觉参考当场沉淀规矩:见到的优秀视觉参考,当场拆解要点写入本 skill 或笔记不过夜——看过不沉淀=没看过。v3.4(2026-09-13)|行程类清单主排序=时间线(批低级错固化):吃饭清单等一切行程类表格,主排序一律=行程日(Day1→Day2→Day3 顺着走),餐段/类别只做行内标注,跨日项(如宵夜)放末行;禁止按类别当目录排序——组织方式跟读者怎么用走,不跟分类学走。v3.3(2026-09-13)|吃饭板块两层呈现+六维度板块齐全自查:①吃维度呈现必须两层=日程卡每餐精简内嵌+独立「美食清单」板块(早/午/晚/宵夜×地界成表)②自查清单第⑭项:六维度逐项问"呈现在哪",融合可以、无板块不行。v3.2(2026-09-13)|票务多档口径+HTML 两态实测:①门票实查先拆清多档价格结构再算账(联票含不含景交/观光车逐档核对官方在售商品名,防重复计价)②HTML 产物自查加「JS 禁用态」实测(动效必须 html.js 门控+兜底脚本,门控与 .in 显示规则配对同前缀防特异性倒挂)。v3.1(2026-09-12)|装备五要素匹配+倒计时重点警醒+交通方式分支:①装备清单必须按目的地×季节×天气×温度×环境定制,先列「本趟特有项」再补通用项,禁止千篇一律 ②倒计时清单重点项加粗+警醒标志 ⚠️🚨 ③「行」维度按交通方式分支:自驾/租车=停车条逐日落地;非自驾人群必须给公共交通方案(站点→景区衔接/末班时间/散场打车难度)。另:作息采集条款=只问事实不打标签。v3.0 作息维度;v2.9 实查纪律;v2.8 配图/停车/发送版剥离;v2.7 路程时间总表。 ⚠️(内部协作机制不随公用版分发)本体曾存在"双副本异步同步机制"与"反向同步授权",属作者与协作者之间的内部工作流,公用版不携带,不影响任何条款效力。对账与备份纪律仍建议保留:大改前留.bak底。
默认档案(填写示例,用前请整段替换为自己的):武汉出发;典型时间窗=周五晚~周一上午;内容必出(小红书+抖音);玩法=深度体验;人数结构以一人行为常态、朋友局为辅
B 案激活流程(主案执行不了、切备胎时):
¥350(2026-09-21 13:00 查·长隆官方公众号)——查的时刻与来源写死在路书里 ④查不到官方源的处置:如实写「官方渠道未查到,请自行比价」并给出比价指引——官方公众号/小程序/大众点评/高德/抖音直播间搜寻门票,看哪个优惠更多,🔴 但要比对好日期别搞混(不同渠道挂的可能是不同日期档的票)。网页价与官方价不一致的并列写出,不擅自取其一;高热度需预约景点一律按「提前 5 天」倒排预约节点(放票日即设提醒,如陕历博/省博/莫高窟类);多档价格先拆清结构再算账——单票/联票/含车票并列时逐档核对官方在售商品名(联票含不含景交/观光车),防重复计价;老人/儿童优惠票同口径写明含不含车(实证:联票 90 已含景交,另算景交 20×4 重复报 80 元,预算虚高 50 元)文件命名:路书_<目的地>_v1.md,存项目目录。结构:
玩法模式切换(深度体验 ↔ 特种兵暴走):路书六维度按玩法取向切换侧重点,其余铁律(实查/预算诚实/安全第一位/自查9项)两种模式通用。
人数结构模式切换·六模式矩阵(v3.24 重写):人员结构 × 玩法取向(深度/特种兵)× 体力结构(常规/省力慢游)三轴正交、任意叠加——如「闺蜜局+特种兵」=一天八机位换装打卡(真实存在需求)、「兄弟局+省力慢游」=长辈随行的家族旅行。
| 模式 | 核心突出点 | 住 | 吃 | 拍 | 节奏 |
|---|---|---|---|---|---|
| 兄弟局 | 玩得爽+性价比 | 电竞房/标间拼房 | 大排档/烧烤/夜宵,酒水放开 | 随手拍,打卡照为主 | 可叠加特种兵,深夜局常态化 |
| 闺蜜局 | 出片+氛围(提案待实测) | 双床房/民宿美学房(分开睡但要好看) | 下午茶/网红店/甜品权重高;拍照好看的店 ≥ 好吃的店 | 互拍是核心需求,机位密度加倍,穿搭×场景搭配建议 | 慢节奏,预留购物时间 |
| 情侣 | 两人时光(提案待实测) | 大床/景观房/温泉房是加分项(住宿体验本身是行程的一部分) | 氛围餐厅权重高,人均档可上调 | 互拍+合照;日落/夜景/蓝调时段优先 | 浪漫时段 > 打卡数量,不赶场 |
| 家庭带娃 | 娃的体验决定行程成败 | 家庭房/亲子酒店 | 儿童餐/软食友好 | 娃的状态抓拍 | 午睡刚需,就低不就高(省力慢游既有条款保留) |
| 家庭带长辈 | 省力+舒适 | 电梯房低楼层+含早 | 就近清淡 | 观景台机位优先 | 叠加省力慢游轴(既有条款保留) |
| 一人行 | 独立自主+安全(既有细则全保留,见下) | 青旅/安全连锁 | 一人食友好 | 三脚架/延时自拍 | 自设疲劳红线 |
一人行既有细则(实战验证,原样保留):
体力结构模式切换(常规 ↔ 省力慢游):省力慢游与玩法取向、人数结构均正交,可叠加(如"家庭+深度体验+省力慢游")。触发条件=同行者档案中有体力一般/长辈/腿脚不便/带娃成员。六维度切换侧重点:
交付前自查清单(逐项打勾才可交付):①信息全文一致(无已取消项残留)②天气已分时段③门票放票时间+预约截止已标④店铺有地址+营业状态已核⑤动线无回头路⑥预算闭合且隐藏成本有行⑦避雷全是"真实场景+应对"⑧应急 Plan B 覆盖关键环节⑨版本号/日期已更新⑩随行两件套已出(当日模式页/特产三问,见阶段3.5)⑪页面/HTML 类产物已渲染截图亲验(真机视口桌面+手机各至少一张,防自嗨式设计缺陷——手机工具条遮挡天气卡实证;Playwright 可 channel='msedge' 驱动系统 Edge 零下载)⑫文案去 AI 味复核(v3.1;v3.25 双通道):通道一 grep 高频词(进行/值得注意/本质/仿佛/映入/众所/首先其次/综上/绝绝子/震撼/为您/不仅…而且/此外/标志着)+ 通读标题与各板块——称谓口语化(长辈/娃,不用祖辈老人家)、无 ≥3 句书面排比、无"不像人话"的句子;通道二(可选)任一中文 humanizer 类工具全文过一道——破折号滥用/粗体堆砌/三段式排比/通用积极结尾这类 grep 抓不到的结构性问题;🔴 路书是给普通人执行用的,不是给读者欣赏的——像朋友交代攻略的口吻,不是旅游杂志文案 ⑬HTML 入场动效两态实测——动效禁裸 opacity:0(必须 html.js 门控+兜底脚本),门控规则与 .in 显示规则配对同前缀(防 CSS 特异性倒挂);自查时 JS 禁用/启用两态都实测、内容两态全可见(实证:裸 opacity:0 依赖 IntersectionObserver,JS 挂→83% 内容不可见;首轮修复门控特异性反压 .in 规则致正常态不可见,两态实测才抓出) ⑭六维度板块齐全——吃/玩/住/行/拍/避雷逐项问"呈现在哪":允许融合呈现(避雷→温馨提示)、不允许无板块 ⑮景区示意图(大园区必出时):信息层六要素齐+表现层插画化过一遍+手机视口截图亲验缩放可读 ⑯作息锚点——出发日与游玩日主线都取**「10 点前后」的软目标**(9 点多~10 点半都算达标,别卡死),硬时间项目不入主线(入早起包/夜游包/备选);有老人/早起者时每天有「🌅 早起包」条 ⑰信源店用透自查——命中信源的每家店,美食清单或备选池里必须有它自己的行(进不了动线的也要带店名+必点+人均/未核实标注入备选池),禁止只躺在情报卡里 ⑱🔴每日配图齐全(HTML 交付)——数 <figure> 个数 ≥ 行程天数;每张 base64 内嵌、亲验真渲染(naturalWidth>0 && rect.width>50)、四档视口(320/390/768/1280)无横向溢出;非本趟实拍的已标「(示意)」且页脚写明"实景/示意 + 图源"。这一项必须出数字,不许凭印象说"有图" ⑲停车信息已查(自驾/租车时)——每天卡片底部 🅿️ 专条齐:停车场位置/收费/是否需换乘景交/旺季几点前有位,查不到标"以现场为准"不许留空 ⑳同一决策点全文同步——动一个时间/场次/价格/店名之前,先 grep 出该决策点在全文的所有落位(准备清单·速览·时段卡·示意图 SVG·门票表·tips/避雷·预算表·应急),一处改就全部改,判据=旧值在「活条款」里归零(⚠️例外:版本史/备注里对旧写法的引用要保留——断言要锚到活条款原句,别拿裸值/裸词当判据);另加一条作息复核:把每天第一个非交通时段打出来看一眼——落在 9 点多~10 点半之间即达标;只有出现「6-8 点档起床赶路」才算没过 ㉑特殊时段玩法已主动提出(v3.15)——过一遍特殊时段清单,凡命中就必须在路书里显式交代「项目+为什么非得那个点+作息代价+归入早起包/夜游包+不去拿什么补」,不许因默认晚起而静默砍掉;家庭游/自由行若确实要排早,必须写明代价并征得点头,不许默默排 ㉒家族对齐 diff(v3.27)——交付前把最接近的成品全文逐段 diff,措辞/结构逐项对齐,🔴数指标(几个区块几张图)不算对比 ㉓脱敏归零(v3.28)——对外稿敏感词 grep 必须为 0,报数必出 ㉔餐行机械钩报数(v3.29)——逐日早/午/晚 grep 报数 ㉕配图逐张亲验(v3.30)——图注落位对≠图内容对,换源后逐张导出人工看 ㉖修正双写(v3.32)——md 事实源已同步更新,md-HTML 关键词一致性抽查通过
路书之外必附的"旅行中真正会打开"的随行件,与路书同文件或独立 HTML 均可:
TRIP.start 日期自动算今天:今天高亮、已过天变灰;用户说「今天去哪」直接切当日视图,不再翻全篇路书<figure> 放在 .day 里、.day-head 之后,外层 <div class="photos">(双列)或 <div class="photos single">(单列)——骨架 CSS 本来就带 .photos 全套规则。commons.wikimedia.org、upload.wikimedia.org、zh.wikipedia.org、api.wikimedia.org 在境内直连网络全部不可达——不是偶发、别再等它通。有代理/海外网络环境时 Wikimedia Commons 可用——真实地标实拍质量高(挑图纪律见 v3.30:核对拍摄对象+年份,古画/在建照/重滤镜跳过)。
→ 首选 Pexels(免费可商用):key 获取见「工具与依赖」(2 分钟免费注册),直接打 API https://api.pexels.com/v1/search?query=<词>&per_page=4&orientation=landscape(带 Authorization: <key>)。document.querySelectorAll('.photos img') 逐张查 naturalWidth>0 && rect.width>50 才算真渲染;再跑四档视口(320/390/768/1280)确认无横向溢出(base64 大图最容易在窄屏撑破)。.photos 的 CSS 一直在,只是生成脚本从没产出 <figure>,于是「骨架在、内容缺」,看 CSS 或跑原四检都发现不了。→ 交付前直接数 <figure> 个数 ≥ 行程天数(进自查清单⑱)。地名 + 核心机位/拍什么 + 预计停留分钟数;按动线顺序排列(不按类别),总行数=本趟计划打卡点总数(数量本身就是特种兵的爽点,要显性给数字:如「本趟打卡 23 个点」);预留勾选框;收官行给「已完成 ___ / 计划 ___」计数位<style> 里的变体钩子(<html data-variant="elder|kid|solo"> + 覆盖既有 token,不新增第二块样式表)。区块可按内容裁剪(不自驾无 #drive、无加餐玩法无 #boost),但 id 必须取自同一命名表、顺序仍按基准、导航仍由同一份 JS 生成。判据:<style> 指纹 == 基准指纹(或仅已知钩子的增量),且区块 id 是基准命名表的子集、顺序单调。assets/路书_基准骨架.html(约 18KB,无 base64)。判据是「新路书 CSS 指纹 == 基准文件指纹」,不是「等于某个固定常量」——指纹随基准改动而变,基准指纹记录在该文件的 <meta name="generator"> 里。overview 总览 | drive 行·路程与停车 | day1~dayN 逐日 | boost 备选/加餐 | ticket 门票预约 | tips 提示避雷 | stay 住宿 | cost 预算 | sos 应急 | eat 美食清单 | gift 特产。intel 探店情报原档只加在自用版(追加在 gift 之后、自带第 2 块 <style>),朋友版一律没有。行程(overview · drive · day1..N · boost)+ 备忘(ticket · tips · stay · cost · sos · eat · gift [· intel]),用 .nav-group / .nav-group--chips。<section id="drive"> 但侧栏没有入口——新路书必须带 <a href="#drive">行 · 路程与停车</a>。#F7F5F0 / 面 #FCFBF7 / 主字 #1C1B17 / 次 #5C594E / 弱 #8A8677 / 线 #E3DFD3 / 主色 #2F5D43 / 警示 #8A6D1F;字体栈 "PingFang SC","Hiragino Sans GB","Microsoft YaHei",system-ui,sans-serif。<script>:head 门控 + 主逻辑 + 兜底):①当日模式——TRIP 日期→dayN 映射,今天那天高亮 + 平滑滚过去,未出发给 #prepCard 加描边 ②字号三档(17/19/21px,存 <城市码>_font)③打印(#printBtn → window.print())④勾选清单记忆(.check li input,存 <城市码>_chk_<id>,点了 reload 还在)⑤滚动监听(IntersectionObserver 加 .in + 侧栏 .on 高亮,rootMargin:"-25% 0px -35% 0px"=40% 监测带,v3.29 修正)⑥返回顶部(#backtop,scrollY>600 显形)。TRIP 日期映射 / <城市码>_font / <城市码>_chk_ / 侧栏 + 页脚 + <title> 的目的地段文字(骨架里已留 【目的地】/【当日主题】/【日期区间】/【人数结构】 占位符,漏改会在交付物里留下方括号)。城市码按城市拼音短码取,各城市必须不同(防 file:// 下 localStorage 互相污染)。tools/consistency.py <生成的路书.html>(拿生成的路书去跑、以基准为参照,不要拿基准骨架自己跑——基准带占位符、天然 6 项不过;退出码 0 才算过:CSS 指纹一致 / IA 与导航齐全 / token 齐 / 命名合规 / 无残留 【】 占位符与城市名)。目的地攻略的餐饮情报,落成按城市持续追加的「美食情报卡」——这是路书体系的数据资产,慢慢积累:
美食情报卡_<城市>.md,同目录持续追加;HTML 版用 assets/情报卡_基准骨架.htmltools/desource.py 可机械剥离)日期 | 项目 | 金额 | 分类 | 备注,每晚合计当日总花费;记不清的标「待核」不硬凑;费用归位:跨城交通归目的地段、当天往返支线归主基地、返程单列;预付票按使用日记账(例:13 号买的票 14 号用记 14 号);支持直接解析微信/支付宝导出的 xlsx 账单(注意 UTF-8 编码防乱码)⚠️ 以下为原作者的个人行程实录(2026-07 西北行 / 2026-08 南昌 / 特种兵·一人行·省力慢游模式知识),是本 skill 的"化石层"——方法可借鉴,具体结论请在自己的行程里验证后回写自己的经验。
2026-08 南昌:①酒店选地铁沿线→"进城不开车"铁律 ②电竞房=雨天完美室内备胎+内容素材 ③夜景优先可成设计思路(八一馆外观/滕王阁北园全免费)④"48小时数字游民"=朋友局内容包装概念 ⑤计划变更必须全文自查(残留教训)⑥返程勿凌晨硬开(去程已熬夜时)⑦反馈:吃要给"知名店+本地宝藏苍蝇馆子"两层,只给必吃榜不够⑧反馈:拍要给"机位+拍法+特殊场景参数(雨/日出/夕阳/星空)",只给机位不够⑨澄清:吃的两层不是二选一而是全给(知名+宝藏都要,选择池越大越好)⑩反馈:住要先选"住宿形态"再选区域——朋友局电竞房3人一间/特色民宿(体验+出片),别只推连锁酒店⑪反馈:找店加探店信源——搜"目的地+专业背书",纯流量网红店要交叉验证防充值⑫行程完成度=全队最低意愿者——同行者档案必含兴趣类型;队友两人不愿出门时一人行方案也执行不动;网图滤镜重的景点先做期望值管理⑬共享单车/电动车用前先查运营区(一城一策)——跨江/跨区动线默认地铁/打车
2026-07 西北行(15天5城,长途多城模式):
模式通用·特种兵暴走(模式知识):①第一杠杆是省掉住宿——夜车过夜(硬座/动车卧铺)把房费压到 0,确需落脚选青旅/钟点房/24h 快餐店休整②学生证半价必查(景区门票+车票常有,逐点核实)③免费点密度优先选城——免费机位+免费馆+citywalk 串联,预算大头压到吃和交通④时间极压缩:周五晚出发周一早八回,日行 3 万步是常态,但雷暴/高温红色预警仍砍户外(安全铁律不豁免)⑤夜车防睡过站:设多个闹钟+邻座互叫+到站前 30 分钟醒⑥凌晨到站城市安全:选亮灯便利店/24h 快餐店休整,不深夜独行偏僻处⑦赶场误车风险:跨城车次留 ≥1h 缓冲、末班车前 1h 必须到站台⑧打卡照重「证明来过」与集齐感,器材轻、合照为主⑨周末错峰消费对半打折⑩预算诚实铁律仍适用——夜车省下的住宿如实记为 0 而非估算,隐藏成本(饮水/防暑药/充电)照单列⑪体力红线(v3.24):日行 3 万步是参照不是承诺;连走 2 天第 3 天排半天缓冲
模式通用·一人行独行(模式知识):①拍照没人帮拍是核心痛点——三脚架+延时/自拍杆/八爪鱼支架刚需,合照请路人前给清构图与焦点②一人点菜难→小吃/快餐/商场食阁/一人食友好店(吧台半份)③住选有前台+电梯监控的安全连锁或青旅,不订偏僻无前台民宿④夜归只走亮灯主干道/24h店,只叫平台车不路边黑车⑤行李寄存(车站/商场)解放双手冲景点⑥自设疲劳红线(日行步数上限+最晚回程),无人踩刹车防透支⑦报平安节奏固定(到点发定位给家人)⑧常用药+旅行险必备,一人不适无人照顾⑨独行可叠加深度/特种兵任一玩法,机位与避雷按叠加模式取并集
模式通用·省力慢游(模式知识):①代步工具(缆车/索道/观光车/接驳车/电梯)是刚需预算不是可省项——逐景点实查票价+末班+排队时长+是否直达核心观景②经典路线给"省力版":车直上→核心观景→车下或缓坡下,下楼梯伤膝盖宁可都坐车③节奏=半天一个点+午休刚需,日行步数按其上限 70% 排留余量④台阶数提前查(搜"景点+台阶"近期游记),台阶多直接换替代点不硬爬⑤门口到门口交通优先(打车/自驾),地铁换乘 ≤1 次⑥住=电梯房/低楼层+近交通点+含早⑦吃就近优先,名店排队久站=换备选池近店⑧无座椅长排队/台阶陡坡/厕所远/正午无遮挡=隐藏雷区逐一排查⑨慢病成员的高海拔/高温/久站项目先过健康红线(安全第一位铁律不豁免)⑩同行者状态每天一问、动态砍项不硬撑——行程完成度=全队最低体力者(与"最低意愿者"并列)
| 工具 | 用途 | 用法 |
|---|---|---|
assets/路书_基准骨架.html | 路书 HTML 基准骨架(18KB,无 base64) | 复制后改 4 类常量(见阶段 3.5 第 6 条) |
assets/情报卡_基准骨架.html | 美食情报卡 HTML 基准骨架 | 同上 |
tools/consistency.py | 路书骨架一致性校验(CSS 指纹/IA/导航/token/占位符残留十项) | py tools/consistency.py <路书.html>,退出码 0 才算过,交付前必跑 |
tools/desource.py | 朋友版脱敏(剥离来源/未核实项/证据块) | py tools/desource.py rules.json——配置驱动、原地改写并自动生成 .bak;rules.json 的结构见脚本头部说明(stamp / files[] / log_out) |
| Pexels API key | 每日配图图源(免费可商用) | 获取(2 分钟):pexels.com → 免费注册 → 个人设置页申请 API key → 放本机 .env(PEXELS_API_KEY=...)或环境变量。🔴 Wikimedia 系境内不可达,不要等它通。无 key 时可用 AI 生图产「(示意)」图顶上(页脚注明"AI 生成示意"),同样过自查⑱ |
| humanizer 类工具(可选) | 去 AI 味通道二 | 任一中文 humanizer 工具均可;不装则通道一(grep 高频词)为默认,不挡交付 |
最低运行环境:Claude Code(或任一能读 SKILL.md 的 AI 编码助手)+ Python(跑两个工具脚本)+ 网络(实查与配图)。不需要:任何平台登录态、付费 API。