返回列表
🧠 阿头学 · 💬 讨论题

Agent 原生产品管理指南

这篇文章对“AI 正在重构 PM 工作流”的判断基本成立,但它把一套适合高工具成熟度小团队的个人实践,包装成了普适方法论,结论明显说得过头。
打开原文 ↗

2026-05-02 原文链接 ↗
阅读简报
双语对照
完整翻译
原文
讨论归档

核心观点

  • PM 的重心正在前移 作者最有价值的判断是,AI 压低执行和文书成本后,产品管理的核心确实更偏向战略定义、问题澄清、异常判断和用户反馈,而不是手写 ticket 或手工拉数。
  • 战略文档 + 产品脉搏构成新中枢 文中提出用 `strategy.md` 管“为什么做”,用 pulse 报告管“现实发生了什么”,这个闭环比堆更多 PRD、dashboard 更有操作性,因为它抓住了战略和反馈这两个高杠杆环节。
  • “对话即工作”只对部分场景成立 把对话当作主要操作界面,对创始人型 PM、0-1 团队、上下文高度集中的小组织很有效;但在多人协作、跨部门交接、合规审计场景里,结构化 ticket 和显式规格仍然不可替代。
  • 产品脉搏的价值在于“带判断的记忆” 相比静态 dashboard,pulse 的强点是异常筛选、二次追问和历史沉淀,这个方向是对的;但作者明显低估了埋点错误、口径漂移、模型误判因果造成的“自动洞察幻觉”。
  • 这不是纯方法论,而是插件分发内容 文章一边讲趋势,一边把解决方案收束到 Every 的 compound-engineering 插件和 Claude Code/MCP 生态,这种“思想领导力 + 产品推广”绑定很明显,读者不能把宣传话术当成行业共识。

跟我们的关联

1. 对 ATou 意味着什么:ATou 如果在做 agent 产品或 AI 工作流产品,这篇文章说明真正的机会不只是“替人写文档”,而是占据战略、记忆、反馈闭环的核心入口。下一步应该优先设计“长期上下文系统”,而不是只卷单次生成质量。 2. 对 Neta 意味着什么:Neta 可以把这里的核心抽象成“战略—执行—脉搏—再战略”的认知框架,用来分析任何 AI-native 团队的组织升级。下一步可以把它整理成判断模板:哪些工作适合 agent 接管,哪些必须保留人类显式对齐。 3. 对 Uota 意味着什么:Uota 若关注用户、产品与镜像关系,这篇文章提示“产品记忆”会越来越像团队的第二大脑,但这套大脑会继承埋点偏差和组织偏见。下一步可以追问:agent 在替团队放大哪些判断,掩盖哪些盲点。 4. 对通用团队意味着什么:不是每个团队都该学作者“不写 ticket”,但多数团队都该学他把战略和复盘做成持续资产。下一步最实用的做法不是装插件,而是先补齐埋点、反馈渠道和最小战略文档。

讨论引子

1. “对话即工作”到底是效率革命,还是把原本可审计的协作过程重新黑箱化了? 2. PM 不再手写 ticket 之后,组织的责任边界会变清晰,还是会变模糊? 3. AI 帮我们更快地产生战略和复盘时,团队如何避免“看起来很有道理”的错误判断不断累积?

产品管理这门学科

产品管理诞生于 20 世纪 30 年代的消费品巨头宝洁公司。随着公司扩展产品线,管理层意识到,如果把控制权交给直接负责产品的经理,产品会更成功。每个产品都需要有人负责,他们把这个人称为 Brand Man。产品管理存在的根本理由,也就是所有权与责任,一直延续至今。

不过,在此后的这些年里,产品经理的岗位定义被反复改写。到了 20 世纪 40 年代和 50 年代,惠普的产品经理成了客户与工程师之间的中间人。到了世纪末,互联网创业公司的 PM 又把用户体验设计、敏捷开发和 A/B 测试加入了自己的工具箱。

现在,PM 几乎什么都得擅长,既要懂设计,也要会斡旋,既要懂销售,也要看得懂统计。成千上万家创业公司融资数十亿美元,来帮助 PM 处理这些跨学科工作。但这又带来了一个新问题。如今,普通公司平均要用到 100 多个软件订阅,这种过载对 PM 的影响比其他职能更大,因为他们要和更多角色、更多学科打交道。难怪我认识的很多产品经理都感到筋疲力尽。

而现在,产品管理中大量这种跨学科工作,已经可以由 LLM 在几分钟内完成,有时甚至只要几秒。过去要花三个小时做的分析排查,现在和 Claude 来回聊几句就行。过去每两周都让人头疼一次的产品复盘,现在只需要一条满是错字的聊天消息就能生成。

至少,这是我最近的真实体验。现在已经不再为 SQL 查询里的分号头疼,甚至连 ticket 都不写了。所有产品管理工作,都是在和代理对话中完成的,对我来说,这个代理是 Claude Code。对话本身,就是工作。

下面这份指南,是我当前如何借助代理做产品管理的一个阶段性快照。新的 AI 工具每天都在发布,我的工作流至少每周都会变一次。我尽量把那些未来几个月内大概率不会变的核心支柱写在这里。现在这个时代,能看清几个月以后的事,已经不容易了。

PM 的主循环

