From flywheel-pm
Capture learnings from a product cycle and update your PM profile — the most important step
How this command is triggered — by the user, by Claude, or both
Slash command
/flywheel-pm:compound [feature name or measurement doc path]pm/The summary Claude sees in its command listing — used to decide when to auto-load this command
# Compound — The Most Important Step ## Purpose After a product cycle (launch, measurement review, or post-mortem), capture what worked, what didn't, compare predictions to actuals, and update your PM profile so the next cycle is faster and better. **This is where the gains accumulate. Skip it, and you've done traditional PM with AI assistance.** ## Input <compound_input> #$ARGUMENTS </compound_input> **If a file path:** Read the measurement or spec document. **If a feature name:** Search `docs/` for all related documents. **If empty:** Ask what to compound. ## Step 0: Load Context ...
After a product cycle (launch, measurement review, or post-mortem), capture what worked, what didn't, compare predictions to actuals, and update your PM profile so the next cycle is faster and better. This is where the gains accumulate. Skip it, and you've done traditional PM with AI assistance.
<compound_input> #$ARGUMENTS </compound_input>
If a file path: Read the measurement or spec document.
If a feature name: Search docs/ for all related documents.
If empty: Ask what to compound.
cat pm-profile.yaml 2>/dev/null
Gather all related documents:
ls docs/opportunities/*[feature]* docs/solutions/*[feature]* docs/specs/*[feature]* docs/measurements/*[feature]* 2>/dev/null
Ask the PM (using AskUserQuestion tool where appropriate):
If a measurement doc exists with predictions, go through each:
| Prediction | Predicted | Actual | Delta | Why |
|---|---|---|---|---|
| Adoption rate | [X]% | [actual]% | [+/-] | [explanation] |
| Activation | [X]% | [actual]% | [+/-] | [explanation] |
| Retention | [X]% | [actual]% | [+/-] | [explanation] |
| Revenue impact | $[X] | $[actual] | [+/-] | [explanation] |
Classify failures by type:
This is the core compounding mechanism. Update pm-profile.yaml with:
Add to project_patterns:
- project: "[Feature Name]"
date: "YYYY-MM-DD"
domain: "[domain]"
opportunity_type: "[signal type]"
solution_type: "[differentiator | mmr | neutralizer]"
outcome_metric: "[metric name]"
predicted: "[prediction]"
actual: "[actual]"
delta: "[+/- %]"
key_learning: "[one sentence]"
activation:
setup: "[actual rate]"
aha: "[actual rate]"
habit: "[actual rate]"
engagement:
casual_pct: "[actual %]"
core_pct: "[actual %]"
power_pct: "[actual %]"
business_impact: "[summary]"
Recalculate averages across all project patterns:
thresholds:
avg_activation_setup: "[recalculated]"
avg_activation_aha: "[recalculated]"
avg_activation_habit: "[recalculated]"
avg_estimation_accuracy: "[recalculated]"
typical_time_to_habit: "[recalculated]"
Add to decision_log:
- date: "YYYY-MM-DD"
feature: "[name]"
decision: "[what was decided]"
rationale: "[why]"
outcome: "[what actually happened]"
would_decide_differently: "[yes/no and why]"
If a framework consistently fails or succeeds, note it:
framework_notes:
- "Activation funnel works well for B2B employee-facing products"
- "Revenue predictions tend to be 20% optimistic — discount accordingly"
- "User segmentation (casual/core/power) maps well to enterprise engagement"
Write to docs/compounds/YYYY-MM-DD-<feature>-compound.md:
---
date: YYYY-MM-DD
feature: "[feature name]"
outcome: "[success | partial | failure | pivot]"
key_learning: "[one sentence]"
profile_updated: true
---
# Compound: [Feature Name]
## Outcome Summary
[What happened in 2-3 sentences]
## Predictions vs Actuals
[Table of predicted vs actual metrics]
## Estimation Calibration
[Where predictions were off and why]
## What Worked
[Frameworks, decisions, approaches that succeeded]
## What Didn't Work
[Failures classified by type]
## What Was Surprising
[Unexpected outcomes]
## PM Profile Updates
- Added project pattern: [summary]
- Updated thresholds: [what changed]
- Added to decision log: [key decision]
- Framework note: [any framework adjustment]
## Implications for Future Work
[What the next PM cycle should do differently]
Show the PM what changed in their profile:
Profile updated:
New project pattern added: [Feature Name]
Outcome metric: [predicted] → [actual] ([delta])
Activation: Setup [X]%, Aha [Y]%, Habit [Z]%
Thresholds recalculated:
avg_activation_setup: [old] → [new]
avg_estimation_accuracy: [old] → [new]
Decision logged: [summary]
Your PM operating system is now smarter. The next /pm:opportunity
will reference this learning, and /pm:measure will use updated
thresholds for predictions.
After capturing individual learnings, ask:
Use AskUserQuestion tool:
"Is any of this worth sharing with the PM team?"
Options:
team-profile.yaml via /pm:shareIf sharing: Run /pm:share with the selected learning.
Options:
/pm:share to promote more learnings/pm:opportunity for the next initiativeEach product cycle makes the next one easier — not harder.
npx claudepluginhub abhitsian/compound-pm-marketplace --plugin flywheel-pm/retroRun a post-ship retrospective — measure outcomes vs. predictions, extract lessons, update memory, and feed insights back into the PM system
/retrospectivePost-launch retrospective that compares predicted feature metrics against real data from connected MCPs (PostHog, Amplitude, Sentry, NewRelic) or manual input, generating a lessons-learned report.
/workflow-post-launch-learningRuns Post-Launch Learning workflow, generating instrumentation specs, dashboard requirements, experiment results analysis, retrospective, and lessons log artifacts.
/pm-retrospectiveGenerates post-completion retrospective report analyzing what went well, challenges faced, estimation accuracy, and research effectiveness from project data.
/compoundProposes learnings from completed sprints in three buckets (clean-ups, backlog tasks, CLAUDE.md improvements) and applies approved items. Supports batching multiple pending sprints into one merged proposal.
/retroFacilitates agile retrospectives by capturing sprint learnings, surfacing past insights, and compounding team knowledge over time.