travel-guide について
Travel Guide は、個別化した旅行資料、旅程、PDF、同行者向けウェブページを作成するスキルです。具体的な旅行と旅行者に沿って提案をまとめ、出典記録、共有時のプライバシー処理、検証手順を備えています。
主な機能
- 01個別化した旅程と旅行概要の作成
- 02出典 URL と取得日の記録を伴う調査
- 03構造化された旅行モデルの検証
- 04旅行資料と同行者向けページの生成
- 05共有用にサニタイズした版の作成
- 06PDF の構造と見た目の確認
活用シーン
- 01旅行グループ向けの複数日程を作成
- 02印刷用の旅行ガイド PDF を作成
- 03同行者とレスポンシブな旅行ページを共有
- 04非公開の旅行計画からサニタイズ版を作成
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ magnus919/ agent-skills --skill travel-guideインストール後、Claude Code で/travel-guideを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
README.mdassets/route-mark.svgevals/evals.jsonreferences/editorial-structure.mdintake-and-personalization.mdpdf-rendering.mdprivacy-and-sharing.mdresearch-and-evidence.mdscripts/render-travel-guide.pysanitize-trip-brief.pyvalidate-trip-brief.pystyles/travel-dossier.csstemplates/dossier-outline.mdtrip-brief.jsontests/test_scripts.py詳細
旅行ガイド
ありきたりな観光スポット一覧ではなく、依頼者のための旅行ドシエを作成します。完成したガイドでは、**なぜこの場所なのか、なぜこの旅行者たちなのか、なぜ今なのか?**に答える必要があります。旅を綿密に考え抜かれたものにしながら、発見の余地も残します。
使用する場面
旅行者が次のいずれかを希望する場合に、このスキルを使用します。
- 個別の旅程または旅行概要;
- デザイン性の高い旅行 PDF または印刷可能なフィールドガイド;
- 許可された好み、制約、同行者に合わせたおすすめ;
- 旅行の同行者と共有できる、レスポンシブなウェブページ;
- 同じ旅行プランのプライベート版および個人情報を除いた版。
使用しない場面
- 予約、チケットの購入、予約の変更、支払いの取り扱い。
- 信頼できる専門家または政府機関の情報源が必要な、ビザ、移民、医療、安全、法律に関する判断。
- 具体的な旅行者や旅行の予定がない、一般的な旅行先の概要。
- 既存の文書からのテキスト抽出。その場合は
anydocに引き継いでください。文書の読み取りはできますが、作成や検証は行いません。
段階的な参照
依頼に必要な参照資料だけを読みます。
| 必要な情報 | 参照先 |
|---|---|
| 個人的な背景、同意、要点を絞った質問、またはグループ内の意見の違い | references/intake-and-personalization.md |
| 現在の施設、営業時間、料金、予約、交通機関、または情報源の質 | references/research-and-evidence.md |
| 旅行の主題、主要スポットの選定、日程の構成、または編集上の語り口 | references/editorial-structure.md |
| プライベート版/共有版、または情報の削除 | references/privacy-and-sharing.md |
| HTML、PDF、印刷用 CSS、レンダリング、またはビジュアル QA | references/pdf-rendering.md |
構造化された信頼できる情報源として templates/trip-brief.json を使用します。JSON に入力する前に内容を下書きする場合は、templates/dossier-outline.md を使用します。
ワークフロー
依頼に応じてプロセスを調整します。質問が限定的な場合――近隣地区ひとつ、レストランひとつ、移動手段ひとつ、実用的な情報ひとつなど――は、情報源を添えて短く直接回答できます。旅行者がガイド、PDF、同行者向けページ、または複数日にわたるプランを希望する場合に限り、ドシエの作成プロセス全体を実行します。ドシエ形式は成果物の選択肢であり、旅行に関するあらゆる質問に自動的に適用するものではありません。
1. 旅行の要件を確認する
以下を収集するか、確認します。
- 旅行先またはルート;
- 到着日と出発日、または少なくとも希望する季節;
- 旅行期間とおおよそのペース;
- 旅行する人と、それぞれのニーズに実質的な違いがあるか;
- 予算の範囲と通貨(関連する場合);
- 移動、食事、感覚面、言語、予約に関する制約;
- 希望する成果物:プライベート PDF、共有用 PDF、同行者向けウェブページ、またはそのすべて;
- 想定読者:旅行者本人、旅行グループ、またはより広い共有先。既定ではプライベートとして扱います。成果物の対象者が明確でない場合は、誰に向けたものか尋ねてください。
回答が欠けていることでおすすめの内容が変わる場合は、要点を絞った質問をします。長い質問票は使いません。質問の数の目安と、パーソナライズの境界については、インテークの参照資料を読んでください。
2. 個人的な背景情報を明示的に扱う
ホストがユーザーの好みや履歴を取得できる場合は、この旅行に関連し、この目的での使用が許可された情報だけを使用します。個人的な情報はそれぞれ、内部で known、relevant memory、hypothesis、ask first、do not use に分類します。生のプライベートメモをガイドにそのまま転記してはいけません。パーソナライズが予想外に感じられる可能性がある場合は、関連する根拠を簡潔に説明するか、許可を求めます。
3. 現在の事実を調査する
ガイドに必要な情報だけを調査します。会場、運営事業者、交通機関、 政府機関、観光局、予約サイトの公式情報を優先します。情報源台帳に URLと取得日を記録します。次の項目を分けて記載します。
- 現在の確認済み事実;
- 適合性に関する編集上の解釈;
- 推定と前提;
- 未確認のままの事実。
検索結果の抜粋、古い記憶、出典のない料金を現在の事実として示しては いけません。移動や費用について記載する前に、調査リファレンスを 確認してください。
4. 編集モデルを作成する
旅のテーマを1~2文でまとめます。すべてを順位付けするのではなく、 少数の中心的な体験を選びます。各体験について、これらの旅行者に 合う理由、最適な時期、費用または必要な条件、うまくいかない可能性を 必ず記載します。
各日の構成は次のとおりです。
- 中心となる体験を1つ;
- 食事、飲み物、または地域ならではの雰囲気を1つ;
- 散歩、地区、または日常生活に触れる機会を1つ;
- 休憩または回復の時間を1つ;
- 天候、体力、休業時の代替案を1つ。
有名でも適合性の低い選択肢がある場合は、「今回は見送る」セクションを 簡潔に設けます。資料を作成する前に、編集リファレンスを確認して ください。
5. 成果物を出力する
この旅行専用の作業フォルダーを用意します。明示的に作成し
(たとえば、macOS/Linuxでは$(mktemp -d)を使うか、システムの
一時ディレクトリ内に名前付きフォルダーを作成します)、旅のモデル、
出力したHTML、サニタイズした版、PDFをそこに保存します。スキルの
ディレクトリや、ユーザーのホームディレクトリ直下に成果物を保存しては
いけません。以下の例では、このフォルダーを$WORKとします。
コンテンツとレイアウトは分けて管理します。まず、コンテンツモデルを 検証します。
python3 scripts/validate-trip-brief.py "$WORK/trip-brief.json" --strict --json
印刷向けのHTML資料を出力します。
python3 scripts/render-travel-guide.py "$WORK/trip-brief.json" \
--mode dossier --output "$WORK/travel-dossier.html" --json
レスポンシブ対応の付属ページを作成する場合も、同じモデルを使用します。
python3 scripts/render-travel-guide.py "$WORK/trip-brief.json" \
--mode companion --output "$WORK/index.html" --json
レンダラーは、可能であればバンドルされたCSSとローカルの画像素材を
埋め込みます。印刷対応ブラウザー、またはリポジトリのdocumentsスキルを
使って、資料のHTMLをPDFに変換します。PDFは、構造の確認と目視検査が
完了するまで完成とはみなせません。具体的な確認基準については、PDF
リファレンスを確認してください。
6. 要望に応じて共有用の版を作成する
非公開モデルを信頼できる唯一の情報源として維持します。完成したPDFを 塗りつぶすのではなく、サニタイズしたコピーを作成します。
python3 scripts/sanitize-trip-brief.py "$WORK/trip-brief.json" \
--profile shareable --output "$WORK/trip-brief-shareable.json" --json
サニタイズしたモデルは個別に出力し、検証します。共有用の版に、正確な 日付、宿泊先、同行者、住所、予約識別情報、連絡先、非公開メモを含めても よいとは限りません。
必須の資料セクション
旅行の内容に合わせて長さを調整しますが、情報の階層は維持してください。
- 表紙:目的地、旅の一文、期間/ルート、画像クレジット;
- 旅の概要:この旅行がこれらの旅行者に合う理由;
- 中心となる体験:適合性と移動情報を含む、確度の高い体験;
- 日ごとの構成:中心となる体験、地域ならではの雰囲気、休憩、代替案;
- 特別な演出:一般的な検索結果にはない、具体的な工夫;
- 実用的な現地情報:交通、予約、マナー、費用、注意事項;
- 今回は見送る:魅力的でも適合性の低い選択肢。必要な場合;
- 出典と情報の新しさ:リンク、取得日、未解決の不確実性。
標準のビジュアルは、ルートを示す旅程ライン、温かみのあるゴールドの アイブロウ、白い見出し、控えめな赤のアクセントを配した、写真を生かした 暗色の表紙とします。本文ページは余白を十分に取った白いページにします。 セクション番号は薄く表示し、概要の直後に日ごとの色分けストリップを 配置します。ペースと予算のメーター、コンパクトなカード、中心となる 体験の画像に統一感のある暖色の写真調、読みやすい表を取り入れます。 各セクションのページ下部には、内容に基づく現地メモ(該当する場合は 失敗しやすい点、代替案、再確認事項、または見送る理由)、次のセクション への案内、薄く表示したルートマークを配置します。コントラストとテキストの 選択可能性を保ち、不確実性や実用上の注意事項が装飾で隠れないように します。フッターは情報提供のみを目的とし、予定表にはしません。モデルの 内容を1行で繰り返すものであり、新しい計画を作り出してはいけません。
終了条件
要求されたすべての成果物がそろい、次の条件を満たした時点で終了します。
- 旅行モデルが同梱のバリデーターに合格していること。
- 現在の主張には情報源の URL と取得日が記載されているか、不確実であると明示されていること。
- PDF が要求されている場合、構造面と視覚面の QA に合格していること。
- 付属ページが要求されている場合、狭い幅と広い幅で確認されていること。
- 非公開の出力と共有可能な出力が明確に区別されていること。
- 納品物に、ソースモデル、レンダラー、検証結果、および既知の制限事項が記載されていること。