← 所有示例
未知项野外指南 · 实现之前

头脑风暴干预方案

在敲定某个修复方案之前,先让 Claude 基于代码里真实存在的东西,把完整的选项空间摊开来——这样你做出的选择,才会参考到那些你原本不知道自己拥有的备选项。

提示词
“Here's my rough problem: Acme users churn after onboarding. Search the codebase and brainstorm 10 places we could intervene, from cheapest to most ambitious. I'll tell you which ones resonate.”

中文大意:我的问题还很粗略:Acme 的用户在完成新手引导后就流失了。请搜索代码库,头脑风暴出 10 个我们可以干预的切入点,从最省力到最有野心排列。我会告诉你哪些让我有共鸣。

Claude 的产出
Acme · 引导后流失

10 个可干预的切入点,从最省力到最有野心

我在 apps/webservices/packages/ 里搜索了新手引导、邀请和首次会话相关的代码路径,发现一个规律:大量留存机制其实早已存在,只是彼此没有接通——下面最省力的几个选项基本是接线活儿,不用从头造。勾选有共鸣的选项,然后在底部复制回复。

今天下午就能上线 押上一个季度的赌注
接线新界面新生命周期新产品面
#1

修复死胡同般的空状态页

S
apps/web/src/onboarding/EmptyState.tsx

代码中的发现 — 零项目状态的仪表盘只渲染了一张插图和一句文案 “No projects yet”——再没有别的了。NewProjectButton 就在两层目录之外,却从未被引入这里;唯一的出路是顶部导航里那个小小的“+”。每个流失用户看到的最后一屏,很可能就是它。

影响100% 的新用户都会撞上这一屏;加一个真正的 CTA,再配一句“把视频拖到任意位置”的提示,就能消除产品里最名副其实的死胡同。
#2

启用那个早已存在的示例项目

S
apps/web/src/projects/sampleProject.ts

代码中的发现 — 有人已经做好了一个完整的预置演示项目——“Product teaser v3”,带一段 45 秒的片段、四条打了时间戳的评论和一个已解决的讨论串——就藏在 sample_project_v1 这个 flag 后面。这个 flag 至今对所有人都是 false,文件已经 8 个月没人碰过。功能是做完了的,只是从未上线。

影响新用户还没上传任何东西,就能先看到一次真实审阅长什么样。最便宜的“aha”时刻——翻转一个 flag,再验证一下 seed 脚本即可。
#3

在应用内展示待接受的邀请

S
services/mailer/templates/invite.mjml · apps/web/src/team/TeamPanel.tsx

代码中的发现 — 邀请只通过邮件发出。TeamPanel 查询了 team_members,却完全无视 invites 表——发出邀请的人看不到队友一直没有接受,也没有重发入口。对一个主打协作的审阅工具来说,孤身一人的用户就是尚未发生的流失。

影响把“2 封邀请待接受 · 重发”亮出来,就能把看不见的邀请衰减变成看得见、可修复的状态。
#4

把里程碑表接到仪表盘清单上

M
services/api/src/models/userMilestones.ts · apps/web/src/dashboard/Dashboard.tsx

代码中的发现 — 后端已经在 user_milestones 表里记录了 first_uploadfirst_commentfirst_invite_acceptedfirst_approval——但没有任何客户端代码读这张表,它纯粹是为分析看板而存在的。做一个“4 步已完成 3 步”清单所需的全部原料,都躺在那里。

影响清单对提升激活率屡试不爽;这一条只需要一个接口和一个组件,因为埋点追踪已经在正常工作了。
#5

精心设计首条评论时刻

M
apps/web/src/review/CommentComposer.tsx · apps/web/src/review/Timeline.tsx

代码中的发现 — 带时间戳的评论是 Acme 的核心循环,但这个交互入口是隐藏的:点击时间轴会把时间戳填进评论框,却没有任何东西教用户这件事。Timeline.tsx 里还留着原作者的一条 TODO: first-run hint?。可以在首次播放时加一个幽灵图钉——“点击任意位置,在此刻发表评论”。

影响如果首次会话的评论率就是激活指标(它理应是),那这里就是撬动它最直接的杠杆。
#6

挽救静默失败的首次上传

M
services/ingest/src/transcode/queue.ts

代码中的发现 — 转码失败时(不支持的编码格式、超大的 ProRes、损坏的 moov atom),任务会进入 failed 状态、上报到 Sentry,然后对用户只字不提——项目卡片上只剩一个永远转不完的加载圈。其实存在一条“用兜底预设重试”的代码路径,但只能从一个内部管理脚本触发。

影响首次上传永远卡住的用户不会去提工单——他们直接走人。自动重试加上一封坦诚说明错误的邮件,能把一条静默流失路径变成一条客服支持路径。
#7

面向团队的“一起看”首次会话

L
apps/web/src/review/PresenceProvider.tsx · services/realtime/

代码中的发现 — 实时在线状态已经完整实现——共享播放头、实时光标、“Maya 正在观看”的徽章——但只有两个人碰巧打开同一条审阅时它才会亮起,没有任何机制去制造这种巧合。可以在队友接受邀请时加一个“一起审阅”的排期提醒,用深链把两个人拉进同一场会话。

影响体验过一次实时会话的团队,留存率大概率和单人用户不在一个水平;这个改动把多人协作时刻从靠运气变成有意为之。
#8

上线五套审阅工作流模板

L
packages/workflows/src/definitions/

代码中的发现 — 审批工作流(粗剪 → 客户审阅 → 最终签署)完全可配置——但初始状态一片空白。definitions 目录里只有测试用的 __fixtures__。从 WorkflowEditor.tsx 里的一条注释来看,资深用户是靠复制一份共享的 Notion 文档来搭建自己的工作流。可以上线 5 套有主见的模板:代理商交付、YouTube 流水线、客户签署、内部 QA、本地化审校。

影响模板把“配置这个抽象概念”变成“选一个你的工种”——这是工作流工具里治疗空白画布式流失的经典药方。
#9

内置的快速屏幕与摄像头录制

XL
新产品面 · services/ingest 已支持分块 webm

代码中的发现 — 今天 Acme 的新手引导有一个硬性的外部依赖:你得先有一条做好的视频,产品才派得上用场。但 services/ingest 已经支持分块 webm 上传(当初为移动端 App 而建),所以一个基于 MediaRecorder 的“录下你的屏幕,收获反馈”流程完全不需要动管线——“只”差采集界面。它移除了试用走向沉寂的最大原因:还没有可审阅的东西。

影响改变的是“谁能被激活”——没有剪辑师的设计师和产品经理也能自己创建出第一个可审阅的产物。工程量大,产品面也大。
#10

把客户审阅门户做成一等公民

XL
services/auth/src/guestTokens.ts · apps/web/src/share/

代码中的发现 — 访客分享链接是有的,但被刻意削弱:token 24 小时就过期,访客不能评论,代码里还躺着一条两年前的 // TODO(sasha): revisit guest perms after launch。流失的用户,往往正是那些客户死活不肯注册的人。把访客升级成一等公民——常驻门户、署名评论、无需账号——每一次对外审阅就都变成了一个留存循环(顺带还是一个获客循环)。

影响直击结构性根因:Acme 的价值取决于一群拒绝注册账号的人。这是一个季度级的赌注,还牵扯鉴权、计费和反滥用。
0 条有共鸣 勾选有共鸣的干预项——你的回复会在这里自动生成。