做产品 PMaker
空格的键盘
上线前 · 逐条过,不靠记忆 功能 对不对 主流程走得通 四态都写了 失败能重来 超长内容跑一遍 体验 顺不顺 新账号走一遍 窄屏看一遍 没有占位文案 危险操作可撤销 数据 看得见 事件已上报 失败也埋了 看板已经建好 安全 不过不发 密钥不在前端 越权访问试一次 权限后端也校验 这一列有一条没过,就不发 清单写一次,之后每次上线都用同一份,一条一条勾

清单的意义不在于你想不到这些,而在于赶工的那天你一定会忘掉其中几条。

Launch walkthrough checklist

Function, experience, data, security — go through them one by one before launch. The checklist exists for the version of you that is rushing, when you will only click the path you know best.

What you will run into
  • 上线一小时内用户就发现了一个你从来没点过的按钮会白屏
  • 发完才想起来空态没做,新用户进去看到的是一片空白
  • 自测一直用同一个老账号,全新用户的第一步早就跑不通了
  • 回滚了两次,两次的原因都在上一次说过「下次记得看」

Four categories, one list

Lock the checklist into four categories, in a fixed order: Function → Experience → Data → Security. If an earlier one fails, the later ones do not matter; the last one is a single-veto gate.

类别逐条检查怎么算过
功能 主流程从头到尾走通;每个异步位置的四态都在;失败之后能重试且不丢已填内容;超长内容和零条数据各跑一遍 不用你解释就能走完
体验 用全新账号完整走一次;窄屏看一遍;提示语说清了发生什么和下一步;危险操作可撤销;没有「测试」「TODO」这类占位文案漏在线上 陌生人不问你也知道该干什么
数据 关键事件都上报了;失败事件带原因;属性里有能关联的 id;看板或查询语句已经准备好 上线第一天就能看到曲线
安全 密钥和令牌不在前端代码里;换个账号试访问别人的数据;权限判断后端也做了一遍;用户输入在展示前做了转义 试着越权,试不成功
The five on the left share one trait: when something goes wrong, the user takes a loss that cannot be undone. The ones on the right share another: ugly, but you can ship the next version.

How to run the walkthrough

顺序也固定:前面塌了,后面不用看 功能 主流程走通 · 四态齐全 不用你解释就能走完 体验 全新账号走一次 · 窄屏 陌生人不问也知道干什么 数据 关键事件都上报了 上线第一天就能看到曲线 安全 一票否决 试着越权, 试不成功 走这一遍的四个动作 换一个全新账号 把窗口拉窄 把网络调慢 走一次错的路 清单要短到你愿意每次都过:二十条以内、十五分钟能走完,才有可能变成习惯。写到五十条,第三次就没人看了。 边走边记,不要边走边改。中途开始改代码,这一遍就废了。 老账号有历史数据,天然绕开了空态和首次引导——而这两处恰好是新用户最先看到的。
The five on the left share one trait: when something goes wrong, the user takes a loss that cannot be undone. The ones on the right share another: ugly, but you can ship the next version.

What blocks the release

Not every item carries the same weight. Sort them into two tiers — it takes only seconds to decide:

阻塞项 · 不过不发
· 会丢数据、会扣错钱
· 能看到别人的数据
· 密钥泄漏在前端
· 主流程走不通
· 出错之后没有任何提示
记进待办 · 可以先发
· 窄屏下某个间距偏挤
· 空态的插画还没画
· 文案还能更顺一点
· 加载态是转圈不是骨架屏
· 埋点少了一个次要事件
The five on the left share one trait: when something goes wrong, the user takes a loss that cannot be undone. The ones on the right share another: ugly, but you can ship the next version.

Let AI self-check first

If the code was written by AI, have it self-check against the list before you walk through it yourself. It is good at structural gaps like "this branch has no error handling," and bad at judging "will a user understand this hint."

PROMPT · Pre-launch self-check
对照下面的清单检查刚才这个功能,逐条给结论,不要改代码。

## 功能
- 主流程能否走通;每个异步位置是否都有空、加载、出错、正常四态
- 失败之后能否重试,已填内容会不会丢
- 零条数据和超长内容各会怎样

## 体验
- 全新用户第一次进来看到什么
- 窄屏下布局是否还成立
- 出错时的提示是否说清了发生什么、下一步做什么

## 数据
- 关键事件是否已上报,失败是否带原因

## 安全
- 是否有密钥硬编码在前端
- 权限判断是否只做在前端
- 用户输入展示前是否转义

输出格式:每条给「过 / 不过 / 不确定」,不过的给出文件和行号。
不确定的单独列出来,我来人工看。

This checklist is a good fit for your project's rules file — have it run itself before each delivery so you do not repeat it every time (see Distilling rules).