generate-tour-report
정보
이 스킬은 Quarto를 사용하여 독립형 HTML/PDF 문서 형태의 포괄적인 여행 보고서를 생성합니다. 오프라인 여행 활용에 적합한 내장 지도, 일별 일정, 로지스틱스 표, 숙박/교통 세부 정보가 포함된 문서를 제작합니다. 개발자는 계획된 여행을 정리하거나, 오프라인 여행 가이드를 제작하거나, 완료된 여정을 기록하거나, 전문적인 여행 제안서를 작성할 때 이 스킬을 사용해야 합니다.
빠른 설치
Claude Code
추천npx skills add pjt222/agent-almanac -a claude-code/plugin add https://github.com/pjt222/agent-almanacgit clone https://github.com/pjt222/agent-almanac.git ~/.claude/skills/generate-tour-reportClaude Code에서 이 명령을 복사하여 붙여넣어 스킬을 설치하세요
문서
生行程報告
生含嵌入地圖、每日行程、後勤表格與實用旅行資訊之格式化行程報告。
適用時機
- 彙編已計畫行程為可分享文件
- 建離線可用旅行指南
- 以相片、地圖與統計記錄已完成之旅程
- 為團體或客戶製專業行程提案
- 合併路線、住宿與交通資料於一文件
輸入
- 必要:路線資料(航點、段、距離、時間)
- 必要:行程日期與長度
- 選擇性:住宿詳情(名稱、地址、確認號)
- 選擇性:交通預訂(航班、火車、租車)
- 選擇性:GPX 軌跡或空間資料以嵌地圖
- 選擇性:預算資訊(各類成本)
- 選擇性:擬納入之相片或圖像
步驟
步驟一:彙編路線與景點資料
建報告前收所有行程資料於結構化格式。
彙編之資料來源:
┌────────────────────┬──────────────────────────────────────────┐
│ 類別 │ 必要欄位 │
├────────────────────┼──────────────────────────────────────────┤
│ 路線段 │ From、To、distance_km、time_hrs、mode │
│ 航點 │ Name、lat、lon、arrival、departure、notes│
│ 住宿 │ Name、address、check-in/out、cost、conf# │
│ 交通 │ Type、operator、depart、arrive、ref# │
│ 活動 │ Name、time、duration、cost、booking_req │
│ 緊急聯絡 │ 當地急救號、使館、保險 │
│ 景點 │ Name、category、lat、lon、description │
└────────────────────┴──────────────────────────────────────────┘
依日組織資料以支每日節結構:
- 依日期分組航點與活動
- 每交通段派一日
- 住宿配過夜日
- 算每日合計(距離、時間、成本)
預期: 依日組織之完整資料集,時程無缺口(每夜有住宿,每段有交通)。
失敗時: 若資料不全,以 [TBD] 佔位記漏缺項目並加於報告末之後續清單。若日期不合(如抵住宿早於自前站出發),標衝突並調時間。
步驟二:建每日節結構
建附每日節之 Quarto 文件骨架。
---
title: "Tour Name: Region/Country"
subtitle: "Date Range"
author: "Planner Name"
date: today
format:
html:
toc: true
toc-depth: 3
theme: cosmo
self-contained: true
code-fold: true
pdf:
documentclass: article
geometry: margin=2cm
toc: true
execute:
echo: false
warning: false
message: false
---
依下結構建文件:
報告結構:
1. 概覽
- 行程摘要(日期、總距離、亮點)
- 概覽地圖(所有航點、全路線)
- 速查表(關鍵日期、預訂、聯絡)
2. 第一日:[標題]
- 當日摘要(起、止、公里、時數)
- 當日路線圖
- 時程/日程表
- 住宿詳情
- 景點與活動
3. 第二日:[標題]
...(每日重複)
N. 後勤附錄
- 完整住宿表
- 交通預訂表
- 打包清單
- 緊急聯絡
- 預算摘要
預期: 完整 .qmd 檔骨架,附 YAML 首,所有每日節為 H2 標題,每節含佔位內容。
失敗時: 若行程單一文件過長(逾十四日),可考慮分週或用標籤頁佈局({.tabset})以利導覽。若需 PDF 輸出,確無互動小工具(改用靜態地圖)。
步驟三:嵌地圖與圖表
於每節加空間視覺化。
概覽地圖:
#| label: fig-overview-map
#| fig-cap: "Tour overview with all stops"
leaflet::leaflet() |>
leaflet::addProviderTiles("OpenTopoMap") |>
leaflet::addPolylines(data = full_route, color = "#2563eb", weight = 3) |>
leaflet::addMarkers(data = stops, popup = ~paste(name, "<br>", date))
每日路線圖:
#| label: fig-day1-map
#| fig-cap: "Day 1 route: City A to City B"
day1_route <- full_route[full_route$day == 1, ]
leaflet::leaflet() |>
leaflet::addProviderTiles("OpenStreetMap") |>
leaflet::addPolylines(data = day1_route, color = "#2563eb", weight = 4) |>
leaflet::addCircleMarkers(data = day1_stops, radius = 6, popup = ~name)
海拔剖面(健行/騎行日):
#| label: fig-day3-elevation
#| fig-cap: "Day 3 elevation profile"
ggplot2::ggplot(day3_elevation, ggplot2::aes(x = dist_km, y = elev_m)) +
ggplot2::geom_area(fill = "#bfdbfe", alpha = 0.5) +
ggplot2::geom_line(color = "#1d4ed8", linewidth = 0.7) +
ggplot2::theme_minimal() +
ggplot2::labs(x = "Distance (km)", y = "Elevation (m)")
預期: 每日節至少有路線圖。多模式日(駕車+健行)兼有道路圖與海拔剖面。概覽節含示全行程之地圖。
失敗時: 若 leaflet 地圖無法渲染(PDF 模式常見),退回靜態地圖:用 tmap::tmap_mode("plot") 或 ggplot2 配 ggspatial::annotation_map_tile()。若某日空間資料不可得,以路線之簡單文字描述代之。
步驟四:加後勤表
插入住宿、交通與預算之結構化表。
住宿表:
| Night | Date | Accommodation | Address | Check-in | Cost | Conf# |
|-------|------------|--------------------|--------------------|----------|--------|-------|
| 1 | 2025-07-01 | Hotel Alpine | Bergstrasse 12 | 15:00 | EUR 95 | AB123 |
| 2 | 2025-07-02 | Mountain Hut | Zugspitze Huette | 16:00 | EUR 45 | -- |
| 3 | 2025-07-03 | Pension Edelweiss | Dorfplatz 3 | 14:00 | EUR 72 | CD456 |
交通表:
| Date | Type | From | To | Depart | Arrive | Ref# |
|------------|-------|---------------|---------------|--------|--------|--------|
| 2025-07-01 | Train | Munich Hbf | Garmisch | 08:15 | 09:32 | DB1234 |
| 2025-07-03 | Bus | Zugspitze | Ehrwald | 10:00 | 10:25 | -- |
| 2025-07-04 | Train | Innsbruck | Munich Hbf | 16:45 | 18:30 | OBB567 |
預算摘要:
| Category | Estimated | Actual | Notes |
|-----------------|-----------|--------|-------------------------|
| Accommodation | EUR 212 | | 3 nights |
| Transport | EUR 85 | | Rail passes recommended |
| Food | EUR 150 | | EUR 50/day estimate |
| Activities | EUR 60 | | Cable car, museum |
| **Total** | **EUR 507** | | |
預期: 完整後勤表,所有預訂依時間列出。住宿表無漏日。預算合計正確計算。
失敗時: 若預訂詳情未定,用 [TBD] 並標示該列。若行程涉多幣別,加幣別欄並於註腳附匯率。
步驟五:渲染報告
編譯 Quarto 文件為最終輸出格式。
# 渲染為獨立 HTML(離線用佳)
quarto render tour-report.qmd --to html
# 渲染為 PDF(列印用)
quarto render tour-report.qmd --to pdf
# 編輯時即時預覽
quarto preview tour-report.qmd
渲染後檢查:
- 開 HTML 檔驗所有地圖正確載入
- 測目錄連結可用
- 驗所有圖像與圖表以合宜大小渲染
- 核獨立 HTML 離線可用(斷網重載)
- PDF:驗分頁點於合理位置(日間)
預期: 完整、獨立之文件,離線可用,所有行程資訊可導覽之格式。
失敗時: 若渲染失敗,核 R 主控台之套件錯(漏 sf、leaflet 或 ggplot2)。若獨立 HTML 過大(逾二十 MB),降低圖層解析度或用 PNG 截圖替互動地圖。若 PDF 渲染以 LaTeX 錯失敗,以 quarto install tinytex 裝 TinyTeX。
驗證
- 報告於目標格式無錯渲染
- 概覽地圖示完整路線與所有停點
- 每日有路線圖與時程
- 住宿表含行程每夜
- 交通表含所有段
- 預算合計正確
- 獨立 HTML 離線可用
- 目錄正確導覽至所有節
- 無殘留 [TBD] 佔位(或已刻意標示)
常見陷阱
- PDF 中之互動地圖:Leaflet 與他 HTML 小工具於 PDF 中無法渲染。永為 PDF 輸出提供靜態地圖替代。
- 獨立 HTML 過大:嵌多圖層生極大檔。限縮放層級或用靜態地圖截圖於圖層密集之地圖。
- 缺時區:國際行程跨時區。永為出發抵達時間明指時區以免混淆。
- 陳舊預訂參考:確認號與時間可變。納入「最後更新」日期並提醒用戶旅行前驗證。
- 無離線退路:若報告依賴網載圖層,離線空白。用
self-contained: true或預渲染地圖為圖像。 - 日期格式不一:DD/MM 與 MM/DD 混用致混淆。全文一致用 ISO 8601(YYYY-MM-DD)。
相關技能
plan-tour-route— 生此報告所彙編之路線資料create-spatial-visualization— 建報告中嵌之地圖與圖表create-quarto-report— 通用 Quarto 文件建立與配置plan-hiking-tour— 為山地行程報告提供健行專屬資料check-hiking-gear— 為後勤附錄產打包清單
GitHub 저장소
연관 스킬
content-collections
메타이 스킬은 콘텐츠 콜렉션(Content Collections)을 위한 프로덕션 검증된 설정을 제공합니다. 콘텐츠 콜렉션은 Markdown/MDX 파일을 Zod 검증이 포함된 타입 안전한 데이터 콜렉션으로 변환해주는 TypeScript 최우선 도구입니다. 블로그, 문서 사이트 또는 콘텐츠 중심의 Vite + React 애플리케이션을 구축할 때 타입 안전성과 자동 콘텐츠 검증을 보장하기 위해 사용하세요. Vite 플러그인 구성과 MDX 컴파일부터 배포 최적화 및 스키마 검증에 이르기까지 모든 것을 다룹니다.
polymarket
메타이 스킬은 개발자들이 Polymarket 예측 시장 플랫폼을 활용한 애플리케이션을 구축할 수 있도록 지원하며, 거래 및 시장 데이터를 위한 API 통합 기능을 포함합니다. 또한 WebSocket을 통한 실시간 데이터 스트리밍을 제공하여 실시간 거래와 시장 활동을 모니터링할 수 있습니다. 이를 통해 거래 전략을 구현하거나 실시간 시장 업데이트를 처리하는 도구를 생성하는 데 활용할 수 있습니다.
creating-opencode-plugins
메타이 스킬은 개발자들이 명령어, 파일, LSP 작업 등 25개 이상의 이벤트 유형에 연결되는 OpenCode 플러그인을 만들 수 있도록 돕습니다. JavaScript/TypeScript 모듈을 위한 플러그인 구조, 이벤트 API 명세, 구현 패턴을 제공합니다. OpenCode AI 어시스턴트의 라이프사이클을 사용자 정의 이벤트 기반 로직으로 가로채거나, 모니터링하거나, 확장해야 할 때 사용하세요.
sglang
메타SGLang은 RadixAttention 프리픽스 캐싱을 활용하여 JSON, 정규식, 에이전트 워크플로우를 위한 고속 구조화 생성에 특화된 고성능 LLM 서빙 프레임워크입니다. 특히 반복되는 프리픽스가 있는 작업에서 상당히 빠른 추론 속도를 제공하여 복잡한 구조화 출력 및 다중 턴 대화에 이상적입니다. 제약 디코딩이 필요하거나 광범위한 프리픽스 공유가 있는 애플리케이션을 구축할 때는 vLLM과 같은 대안보다 SGLang을 선택하십시오.