这是一个大家都熟悉的软件开发生命周期循环。产品管理主要发生在计划和复盘两个阶段。关于交付阶段,可以看看我同事 Kieran Klaassen 写的复合式工程指南

所有上线的东西,本质上都是实验。你永远无法完全确定用户会怎样回应一个新东西。发得越多,学到的就越多,而这些经验会随着时间不断自我强化,让你更好地服务客户。当积累到足够多的经验后,就该回头审视战略了。结合现在已经知道的事实,这套方法还是最优解吗。如果答案是,那就继续。如果不是,那就调整,然后重新回到交付。

但一切都始于……

战略文档

正如 Kieran 所说,软件开发已经从 20% 规划加 80% 执行,变成了 80% 规划加 20% 执行。而一切软件规划的基础,就是战略。

新的复合式工程命令 /ce-strategy,它的结构来自管理学教授 Richard Rumelt 的书 Good Strategy Bad Strategy。书名已经说明了主题。他研究了很多来自企业和政府的真实案例,并把它们归类为好战略或坏战略。

第一次在代理环境里运行 /ce-strategy 时,比如 Claude Code、Codex 等,你会被问一系列问题,最后得到一个 strategy.md 文件。strategy.md 的组成部分包括:

这里有两个可选部分。Not working on 是一份明确的清单,列出那些看起来很诱人,但并非近期重点的事情。有时提前说清楚这一点,能减少很多干扰。Marketing/positioning 则是一份列表,写明产品团队为了支持增长会推进哪些工作。

战略文档里不包含产品需求。里面不会详细描述具体功能、问题或状态。它写的是产品的大图景。规格说明会在后面再出现。

如何填写

在毫无准备的情况下直接写战略文档,很难。我觉得最好的办法,是让代理来采访你。ce-strategy 这个 skill 就是这么做的。它会按顺序走过各个部分,并内置关于什么样的回答算好、什么样的回答应该被追问的指导。输出文件是 docs/strategy.md。你随时都可以重新运行这个命令,只重看某个部分,不用整篇重写。

这个采访过程是刻意设计成对话式的。如果对“这个产品解决的核心问题是什么”这个问题,第一次回答得很模糊,代理就会继续往下追问。比如,具体是谁遇到了这个问题。他们现在是怎么做的。为什么那样行不通。这里的引导,一部分来自个人经验,一部分来自 Rumelt 那本书。

让战略持续复利

如果你在用复合式工程,并且以 AI 时代的速度持续交付,那每隔几个月就应该重新跑一次战略访谈。下一次做访谈时,你的代理已经拥有几周甚至几个月的上下文,包括规划过哪些功能、上线过哪些东西、复盘过哪些数据。代理提出的问题会更尖锐,对话也会更有压力。

交付

以前花很多时间写 ticket。我那时很看重详细的验收标准,也就是 given、when、then,希望这样能把一个功能该怎么运作说得没有工程上的歧义。

现在已经不写 ticket 了。只要有了战略文档,里面也包含了各条工作轨道,我会建议你用复合式工程里的 ideate、brainstorm 和 plan 这些 skill 来决定该做什么。

你还是需要一个 issue tracker,而且最好是支持 MCP,也就是 model context protocol,或者别的代理集成方式。我用的是 GitHub Issues,过去用 Linear 的体验也很好。你的代理应该替你写 ticket,替你在看板上移动它们,并保持状态最新。你不再需要自己读写 ticket,你只要和代理讨论它们就够了。

在状态管理上,我用 now、next、later 这几列,大致对应这周、下周,以及未来某个时间点。不会做 sprint,只用 Kanban。再加上 In Progress 和 Done。就这些,已经够了。

产品脉搏

产品脉搏,是战略与现实相遇的地方。pulse 命令是我观察产品实际使用情况、功能是否成功、系统是否健康的主窗口。脉搏报告是按需生成的,而所有脉搏报告的集合,就是产品的记忆。

创建产品脉搏

这默认你的产品已经埋点,并且日志存储在某个地方。如果还没有,我建议你先别往下读,先把这个搭起来再说。Posthog 提供了一个自助配置向导

和战略命令一样,第一次运行 /ce:product-pulse 时,它也会先采访你。

一个脉搏报告由什么组成

一份好的脉搏报告应该控制在一页以内,大约 30 到 40 行终端输出,并覆盖四件事:

让它跑起来

数据源

脉搏报告会从产品技术栈中的最多四类工具里拉取数据:

即使一个团队只拥有其中一类数据源,也依然可以跑出一份有用的脉搏报告。如果缺少某个必需数据源,报告就会跳过对应部分。对于数据源这件事,质量比数量更重要。

接好 MCP 连接

想让代理每次运行时都能快速查询这些工具,最快的办法就是通过 MCP 把它们接起来。如果你用的是 Claude Code,/mcp 会列出当前已经接好的内容。代理的 MCP 注册表是找连接器的一个方便方式,或者也可以直接用 Google 搜。

如果某个工具没有 MCP,脉搏报告照样能工作。代理只需要一条有权限的访问路径,比如 CLI 或 API,不过代理看起来确实更喜欢 MCP。

反馈渠道

