// End-to-end PM workflow - from data analysis to pragmatic Linear tickets. Analyzes user behavior, identifies opportunities, creates specs, and audits for simplicity.
| name | pm-analyst |
| description | End-to-end PM workflow - from data analysis to pragmatic Linear tickets. Analyzes user behavior, identifies opportunities, creates specs, and audits for simplicity. |
The pragmatic product manager's workflow - from data to shipping.
Use this skill when you need to:
Data-driven, not opinion-driven
Impact > Effort
Ship to learn
Lean startup thinking
Use skills:
funnel-analysis - For activation/retention questions ("show me the funnel")sql-reader + product-analytics - For general product questionstherapist-data-scientist - For therapeutic metricsQuestion format:
Output: Comprehensive analysis markdown file
Quality checks:
Example: codel_1on1_reactions_analysis.md
Framework: Apply PM judgment to analysis
Questions to answer:
What's the #1 insight?
Is this worth building?
Can we ship it?
Prioritization matrix:
| Impact | Effort | Priority |
|---|---|---|
| High | Low | 🔥 SHIP NOW |
| High | Medium | ✅ Prioritize |
| High | High | 🤔 Break down |
| Medium | Low | ✅ Quick win |
| Low | High | ❌ Don't build |
Output: 1-2 paragraph justification of top opportunity
Example:
"Meta-Commentary (🌟) is the #1 opportunity. It's already our highest-performing feature (85.9% loved), but we're only celebrating ~5-10% of positive moments due to a 6-hour cooldown. Reducing to 1-hour cooldown is HIGH IMPACT (2-3x more of what users love) and LOW EFFORT (change one SQL condition). This is our product differentiation—'coach watching over your shoulder' in real-time."
Use skill: feature-spec-writer
Template: Use "Quick Spec for Linear" format
Requirements:
## Problem
{1-2 sentences: What user pain are we solving?}
## Proposed Solution (MVP)
{1-2 sentences: What's the SMALLEST change that delivers value?}
## Success Metrics
- {Metric 1}: {Current} → {Target}
- {Metric 2}: {Current} → {Target}
## Implementation
{3-5 bullet points: What needs to change?}
## Non-Goals
{What are we explicitly NOT doing in v1?}
Output: Feature spec markdown
Use skill: linear-manager
Format:
export LINEAR_API_KEY={key_from_arsenal/.env}
# Get team ID
.claude/skills/linear-manager/scripts/get_teams.sh
# Create ticket
.claude/skills/linear-manager/scripts/create_issue.sh \
--title "{Concise title with key metrics/changes}" \
--team-id "{team-uuid}" \
--priority "{high/medium/low}" \
--description "{Feature spec from Step 3}"
Title format: "{Action}: {Key change} ({Metric})"
Priority guide:
Output: Linear ticket URL (CODEL-XXX)
This is where PMs fail. They create elaborate tickets without asking:
Read the ticket and ask:
If >1 sprint: → Challenge: "Why can't we ship Phase 1 alone?"
Red flags:
If optimizing for outliers: → Challenge: "Should we solve for typical users first?"
Principle: Ship to learn, don't build to guess
Calculate: (Value delivered) / (Eng weeks spent)
## 🚨 TICKET AUDIT (PM's Boss Perspective)
### Original Scope
- **Effort:** {X sprints / Y eng weeks}
- **Value:** {Expected impact}
- **Phases:** {Number}
### Critical Questions
1. **{Question 1}** - {Challenge assumption}
2. **{Question 2}** - {Challenge assumption}
3. **{Question 3}** - {Challenge assumption}
### What to Cut
❌ **Phase X:** {Why this is premature optimization}
❌ **Feature Y:** {Why this solves theoretical problem}
❌ **Infrastructure Z:** {Why this is overengineering}
### 80/20 Solution
✅ **Ship ONLY:** {Minimal scope}
✅ **Effort:** {Reduced effort}
✅ **Value:** {80% of original value}
### Revised Scope
{Simplified ticket description}
### Decision Gate
**After {timeframe}, measure:**
- {Metric 1}
- {Metric 2}
**Then decide:**
- ✅ If {condition} → Ship and move on
- ✅ If {condition} → Consider Phase 2
- ✅ If {condition} → Rollback
### Cost/Benefit
- **Original:** {X weeks} for {Y value} = {Z ROI}
- **Simplified:** {A weeks} for {B value} = **{C ROI}** (better)
# Use therapist-data-scientist skill
# Query: message_reactions table
# Output: codel_1on1_reactions_analysis.md
Key findings:
Analysis:
Priority: 🔥 HIGH IMPACT + LOW EFFORT = SHIP NOW
## Problem
Positive Reinforcement (🌟) is highest-performing message type,
but 6-hour cooldown limits coverage to ~5-10% of positive moments.
## Proposed Solution (MVP)
Reduce cooldown from 6 hours to 1 hour.
## Success Metrics
- PR volume: 2-3x increase
- Love rate: Maintain >80%
- No spam complaints
## Implementation
1. Change SQL condition: `last_6_hours` → `last_1_hour`
2. Deploy to staging (3 days)
3. Deploy to prod gradual rollout (25%→50%→100%)
4. Measure for 4 weeks
## Non-Goals
- ❌ Expanding to Medium emotional depth (Phase 2)
- ❌ Variety tracking infrastructure (Phase 3)
- ❌ Additional affect categories (Phase 4)
.claude/skills/linear-manager/scripts/create_issue.sh \
--title "Reduce PR cooldown from 6h to 1h (2-3x increase)" \
--team-id "cf35cf6c-5d97-4123-a8d3-0f257364a795" \
--priority "high" \
--description "{spec from Step 3}"
Output: CODEL-803 created ✅
PM initially proposed:
Audit findings:
Revised scope: Ship ONLY Phase 1
Decision gate: Measure for 4 weeks, then decide on Phase 2
Before considering your work done:
Analysis skills:
sql-reader - Query production datafunnel-analysis - User activation funnel (use for retention/activation questions)therapist-data-scientist - Calculate therapeutic metricsproduct-analytics - General analysis frameworkOutput skills:
feature-spec-writer - Structure requirementslinear-manager - Create ticketsA complete pm-analyst run produces:
Analysis: {topic}_analysis.md
Audit: {topic}_audit.md OR append to analysis
Linear ticket: CODEL-XXX
Why this skill exists:
Product managers often:
This skill enforces:
The philosophy:
"Perfect is the enemy of shipped. Ship 80% of value at 20% of complexity. Measure. Iterate."
# Step 1: Analyze
# Use sql-reader or therapist-data-scientist
# Output: {topic}_analysis.md
# Step 2: Identify top opportunity
# Manual: Review analysis, pick #1 insight
# Step 3+4: Spec + Create ticket
export LINEAR_API_KEY={from arsenal/.env}
.claude/skills/linear-manager/scripts/get_teams.sh
.claude/skills/linear-manager/scripts/create_issue.sh \
--title "{concise with metrics}" \
--team-id "{uuid}" \
--priority "{high/med/low}" \
--description "{feature spec}"
# Step 5: Audit
# Review ticket through "PM's boss" lens
# Cut scope to 80/20 solution
# Add decision gate for Phase 2
Remember: The best PMs ship small and learn fast. Avoid "big design up front."