PickTrip建造術:讓飯店終於被當成飯店的那一天——會議一句話點破它一直被當成路邊景點,程式一天內補上名字、跨夜與唯一一道門,那個名字在手機結帳頁卻還顯示成一條槓

PickTrip建造術:讓飯店終於被當成飯店的那一天——會議一句話點破它一直被當成路邊景點,程式一天內補上名字、跨夜與唯一一道門,那個名字在手機結帳頁卻還顯示成一條槓

PickTrip 產品建造筆記:從旅行想法到可預訂行程 · Episode #16 · · PT7M51S

主持人 · Kai

本集摘要

承接前兩集「教系統不要說謊」「把誠實變成一套語言」:那套還給 AI 的名字,前幾天補到了每一個景點,唯獨飯店一直是例外——它掛在購物側、走另一條路,名字沒跟上,AI 眼裡還是一團代碼。今天三層一起把飯店還原成飯店。人的一層:昨天半夜一場一小時四十四分的會議點破根因——地圖上加進來的飯店被當成普通景點,能不能訂、多少錢、能不能退都進不來,決議改用地點類型辨認,並訂下先修好核心行程與下單迴圈、建立可重現的 AI 功能清單再談新功能。程式的一層 PIC-426 分三刀:寫入景點順手把正式名字蓋進項目、回填腳本掃過測試環境兩百七十四趟行程約七千一百筆項目、以及飯店專屬的跨夜渲染修正——訂好的飯店是一段跨數晚的東西,舊寫法用每晚方式畫、還把世界標準時間下午三點誤推成東京隔天凌晨零點,日期與時間一起錯,現在改成入住當天一行、時間一律照世界標準時間讀,未訂的夜晚也從代碼變成一句「這裡需要一間飯店」。畫面的一層:網頁把訂好的飯店攤到涵蓋的每一天,入住主卡、中間標續住、最後標退房,續住格不帶座標不上地圖;並鎖住飯店卡不可拖,因為飯店不是一天內排來排去的行程點,而是被釘在入住退房日期上的事實——而這套一卡一晚正是照 iOS 既有樣式做的,所以 iOS 這天零改動,是網頁與後端回頭追上它。定址三部曲補齊最後一刀 PIC-423:move、retime、remove 可用名字與第幾天下指令,當場解析成內部代碼,對不到唯一一個就進解不出來絕不亂猜;照 ID 寫、照名字看、照人話改,同一個敵人三把刀,並把先讀狀態、對到名字才動手的規則從每回合提醒升級進常駐系統提示 PIC-428。追了兩集的跨城市飯店 P0 PIC-349 收掉,靠替名字找地點時照當天城市加權、先砍一百五十公里外候選;購物車放飯店的第三條野路也接進唯一寫入介面 PIC-386,並禁止在飯店蓋到的任何一晚留下空位。反諷照舊:把飯店名字在 AI 腦中修好的同一天,一份七月自動審計發現那名字在三百九十像素寬的手機結帳頁顯示成一條槓,還記下飯店卡寫晚上七點、詳情頁寫十一點的時間不一致卻決定先留著。畢業八張全由同一作者自認自收;新火全在那份審計底下且剛開就躺進待辦,含兩張新 P0,加上沒人認領的飯店查無方案、建行程第二回合被打槍。老刺 PIC-370 第五天一次都沒離開待辦,如今身邊多了兩張新 P0 作伴。策略要不要繼續做旅遊那份文件第四集仍停在七月十四、待人類校對、零評論——方向被先證明能可靠跑完一趟真旅行的動能默默決定,只是永遠沒寫上那張紙。

完整逐字稿

歡迎回到 PickTrip 產品建造筆記。 昨天結尾我留了一個懸念——那張寫著病名的 PIC-370, 跟那份沒人校對的策略文件,到底哪一個會先醒過來。

我一整天都在等這個答案。 所以呢? 誰先醒了?

先講結論:兩個都沒醒。 PIC-370 第五天了,一次都沒離開過待辦; 策略文件也還停在原地。 但今天,另一個問題被回答得非常漂亮。