Pulse 覆盖的是反馈中偏定量的一半,也就是指标、错误、性能。定性的那一半,还是得直接来自用户。我喜欢和用户发邮件,所以把 Spiral 的邮箱地址放在产品里很显眼的位置,发到那里的邮件会进入我的工作邮箱。我也会在每一封发给用户的营销邮件里放一个 15 分钟通话预约链接。和用户直接交谈,没有替代品。用户说出来的话,会不断让人意外。

像 Canny 和 Featurebase 这样的平台,也是收集和整理功能请求与 bug 报告的好方式。它们有 MCP,也可以成为 Pulse 的另一个优质输入源。

记忆:保存下来的报告

每次运行 pulse,都会把一份 Markdown 文件保存到 ~/pulse-reports/。单份脉搏报告回答的是,今天发生了什么。一整个文件夹的脉搏报告回答的是,这个月发生了什么。这个趋势是什么时候开始的。那个功能到底有没有带来变化。时间久了,这个文件夹就会变成团队关于产品的工作记忆。

按节奏运行

Claude Code 有一个 Routines 功能,可以安排定时任务,所以你可以把重复性的脉搏运行自动化。我让它每天早上 8 点跑一次,这样开始工作时,手上拿到的就是产品最新的状态视角。除此之外,白天我通常还会手动运行几次 /ce:product-pulse

像创始人一样阅读它

代理会被要求先组装报告,再以创始人的视角来阅读它,标注异常,并在需要时继续发起后续查询。比如说,如果某个 endpoint 的错误率变高了,它就会继续深入查这些错误。是不是只来自一个用户。是不是刚好和某个第三方服务故障重合。第二遍处理时,除非一切都完全正常,否则代理会在末尾补上一节,提前回答那些很自然会冒出来的追问。这样一来,代理就不只是一个拉数据的工具,而是一个会评估、会呈现的分析师。

默认情况下,没有任何硬编码阈值规定高于或低于什么数值时,代理就必须标红某个指标。代理会基于常识,以及和过往脉搏数据的对比,来判断这份报告。比如,如果平均响应时间突然涨到了原来的三倍,它就会标出来,而且多半会进一步调查。如果你确实有明确的性能目标,比如系统平均响应时间,也可以让代理在相关部分引用这些目标。

插件

这篇指南里提到的 ce-strategyce-product-pulse skill,包含在 Every 开源的 compound-engineering 插件中,可以通过下面的命令安装到 Claude Code:

/plugin marketplace add EveryInc/compound-engineering-plugin

/plugin install compound-engineering

欢迎贡献。

更进一步

PM skill 如何融入复合式工程

docs/strategy.md 存在时,其他复合式工程 skill,也就是 ce-ideatece-brainstormce-plan,都会把它作为自己工作的基础。战略会流入功能构思、规格设计,最终进入已经上线的代码里。下一次 pulse 会再去读取这些结果。为了做出更好的功能设计和优先级判断,这些规划类 skill 也应该结合过去的脉搏报告一起使用。

这里没有包含的内容

产品管理现在只剩下有意思的部分了

LLM 让我们的工具终于追上了产品经理这种多面职责的复杂性。对我来说,产品管理已经被压缩成那些真正有意思的部分,想功能,推敲设计,看有意思的数据,和用户聊天。大家都能感受到拥抱 AI 工具的经济压力,但我觉得,更好的理由是,它能让工作变得更有意思。

The discipline of product management

产品管理这门学科

“Product management” was born in the 1930s within the consumer goods giant Procter & Gamble. As the company expanded its product offering, leaders realized their products would be more successful if they ceded control to direct managers of the products. Someone needed to be in charge of each product, and they called that person the “Brand Man.” The raison d’etre of product management—ownership and accountability—survives to this day.

产品管理诞生于 20 世纪 30 年代的消费品巨头宝洁公司。随着公司扩展产品线,管理层意识到,如果把控制权交给直接负责产品的经理,产品会更成功。每个产品都需要有人负责,他们把这个人称为 Brand Man。产品管理存在的根本理由,也就是所有权与责任,一直延续至今。

In the intervening years, however, the product management job description has been rewritten several times over. In the 1940s and 1950s, Hewlett-Packard’s product managers became the middlemen between customers and engineers. Toward the end of the century, internet startup PMs added user experience design, agile development, and A/B testing to their toolkits.

不过,在此后的这些年里,产品经理的岗位定义被反复改写。到了 20 世纪 40 年代和 50 年代,惠普的产品经理成了客户与工程师之间的中间人。到了世纪末,互联网创业公司的 PM 又把用户体验设计、敏捷开发和 A/B 测试加入了自己的工具箱。

Now, PMs need to be good at everything: design and diplomacy, sales and statistics. Thousands of startups have raised billions of dollars to help PMs across these disciplines. But that introduced a new problem: The average company today has over 100 software subscriptions, an overload that impacts PMs more than other functions given how many other roles and disciplines they interact with. No wonder many people I know in product management feel burnt out.

现在,PM 几乎什么都得擅长,既要懂设计,也要会斡旋,既要懂销售,也要看得懂统计。成千上万家创业公司融资数十亿美元,来帮助 PM 处理这些跨学科工作。但这又带来了一个新问题。如今,普通公司平均要用到 100 多个软件订阅,这种过载对 PM 的影响比其他职能更大,因为他们要和更多角色、更多学科打交道。难怪我认识的很多产品经理都感到筋疲力尽。

