ce-product-pulse
生成有关用户体验和产品性能的时间窗口脉冲报告 - 使用情况、质量、错误、值得调查的信号。每次一页。
ce-product-pulse 是观察循环技能。它查询给定时间窗口(24 小时、7 天、1 小时等)的产品数据源,并生成涵盖使用情况、性能、错误和后续情况的单页报告。该报告将用户体验的可浏览时间线保存到 docs/pulse-reports/ 中——团队对产品在世界上实际表现的工作记忆。
复合工程构思链是/ce-ideate → /ce-brainstorm → /ce-plan → /ce-work。 ce-product-pulse 关闭外环 - 一旦功能发布,来自实际使用的脉冲表面信号会反馈到构思(“什么值得探索?”)和头脑风暴(“这需要是什么?”)。与作为上游锚点的 ce-strategy 和捕获学习的 ce-compound 相结合,该链成为一个反馈系统而不是单向管道。
TL;DR
| 问题 | 回答 |
|---|---|
| 它有什么作用? | 查询某个时间窗口的分析、跟踪、支付(以及可选的只读数据库);生成单页报告 |
| 何时使用它 | “运行脉搏”、每周回顾、发布日检查、“我们做得怎么样”、/ce-product-pulse 7d |
| 它生产什么 | 保存到 docs/pulse-reports/YYYY-MM-DD_HH-MM.md 的报告;聊天要点浮出水面 |
接下来是什么? /ce-ideate 或 /ce-brainstorm 的表面后续行动;使用本机工具调查特定问题 |
## 问题
大多数“我们怎么样?”报告会以可预见的方式失败:
- 仪表板蔓延 — 6 个工具中的 40 个指标;没有人读其中的任何内容
- 阈值剧院 — 基于与产品实际操作范围不匹配的猜测阈值的红/黄/绿颜色编码
- 因摄取滞后而陈旧 — 最近 15 分钟的分析报告不足,所以“刚刚发生了什么?”答案是错误的
- PII 渗入报告 — 电子邮件、帐户 ID、消息内容最终出现在保存的文件和 Slack 线程中
- 变异副作用 — 一种“报告生成”工具,会意外写入数据库或标记事件
- 无内存 — 脉冲存在于聊天中,而不是存储在磁盘上;你无法比较上周和本周
- 无锚点 — 脉冲衡量的是所检测到的内容,而不是策略所说的重要内容
解决方案
ce-product-pulse 作为具有显式不变量的结构化观察通道运行:
- 单页输出(30-40行)——无序扩张是注意力的敌人
- 像创始人一样阅读——没有门槛,没有红/黄/绿;目前的数字,读者判断
- 15 分钟尾随缓冲区 — 每个查询的上限是
now - 15m以避免摄取滞后报告不足 - 保存的报告中没有 PII — 电子邮件、帐户 ID、消息内容不会出现在磁盘中
- 只读不变性 — 每个数据源都以只读方式查询;如果配置了数据库,则连接必须是只读的(面试拒绝读写凭证)
- 策略种子 — 当
STRATEGY.md存在时,采访会读取它并从中播种指标;数据源设置连接连接以实际衡量策略所说的重要内容 - 通过保存的报告进行内存 — 每次运行都会写入
docs/pulse-reports/,因此过去的脉冲是可浏览的时间线
是什么让它如此新颖
1. 单页限制 — 30-40 行,硬
该报告仅限于四个部分(标题、使用情况、系统性能、后续内容)和 30-40 行目标。薄的部分保持薄;部分不会被填充以填充空间。这种限制迫使报告揭示重要的内容,而不是可用的内容。
2.“像创始人一样阅读”——没有门槛
该技能从不给事物贴上“好”或“坏”的标签。它呈现数字并让读者做出判断。硬编码的阈值(例如,“p95 > 500ms 是红色”)会造成戏剧效果——它们是阈值设置者的猜测,而不是有关产品的信号。创始人了解脉搏,知道他们的产品什么是正常的;技能尊重这一点。
3.战略种子面试
当 STRATEGY.md 存在时,首次运行设置会在提出问题之前读取它。它显示种子产品名称和关键指标列表,访谈连接数据源以实际衡量这些指标。结果是:脉冲报告了策略所说的重要内容,而不是巧合的工具。当不存在策略文档时,该技能会明确指出并从头开始运行设置。
4.只读不变量
该技能永远不会改变产品、数据库或任何外部系统。唯一的写入是附加到 .compound-engineering/config.local.yaml (gitignored,机器本地)和报告文件 (docs/pulse-reports/...) 的脉冲设置。 MCP 和其他数据源工具以只读方式调用;如果工具提供写入模式,则不会使用它们。
特别是对于数据库访问,访谈拒绝读写凭据,并向用户指出替代方案(只读副本、BI 视图、快照导出)。数据库访问是可选的;许多产品仅通过分析+追踪来完成脉搏。
5. 15 分钟尾随缓冲区
许多分析和跟踪工具都存在摄取延迟 - 查询最多 now 会低估最新事件。每个查询窗口的上限是 now - 15m。对于 24h 窗口,技能查询 [now - 24h - 15m, now - 15m]。缓冲区对读者来说是不可见的,但消除了“为什么脉冲显示过去一小时内有零个事件?”的常见来源。困惑。
6. 保存的不含 PII 的报告
保存的报告仅包含计数分布和匿名注释,不包含用户电子邮件、帐户 ID 或消息内容。启用可选质量评分(AI 产品)时,低分会话会收到描述故障模式的简短匿名注释,而不是消息文本。这使得保存的报告可以安全地提交、共享或浏览,而无需担心隐私问题。
7.并行+串行查询调度
第 2.1 阶段并行调度分析、跟踪和支付查询(不同的工具,无共享负载),然后串行运行只读数据库查询(一次一个,有范围,无全表扫描)。这种分割可以防止生产数据库上的意外负载,同时仍然有效地使用可用的挂钟预算。
8. 智能指标推回
访谈将 SMART 条(具体、可衡量、可操作、相关、及时)应用于用户提出的每个指标、事件和信号。虚荣指标被推迟;模糊的指标变得更加清晰。结果是一个产生信号而不是噪音的配置。
9. 可选的质量评分和纪律
对于人工智能产品,可以选择对采样会话进行质量评分(在定义的维度上为 1-5)。纪律:正常会话默认为 4 或 5;保留 1-3 用于明确的故障模式(错误答案、用户陷入困境、错误出现)。如果全部得分为 3,则该标准太严格;如果全部都打5分,那就太松了。报告所载的是分数分布,而不是会话内容。
10. 通过保存的报告进行记忆
每个脉冲都会写入 docs/pulse-reports/YYYY-MM-DD_HH-MM.md(当地时间)。过去的脉冲是可重复的、可扩散的和一次性的——团队对产品表现的工作记忆。保存的报告文件夹被设计为工作内存,而不是数据仓库。在 100 份报告之后,时间线是一个真正的工件,您可以滚动浏览。
简单示例
现在是星期一早上。您想了解周末的情况。您运行/ce-product-pulse 72h。
该技能检测到这是一个已配置的项目(pulse_product_name 在 .compound-engineering/config.local.yaml 中设置),因此它会跳过采访并直接进入第 2 阶段。它应用 15 分钟的尾随缓冲区:[Friday 5:45pm — Monday 8:45am]。
阶段 2.1 并行调度:PostHog 查询(主要参与事件计数、价值实现、完成率)、Sentry 查询(按类别分类的错误计数、延迟 p50/p95/p99、主要错误签名)、Stripe 查询(新客户、流失、收入增量)。然后,只读数据库查询串行运行(按层的活动用户计数的小范围查询)。
阶段 2.2 对 10 个会话进行质量评分采样(您的产品是 AI;已启用质量评分)。分布返回:7×5、2×4、1×2——其中一个会话出现了明显错误的答案。
阶段 2.3 填充报告模板:标题(3 行)、使用部分(参与度、价值、完成度、质量样本)、系统性能(延迟、前 5 个错误及一行解释)、后续(质量失败的会话值得调查;一个错误模式每周都在攀升)。
该报告写入 docs/pulse-reports/2026-05-04_08-45.md。聊天中显示头条新闻和热门后续内容。您看到后续内容,决定使用 /ce-debug 调查攀爬错误模式。
何时去实现它
在以下情况下使用 ce-product-pulse:
- 您想要用户在一段时间内(24 小时、7 天、发布后)体验的快照
- 发射刚刚发生,您想要 1 小时或 4 小时检查早期信号
- 团队每周进行一次“我们做得怎么样”回顾
- 您希望在不盯着四个仪表板的情况下展示构思或调试的后续内容
在以下情况下跳过 ce-product-pulse:
- 您正在对特定问题进行深入调查 → 使用本机工具(Sentry、PostHog 等)
- 您需要实时警报 → 那是监控,而不是脉冲
- 你想知道“发布了什么” → 那是 git log + PR 列表,而不是脉冲(脉冲是关于用户体验和系统性能,而不是变更日志内容)
用作工作流程的一部分
ce-product-pulse 关闭外部反馈循环:
/ce-strategy ──┐
↓ (key metrics seed pulse)
↗── /ce-product-pulse ──────────┐
│ (followups) ↓ (signals feed into)
│ /ce-ideate → /ce-brainstorm → /ce-plan → /ce-work
│ ↓
└──────────────────────────────────────────────────── shipped ─────────┘
(the pulse measures what shipped, in production)
在已配置的项目中:
STRATEGY.md(来自/ce-strategy)播种要测量的指标/ce-product-pulse生成报告并提出后续行动- 后续反馈到
/ce-ideate(值得探索的内容)、/ce-debug(有问题的内容)或/ce-brainstorm(下一步要构建的内容)
脉冲不会取代仪表板、跟踪或分析 - 它将它们整合到单页阅读中,以便团队可以将注意力集中在少数重要的事情上,而不是从四个来源重新得出“发生了什么”。
使用独立版
该技能通过回溯窗口直接调用:
- 默认 24 小时 —
/ce-product-pulse - 特定窗口 —
/ce-product-pulse 7d、/ce-product-pulse 1h(启动检查)、/ce-product-pulse 30d - 重新配置 —
/ce-product-pulse setup(或reconfigure、edit config)重新运行采访 - 首次运行 — 没有配置的
/ce-product-pulse会触发设置采访,然后是脉冲
输出工件
docs/pulse-reports/YYYY-MM-DD_HH-MM.md (local time)
四个部分(目标总共 30-40 行):
- 标题 — 2-3 行总结窗口
- 使用 — 主要参与、价值实现、完成、质量样本分发(启用时)
- 系统性能 — 延迟 (p50/p95/p99) 和排名前 5 的错误(按计数)并附有一行解释
- 后续行动 — 1-5 件值得调查的事情
过去的报告作为可浏览的时间线保留在文件夹中。该文件夹旨在进行 grep、diff 和偶尔的修剪,而不是进行管理。
## 参考
| 论证 | 效果 |
|---|---|
| (空) | 使用配置中的 pulse_lookback_default (或 24h 如果未设置) |
24h、48h、72h、7d、30d、1h |
追踪时间窗口 |
setup / reconfigure / edit config |
无论配置状态如何,都重新运行采访 |
配置位于 .compound-engineering/config.local.yaml (gitignored,计算机本地)中的 pulse_* 键下:产品名称、主要事件、值事件、完成事件、质量评分、质量维度、分析源、跟踪源、支付源、启用数据库、每个指标源覆盖、待处理指标、排除指标、默认回溯。
## 常问问题
为什么报告中没有阈值? 因为除非针对特定产品进行校准,否则阈值是戏剧性的,并且针对每个指标进行校准比脉冲本身需要更多的工作。创始人了解脉搏,知道什么是正常的——报告尊重这一点。如果数字看起来有误,读者就会注意到;如果没有,他们就不会。
为什么要有 15 分钟的尾随缓冲区? 大多数分析和跟踪工具都存在摄取滞后——过去 15 分钟的事件报告不足。如果没有缓冲区,每个“刚刚发生了什么?”脉冲会低估最近的活动。缓冲区是不可见的,但消除了常见的混乱来源。
为什么数据库访问是只读的? 因为“生成报告”工具永远不会意外地改变生产数据。采访拒绝了读写凭证并指出了替代方案(读取副本、BI 视图、快照导出)。许多产品完全无需数据库访问即可完成脉冲 — 分析 + 跟踪就足够了。
为什么报告是单页的? 蔓延是注意力的敌人。包含 40 个指标的仪表板会导致注意力蔓延;一页包含正确的四个部分,迫使读者注意到重要的事情。如果您需要更多深度,本机工具仍然存在。
与 STRATEGY.md 有什么关系?
首次运行访谈会从 STRATEGY.md(如果存在)中播种产品名称和关键指标。脉搏衡量的是战略所说的重要内容,而不是巧合的工具。当不存在策略文档时,技能会记录该文档并从头开始运行设置。
是否支持调度?
是的 - 首次运行设置可以通过线束的可用调度原语(存在的插件 schedule 技能,或平台本机选项,如 cron/GitHub Actions)设置重复脉冲。日程安排永远不会自动进行;它需要明确的确认。
非 Claude-Code 平台怎么样?
该技能适用于任何具有只读数据源工具的平台。配置的预解析是特定于线束的(Claude Code 通过 ! 反引号读取它),但其余部分与平台无关。采访从不安排内联 - 它交给线束暴露的任何安排原语。
## 了解更多
“像创始人一样阅读”的姿势和单页限制是经过深思熟虑的。包含 40 个指标的仪表板会导致注意力蔓延;一页包含正确的四个部分,迫使读者注意到重要的事情。保存的报告文件夹被设计为工作记忆——过去的脉冲是可查询的、可区分的和一次性的。
另请参阅
ce-strategy— 播种脉冲测量的指标ce-ideate— 浮出信号的常见后续目标ce-debug— 脉冲表面错误模式的常见后续目标ce-brainstorm— 当脉冲跟进在修复之前需要澄清范围时