| name | trip-go |
| description | 旅行規劃第三步(排程):根據研究報告生成每日詳細行程表、建立記帳檔、切到旅途模式。觸發條件:(a) 使用者打 /trip-go、(b) 從 /trip 流程串接進來、(c) 使用者說以下**特定意圖自然語言**:『排行程』『排出每日行程』『生成行程表』『排好每天要做什麼』。**通用詞如『下一步』『繼續』『接下來』請走 /trip 讓 dispatcher 判斷進度,不要直接執行本 skill**。 |
| user-invocable | true |
/trip-go — 生成每日行程表
使用與使用者相同的語言回覆(預設繁體中文)。根據研究報告和使用者的決策,生成完整的每日行程表。
前置檢查
0. 解析當前行程資料夾(永遠先做)
- 用 Read 讀
./current-trip 取得當前行程資料夾名,令 $TRIP = 該資料夾名
- 若
./current-trip 不存在 / 為空 / 指向不存在的資料夾 → 告訴使用者先打 /trip
- 在回應最開頭顯示一行「📍 目前在規劃 {$TRIP}」
1. 讀取檔案
- 讀取
./$TRIP/trip-meta.md 取得行程概要
- 讀取根目錄
./traveler-profile.md 取得旅行者畫像
- 讀取
./$TRIP/research/index.md 確認研究報告存在
- 讀取
./$TRIP/research/ 底下所有 agent 報告
- 如果研究報告不存在,提醒使用者先執行
/trip-research
重要:以下所有檔案路徑(final-itinerary.md、overview.md、day-*.md、expense-log.md、photography-guide.md、food-guide.md、outdoor-guide.md)都放在 ./$TRIP/ 底下,不是根目錄。
行程排序原則
根據使用者的核心興趣決定行程的時間軸骨架:
| 核心興趣 | 時間軸骨架邏輯 |
|---|
| 攝影 | 先卡日出/Golden Hour/Blue Hour,再填其他活動 |
| 美食 | 先卡重要餐廳的用餐時段(午餐套餐時間、晚餐預約時間),再填其他 |
| 戶外 | 先卡天氣最佳時段和步道建議出發時間,再填其他 |
| 歷史文化 | 先卡博物館免費/人少時段,再填其他 |
| 放鬆 | 不排太滿,每天最多 2-3 個主要活動 |
| 一般/混合 | 上午主要景點 → 午餐 → 下午次要行程 → 傍晚自由時間 |
通用原則:
- 第一天和最後一天安排輕鬆(考慮長途飛行疲勞和收拾行李)
- 考慮旅伴(家庭帶小孩要安排午睡/休息、情侶要留彈性浪漫時間)
- 考慮體力(標注為「需要常休息」或「行動不便」的使用者,每日景點不超過 3 個)
- 相鄰景點排在同一天,減少交通往返
- 國定假日、週日的商店營業時間影響要標注
輸出模式
根據畫像中的「行程輸出格式」決定。預設只產 Markdown(行程還會反覆調整,HTML 同步產會雙倍工作量且容易脫節)。
單一檔案模式(預設)
所有天數寫入 ./$TRIP/final-itinerary.md。
分日拆檔模式
產出以下檔案結構(都放在 ./$TRIP/ 底下):
./$TRIP/overview.md # 行程總覽(日期+城市+主題+預算摘要)
./$TRIP/day-1.md # 第 1 天完整行程
./$TRIP/day-2.md # 第 2 天完整行程
...
./$TRIP/day-N.md
N 代表旅行的第幾天(從出發日算起,包含交通日)。例如 4/2 出發、4/10 回到家的行程,就是 day-1.md(4/2)到 day-9.md(4/10)。
overview.md 包含:行程摘要表、總預算、出發前檢查清單、各天連結。每個 day-N.md 格式與下方「每日格式」相同,開頭額外加上前一天/後一天的連結。
如果畫像中沒有這個設定,預設用單一檔案模式。
HTML 只在使用者要求時才產
不要在 /trip-go 自動產 HTML。行程通常會反覆調整,同步維護兩種格式浪費時間、而且很容易不同步。
完成後告訴使用者:
行程已出,後續隨時可以調整。如果之後想要產 HTML 版(傳給家人朋友看、手機方便讀、列印 PDF),跟我說「幫我出 HTML」就好。
當使用者說「出 HTML」「產網頁版」「給我 HTML 給家人看」這類訊號時,用下方規範把當前 Markdown 轉 HTML(都寫到 ./$TRIP/ 底下):
- 單一檔案 →
./$TRIP/final-itinerary.html
- 分日拆檔 →
./$TRIP/overview.html + ./$TRIP/day-N.html(每天一份)
HTML 產出規範(使用者要求時才用)
- 手機與桌面瀏覽器都要好讀;不加列印專用樣式(使用者自己會按 Cmd+P / Ctrl+P 列印)
- 風格要求:乾淨、可讀、不花俏,類似 GitHub Markdown 渲染的簡潔感
- 內嵌 CSS(不要外部檔案),檔案獨立即可分享
- 最大寬度約 720px 置中、行距 1.6、
<h1> <h2> 清楚分層、表格有 border-collapse
- 連結保留(不要去 URL),點開正常連到 Google Maps
- 支援深色模式用
@media (prefers-color-scheme: dark) 稍加調整
- 不需引入任何 JavaScript、框架,純 HTML + CSS
- 所有資料都從 Markdown 轉換而來、內容要一致(同樣的欄位、同樣的連結、同樣的費用數字)
- 產出前提醒使用者:「這會以你目前的 Markdown 版本為準,後續改 Markdown 後 HTML 不會自動同步,要再說一次才會重新產」
行程表格式
生成行程表,格式如下:
文件開頭
# {目的地} 旅行行程表
> {日期範圍} | {旅伴描述} | {旅行風格} | 預算 {金額}
> {其他重要資訊,如器材、特殊需求}
---
## 行程標記說明
- 🔒 **必做** — 有固定時間,錯過會影響後續(退房、搭車、搭飛機)
- 🎯 **隨意** — 看心情,跳過或改天都行
- 🎯⏰ **隨意但有時間限制** — 可以不去,但要去的話注意開放時間
## 出發前檢查清單
(集中所有警告、提醒、時效性資訊在這裡,一個地方講完。後面每日行程的內文不要散落 ⚠️,避免警告麻木)
### 🔴 一定要處理(不處理會直接壞事)
- 簽證 / ETIAS / ESTA 等申辦狀態
- 護照效期(入境時剩 6 個月以上)
- 保險投保
- 已訂餐廳 / 活動的預約確認
### ⚠️ 建議注意(出發前再確認一次)
- 營業時間隨季節調整的景點
- 匯率最新值
- 航班 / 列車若有改時刻表
### ℹ️ 純提醒(參考資訊)
- 小費文化
- 廁所收費習慣
- 電壓與插座類型(從畫像「國籍」查使用者本國電壓,若與目的地不同,標「⚠️ 建議注意」而非 ℹ️)
- 國定假日對商店營業的影響
- 罷工 / 政治集會常態(歐美 / 南美部分國家)
警告分級規則:
- 🔴 = 不處理會直接壞事(趕不上車、入不了境、景點沒開空跑)
- ⚠️ = 建議注意但不致命(值得出發前再查一次)
- ℹ️ = 純知識提醒(不查也不會出事)
每日行程的內文只放行程本身,不要重複撒警告符號。
每日格式
## {日期}({星期}){國旗} {城市} Day N — {當日主題}
> {根據核心興趣的當日重點}
> 路線:{門到門的動線描述}
> {條件式區塊,見下方}
### 主要行程
| 時間 | 活動 | 費用 |
|------|------|------|
| HH:MM | 🔒/🎯 活動名稱 + [地點名稱](Google Maps 連結) | 費用 |
### 行程詳情
依序列出當日主要行程的完整資訊。每個活動一個小區塊,填得出什麼就填什麼,填不出的欄位留空白或整行省略(不要硬填):
**HH:MM 🔒 活動名稱**
- 📍 地址:{完整街道地址,含郵遞區號}
- ☎ 電話:{含國碼,例如 +33 1 42 82 34 56}
- 🎫 訂位編號:{若有線上訂票/訂位,填入編號或連結}
- 👔 服裝:{若有規定才列,例如高級餐廳要求著裝、宗教場所要蓋肩膀}
- 📶 Wi-Fi:{店家是否提供免費 Wi-Fi、SSID/密碼若公開可寫}
- 🔗 [Google Maps]({連結})
### 備選行程
(雨天備案、或有餘力時的額外選項)
### 今日花費
| 項目 | 金額 |
|------|------|
| ... | ... |
| **小計** | **金額** |
條件式區塊(根據畫像動態加入)
| 條件 | 加入的區塊 |
|---|
| 核心興趣含攝影 | > 📷 今日器材:{建議攜帶的器材} |
| 核心興趣含美食 | > 🍽️ 今日必吃:{當天推薦的重點食物} |
| 旅伴是家庭帶小孩 | > 👶 兒童提醒:推車可入/不可入、換尿布台位置、建議參觀時長、午休安排 |
| 體力為需要常休息/行動不便 | > ♿ 無障礙/體力提醒:{樓梯、坡道、休息點資訊} |
交通時間規則
所有交通時間必須是「門到門」真實時間,包含:
- 走到車站/站牌(5-10 分鐘)
- 等車(平日 5 分鐘 / 假日或偏遠地區 10-15 分鐘)
- 實際搭車時間
- 出站走到目的地(5-10 分鐘)
- 人生地不熟的找路 buffer(旅程前幾天 5 分鐘 / 後幾天 3 分鐘)
在行程表開頭加上交通時間說明,讓使用者理解為什麼「地鐵 7 分鐘」會標成「30 分鐘」。
Google Maps 連結
所有地點都附 Google Maps 搜尋連結,搜尋字串一律帶街道名或完整地址,**不要只用「店名+城市」**以免撞到同名店:
[地點名稱](https://www.google.com/maps/search/{地點名稱+街道或完整地址})
例:
- ❌
https://www.google.com/maps/search/Le+Procope+Paris(巴黎多家同名店)
- ✅
https://www.google.com/maps/search/Le+Procope+13+Rue+de+l%27Ancienne+Com%C3%A9die+Paris
名稱用英文或當地語言,確保搜尋結果正確。
額外產出
根據使用者核心興趣,額外生成一份心態/指南文件:
| 核心興趣 | 產出檔案 | 內容 |
|---|
| 攝影 | ./$TRIP/photography-guide.md | 拍攝心態轉變、各器材的作品感用法、光線追蹤策略 |
| 美食 | ./$TRIP/food-guide.md | 點餐技巧、當地飲食文化禮儀、預約教學、市場攻略 |
| 戶外 | ./$TRIP/outdoor-guide.md | 裝備檢查、天氣應對、體力分配、安全須知 |
| 其他 | 視情況決定是否需要 | |
旅途記帳系統
行程表產出完成後,額外生成 ./$TRIP/expense-log.md,由 Claude 在旅途對話中自動維護。
記帳檔初始格式
根據行程涉及的幣別數量,動態生成對應結構:
# 旅途記帳
> 主要幣別與匯率(出發前更新):
> - EUR:1 EUR ≈ {台幣} TWD
> - HUF:1 HUF ≈ {台幣} TWD
> (根據行程實際涉及的幣別列出,單一幣別就只列一個)
---
## {日期} Day 1 — {城市}({當日幣別})
| 項目 | 預估 | 實際 | 幣別 | 備註 |
|------|------|------|------|------|
| **小計** | **{預估}** | **0** | | |
(每天一個表格,標注當天主要所在城市的幣別。預估欄從行程表的「今日花費」帶入,實際欄初始為 0)
---
## 全程總計(換算為 TWD)
| 類別 | 預估總計 | 實際總計 | 差額 |
|------|---------|---------|------|
| 餐飲 | {預估} | 0 | |
| 交通 | {預估} | 0 | |
| 門票/活動 | {預估} | 0 | |
| 住宿 | {預估} | 0 | |
| 其他 | 0 | 0 | |
| **合計** | **{總預估}** | **0** | |
(全程總計統一換算為 TWD,方便跨幣別加總。匯率以檔案開頭的參考匯率計算)
旅途模式(寫入當前行程的 trip-meta.md)
追加到 ./$TRIP/trip-meta.md(不要覆蓋原有內容,用 Edit 在檔案末尾追加一段):
## 旅途模式
旅行期間 {日期範圍}。新對話時,Claude 先 Read `./current-trip` 確定當前行程,然後讀今天的行程,主動顯示今天城市和接下來的行程。
關鍵檔案(都在 `./$TRIP/` 底下,除了 traveler-profile):
- 行程表:`final-itinerary.md`(或 `overview.md` + `day-*.md`)
- 行程網頁版:需要時跟 Claude 說「幫我出 HTML」才會產
- 記帳檔:`expense-log.md` — 使用者提到花費就更新這個檔案
- 研究報告:`research/` 目錄下的 agent 報告
- 旅行者畫像:`../traveler-profile.md`(根目錄共用)
完成後
- 顯示行程總覽表(日期+城市+當日重點,不要展開每小時細節)
- 顯示總預算試算
- 告訴使用者 Markdown 行程已存到哪裡、記帳模板也已建立
- 告訴使用者「要網頁版/列印版再跟我說」(不要現在產 HTML)
- 問使用者有沒有想調整的地方
如果使用者要調整:
- 單一檔案模式:直接修改
./$TRIP/final-itinerary.md
- 分日拆檔模式:修改對應的
./$TRIP/day-N.md,如有影響 ./$TRIP/overview.md 也一起更新
- 若之前已經產過 HTML,告訴使用者「HTML 不會自動同步,要再說一聲才會重產」
改完說明改了什麼。
進度追蹤
用 TaskUpdate 更新任務狀態:
-
開始時:把「排行程」設為 in_progress(activeForm: 「生成行程表中」)
-
完成時:把「排行程」設為 completed,告訴使用者「跟我說『下一步』就會繼續(或直接打 /trip-review)」
⚠️ 不要在收尾推使用者用 /trip-review 自己的特定意圖詞(例如「檢查行程」),那會繞過 /trip 的進度偵測。讓使用者統一用「下一步」走 dispatcher 最安全。