关于 light-travelpage
Light-TravelPage 将旅行资料整理为供旅行团体维护的中英双语页面,包含行程、导航、票据和共享状态。它涵盖资料整理、更新、部署与验证,并保留未确认信息、保护私密资料。
主要功能
- 01中英双语旅行内容
- 02行程与预订详情
- 03按地点提供地图导航
- 04团体共享旅行状态
- 05部署与验证检查
- 06可选 AI 集成
适用场景
- 01根据资料制作团体旅行页面
- 02更新既有行程并保留其他编辑
- 03共享旅行任务、票据和费用
- 04检查导航链接与部署页面
MCP 相关
此 Skill 未说明 MCP 服务或客户端。它提到可选的相关能力 light-travelpage-gw,用于通过自托管或本地网关接入 AI。
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ light-cheng/ skills --skill light-travelpage安装后在 Claude Code 中输入/light-travelpage确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
agents/openai.yamlassets/template/.gitignoreai-config.jsai-config.jsonai-ui.jsai.cssapp.jscurrencies.jshandbook.csshandbook.jsi18n.jsindex.htmlledger.cssledger.jsLICENSEmap-navigation.jsoverview-map.jspackage-lock.jsonpackage.jsonroute-ui.jsruntime-storage.jsassets/template/assets/ai-panel.htmlassets/template/assets/maps/templates/manifest.jsonassets/template/functions/_middleware.jsassets/template/functions/api/ai/[[tripId]].jsassets/template/functions/api/trip/[[tripId]].jsassets/template/migrations/0001_state.sql0002_ai_requests.sqlassets/template/scripts/build-map.mjsbuild.mjs详细介绍
Light-TravelPage
将旅行资料转化为供旅行团使用并持续维护的页面。这是一项由模型调用的功能。默认交付方案使用 GitHub 管理代码,并使用 Cloudflare Pages、Functions 和 D1 构建网站和共享状态。本地预览属于开发步骤。
准备
阅读提供的资料和任何现有行程一次。提取已确认的行程、日期、地点、航班、住宿预订、门票和明确任务;收集实际存在的冲突。准备中文和英文显示译文,不得更改事实;保留当地地名和原始地址。对于导航,记录每个地点所在的国家/地区,以及任何已核实的服务商链接或坐标系/来源。遵从已经作出的选择。只询问解决重大歧义所必需的问题;将未知事实明确标记为待确认。不得为填充模板而虚构预订、坐标或旅行建议。
准备或验证数据时,请使用 data-contract.md。针对容易混淆或存在冲突的日期、时间、地点和预订详情,维护一份简短的私有来源索引;不得发布原始文档、提取笔记或本地路径。
生成新页面之前,如果是否启用 AI 尚不明确,请先简短询问;默认关闭。遵从已有选择,不要重复询问。若启用,请阅读 ai-integration.md:页面所有者在自己的终端运行 scripts/ai-setup.mjs,连接任何 OpenAI 或 Anthropic 格式的 API,确保密钥不会进入对话;部署时模型固定,旅行者无法更改。
生成或更新
- **新页面:**运行
node <skill>/scripts/create.mjs <new-project-directory>(关闭 AI),或在获得授权后追加--ai on。然后填写其trip-data.json和明确提供的门票资源。除非用户要求重新设计,否则使用旅行手册模板以及 handbook-design.md 设计章节布局和排版。启用与所请求内容相匹配的模块。 - **现有页面:**首先读取当前数据以及运行时/部署设置。准备完整的下一版数据文件,保留行程 ID、未更改的实体 ID、现有地图选择和无关的用户编辑。使用
node <skill>/scripts/update.mjs <project-directory> <next-trip.json>应用更新。有关备份和发布边界,请参阅 update-and-export.md。更改源数据不会重置共享运行时状态。
在生成的项目中运行 npm ci、npm run build 和 npm test。构建 PDF 门票需要 pdftoppm;保留原始 PDF,并在相同的身份验证保护下,将生成的同名 PNG 预览放在其旁边。修正无效事实/引用,或准确报告尚未解决的输入;不得放宽验证器来生成通过结果。明确标记为未注明日期的草稿,其日期可以保持为 null。对于已知目的地,如果存在已核实的 WGS84 地点,请按 display-and-navigation.md 所述,获取其匹配的真实地理边界,并使用 geographic-outline 构建;根据行程事实选择,无需询问旅行者要采用哪种地图样式。使用地点导航链接进行实际导航。如果地理信息或可用边界不可获取,请说明这一限制,并将任何模板地图标记为示意图。
准备双语内容、航班/住宿卡片、区域地图或演示夹具时,请使用 display-and-navigation.md。界面包含本地中文/英文偏好设置。地图默认服务按地点所在地区选择: 中国大陆 → Amap,韩国 → Kakao,俄罗斯 → Yandex,其他已知地区 → Google,并提供 Apple Maps 选项。Google 和 Apple 搜索使用易读的当地名称和地址;坐标用于定位地图,或在没有易读地点名称时作为备用信息。对于未知地区,必须选择服务。请测试实际链接;仅生成 URL 并不能证明导航成功。
分享和部署
阅读 cloud-sync.md,了解单组访问和共享状态约定,然后按照 deployment.md 操作。复用现有且已授权的 GitHub/Cloudflare 登录及限定范围的资源。部署授权不允许更改无关的账户设置。如果无法使用登录方式或无法确定必要的部署选项,请完成本地打包并准确说明剩余步骤;不要把 localhost 称为已部署页面。
私密材料只能存放在用户授权的行程和托管目标中。生成的 Git 忽略规则默认排除行程数据和票据;只有在明确授权将这些材料存放到代码仓库时,才可发布到仓库。仅部署包含受保护 Functions 的 dist/。安全生成群组访问码和会话密钥,并通过本地密钥工具传递,绝不可嵌入页面或提交到仓库。分发重复使用的素材时,保留 ATTRIBUTION.md 和模板许可证。
验证和交付
验证实际托管 URL、页面上的身份验证、JSON、票据素材和 API,然后验证两个独立会话:共享成员/设置/账单/任务/票据变更、冲突响应、保存失败后的恢复以及幂等重试。Chromium 和 WebKit 可能会阻止在模态框中显示 PDF iframe 内容:在窄屏移动端视口中,确认票据 PNG 确实显示在 #ticket-dialog 内、缩放正常,且原始 PDF 链接仍然可用。此外,还要检查两种语言、章节切换、每日页面即时选择、可见的每日地图、已完成/待处理的航班和住宿卡片、行程、清晰可读的区域导航,以及刷新后仍保留的已保存费用。切换章节、语言和轮询不得清除表单草稿。更新时运行针对变更功能的测试,不要重复无关检查。
交付在线链接、仓库位置、已实现的共享范围、简明的验证证据以及任何剩余限制。通过受保护的本地文件或用户选择的安全渠道提供访问材料。不要仅凭构建日志或模拟结果声称已部署、已独立审查或已同步。不包括预订、付款、创建新发行版/标签或调用无关 Skill。
可选功能
- 用户希望通过自托管或本地网关(Tunnel 或环回地址)使用 AI → 调用
light-travelpage-gw(仓库)。未安装时 → 仅支持已部署页面可访问的 HTTPS API,并明确说明这一点。