在決定要修什麼之前,先讓 Claude 根據程式碼裡實際存在的東西,列出整個選項空間——這樣你的選擇才是建立在你原本不知道自己有的替代方案上。
「這是我大概的問題:Acme 的使用者在完成新手引導後就流失。搜尋整個 codebase,腦力激盪 10 個我們可以介入的地方,從最省力到最有野心排列。我會告訴你哪些讓我有感。」
我搜尋了 apps/web、services/ 和 packages/ 裡的新手引導、邀請和首次工作階段的程式碼路徑。發現一個模式:很多留存機制其實已經存在,只是沒有連起來——下面最省力的選項大多是接線,不是從頭建造。勾選讓你有感的,然後複製底部的回覆。
在程式碼中找到 —— 零專案的儀表板只渲染插圖和文字「還沒有專案」——沒有別的了。NewProjectButton 就在兩個目錄外但沒人 import 進來;唯一的出路是頂端導覽列上那個小小的「+」。每個流失使用者的最後一個畫面大概都是這個。
在程式碼中找到 —— 有人做了一個完整的預載示範專案——「產品預告 v3」,有 45 秒片段、四則帶時間戳的留言、一個已解決的討論串——藏在 sample_project_v1 這個 flag 後面。這個 flag 對所有人仍然是 false,檔案已經 8 個月沒動過了。功能做完了,只是從來沒上線。
在程式碼中找到 —— 邀請只用 email 送出。TeamPanel 查詢 team_members 但完全忽略 invites 表——邀請者看不到他的隊友沒接受,也沒有重寄功能。對於一個協作審核工具來說,單人使用者就是等著流失。
在程式碼中找到 —— 後端已經在 user_milestones 記錄 first_upload、first_comment、first_invite_accepted 和 first_approval——但沒有前端程式碼讀這張表。它純粹是為了分析儀表板存在的。「4 步完成 3 步」清單的所有材料都已經在那了。
在程式碼中找到 —— 帶時間戳的留言是 Acme 的核心循環,但引導很隱晦:點擊時間軸會把時間戳填進撰寫器,但沒有任何東西教這個。Timeline.tsx 有一個來自原作者的 TODO: first-run hint?。在首次播放時加一個幽靈標記——「點擊任何地方在這個時刻留言」。
在程式碼中找到 —— 當轉碼失敗(不支援的編碼、太大的 ProRes、損壞的 moov atom),任務會移到 failed、記到 Sentry,但什麼都不告訴使用者——專案卡片就只是永遠轉圈圈。有一個用備用預設重試的程式碼路徑,只能從內部管理腳本存取。
在程式碼中找到 —— 即時在場功能已經完全做好——共享播放頭、即時游標、「Maya 正在看」徽章——但只有在兩個人剛好同時打開同一個審核時才會亮起來。沒有任何東西安排這個巧合。當隊友接受邀請時加一個「一起審核」排程提示,把兩人深連結到同一個工作階段。
在程式碼中找到 —— 審核流程(初剪 → 客戶審核 → 最終簽核)完全可配置——而且一開始完全是空白的。definitions 目錄只有測試用的 __fixtures__。根據 WorkflowEditor.tsx 裡的註解,高級使用者是複製一份共享的 Notion 文件來設定的。上線 5 個有觀點的範本:agency 交付、YouTube 管線、客戶簽核、內部 QA、在地化審核。
在程式碼中找到 —— 今天 Acme 的新手引導有一個硬性外部依賴:你需要一支做好的影片,產品才有用。但 services/ingest 已經接受分塊 webm 上傳(為行動 app 做的),所以一個基於 MediaRecorder 的「錄製你的螢幕、取得回饋」流程不需要動 pipeline——「只」需要擷取 UI。移除試用期閒置的最大原因:還沒有東西可以審核。
在程式碼中找到 —— 訪客分享連結存在但被刻意閹割:token 24 小時後過期、訪客不能留言,還有一個兩年前留下的 // TODO(sasha): revisit guest perms after launch。流失的使用者往往是那些客戶不願意註冊的人。讓訪客變成一級公民——持久門戶、填名字就能留言、不需要帳號——每次外部審核都變成留存循環(順便也是獲客循環)。