MuseumCollect 的五个产品决策
MuseumCollect 是我的 AI PM 作品集项目:用 8 个有边界的 AI agent 跑了 5 个 sprint,做一个中国青铜器图鉴 + 拍照识别 + 个人收藏的产品原型。它不是 finished product——MVP 没上线、AI 服务没真接、用户没测过。但过程里有五个决策,我现在愿意在任何面试桌上守住。
一、把 10 个维度砍成 7+1
背景:v1 阶段我执着于”覆盖完整”,做了 10 维 × 10 形态的设计草图。v1 audit 中 4 位 Auditor 独立指出:用户在”出土地”和”馆藏地”两个 tab 之间来回切换会混乱。
选项:保持 10 维的完整性,或者削减。
我选了削减:出土地 + 馆藏地合并为”地理 dual view”,工艺从独立维度降级为形制的属性小章。砍掉的不是”不重要”的维度——它们都有内容——砍的是承载能力不够独立的维度。
代价:放弃”全”的安全感。结果:7+1 个维度,每一个都有 spec、都有实现页面。这件事给我留下一句能带走的话:spec for coherence, not for completeness。
二、3 个 Builder 收敛成 1 个
背景:v1 我用 3 个不同用户画像(考据派/沉浸派/探索派)驱动 3 个 Builder agent 并行出 3 版 demo,audit 综合分 7.8 / 6.2 / 6.8。
选项:继续平行迭代三版,还是收口。
我选了收口:3 Builder collapse 成 1 个 Builder-Converger。这不是”做不动了所以合并”,是”3 版已经把可能性空间映射够了”。合并也不是取平均,是带判断的取舍:A 的学者排版纪律 + B 的何尊长卷情感 + C 的 sticky nav 工程化。
代价:两版完整 demo 被废弃。结果:v3-converged 的 12 个页面 + 跨维度 event bus。先 diverge 再 converge,比”一次到位”更接近真实的产品决策。
三、拒绝在沙箱里造一个漂亮的 P@5
背景:CLIP 识别要跑真数字,但沙箱防火墙 block 了 HuggingFace 和 Wikimedia,模型权重和文物图都拿不到。
选项:mock 一个”看着合理”的 P@5 = 0.55;或者 ship 一套 production-shaped 的代码 + 空着数字的 eval 报告;或者放弃这一块。
我选了第二个:交付 7 个文件的可运行 PoC + 完整 runbook,数字留空,写清”为什么这次没跑”。后来被用户反推”想办法解决”,又做了 5 步攻防,最终 pivot 到本地 SVG + pHash,真跑出一个 baseline:P@5 = 0.667。
代价:第二轮冷审计把这个数字也批了——“在你自己画的 12 个 silhouette 上跑 pHash,n=6,证明了什么?“我接受降级:我拒绝过 n=25 的假 CLIP 数字,就不能给 n=6 的真 pHash 数字套大叙事。结果:正确的诚实不仅是”不造假数字”,还包括”不给真的小数字套大叙事”。
四、给审计队伍加一个”必须动手”的角色
背景:5 个 persona 的 Audit Squad 全部判 pass 之后,我自己点开 demo,发现 28 个文物详情页全部静默 fallback 到后母戊鼎——没有报错,没有视觉差异,5 个审计员没有一个点过 5 个以上的 ID。
诊断:多 persona 解决的是视角覆盖,不解决 verification depth。100 个 read-only 的审计员也抓不到这种 bug。
我做了两件事:给 auditor 加 8 项强制验证清单(报告里列不出 ≥5 个实测 ID 即视为失职);新增第 7 个 persona——Runtime Auditor,唯一强制使用工具(Playwright + axe-core)的角色,它说 broken,其他人不能用”截图看着 OK”否决。
结果:我手动 vendor 了 d3 解锁 2 个被跳过的测试后,工具链又自动发现 3 个新 bug(崩页的力导图引用、CSS 定义了但 JS 从未触发的 active 态、缺失的 a11y tabindex)。修完 28/28 绿。审计第一次审计了审计自己。
五、把自己的双标钉进 assumptions-register
背景:第二轮冷审计给了我最重的一击:“你围绕拒绝伪造 AI 指标建立了道德品牌,然后在商业文档里写了 9 个无引用的 load-bearing 数字——CAC ¥12、LTV ¥60、5:1……这种诚实是选择性表演。“它还预先封死了退路:每个文档都用”诚实承认”收尾,是把命名 gap 当成解决 gap。
选项:再写一段忏悔(正好落进 shield 模式),或者交一份可被 diff 验证的修改清单。
我选了后者:建 assumptions-register.md,24 个关键数字逐个打标——6 个实测 [M]、6 个有外部出处 [B]、12 个纯假设 [A];删掉编造的”小红书 22% / B 站 28% / Strava 38%“激活率;修掉 6 处跨文档矛盾——其中最难堪的一处是:投资文档里描述的维度体系,竟然是我引以为傲砍掉的旧版 5 维 schema。
代价:白纸黑字承认这个产品的商业论证 2/3 建立在假设上。结果:这一轮教会我的,比前四个决策加起来都多——纪律的真正考验不在你擅长的地方,在你不擅长、且没人会立刻 check 的地方。AI 数字会被工程师查,所以我严格;商业数字面试官未必当场查,所以我松懈。这个”按被抓概率调节诚实度”的潜意识,比任何一个假数字都更值得警惕。
收尾
这五个决策背后是同一个论点:AI PM 不是用 AI 写代码,是把 AI 的约束——有边界的角色、冷上下文、文件即状态——当作产品设计原则。审计能抓住我的双标,恰恰是因为审计员不知道我的理由;而一个能持续给自己制造”下一次被证伪的机会”的流程,比任何一次完美交付都更值钱。