从旅行社行程 PDF + 机票酒店票据生成 A5 手机优先的自足旅行手册(瑞士极简 HTML→PDF)。手动调用:/travel-dossier <行程资料目录>
Scanned 9/5/2026
Install to Claude Code
npx -y skills add Wang-Cankun/cankun-skills --skill travel-dossier --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Travel Dossier?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/wang-cankun-travel-dossier)More formats (shields.io, HTML) on the badges page.
---
name: travel-dossier
compatibility: Requires headless Chrome + Python (`pypdf`).
metadata:
group: general
summary: >-
Turns a tour-agency itinerary PDF plus tickets into a phone-first A5 travel
dossier (Swiss-minimal HTML→PDF), with a truth-sourcing discipline: every
number in the booklet traces to a source. (中文)
description: 从旅行社行程 PDF + 机票酒店票据生成 A5 手机优先的自足旅行手册(瑞士极简 HTML→PDF)。手动调用:/travel-dossier <行程资料目录>
disable-model-invocation: true
---
# Travel Dossier — 私人旅行手册生成器
产出物叫 **dossier**:一份 148×210 mm、手机优先、**self-contained**(图片 base64 内嵌、无外部依赖、单 HTML 文件)的旅行手册,
经 headless Chrome 打成 PDF。设计语言为瑞士极简(参见 `assets/template.html`,直接复用其 CSS,不要重写)。
贯穿全程的纪律只有一条:**truth 溯源**——手册里每个数字、时刻、规则都能指出来源
(旅行社方案 / 票据 / 官方网站),指不出来源的数字不写。细则见 `references/content-style.md`。
## 步骤
### 1 · 采集 truth
向用户收集三类输入并落盘清单:①旅行社行程方案(PDF)②已订票据(机票/酒店确认,PDF/邮件)③可选的调研资料。
同时问清:读者是谁、语言政策(默认中文为主 + 专名中英对照)、行程性质(private tour 会改变写法——后勤归地接,手册不教打车排队)。
**完成判据**:每份输入文件有路径和类型标注;语言与行程性质已确认。
### 2 · 提取与对账
用 `pypdf` 提取全部 truth 文本。交叉核对:航班时刻/日期星期(用日历算,逐日验证周几)、酒店日期衔接、方案与票据的冲突。
涉及官方规则(门票价格、开放时间、限额)时**上官网核实**,不要信记忆或旧调研——政策年年变
(秘鲁 gob.pe 系证书链不全,用 `curl -sk` 抓)。
**完成判据**:冲突与缺口列成表;每条要么已解决、要么标记为需用户/旅行社裁决。
### 3 · 章节架构
按 dossier 模式排页面清单(页数 ≈ 天数 × 2 + 8):
封面 → 总览表 → 航班速查 → 住宿速查 → 路线海拔图 → **每日行程页与目的地阅读页交错**
→ 关键攻略专题(如购票机制、参观线路)→ 美食 → 实用速查 → 外语速查卡 → 资料来源页。
**完成判据**:一页一行的页面清单,每页注明内容与配图位。
### 4 · 写作
按 `references/content-style.md` 全文写作。核心两条在此提前:
**先名后释**(每个地名首现 = 中文名 + 原文名 + 一句"这是什么",然后才是解读);
**只用来源时刻**(方案和票面写了的时刻才出现,不自创"约 11:00 抵达"式排程)。
**完成判据**:self-audit 一遍——随机抽任何数字/时刻都能说出其 truth 来源;抽任何专名首现处都有中外文对照。
### 5 · 排版与构建
以 `assets/template.html` 为底(CSS 原样复用,含 `print-color-adjust:exact` 与显式分页 `.page` 容器),
填入内容。构建:`scripts/build.sh <src.html> <out.pdf>`,然后用 pypdf 验证页数与 148.2×209.9 mm 页面尺寸。
**完成判据**:PDF 页数与页面清单一致,尺寸命中。
### 6 · 配图
按 `references/images.md` 走完整管线:Wikimedia API 抓取(`scripts/fetch_images.py`)→
**contact sheet 目检**(淘汰地图/老照片/跑偏主体)→ 哈希去重 → 压缩后 base64 内嵌 → 更新 credits。
**完成判据**:每个图位的图片哈希唯一;每张图经过目检;credits 与来源页同步。
### 7 · strip check 质检
跑 `scripts/check_overflow.py <pdf>`:渲染全书每页底部 20% 拼成检查条,逐页看页脚是否被内容压线。
有溢出就裁文字或缩图(宁可删一行,不缩字号),改后重跑直到全绿。最后抽 2–3 个内容最密的整页高清目检。
**完成判据**:全部页面页脚零碰撞;抽查整页版式正常、深色背景正常显现。
### 8 · 交付
交付单 HTML 源 + PDF(SendUserFile,display: render),并告知微调回路:改 HTML → 重跑 build.sh。
## 迭代已有 dossier
小改(换图、改字):直接编辑 HTML → 步骤 7 只查改动页 → 交付。
内容层变更(行程改了、新版方案):从步骤 2 重新对账受影响的部分,再走 4–8。
## 参考实现
本 skill 提炼自一次秘鲁行程的实战项目(28 页、16 图的完整 dossier),步骤与判据均经该成品验证。
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!