Now, much of the interdisciplinary work that goes into product management can be done by an LLM in minutes, sometimes seconds. What used to be a three-hour-long analytics investigation is now a simple back-and-forth with Claude. A product review that used to be a fortnightly chore emerges from a single typo-ridden chat message.

而现在,产品管理中大量这种跨学科工作,已经可以由 LLM 在几分钟内完成,有时甚至只要几秒。过去要花三个小时做的分析排查,现在和 Claude 来回聊几句就行。过去每两周都让人头疼一次的产品复盘,现在只需要一条满是错字的聊天消息就能生成。

This has been my recent experience, at least. I no longer struggle with semicolons in SQL queries or even write tickets. All of my product management work happens in conversation with, in my case, Claude Code. The conversation is the work.

至少,这是我最近的真实体验。现在已经不再为 SQL 查询里的分号头疼,甚至连 ticket 都不写了。所有产品管理工作,都是在和代理对话中完成的,对我来说,这个代理是 Claude Code。对话本身,就是工作。

The following guide is a point-in-time snapshot of how I’m doing product management with agents. New AI tools launch every day, and my workflow changes at least weekly. I’ve tried to capture here the main pillars of my workflow that likely won’t change for months. It’s hard to see ahead farther than that these days.

下面这份指南,是我当前如何借助代理做产品管理的一个阶段性快照。新的 AI 工具每天都在发布,我的工作流至少每周都会变一次。我尽量把那些未来几个月内大概率不会变的核心支柱写在这里。现在这个时代,能看清几个月以后的事,已经不容易了。

The main PM loop

PM 的主循环

This is a familiar software development lifecycle (SDLC) loop. Product management happens mainly at the “plan” and “review” stages. For more on the “ship” stage, check out my colleague Kieran Klaassen’s guide to compound engineering.

这是一个大家都熟悉的软件开发生命周期循环。产品管理主要发生在计划和复盘两个阶段。关于交付阶段,可以看看我同事 Kieran Klaassen 写的复合式工程指南

Everything that ships is an experiment. You never know for sure how users are going to react to something new. The more you ship, the more you learn—and those learnings reinforce themselves over time, allowing you to serve customers better. Once enough learnings accumulate, it’s time to revisit the strategy. Is this still the winning approach, in light of what we now know? The answer may be yes, but if it’s no, change it and get back to shipping.

所有上线的东西,本质上都是实验。你永远无法完全确定用户会怎样回应一个新东西。发得越多,学到的就越多,而这些经验会随着时间不断自我强化,让你更好地服务客户。当积累到足够多的经验后,就该回头审视战略了。结合现在已经知道的事实,这套方法还是最优解吗。如果答案是,那就继续。如果不是,那就调整,然后重新回到交付。

But everything starts with…

但一切都始于……

The strategy document

战略文档

As Kieran says, software development has shifted from 20 percent planning and 80 percent execution to 80 percent planning and 20 percent execution. The foundation of all software planning is the strategy.

正如 Kieran 所说,软件开发已经从 20% 规划加 80% 执行,变成了 80% 规划加 20% 执行。而一切软件规划的基础,就是战略。

The new compound engineering command /ce-strategy takes its structure from the book Good Strategy Bad Strategy by management professor Richard Rumelt. As the title suggests, he surveys lots of real examples, from companies and governments, and classifies them as good strategies or bad strategies.

新的复合式工程命令 /ce-strategy,它的结构来自管理学教授 Richard Rumelt 的书 Good Strategy Bad Strategy。书名已经说明了主题。他研究了很多来自企业和政府的真实案例,并把它们归类为好战略或坏战略。

The first time you run /ce-strategy in an agent environment (Claude Code, Codex, etc.), you’ll be asked a series of questions and ultimately get a strategy.md file. The components of strategy.md are:

第一次在代理环境里运行 /ce-strategy 时,比如 Claude Code、Codex 等,你会被问一系列问题,最后得到一个 strategy.md 文件。strategy.md 的组成部分包括:

There are two optional sections. “Not working on” is an explicit list of things that might be tempting but are not near-term priorities. It’s sometimes helpful to state this up front to head off distractions. “Marketing/positioning” is a list of things the product team will work on to support growth.

这里有两个可选部分。Not working on 是一份明确的清单,列出那些看起来很诱人,但并非近期重点的事情。有时提前说清楚这一点,能减少很多干扰。Marketing/positioning 则是一份列表,写明产品团队为了支持增长会推进哪些工作。

The strategy doc doesn’t contain product requirements. There are no specific features, issues, or statuses described in detail. It’s the big picture of the product. The specs come later.

战略文档里不包含产品需求。里面不会详细描述具体功能、问题或状态。它写的是产品的大图景。规格说明会在后面再出现。

Filling it in

如何填写

Writing a strategy document cold is hard. The best way to do it, I’ve found, is to have an agent interview you. The ce-strategy skill does this. It runs through the sections in order and has built-in guidance about what makes a good answer (and what kinds of answers to push back on). The output is docs/strategy.md. You can rerun the command at any time to revisit a specific section without rewriting the whole thing.

