Skill detail
product-management
PM workflow for product analysis, gaps, prioritization, PRDs, and roadmap work.
Inspect before use
Automated review checks relevance, not safety or endorsement. Read the source instructions before using this skill.
SKILL.md
The saved excerpt is a snapshot from review. The external source remains the complete and most current version.
--- name: product-management description: This skill should be used when the user asks to "analyze my product", "research competitors", "find feature gaps", "create feature request", "prioritize backlog", "generate PRD", "plan roadmap", "what should we build next", "competitive analysis", "gap analysis", "sync issues", or mentions product management workflows. Provides AI-native PM capabilities for startups with signal-based feature tracking, the WINNING prioritization filter, and GitHub Issues integration with deduplication. version: 0.2.0 --- # Product Management Skill AI-native product management for startups. Transform Claude into an expert PM that processes signals, not just feature lists. ## Core Philosophy ``` WINNING = Pain × Timing × Execution Capability ``` Filter aggressively from 50 gaps to 3-5 high-conviction priorities. Expert PMs track **signals** with confidence scores, timestamps, and velocity. ## Commands Quick Reference | Command | Purpose | |---------|---------| | `/pm:analyze` | Scan codebase + interview for product inventory | | `/pm:landscape` | Research competitor landscape | | `/pm:gaps` | Run gap analysis with WINNING filter | | `/pm:file` | Batch create GitHub Issues for approved gaps | | `/pm:prd` | Generate PRD and create GitHub Issue | | `/pm:sync` | Sync local cache with GitHub Issues | ## Agents This plugin provides specialized agents for autonomous tasks: | Agent | Triggers On | Purpose | |-------|-------------|---------| | `research-agent` | "research [competitor]", "scout [name]" | Deep autonomous web research | | `gap-analyst` | "find gaps", "what should we build" | Systematic gap identification with scoring | | `prd-generator` | "create PRD for [feature]" | Generate PRD + create GitHub Issue | ## Data Storage All data stored in `.pm/` folder at project root: ``` .pm/ ├── config.md # Positioning, scoring weights ├── product/ # Product inventory, architecture ├── competitors/ # Competitor profiles ├── gaps/ # Gap analyses with scores ├── requests/ # Synced GitHub Issues (for dedup) ├── prds/ # Generated PRDs └── cache/last-updated.json # Staleness tracking ``` See `references/data-structure.md` for complete file templates. ## WINNING Filter Scoring Hybrid scoring approach - Claude suggests researchable criteria, user scores domain-specific: | Criterion | Scorer | Source | |-----------|--------|--------| | Pain Intensity (1-10) | Claude | Review sentiment, support data | | Market Timing (1-10) | Claude | Search trends, competitor velocity | | Execution Capability (1-10) | User | Architecture fit, team skills | | Strategic Fit (1-10) | User | Positioning alignment | | Revenue Potential (1-10) | User | Conversion/retention impact | | Competitive Moat (1-10) | User | Defensibility once built | **Total: X/60** → Recommendation: - **40+** → FILE (high conviction) - **25-39** → WAIT (monitor) - **<25** → SKIP (not worth it) See `references/winning-filter.md` for detailed scoring criteria. ## Deduplication & Sync Prevent duplicate feature requests by syncing with GitHub Issues: ### On Session Start 1. Check `.pm/cache/last-updated.json` for staleness 2. If >24 hours since last sync, prompt for `/pm:sync` ### `/pm:sync` Process 1. Fetch all GitHub Issues with `pm:*` labels via `gh issue list --json` 2. Update `.pm/requests/[issue-number].md` for each issue 3. Update `last-updated.json` timestamp ### Deduplication During Gap Analysis 1. Load existing issues from `.pm/requests/` 2. For each new gap, fuzzy match against existing: - Title similarity (Levenshtein): 40% weight - Keyword overlap: 30% weight - Label match: 20% weight - Description similarity: 10% weight 3. Mark gaps as: - **EXISTING** (>80% match) → Show linked issue - **SIMILAR** (50-80%) → Warn, ask user - **NEW** (<50%) → Proceed normally ### Output Format ```markdown | Gap | WINNING | StatusRead the full source on GitHub (opens external page)