喔? 哪個問題?

前幾天我們一直在講,團隊把眼睛還給了 AI——讓它看得懂行程裡每一個景點的名字。 但有一個東西,一直是那套名字的例外,就是飯店。

為什麼飯店會是例外?

因為飯店掛在購物那一側,走的是另一條路,名字沒跟著補上去。 所以 AI 看行程的時候,別的景點都有名字了,飯店還是一團代碼。

今天整天,就是讓飯店終於被當成飯店的一天。

好,這個標題我喜歡。 怎麼個當成飯店法?

而且很難得,今天是三層一起指向同一件事。 先看最上面那層——人。 昨天半夜有一場一小時四十四分的會議,標題直接寫「AI 功能跟飯店票務整合」。

他們一句話點破根因:從地圖上加進來的飯店,一直被系統當成普通的路邊景點, 所以「這間能不能訂、多少錢、能不能退」根本進不來。

蛤,所以我在地圖上點一間飯店加進行程,系統心裡想的是「喔, 一個景點」,完全不知道那是能訂房的飯店?

就是這麼離譜。 決議是:以後用地圖的地點類型去辨認,是飯店就當飯店處理。 這一句,跟今天程式裡做的事,剛好是同一個故事。

這我要記一下。 前幾天我們才一直嫌團隊嘴上不講、只悶著寫。 今天是嘴巴跟手第一次講同一句話?

對,這是今天的一個反轉。 往下看程式這層。 後端做了一件叫 PIC-426 的事,分三刀。 第一刀:以後只要寫入一個景點,就順手把它的正式名字蓋進項目裡,

AI 不用每回合再拿代碼去換名字。

那已經在行程裡、還沒有名字的舊資料呢?

第二刀就是這個。 他們寫了一支回填腳本,跑過整個測試環境——兩百七十四趟行程、 大概七千一百筆項目,一次補上名字,只有三筆補不回來。

哇,等於把過去所有無名氏一次點名。 那第三刀?

第三刀最關鍵,是飯店專屬的。 訂好的飯店其實是「一段」跨好幾晚的東西,但 AI 看到的行程狀態, 還在用舊的「每一晚」方式畫它——更糟的是,它讀入住時間時會算錯:

一個東京的行程,把世界標準時間下午三點,硬生生推成隔天凌晨零點, 日期跟時間一起錯。

又是時間在說謊! 這根本是這個節目的老朋友了。

一模一樣的家族。 修法很乾脆:入住那天畫一行「幾點入住、住幾晚、訂了還是沒訂」, 時間一律照世界標準時間讀,不再繞那個會 double 的算式。

連還沒訂的那幾晚,也從一團看不懂的代碼,變成一句「這裡需要一間飯店」。

好,AI 眼睛這邊懂了。 那我打開 App,畫面上看得到嗎?

這就是今天第二個漂亮的地方——同一個形狀,三端一起長出來。 網頁把訂好的飯店攤到它涵蓋的每一天:入住那天是主卡,中間每一晚標「續住」,

最後一天標「退房」,而且那些續住的格子不帶座標、不上地圖, 只是提醒你人還在那裡。

這個「續住、退房」超日常,一看就懂。

而且他們特別鎖了一件事:飯店卡片不能拖。 以前入住那天的飯店卡可以拖來拖去,續住的格子卻鎖著——不一致, 而且兩種都錯。

因為飯店根本不是你在一天裡排來排去的行程點,它是被釘在入住退房日期上的一個事實。

喔——飯店不是活動,是事實。 這句我喜歡。

更妙的是,這套「一張卡配一晚」的畫法,其實是照著 iOS 本來就有的樣子做的。 所以你今天會發現 iOS 那邊一顆改動都沒有——因為它早就做好了, 這次是網頁跟後端回頭追上它。

難得一次不是 iOS 在後面追。 好,那你前天說的那個「定址三部曲」,今天有進展嗎?

補上了最後一刀。 第十三集我們說,機器寫入只准用唯一代碼; 第十五集說,AI 看的時候要用人看得懂的名字。

