Skip to content

feat: add pm-data skill — quantitative analytics layer with PostHog, Amplitude, and pipeline integration#7

Open
alexhumeau wants to merge 5 commits into
nmrtn:mainfrom
alexhumeau:feature/pm-data
Open

feat: add pm-data skill — quantitative analytics layer with PostHog, Amplitude, and pipeline integration#7
alexhumeau wants to merge 5 commits into
nmrtn:mainfrom
alexhumeau:feature/pm-data

Conversation

@alexhumeau
Copy link
Copy Markdown

What this adds

nanopm's pipeline is entirely qualitative. This PR adds the missing quantitative layer: a dedicated skill to answer product questions with data, integrated into the existing pm-audit and pm-prd pipeline.

Note: This PR includes the commits from #6. It's cleanest to review after #6 is merged — only the last 2 commits are new here.


New skill: /pm-data

Answer a specific product question with data. Enforces one question per run — vague questions produce useless output.

Supported analysis types:

  • Funnel — conversion rate per step, biggest drop-off identification
  • Trend — time series with % change vs prior period
  • Retention — Day 1 / Day 7 / Day 30 with SaaS benchmarks
  • Paths — most common user flows after a key event
  • Cohort comparison — behavior diff between two user segments
  • Feature impact — before/after metric comparison around a ship date

Every finding includes a confidence level 🟢🟡🔴 and a plain-English "so what". No raw number dumps.

Output: .nanopm/DATA.md (append — preserves history across runs).

New connectors

Connector Tier 1 (MCP) Tier 2 (API)
posthog mcp__claude_ai_PostHog__* POSTHOG_API_KEY + POSTHOG_PROJECT_ID
amplitude AMPLITUDE_API_KEY + AMPLITUDE_SECRET_KEY

Both degrade to manual paste if unavailable.


Pipeline integration

DATA.md is now a first-class input alongside FEEDBACK.md.

/pm-audit changes (minimal, surgical):

  • Phase 2: reads DATA.md, extracts 🟢 high-confidence metrics and flagged unknowns
  • Phase 4: cross-references quanti vs quali — contradictions between DATA.md and FEEDBACK.md are flagged explicitly as the most valuable audit findings
  • New Section 5 in AUDIT.md: "What The Data Says" — omitted entirely if no DATA.md exists

/pm-prd changes (minimal, surgical):

  • Phase 2: reads DATA.md for metrics relevant to the feature being specced
  • Problem Statement template: slot for one quantified fact from DATA.md
  • Success Criteria: baselines can be derived from DATA.md metrics
  • Only 🟢 high-confidence findings are cited — low-confidence data is never used as fact in a PRD

Quanti / quali triangulation

If FEEDBACK.md exists, /pm-data checks for qualitative signal that confirms or contradicts the numbers. A funnel drop-off confirmed by interview quotes → strong signal. A number with no qualitative backing → flagged as hypothesis.


Design principles

  • One question per run — enforces specificity, prevents dashboard-dumping
  • Confidence levels on every finding — separates facts from hypotheses
  • Interpretation over raw data — every number requires a "which means..."
  • Minimal changes to existing skills — pm-audit and pm-prd edits are additive only, no behavior changed when DATA.md is absent

alexhumeau and others added 5 commits April 7, 2026 15:48
…Calendar and Granola connectors

New skills:
- pm-standup: daily briefing from git, Linear, Google Calendar, and Granola
  Surfaces yesterday's commits, today's meetings with prep gaps flagged,
  top priorities inferred from roadmap, blockers, and drift detection
- pm-interview: user interview guide + Granola-powered signal extraction
  Prepares structured interview guides, detects Granola transcripts automatically,
  extracts findings into FEEDBACK.md (consumed by /pm-audit and /pm-user-feedback)
- pm-weekly-update: stakeholder update email adapted to audience
  Supports manager, CEO/exec, investor, dev team, and cross-functional formats

New connectors:
- google-calendar: MCP-based (mcp__claude_ai_Google_Calendar__*), fetches today's events
- granola: MCP-based (mcp__claude_ai_Granola__*), fetches meeting notes and transcripts

pm-standup integrates both connectors: shows today's schedule, flags meetings
with no recent commits (prep gap), and surfaces user calls for /pm-interview.
pm-interview checks Granola for an existing transcript before asking for manual notes.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…t OS usage

When running from a Product OS folder (not inside a codebase), pm-standup
now fetches commits from all active GitHub repos instead of reading local git.
Commits are grouped by repo: [repo-name] commit message.

On first run, caches the list of repos with recent activity to speed up
subsequent runs. Falls back to local git if GitHub is not connected.

This makes pm-standup useful as a single morning command regardless of
which repo you're currently in.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
…a, Alvarez, NNG

Complete rewrite of the interview guide generation, grounded in four recognized
frameworks:

- Teresa Torres (Continuous Discovery Habits): one story per interview, temporal
  anchoring, excavation of the timeline with neutral prompts, anti-generalization
  redirect ("usually" → "last specific time")
- Rob Fitzpatrick (The Mom Test): past behavior only, no hypotheticals, mandatory
  workaround/implication/alternative questions, explicit anti-patterns table
- Bob Moesta (JTBD Switch Interview): 6-stage buying timeline for churned/switched
  users, four forces mapping (push/pull/anxiety/inertia), contrast probing technique
- Cindy Alvarez (Lean Customer Dev): hypothesis-first ordering (Constable), top 3
  questions before the call, forward action at close, post-call review discipline

Session type auto-detection: current user → story-based, churned → JTBD switch,
prospect → lean discovery, buyer → positioning framing.

Signal reliability thresholds now explicit: 3 min, 5 standard, 8-12 for full JTBD map.

Four forces map added to FEEDBACK.md output structure.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
New skill /pm-data answers a specific product question with quantitative data.

Supports: trend analysis, funnel drop-off, retention (D1/D7/D30), user paths,
cohort comparison, and feature impact measurement.

Data sources (in priority order):
- PostHog MCP (mcp__claude_ai_PostHog__*) — full support: trends, funnels,
  retention, paths, stickiness, custom HogQL queries, event definitions
- PostHog API (POSTHOG_API_KEY + POSTHOG_PROJECT_ID)
- Amplitude API (AMPLITUDE_API_KEY + AMPLITUDE_SECRET_KEY)
- Manual paste fallback (always works)

Every finding includes a confidence level (high/medium/low) and a "so what"
interpretation — no raw number dumps. Triangulates with FEEDBACK.md qualitative
signal when available.

Output written to .nanopm/DATA.md (append — preserves prior analyses).
DATA.md is consumed by /pm-audit and /pm-prd for quantitative backing.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
pm-audit (Phase 2 + Phase 4 + AUDIT.md template):
- Reads DATA.md if present, extracts high-confidence metrics and flagged unknowns
- Phase 4 synthesis now cross-references quanti vs quali signal — contradictions
  between DATA.md and FEEDBACK.md are flagged explicitly as the most valuable findings
- New Section 5 in AUDIT.md: "What The Data Says" (omitted if no DATA.md)

pm-prd (Phase 2 + Problem Statement template):
- Reads DATA.md for funnel/retention metrics relevant to the feature being specced
- Problem Statement template now includes a slot for one quantified fact from DATA.md
- Success Criteria baseline targets can be derived from DATA.md metrics
- Only 🟢 high-confidence findings are used — low-confidence data is not cited as fact

DATA.md is now a first-class input to the nanopm pipeline alongside FEEDBACK.md.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant