travel-dossierlisted
Install: claude install-skill Wang-Cankun/cankun-skills
# 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。