Outcome Review
Query analytics for a shipped feature, synthesize an outcome report, and optionally create follow-up Jira work. Entered independently after shipping — days or weeks later.
Step 1: Detect Available Tools
Check which MCP tools are available:
Tier 1 — PostHog MCP:
If you have access to query-run, get-experiment, list-experiments, get-feature-flag, or create-annotation as MCP tools, use Tier 1.
Tier 2 — Manual Metrics: If no PostHog MCP tools are available, ask the user to provide metrics directly:
"I don't have PostHog MCP access. Please share any of the following:
- Dashboard screenshots or metric summaries
- Adoption numbers, funnel data, or error rates
- Experiment results if applicable
- Any specific concerns about the shipped feature"
Step 2: Identify the Feature
- Check for a learn baseline file in
~/.claude/.skill-learn-baselines/:- List files, match by feature name or branch name from the user's prompt
- If found, use the baseline's
shipped_at,ship_method,hypotheses, andjira_ticketfields - If
ship_methodis"pull_request", verify the PR was actually merged before proceeding (checkpr_urlviagh pr view)
- If no baseline found, ask the user:
"Which feature should I review? Please provide the feature name, branch name, or Jira ticket ID."
Step 3: Gather Metrics
Tier 1 (PostHog MCP available):
- Query adoption metrics via
query-runwith HogQL:- Event counts for the feature's key events since
shipped_at - Compare to the period before shipping (same duration)
- If the baseline has non-null
hypotheses, use each hypothesis'smetricfield to target specific events/properties instead of generic adoption queries
- Event counts for the feature's key events since
- Check experiment results if applicable:
list-experimentsto find experiments linked to the featureget-experimentfor results, significance, and variant performance
- Check feature flag status:
get-feature-flagfor rollout percentage and targeting rules
- Check error rates:
query-runfor error events associated with the feature
Tier 2 (Manual):
- Ask the user to share metrics from their dashboards
- If the baseline has
hypotheses, present each hypothesis and its metric to the user: "For H1 ([description]), I need the current value of [metric]. What is it?"
- If the baseline has
- Ask about any observed regressions or improvements
- Synthesize from what the user provides
Step 4: Synthesize Outcome Report
Present a structured report:
Outcome Report
Feature: [name] | Shipped: [date] | Branch: [name]
Adoption: [metrics summary — event counts, trend direction, comparison to pre-ship baseline]
Quality: [error rates, regression indicators]
Experiments: [results if applicable — significance, winning variant, effect size]
Assessment: One of:
- Positive — Metrics improved, no regressions. Close the loop.
- Regression detected — [specific metric] degraded by [amount]. Investigate.
- Inconclusive — Insufficient data. Revisit in [N] days.
- Mixed — [positive metrics] improved but [negative metrics] regressed. Judgment call.
Hypothesis Validation (when baseline has non-null hypotheses):
| ID | Hypothesis | Metric | Baseline | Target | Actual | Status | Cause |
|---|---|---|---|---|---|---|---|
| H1 | [description] | [metric] | [baseline] | [target] | [measured value] | [status] | [cause if status ≠ Confirmed, else —] |
Status values:
Confirmed— Actual meets or exceeds targetNot confirmed— Actual does not meet targetInconclusive— Insufficient data, or validation window has not elapsedPartially confirmed— Directionally correct but below target threshold
Cause (required for any non-Confirmed hypothesis) — diagnose WHY before recommending. A low metric does not by itself mean the feature failed; mistaking the cause is how a working feature gets reverted. Classify the cause and let it drive the recommendation:
instrumentation-broken— the metric pipeline is wrong, not the feature (e.g. event renamed/never fired, 0 events while manual QA confirms the flow works). → Fix tracking and re-measure; do NOT change the feature.adoption-gap— the feature works but is under-exposed or undiscovered (e.g. flag at 5% rollout; healthy within the exposed cohort). → Increase rollout/discoverability, then re-measure before judging the feature.product-miss— fully exposed and correctly measured, users still don't convert. → Iterate on or roll back the feature.inconclusive-data— not enough signal yet. → Extend the window; do not act.
Add the chosen cause to the row (or list it under the table) for each non-Confirmed hypothesis (this includes Partially confirmed and Inconclusive, not only Not confirmed), and make the recommendation follow from it.
When hypotheses is null in the baseline (or no baseline found): skip this section entirely. Fall back to the existing generic metrics flow with no behavioral change.
Recommendations: Specific next actions based on the assessment — and, for each non-Confirmed hypothesis, consistent with its diagnosed Cause above.
Step 5: User Decision Gate
Present the report and ask:
"Based on this outcome review, would you like me to:
- Close the loop — no follow-up needed
- Create follow-up Jira tickets — I'll draft tickets for the recommended actions (requires your approval before creation)
- Investigate further — dig deeper into a specific metric or regression"
Wait for the user's choice.
Step 6: Follow-Up Actions
If "Create follow-up tickets" (and Atlassian Rovo MCP available):
- If the baseline lacks
jira_ticketor the feature's parent ticket is unknown, find it first: callsearch(cloudId, "<feature name>")— the Rovo cross-system search returns the original ticket alongside any linked Confluence docs in one call. Fall back tosearchJiraIssuesUsingJqlonly ifsearchreturns no matches. - Draft the ticket(s) — title, description, acceptance criteria, priority.
- Present each draft to the user for approval.
- Only after explicit approval:
createJiraIssueto create the ticket. addCommentToJiraIssueon the original ticket with the outcome summary.
If Atlassian Rovo MCP unavailable:
"I don't have Atlassian Rovo MCP access. Here are the recommended follow-up tickets — please create them manually: [formatted ticket descriptions]"
Step 7: Transition
If follow-up work was identified:
"If follow-up work is needed, invoke Skill(auto-claude-skills:product-discovery) or Skill(superpowers:brainstorming) to begin the next cycle."
If the loop is closed:
"Outcome review complete. The feature loop is closed."