国内旅行プランを提案する。行き先の提案、松竹梅グレード別の楽しみ方、 予算別ホテル提案までをHTMLレポートで提供する。 引数に行き先・時期・人数・予算などを渡せる。引数なしの場合はヒアリングから開始する。
国内旅行の計画をトータルサポートする。 行き先が未定ならヒアリングで提案し、松竹梅3グレードのプランとホテルを提示する。
まず config/profile.json を Read で読み込む。
プロフィールに出発地(departure_city)などが設定されていれば、その情報をデフォルト値として使う。
$ARGUMENTS が空、または以下の情報が不足している場合は AskUserQuestion で確認する。 すでに十分な情報があればこのステップはスキップする。 プロフィールに設定済みの項目はデフォルト値として提示し、変更がなければそのまま使う。
確認する項目(未指定のもののみ聞く):
一度にまとめて聞く。個別に何度も質問しない。
ヒアリング結果をもとに、おすすめの行き先を 3候補 提案する。 各候補について以下を簡潔に示す:
AskUserQuestion で候補から選んでもらう。
行き先が最初から決まっている場合はこのステップをスキップする。
WebSearch で以下を調査する:
ファイル保存先: reports/travel-plan-YYYY-MM-DD.html
(YYYY-MM-DD は今日の日付)
以下のテンプレートを使い、<!-- FILL --> をすべて実データで置き換えること。
<!DOCTYPE html>
<html lang="ja">
<head>
<meta charset="UTF-8">
<title>国内旅行プラン <!-- FILL:行き先 --> <!-- FILL:日付 --></title>
<style>
body { font-family: sans-serif; max-width: 960px; margin: 0 auto; padding: 24px; background:#f8fafc; color:#1e293b; }
h1 { background: linear-gradient(135deg, #059669, #0d9488); color: white; padding: 20px 24px; border-radius: 8px; margin-bottom: 8px; font-size: 1.4rem; }
.meta { color: #64748b; font-size: 0.85rem; margin-bottom: 24px; }
.summary { background: #ecfdf5; border-left: 4px solid #059669; padding: 14px 18px; border-radius: 0 8px 8px 0; margin-bottom: 28px; line-height: 1.7; }
h2 { font-size: 1.15rem; border-bottom: 2px solid #e2e8f0; padding-bottom: 6px; margin: 32px 0 14px; color: #1e293b; }
h3 { font-size: 0.95rem; color: #059669; margin: 18px 0 8px; }
/* グレード別カード */
.plan-card { border: 1px solid #e2e8f0; border-radius: 12px; padding: 20px; margin-bottom: 20px; }
.plan-card.matsu { border-left: 5px solid #b45309; background: linear-gradient(135deg, #fffbeb, #fef3c7); }
.plan-card.take { border-left: 5px solid #059669; background: linear-gradient(135deg, #ecfdf5, #d1fae5); }
.plan-card.ume { border-left: 5px solid #6366f1; background: linear-gradient(135deg, #eef2ff, #e0e7ff); }
.plan-card .grade { font-size: 1.1rem; font-weight: 700; margin-bottom: 4px; }
.plan-card .grade .label { font-size: 0.75rem; padding: 2px 8px; border-radius: 10px; color: white; margin-left: 8px; vertical-align: middle; }
.plan-card.matsu .label { background: #b45309; }
.plan-card.take .label { background: #059669; }
.plan-card.ume .label { background: #6366f1; }
.plan-card .budget { font-size: 0.85rem; color: #64748b; margin-bottom: 12px; }
/* スケジュール */
.schedule { margin: 12px 0; }
.schedule .time-block { display: flex; gap: 12px; margin-bottom: 10px; }
.schedule .time { min-width: 60px; font-weight: 700; color: #059669; font-size: 0.85rem; }
.schedule .activity { font-size: 0.88rem; line-height: 1.6; }
/* ホテル */
.hotel-section { margin-top: 16px; }
.hotel { background: white; border: 1px solid #e2e8f0; border-radius: 8px; padding: 14px 16px; margin-bottom: 10px; }
.hotel .hotel-name { font-weight: 700; font-size: 0.95rem; }
.hotel .hotel-meta { font-size: 0.8rem; color: #64748b; margin-top: 4px; }
.hotel .hotel-price { font-size: 0.9rem; font-weight: 700; color: #059669; margin-top: 4px; }
table { width: 100%; border-collapse: collapse; font-size: 0.88rem; margin-bottom: 12px; }
th { background: #e2e8f0; padding: 8px 10px; text-align: left; font-weight: 600; }
td { padding: 8px 10px; border-bottom: 1px solid #e2e8f0; vertical-align: top; }
tr:hover td { background: #f1f5f9; }
ul { padding-left: 18px; font-size: 0.9rem; line-height: 1.7; }
li { margin-bottom: 6px; }
.tip { background: #fffbeb; border-left: 3px solid #f59e0b; padding: 10px 14px; border-radius: 0 6px 6px 0; font-size: 0.85rem; margin: 12px 0; }
.sources { margin-top: 32px; padding-top: 12px; border-top: 1px solid #e2e8f0; font-size: 0.78rem; color: #64748b; }
.sources a { color: #059669; }
footer { margin-top: 24px; font-size: 0.75rem; color: #94a3b8; text-align: right; }
</style>
</head>
<body>
<h1>✈️ 国内旅行プラン</h1>
<div class="meta">📅 <!-- FILL:YYYY年MM月DD日 --> 生成 | <!-- FILL:行き先 --> <!-- FILL:日数 --> | <!-- FILL:人数構成 --></div>
<div class="summary">
<!-- FILL: この旅行プランの概要を3〜4文でまとめる。行き先の魅力、ベストシーズンの理由、プランのポイントを含める -->
</div>
<!-- ========== 基本情報 ========== -->
<h2>📍 基本情報</h2>
<table>
<tr><th style="width:140px">行き先</th><td><!-- FILL --></td></tr>
<tr><th>時期</th><td><!-- FILL --></td></tr>
<tr><th>日数</th><td><!-- FILL --></td></tr>
<tr><th>人数・構成</th><td><!-- FILL --></td></tr>
<tr><th>出発地</th><td><!-- FILL --></td></tr>
<tr><th>アクセス</th><td><!-- FILL: 主要な交通手段・所要時間・概算費用 --></td></tr>
</table>
<!-- ========== 松プラン ========== -->
<h2>🏆 松竹梅グレード別プラン</h2>
<div class="plan-card matsu">
<div class="grade">🥇 松プラン<span class="label">贅沢・特別な旅</span></div>
<div class="budget">💰 予算目安: <!-- FILL: 一人あたり総額 --> /人</div>
<p><!-- FILL: このグレードのコンセプトを1〜2文で --></p>
<h3>モデルスケジュール</h3>
<div class="schedule">
<!-- FILL: 時間ブロックを日数分繰り返す。例:
<div class="time-block">
<div class="time">10:00</div>
<div class="activity"><strong>〇〇観光</strong> — 説明文</div>
</div>
-->
</div>
<div class="hotel-section">
<h3>おすすめ宿泊先</h3>
<!-- FILL: 1〜2件のホテル。例:
<div class="hotel">
<div class="hotel-name">〇〇旅館</div>
<div class="hotel-meta">📍 エリア | ⭐ 特徴(露天風呂付き客室、ミシュラン掲載等)</div>
<div class="hotel-price">1泊2食付き 〇〇,〇〇〇円〜 /人</div>
</div>
-->
</div>
</div>
<!-- ========== 竹プラン ========== -->
<div class="plan-card take">
<div class="grade">🥈 竹プラン<span class="label">バランス重視</span></div>
<div class="budget">💰 予算目安: <!-- FILL --> /人</div>
<p><!-- FILL: コンセプト --></p>
<h3>モデルスケジュール</h3>
<div class="schedule">
<!-- FILL -->
</div>
<div class="hotel-section">
<h3>おすすめ宿泊先</h3>
<!-- FILL: 1〜2件 -->
</div>
</div>
<!-- ========== 梅プラン ========== -->
<div class="plan-card ume">
<div class="grade">🥉 梅プラン<span class="label">コスパ最優先</span></div>
<div class="budget">💰 予算目安: <!-- FILL --> /人</div>
<p><!-- FILL: コンセプト --></p>
<h3>モデルスケジュール</h3>
<div class="schedule">
<!-- FILL -->
</div>
<div class="hotel-section">
<h3>おすすめ宿泊先</h3>
<!-- FILL: 1〜2件 -->
</div>
</div>
<!-- ========== グルメ情報 ========== -->
<h2>🍽️ ご当地グルメ・おすすめ飲食店</h2>
<table>
<thead><tr><th>店名・料理</th><th>ジャンル</th><th>予算目安</th><th>ポイント</th></tr></thead>
<tbody>
<!-- FILL: 5〜8件 -->
</tbody>
</table>
<!-- ========== 観光スポット ========== -->
<h2>📸 おすすめ観光スポット</h2>
<table>
<thead><tr><th>スポット</th><th>所要時間</th><th>料金</th><th>おすすめポイント</th></tr></thead>
<tbody>
<!-- FILL: 6〜10件(定番+穴場をバランスよく) -->
</tbody>
</table>
<!-- ========== お土産 ========== -->
<h2>🎁 おすすめお土産</h2>
<ul>
<!-- FILL: 4〜6件(名前、価格帯、買える場所を含める) -->
</ul>
<!-- ========== 旅の Tips ========== -->
<h2>💡 旅の Tips</h2>
<div class="tip">
<!-- FILL: 3〜5件の実用的なアドバイス(混雑回避、割引情報、季節の注意点など)を箇条書きで -->
</div>
<!-- ========== 予算比較 ========== -->
<h2>💴 予算比較まとめ</h2>
<table>
<thead><tr><th>項目</th><th>🥇 松</th><th>🥈 竹</th><th>🥉 梅</th></tr></thead>
<tbody>
<!-- FILL: 交通費・宿泊費・食費・観光費・お土産・合計 の行 -->
</tbody>
</table>
<!-- ========== 参照元 ========== -->
<div class="sources">
<strong>参照元:</strong>
<!-- FILL: <a href="URL">タイトル</a> をカンマ区切りで列挙 -->
</div>
<footer>Generated by Claude Code / AutoDailyTask | <!-- FILL:YYYY-MM-DD HH:MM JST --></footer>
</body>
</html>
reports/travel-plan-YYYY-MM-DD.html が生成され、FILL コメントがすべて実データに置換済み/travel-plan # ヒアリングから開始
/travel-plan 箱根 1泊2日 カップル # 条件を指定して生成
/travel-plan 京都 GW 家族4人 予算5万円 # 詳細条件付き