在毫无准备的情况下直接写战略文档,很难。我觉得最好的办法,是让代理来采访你。ce-strategy 这个 skill 就是这么做的。它会按顺序走过各个部分,并内置关于什么样的回答算好、什么样的回答应该被追问的指导。输出文件是 docs/strategy.md。你随时都可以重新运行这个命令,只重看某个部分,不用整篇重写。

The interview is deliberately conversational. If the first answer to, “What’s the core problem this product solves” is vague, the agent drills down: “Whose situation specifically? What do they try today, and why doesn’t it work?” The guidance here is taken from personal experience and from the Rumelt book.

这个采访过程是刻意设计成对话式的。如果对“这个产品解决的核心问题是什么”这个问题,第一次回答得很模糊,代理就会继续往下追问。比如,具体是谁遇到了这个问题。他们现在是怎么做的。为什么那样行不通。这里的引导,一部分来自个人经验,一部分来自 Rumelt 那本书。

Compounding the strategy

让战略持续复利

Assuming you’re using compound engineering and shipping at post-AI speeds, you should rerun the strategy interview every few months. The next time you do the interview, your agent will have weeks or months of context from planning features, shipping them, and reviewing the data. The agent’s questions will be sharper, the conversation tougher.

如果你在用复合式工程,并且以 AI 时代的速度持续交付,那每隔几个月就应该重新跑一次战略访谈。下一次做访谈时,你的代理已经拥有几周甚至几个月的上下文,包括规划过哪些功能、上线过哪些东西、复盘过哪些数据。代理提出的问题会更尖锐,对话也会更有压力。

Shipping

交付

I used to spend a lot of time writing tickets. I prided myself on detailed acceptance criteria (given, when, then) that left no room for engineering uncertainty for how a feature should work.

以前花很多时间写 ticket。我那时很看重详细的验收标准,也就是 given、when、then,希望这样能把一个功能该怎么运作说得没有工程上的歧义。

Now I no longer write tickets. Once you have a strategy document including the work tracks, I’d recommend using the compound engineering ideate, brainstorm, and plan skills to come up with what to build.

现在已经不写 ticket 了。只要有了战略文档,里面也包含了各条工作轨道,我会建议你用复合式工程里的 ideate、brainstorm 和 plan 这些 skill 来决定该做什么。

You need an issue tracker, and it should be one that has an MCP (model context protocol) or other agent integration. I use GitHub Issues, but I’ve had great experiences with Linear in the past. Your agent should write tickets for you, move them around the board, and keep the statuses up to date. You no longer read or write tickets; you just talk about them with your agent.

你还是需要一个 issue tracker,而且最好是支持 MCP,也就是 model context protocol,或者别的代理集成方式。我用的是 GitHub Issues,过去用 Linear 的体验也很好。你的代理应该替你写 ticket,替你在看板上移动它们,并保持状态最新。你不再需要自己读写 ticket,你只要和代理讨论它们就够了。

For statuses, I use lists of now/next/later, which roughly correspond to this week, next week, and… some point in the future. I don’t do sprints, just Kanban. There’s “In Progress,” and there’s “Done.” That is all you need.

在状态管理上,我用 now、next、later 这几列,大致对应这周、下周,以及未来某个时间点。不会做 sprint,只用 Kanban。再加上 In Progress 和 Done。就这些,已经够了。

Product pulse

产品脉搏

The product pulse is where strategy meets reality. The pulse command is my main window into how the product is actually being used, whether features are successful, and how healthy the system is. A pulse is generated on demand, and the collection of pulses is the product’s memory.

产品脉搏,是战略与现实相遇的地方。pulse 命令是我观察产品实际使用情况、功能是否成功、系统是否健康的主窗口。脉搏报告是按需生成的,而所有脉搏报告的集合,就是产品的记忆。

Creating a product pulse

创建产品脉搏

This assumes your product is instrumented and logs are being stored somewhere. If that’s not the case, I would recommend you stop reading this and go set that up. (Posthog has a self-setup wizard.)

这默认你的产品已经埋点,并且日志存储在某个地方。如果还没有,我建议你先别往下读,先把这个搭起来再说。Posthog 提供了一个自助配置向导

Like the strategy command, the /ce:product-pulse command interviews you the first time you run it.

和战略命令一样,第一次运行 /ce:product-pulse 时,它也会先采访你。

What makes up a pulse

一个脉搏报告由什么组成

A good pulse report fits on a single page (about 30 to 40 lines of terminal output) and covers four things:

一份好的脉搏报告应该控制在一页以内,大约 30 到 40 行终端输出,并覆盖四件事:

Making it run

让它跑起来

Data sources

数据源

A pulse pulls from up to four categories of tools in the product’s stack:

脉搏报告会从产品技术栈中的最多四类工具里拉取数据:

A team that has only one of these can still run a useful pulse. The report skips sections when the requisite data source isn’t available. With the number of data sources, quality beats quantity.

即使一个团队只拥有其中一类数据源,也依然可以跑出一份有用的脉搏报告。如果缺少某个必需数据源,报告就会跳过对应部分。对于数据源这件事,质量比数量更重要。

Wiring up MCP connections

接好 MCP 连接

The fastest way to let an agent query these tools on every run is to connect them via MCP. If you’re running Claude Code, /mcp lists what’s already connected. Your agent’s MCP registry is an easy way to find connectors, or you can use Google to search for them.

