Product pulse — single-page metrics report
SkillMonitoring & opsProduces a single-page (30-40 lines) daily or weekly product pulse report — Headlines / Usage / System Performance / Followups — that measures progress against the locked product strategy. Pulls metrics from connected MCP data sources (PostHog, Mixpanel, Amplitude, Datadog, Sentry, Stripe, GSC, etc.) and pairs quantitative with at least one qualitative user signal. Triggers: "product pulse", "daily metrics", "pulse report", "how is X performing". Required upstream: strategy-doc (defines the metrics to measure). Feeds ship-learnings + strategy-doc refresh. NOT for marketing dashboards (use /dashboard) or analytics deep-dives (use data:analyze).
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Product pulse — single-page metrics report skill
What this skill tells your AI
The instructions your AI receives, as published by matteotitta/genesys-skills in skills/primitives/product-management/audit/product-pulse/SKILL.md and read by ahel’s review.
Produce a daily or weekly pulse report that measures the locked product strategy's metrics. Adapted from /ce-product-pulse in EveryInc/compound-engineering-plugin v3.5.0 (MIT).
The pulse closes the strategy↔pulse↔ship loop: strategy declares metrics, pulse measures them, learnings flow back to strategy refreshes.
When to run
Invoke when the user says:
- "Run product pulse for [product]"
- "Daily pulse"
- "Weekly pulse"
- "How's [product] doing?"
- Cron-scheduled (default: 8am daily — via the
/scheduleskill or Trigger.dev cron)
Do NOT invoke when:
- User wants a marketing dashboard →
/dashboard - User wants a deep analytics investigation →
data:analyze - User wants a competitive analysis →
/competitor-research - No locked
strategy-docexists for the product → run/strategy-docfirst; pulse is meaningless without locked metrics
Inputs
Required:
- Locked
strategy-doc(defines the metrics this pulse measures) - Product name / ship slug
Optional but valuable:
- MCP connections: PostHog / Mixpanel / Amplitude (usage), Datadog / Sentry / Logfire / Honeycomb (system perf), Stripe / Paddle (revenue), GSC (search), custom DB read replicas
- Latest user conversation / interview note (for the K3 qualitative pairing)
- Previous pulse for delta comparison
If MCP connection missing for a metric: flag the data gap explicitly; don't fabricate a number. Per .claude/rules/financial-data.md — never invent metrics.
Steps
- Phase 1 — Load locked strategy. Read
strategy-doc(the upstream dependency). Extract the metrics section. These are what we measure. - Phase 2 — Pull metrics. Query each MCP for the named metrics. Compare to previous period (default 7 days). Flag anomalies (>20% delta or threshold cross).
- Phase 3 — Pull system signals. Query infra MCPs (Datadog / Sentry / etc.) for errors, latency, regressions.
- Phase 4 — Pull qualitative. Find at least one user conversation, support ticket, or interview note from the period. If none: flag as a data gap and suggest a user call.
- Phase 5 — Compose pulse. Apply 4-section structure. Apply 30-40 line discipline. Cut anything that doesn't move strategy thinking.
- Phase 6 — Self-roast. Run checks below.
- Phase 7 — Push. GDoc / Notion + Slack notification (if cron-scheduled).
MCP credit gate
This skill calls free / read-only operations on PostHog / Mixpanel / Amplitude / GSC / Datadog / Sentry / Stripe MCPs. None spend credits. Confirm with the user only if connecting a new MCP for the first time.
Self-roast (run before push)
- All 4 sections present (Headlines / Usage / System Performance / Followups)
- Total line count 30-40 (cut if longer; anything over 40 is dilution)
- Every metric in pulse traces to a metric in the locked
strategy-doc - Anti-vanity-metrics rule applied (K2): no page views / impressions / MAU without conversion
- At least one qualitative signal present (K3): quoted user / ticket / interview
- Anomalies flagged (>20% delta) — with a 1-line interpretation, not just "X went up"
- Each followup has an owner + suggested next step (not just "look into this")
- No fabricated numbers — data gaps flagged explicitly per
financial-data.md
{Product} pulse — {YYYY-MM-DD}
Period: {start} → {end} · Strategy ref: {strategy-doc path/version}
Headlines
- {metric}: {value} ({±%} vs {prev}) — {1-line interpretation} -...
Usage
- {metric_1}: {value} ({±%}) — {note} -...
System Performance
- {error rate / latency / uptime} — {note} -...
Followups
- {problem} (owner: {name}) — {next step}. User signal: "{quote}" — {source} -...
## Composition rule reference
Pulse is the measurement node in the **PM closed loop** (P3). See [.claude/rules/pm-loop.md](../../../../../rules/pm-loop.md). Cron pattern (P8): schedule via the `/schedule` skill or Trigger.dev cron.
## Attribution
Adapted from [EveryInc/compound-engineering-plugin](https://github.com/EveryInc/compound-engineering-plugin) v3.5.0 (MIT). Source pattern: `/ce-product-pulse`. Single-page discipline: P4 from /steal Phase 4.
Signals
- GitHub stars
- 36
- Forks
- 14
- Last commit
- Jul 2026
Advanced
- Catalog kind
- skill
- Gateway key
product-pulse- Source
- github.com/matteotitta/genesys-skills