今天這一刀叫 PIC-423:AI 要改東西的時候,可以直接用「名字」跟「第幾天」下指令, 系統當場去解析成內部代碼。

所以我說「把第三天那間三井花園刪掉」,它不用再去背一串亂碼?

對。 而且如果名字太模糊、對不到唯一一個,它就老實丟進「解不出來」, 絕不亂猜。 照 ID 寫、照名字看、照人話改——同一個敵人,三把刀補齊了。

他們還把前天那條「先讀狀態、對到名字才動手」的規則,從每回合的提醒, 升級進最核心、最常駐的系統提示裡。

從便利貼變成憲法。 那前天那張只修一半的跨城市飯店呢?

今天補完了。 之前替飯店名字找地點,完全沒管地理,結果一個純東京的行程, 會把一間同名連鎖飯店配到兩百六十六公里外的名古屋去。

現在加了「照當天所在城市加權」,先把一百五十公里外的候選砍掉再比名字。 那張追了兩集的 P0,關掉了。

太好了,總算收掉一根刺。 那飯店這道門,是不是也收進那個統一寫入介面了?

收了,這是今天最後一塊拼圖。 以前購物車放飯店,是繞過護欄、直接寫檔的第三條野路。 今天把它也接進那道唯一的門,跟 AI、跟真人共用同一套不變量檢查——還加了一條規矩:

放進一段飯店,就不准在它蓋到的任何一晚留下「還沒訂房」的空位。

好,那有沒有還在說謊、還沒被抓的?

有,而且很諷刺。 今天他們把飯店的名字在 AI 腦子裡修得漂漂亮亮——結果同一天一份自動審計發現, 那個名字在手機上、三百九十像素寬的結帳頁,直接顯示成一條槓。

蛤? 名字在 AI 那邊對了,在真的要付錢的畫面上卻變一條槓?

就是這麼剛好。 同一份審計還記了一筆:飯店卡片寫晚上七點、詳情頁卻寫十一點, 時間對不上——但他們決定先留著。

你看,引擎裡的時間謊言今天被修掉,卡片上的時間謊言卻被留下來。

一邊在補、一邊在留,這節目每天都有這種對照組。 好,來對帳,今天畢業了誰?

今天一口氣關了八張,全是同一個作者自己認領、自己收掉:跨城市飯店那張 P0、 兩張跟人數和空卡有關的 P1、成本優化、定址三部曲那張、

飯店命名三刀那張、把 Redis 打爆的排隊那張,還有升級系統提示那張 Urgent。

那新的火呢?

新開的都在那份七月審計底下:手機上顯示一條槓的那張、整站不能雙指放大的那張——都是 P0, 可是全部剛開就躺進待辦。

再加沒人認領的兩張:飯店查不到方案、建行程第二回合被打槍。 還有那張診斷寫得清清楚楚、卻沒人接手的合作者 bug。

讓我猜,最老那根刺還是沒動。

PIC-370,第五天,一次都沒離開待辦。 而且現在它有室友了——今天新開的兩張 P0,跟它躺在同一個待辦裡。

病到處被治,可是點名問題的那疊票,越堆越高。

那策略文件呢?

第四集了,還是停在七月十四號、待人類校對、零評論,沒人碰。 但有件事很微妙:那份文件問的是「要不要繼續做旅遊」,而昨天的會議用行動回答了——先證明能可靠跑完一趟真旅行再說。

方向其實被動能默默決定了,只是永遠沒寫上那張紙。

所以明天的懸念是——被治好的病越來越多,可是點名這些病的票, 一張都沒人動,還越開越多。 到底哪一天,這疊越堆越高的待辦,會逼人回頭?

那就是明天的事了。 今天他們讓飯店終於被當成飯店——給了它名字、跨夜的家、唯一一道門, 還把它跨城市的身分修回來。

可是那張寫著病名的票,旁邊又多了兩張新的,一起躺著。 明天同一時間,PickTrip 產品建造筆記,每日更新。

掰掰!

製作你的 AI Podcast

把主題、文章、RSS 與團隊資訊轉成持續更新的節目。

開始使用 NewsTune