想让代理每次运行时都能快速查询这些工具,最快的办法就是通过 MCP 把它们接起来。如果你用的是 Claude Code,/mcp 会列出当前已经接好的内容。代理的 MCP 注册表是找连接器的一个方便方式,或者也可以直接用 Google 搜。

If a tool has no MCP available, the pulse can still work. The agent just needs a credentialed path (like a CLI or API), but agents seem to like MCPs.

如果某个工具没有 MCP,脉搏报告照样能工作。代理只需要一条有权限的访问路径,比如 CLI 或 API,不过代理看起来确实更喜欢 MCP。

Feedback channels

反馈渠道

Pulse covers the quantitative half of feedback—metrics, errors, performance. The qualitative side has to come from users directly. I like emailing with users, so I made the Spiral email address conspicuous in the product, and emails to it land in my work inbox. I also include a 15-minute call booking link in every marketing email that goes out to users. There is no substitute for talking to users. You will never cease to be surprised by what they say.

Pulse 覆盖的是反馈中偏定量的一半,也就是指标、错误、性能。定性的那一半,还是得直接来自用户。我喜欢和用户发邮件,所以把 Spiral 的邮箱地址放在产品里很显眼的位置,发到那里的邮件会进入我的工作邮箱。我也会在每一封发给用户的营销邮件里放一个 15 分钟通话预约链接。和用户直接交谈,没有替代品。用户说出来的话,会不断让人意外。

Platforms like Canny and Featurebase are also good ways to collect and organize feature requests and bug reports. They have MCPs, which can be another good input into Pulse.

像 Canny 和 Featurebase 这样的平台,也是收集和整理功能请求与 bug 报告的好方式。它们有 MCP,也可以成为 Pulse 的另一个优质输入源。

Memory: Saved reports

记忆:保存下来的报告

Every pulse run saves a copy to ~/pulse-reports/ as a Markdown file. A single pulse answers, “What happened today?” A folder of pulses answers, “What happened this month?” “When did this trend start?” “Did that feature change anything?” Over time, the folder becomes the team’s working memory of the product.

每次运行 pulse,都会把一份 Markdown 文件保存到 ~/pulse-reports/。单份脉搏报告回答的是,今天发生了什么。一整个文件夹的脉搏报告回答的是,这个月发生了什么。这个趋势是什么时候开始的。那个功能到底有没有带来变化。时间久了,这个文件夹就会变成团队关于产品的工作记忆。

Running on a cadence

按节奏运行

Claude Code has a Routines feature, which allows you to schedule frequent tasks, so you can automate recurring pulse runs. I have it run every day at 8 a.m., so I start work with the freshest perspective on how the product is doing. I typically run /ce:product-pulse manually a few times over the rest of the day.

Claude Code 有一个 Routines 功能,可以安排定时任务,所以你可以把重复性的脉搏运行自动化。我让它每天早上 8 点跑一次,这样开始工作时,手上拿到的就是产品最新的状态视角。除此之外,白天我通常还会手动运行几次 /ce:product-pulse

Reading it like a founder

像创始人一样阅读它

The agent is instructed to assemble the report, read it from the perspective of a founder, annotate anomalies, and run follow-up queries where necessary. For example, if a certain endpoint yielded higher errors, it will dig into those errors: Were they from one user? Did they coincide with a reported third-party outage? On the agent’s second pass, unless everything is completely normal, it will add a section at the end that preemptively answers natural follow-up questions. In this way, the agent works as an analyst, not just by pulling the data but by evaluating and presenting it.

代理会被要求先组装报告,再以创始人的视角来阅读它,标注异常,并在需要时继续发起后续查询。比如说,如果某个 endpoint 的错误率变高了,它就会继续深入查这些错误。是不是只来自一个用户。是不是刚好和某个第三方服务故障重合。第二遍处理时,除非一切都完全正常,否则代理会在末尾补上一节,提前回答那些很自然会冒出来的追问。这样一来,代理就不只是一个拉数据的工具,而是一个会评估、会呈现的分析师。

By default, there are no hard-coded thresholds above or below which the agent will flag metrics. The agent evaluates the report using common sense and by comparison to previous pulse numbers. For example, if response times are suddenly three times higher on average, it will flag that and likely investigate further. If you do have specific performance goals—say, average system response time—you can ask your agent to reference those in the relevant section.

默认情况下,没有任何硬编码阈值规定高于或低于什么数值时,代理就必须标红某个指标。代理会基于常识,以及和过往脉搏数据的对比,来判断这份报告。比如,如果平均响应时间突然涨到了原来的三倍,它就会标出来,而且多半会进一步调查。如果你确实有明确的性能目标,比如系统平均响应时间,也可以让代理在相关部分引用这些目标。

The plugin

插件

The ce-strategy and ce-product-pulse skills described in this guide ship inside Every’s open-source compound-engineering plugin, installable in Claude Code with:

这篇指南里提到的 ce-strategyce-product-pulse skill,包含在 Every 开源的 compound-engineering 插件中,可以通过下面的命令安装到 Claude Code:

/plugin marketplace add EveryInc/compound-engineering-plugin

/plugin marketplace add EveryInc/compound-engineering-plugin

