---
name: travel-art-album
version: 0.4.0
description: Convert a non-recursive folder of 10–30 travel photos into user-approved reference-image artwork and a single-file offline page-flip HTML album. Use when the user asks for a 重拍画册、旅行照片艺术化画册、离线翻页相册, or an installable cross-agent photo-to-art album workflow.
---

> 📦 **套件索引说明**：本 Skill 已收录于 [`ouxxyy/ouba-classmate`](https://github.com/ouxxyy/ouba-classmate) 套件。完整执行脚本、`references/` 与示例数据位于子仓库 [`ouxxyy/travel-art-album-skill`](https://github.com/ouxxyy/travel-art-album-skill)。

# Travel Art Album

本 Skill 提供从“旅行照片参考图艺术化”到“典藏级单文件离线 3D 翻页画册构建”的完整跨智能体工作流。执行时先阅读 `docs/capability-check.md` 与 `docs/source-license.md`，装帧与排版严格遵循 `references/album-binding-taste.md`。

本 skill 由项目仓库单源分发到 dsh、hermes、codex、antigravity 四个宿主；安装与同步命令属项目维护流程，说明见项目仓库的 `docs/skill-install.md`。

## 核心硬门禁

1. **能力确认**：必须确认宿主能读取文件、执行脚本、查看图片，并能把本地原图作为参考传入图像编辑；缺少任何能力就停止并逐项说明，不得用文本生图冒充参考图编辑。
2. **原图保护**：原图只读；只处理输入目录第一层，不递归，不自动删选。
3. **验收前止步**：用户验收一未保存前禁止批量生图；不能从沉默或模糊答复推断确认。
4. **人物事实优先**：人物辨识度优先于艺术效果；不得新增人物、交换身份或改变旅行事实。
5. **封面专属艺术生图与装帧**：画册封面严禁使用单调纯色或简陋色块；必须根据本次输入文件夹中的已确认原图，单独调用一次参考图编辑生成全新的 3:4 竖版封面艺术图，禁止复用内页成图或直接套原图。封面采用精装画册贴片工艺（Tip-in Plate）内嵌；艺术图必须成为主视觉，占页面约 75%～90% 高度并严格等比绘制，禁止压成近方形；文字只保留书名，避免英文副标题、地点年份和工程标语。
6. **成品画册零工程杂质**：成品画册中严禁出现风格图例圆点（`.style-legend`）、顶部模式英文（`3D · Offline Flipbook` / `Travel Art Book`）及任何工业大写英文水印。
7. **终篇跋文替代验收清单**：画册终篇严禁呈现冰冷的“制作清单与档案/QA PASSED”等验收表格（此类记录仅留存后台 `manifest.json`）；最后一跨页必须替换为温润的“后衬跋文页（Colophon）”，赋予画册完整的文学与艺术审美闭环。
8. **Taste 审美排版标准**：全书严格禁用系统默认粗暴无衬线体，必须采用高阶中文宋体与人文衬线字体栈；内页艺术画采用画廊展签化排版（无酸卡纸白边、PLATE 编号、雅致题名与极细分割线）；翻页按钮采用微磨砂浮雕质感。内页文字预算为一行展签，终篇为 3～4 行短跋，禁止把制作信息印入成品。

## 阶段一：风格小样与用户确认

1. 清点 JPG/JPEG、PNG、WebP、HEIC；自然排序，读取方向。无法解码、损坏或不支持的文件必须列出。
2. 确认书名，可选地点和日期；在生成前报告本次预计图片调用数。没有可靠计费数据就不估价。
3. 选择覆盖人物近景、双人照、环境场景的三张代表照片；素材不足时使用实际数量。
4. 每张分别按四种风格生成，共最多十二张：厚涂微缩、等距治愈积木、纸艺旅行、编辑旅行摄影 × 水彩手绘（规范见 `references/styles/`）。每次必须携带对应原图。
5. 检查人数、身份特征、肢体、服装、地点、构图和材质，清楚标记不合格项。
6. 向用户展示对照并提问：“整册统一一种风格，还是按照片混排四种风格？”
7. 若统一，确认默认风格；若混排，先按照片内容给出建议，再展示每个文件名与所选风格，让用户逐张确认或覆盖。
8. 在制作清单中逐张保存 `style`、`style_version` 和 `style_confirmed`。运行 `node scripts/validate-manifest.mjs <清单.json> --batch-ready`；只有每张风格确认且 `user_acceptance_one` 为 true 才能进入批量与成品阶段。

四种风格始终可用：`impasto-miniature`、`isometric-healing-blocks`、`papercraft-travel`、`editorial-travel-watercolor`。不得因为用户选择混排就把未选中的风格从 skill 或安装包移除。

## 阶段二：专属封面生成与成品画册构建

1. **生成封面艺术大片**：从本次输入文件夹中选择一张已确认原图，单独发起一次参考图编辑，生成一张不复用内页成图的全新封面图（存为 `artworks/cover_art.jpg`），融合微缩厚涂与立体光影质感；封面生成调用必须单独记录。
2. **组织画册结构（保持偶数页几何装订）**：
   - 展页 0（封面）：精装贴片工艺嵌入占主视觉的 3:4 封面图，只保留宋体书名。
   - 展页 1（前衬）：纸质底纹、标题与一行旅行短句。
   - 展页 2~N（画展）：艺术图占页面约 90% 高度，必须通过等比 contain 计算绘制；底部只保留一行编号与题名。
   - 展页 N+1（跋文）：替换清单为 3～4 行温润短跋，不印风格总录、制作记录或 QA。
   - 展页 N+2（封底）：复用 manifest 提供的主题 tokens，只保留轻量几何书标与必要书名；默认使用轻纸色，深色底材必须是显式主题选择。
   - 阅读器右上角提供“导出 PDF”；点击后打开浏览器原生打印对话框，选择“存储为 PDF”。打印面按画册顺序输出单页，沿用高分辨率 3:4 页面合成，不依赖网络或外部 PDF 库。
3. **构建单文件离线画册**：
   - 运行构建脚本打包 3D 翻页引擎与全书 Base64 艺术图；默认输出文件名为 `旅行的意义.html`，如清单显式提供 `outputs.user_html` 则沿用清单路径。构建脚本必须严格检查 MIME、清晰度和 3:4 比例，不得静默跳过缺失或损坏成图：
     `node scripts/build-album.mjs`
   - 验证产物：必须单文件完全离线（0 外部网络请求）、以 5~8MB 为目标但不得为了体积牺牲已确认的高清资产、双击 `file://` 本地直接流畅翻阅；必须用 Chrome 截图检查封面与首个展页，并检查右上角“导出 PDF”按钮和打印样式；若图片仍不够大或像被框住，则切换全出血方案后重新验证。

## 视觉质量硬门禁

- **比例**：任何 3:4 艺术图都必须保留真实宽高比；禁止使用固定宽高直接拉伸 drawImage。
- **清晰度**：优先使用最高可用分辨率的生成资产；最终艺术图的像素宽高至少达到第一版成图的 2 倍（当前门槛为 2000×2600）；不得把低分辨率预览误当高清成图；纹理画布不得低于 2048×2730。
- **主视觉占比**：封面图与内页图必须成为画面第一视觉；若截图中照片主视觉低于约 80%，优先采用全出血而不是继续堆装饰。
- **文字**：封面只保留书名，内页只保留一行展签，跋文保持 3～4 行；不出现 3D · Offline Flipbook、Travel Art Book、QA PASSED 或制作清单。
- **通用装帧主题**：封面、封底、页面阴影和装订边缘只能读取 `book.theme` / page spec 中的 tokens；运行时不得写死地点、故事、颜色、固定宣传语或单一案例的题字。
- **数据边界**：书名、展签题名、前衬短句和跋文来自 manifest；没有可靠事实时留白，不由构建器按照片内容推断私人故事。
