在敲定修复方案之前,先让 Claude 基于代码库里真实存在的内容,列出完整的选项空间——这样你的选择会建立在那些你原本不知道的其他方案之上。
“这是我的大致问题:Acme 用户在完成引导后流失。请搜索代码库,头脑风暴 10 个可以介入的地方,从成本最低到最雄心勃勃排列。我会告诉你哪些方案有共鸣。”
我搜索了 apps/web、services/ 和 packages/ 中与引导、邀请和首次会话相关的代码路径。一个模式浮现出来:大量留存机制已经存在,但彼此脱节——下面最便宜的选项大多是接线,而不是从零搭建。勾选有共鸣的方案,复制底部的回复。
代码中发现 — 零项目仪表盘只渲染插图和文案 “还没有项目”——然后就没了。NewProjectButton 在两个目录外就已存在,却从未在这里导入;唯一出路是顶部导航里那个小小的「+」。每个流失用户最后看到的画面,很可能就是这一屏。
代码中发现 — 有人已经搭好完整的种子演示项目——「Product teaser v3」,含 45 秒片段、四条带时间戳的评论和一条已解决线程——挂在开关 sample_project_v1 后面。该开关对所有人仍是 false,文件也 8 个月没动过。功能做完了,只是从未上线。
代码中发现 — 邀请只通过邮件发出。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 个有态度的模板:代理交付、YouTube 管线、客户签收、内部 QA、本地化审片。
代码中发现 — 今天 Acme 的引导有一个硬外部依赖:你得先有成品视频,产品才有用。但 services/ingest 已支持分块 webm 上传(为移动应用而建),所以基于 MediaRecorder 的「录屏、拿反馈」流程不需要动管线——「只是」采集 UI。去掉试用闲置的最大理由:还没有可审内容。
代码中发现 — 访客分享链接存在,但被刻意阉割:令牌 24 小时后过期,访客不能评论,还有两年前留下的 // TODO(sasha): revisit guest perms after launch。流失的往往是那些 客户 不愿注册的用户。把访客做成一等公民——持久门户、留名评论、无需账号——每次外部审片都变成留存环(也是获客环)。