/plugin install compound-engineering

/plugin install compound-engineering

Contributions are welcome.

欢迎贡献。

Going further

更进一步

How the PM skills fit into compound engineering

PM skill 如何融入复合式工程

When docs/strategy.md is present, the other compound-engineering skills (ce-ideate, ce-brainstorm, ce-plan) read it as grounding for their own work. Strategy flows into feature conception, specs, and ultimately shipped code. The next pulse reads the result. Those planning skills should be run with reference to past pulse reports as well, in order to make better feature design and prioritization decisions.

docs/strategy.md 存在时,其他复合式工程 skill,也就是 ce-ideatece-brainstormce-plan,都会把它作为自己工作的基础。战略会流入功能构思、规格设计,最终进入已经上线的代码里。下一次 pulse 会再去读取这些结果。为了做出更好的功能设计和优先级判断,这些规划类 skill 也应该结合过去的脉搏报告一起使用。

What’s not included

这里没有包含的内容

Product management is now about the interesting parts

产品管理现在只剩下有意思的部分了

LLMs have allowed our tools to catch up with the multifaceted duties of product managers. For me, product management has been reduced to the interesting parts: dreaming up features, thinking through designs, looking at interesting data, and talking to users. We all feel the economic imperative to embrace AI tools, but the better reason, I think, is to make work more fun.

LLM 让我们的工具终于追上了产品经理这种多面职责的复杂性。对我来说,产品管理已经被压缩成那些真正有意思的部分,想功能,推敲设计,看有意思的数据,和用户聊天。大家都能感受到拥抱 AI 工具的经济压力,但我觉得,更好的理由是,它能让工作变得更有意思。

The discipline of product management

“Product management” was born in the 1930s within the consumer goods giant Procter & Gamble. As the company expanded its product offering, leaders realized their products would be more successful if they ceded control to direct managers of the products. Someone needed to be in charge of each product, and they called that person the “Brand Man.” The raison d’etre of product management—ownership and accountability—survives to this day.

In the intervening years, however, the product management job description has been rewritten several times over. In the 1940s and 1950s, Hewlett-Packard’s product managers became the middlemen between customers and engineers. Toward the end of the century, internet startup PMs added user experience design, agile development, and A/B testing to their toolkits.

Now, PMs need to be good at everything: design and diplomacy, sales and statistics. Thousands of startups have raised billions of dollars to help PMs across these disciplines. But that introduced a new problem: The average company today has over 100 software subscriptions, an overload that impacts PMs more than other functions given how many other roles and disciplines they interact with. No wonder many people I know in product management feel burnt out.

Now, much of the interdisciplinary work that goes into product management can be done by an LLM in minutes, sometimes seconds. What used to be a three-hour-long analytics investigation is now a simple back-and-forth with Claude. A product review that used to be a fortnightly chore emerges from a single typo-ridden chat message.

This has been my recent experience, at least. I no longer struggle with semicolons in SQL queries or even write tickets. All of my product management work happens in conversation with, in my case, Claude Code. The conversation is the work.

The following guide is a point-in-time snapshot of how I’m doing product management with agents. New AI tools launch every day, and my workflow changes at least weekly. I’ve tried to capture here the main pillars of my workflow that likely won’t change for months. It’s hard to see ahead farther than that these days.

The main PM loop

This is a familiar software development lifecycle (SDLC) loop. Product management happens mainly at the “plan” and “review” stages. For more on the “ship” stage, check out my colleague Kieran Klaassen’s guide to compound engineering.

Everything that ships is an experiment. You never know for sure how users are going to react to something new. The more you ship, the more you learn—and those learnings reinforce themselves over time, allowing you to serve customers better. Once enough learnings accumulate, it’s time to revisit the strategy. Is this still the winning approach, in light of what we now know? The answer may be yes, but if it’s no, change it and get back to shipping.

But everything starts with…

The strategy document

As Kieran says, software development has shifted from 20 percent planning and 80 percent execution to 80 percent planning and 20 percent execution. The foundation of all software planning is the strategy.

The new compound engineering command /ce-strategy takes its structure from the book Good Strategy Bad Strategy by management professor Richard Rumelt. As the title suggests, he surveys lots of real examples, from companies and governments, and classifies them as good strategies or bad strategies.

The first time you run /ce-strategy in an agent environment (Claude Code, Codex, etc.), you’ll be asked a series of questions and ultimately get a strategy.md file. The components of strategy.md are:

There are two optional sections. “Not working on” is an explicit list of things that might be tempting but are not near-term priorities. It’s sometimes helpful to state this up front to head off distractions. “Marketing/positioning” is a list of things the product team will work on to support growth.

The strategy doc doesn’t contain product requirements. There are no specific features, issues, or statuses described in detail. It’s the big picture of the product. The specs come later.

Filling it in

Writing a strategy document cold is hard. The best way to do it, I’ve found, is to have an agent interview you. The ce-strategy skill does this. It runs through the sections in order and has built-in guidance about what makes a good answer (and what kinds of answers to push back on). The output is docs/strategy.md. You can rerun the command at any time to revisit a specific section without rewriting the whole thing.

The interview is deliberately conversational. If the first answer to, “What’s the core problem this product solves” is vague, the agent drills down: “Whose situation specifically? What do they try today, and why doesn’t it work?” The guidance here is taken from personal experience and from the Rumelt book.

Compounding the strategy

Assuming you’re using compound engineering and shipping at post-AI speeds, you should rerun the strategy interview every few months. The next time you do the interview, your agent will have weeks or months of context from planning features, shipping them, and reviewing the data. The agent’s questions will be sharper, the conversation tougher.

Shipping

I used to spend a lot of time writing tickets. I prided myself on detailed acceptance criteria (given, when, then) that left no room for engineering uncertainty for how a feature should work.

Now I no longer write tickets. Once you have a strategy document including the work tracks, I’d recommend using the compound engineering ideate, brainstorm, and plan skills to come up with what to build.

You need an issue tracker, and it should be one that has an MCP (model context protocol) or other agent integration. I use GitHub Issues, but I’ve had great experiences with Linear in the past. Your agent should write tickets for you, move them around the board, and keep the statuses up to date. You no longer read or write tickets; you just talk about them with your agent.

For statuses, I use lists of now/next/later, which roughly correspond to this week, next week, and… some point in the future. I don’t do sprints, just Kanban. There’s “In Progress,” and there’s “Done.” That is all you need.

Product pulse

The product pulse is where strategy meets reality. The pulse command is my main window into how the product is actually being used, whether features are successful, and how healthy the system is. A pulse is generated on demand, and the collection of pulses is the product’s memory.

Creating a product pulse

This assumes your product is instrumented and logs are being stored somewhere. If that’s not the case, I would recommend you stop reading this and go set that up. (Posthog has a self-setup wizard.)

Like the strategy command, the /ce:product-pulse command interviews you the first time you run it.

What makes up a pulse

A good pulse report fits on a single page (about 30 to 40 lines of terminal output) and covers four things:

Making it run

Data sources

A pulse pulls from up to four categories of tools in the product’s stack:

A team that has only one of these can still run a useful pulse. The report skips sections when the requisite data source isn’t available. With the number of data sources, quality beats quantity.

Wiring up MCP connections

The fastest way to let an agent query these tools on every run is to connect them via MCP. If you’re running Claude Code, /mcp lists what’s already connected. Your agent’s MCP registry is an easy way to find connectors, or you can use Google to search for them.

If a tool has no MCP available, the pulse can still work. The agent just needs a credentialed path (like a CLI or API), but agents seem to like MCPs.

Feedback channels

Pulse covers the quantitative half of feedback—metrics, errors, performance. The qualitative side has to come from users directly. I like emailing with users, so I made the Spiral email address conspicuous in the product, and emails to it land in my work inbox. I also include a 15-minute call booking link in every marketing email that goes out to users. There is no substitute for talking to users. You will never cease to be surprised by what they say.

Platforms like Canny and Featurebase are also good ways to collect and organize feature requests and bug reports. They have MCPs, which can be another good input into Pulse.

Memory: Saved reports

Every pulse run saves a copy to ~/pulse-reports/ as a Markdown file. A single pulse answers, “What happened today?” A folder of pulses answers, “What happened this month?” “When did this trend start?” “Did that feature change anything?” Over time, the folder becomes the team’s working memory of the product.

Running on a cadence

Claude Code has a Routines feature, which allows you to schedule frequent tasks, so you can automate recurring pulse runs. I have it run every day at 8 a.m., so I start work with the freshest perspective on how the product is doing. I typically run /ce:product-pulse manually a few times over the rest of the day.

Reading it like a founder

The agent is instructed to assemble the report, read it from the perspective of a founder, annotate anomalies, and run follow-up queries where necessary. For example, if a certain endpoint yielded higher errors, it will dig into those errors: Were they from one user? Did they coincide with a reported third-party outage? On the agent’s second pass, unless everything is completely normal, it will add a section at the end that preemptively answers natural follow-up questions. In this way, the agent works as an analyst, not just by pulling the data but by evaluating and presenting it.

By default, there are no hard-coded thresholds above or below which the agent will flag metrics. The agent evaluates the report using common sense and by comparison to previous pulse numbers. For example, if response times are suddenly three times higher on average, it will flag that and likely investigate further. If you do have specific performance goals—say, average system response time—you can ask your agent to reference those in the relevant section.

The plugin

The ce-strategy and ce-product-pulse skills described in this guide ship inside Every’s open-source compound-engineering plugin, installable in Claude Code with:

/plugin marketplace add EveryInc/compound-engineering-plugin

/plugin install compound-engineering

Contributions are welcome.

Going further

How the PM skills fit into compound engineering

When docs/strategy.md is present, the other compound-engineering skills (ce-ideate, ce-brainstorm, ce-plan) read it as grounding for their own work. Strategy flows into feature conception, specs, and ultimately shipped code. The next pulse reads the result. Those planning skills should be run with reference to past pulse reports as well, in order to make better feature design and prioritization decisions.

What’s not included

Product management is now about the interesting parts

LLMs have allowed our tools to catch up with the multifaceted duties of product managers. For me, product management has been reduced to the interesting parts: dreaming up features, thinking through designs, looking at interesting data, and talking to users. We all feel the economic imperative to embrace AI tools, but the better reason, I think, is to make work more fun.

📋 讨论归档

讨论进行中…