product-management
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
- Check
.pm/cache/last-updated.jsonfor staleness - If >24 hours since last sync, prompt for
/pm:sync
/pm:sync Process
- Fetch all GitHub Issues with
pm:*labels viagh issue list --json - Update
.pm/requests/[issue-number].mdfor each issue - Update
last-updated.jsontimestamp
Deduplication During Gap Analysis
- Load existing issues from
.pm/requests/ - 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
- Mark gaps as:
- EXISTING (>80% match) → Show linked issue
- SIMILAR (50-80%) → Warn, ask user
- NEW (<50%) → Proceed normally
Output Format
| Gap | WINNING | Status | Match |
|-----|---------|--------|-------|
| OAuth support | 47/60 | EXISTING | #42 (95%) |
| Dark mode | 38/60 | NEW | - |
Flow Summaries
Product Analysis (/pm:analyze)
- Scan codebase for features (routes, components, APIs, models)
- Interview user for business context
- Generate inventory with technical moats and debt flags
- Save to
.pm/product/
Competitive Intelligence (/pm:landscape, /pm:scout [name])
- Research competitors via WebFetch/WebSearch
- Categorize features: Tablestakes, Differentiators, Emerging, Deprecated
- Save profiles to
.pm/competitors/
Gap Analysis (/pm:gaps)
- Load product inventory + competitor profiles
- Check staleness (>30 days → prompt refresh)
- Sync with GitHub Issues for deduplication
- Identify all gaps, score with WINNING filter
- Mark as NEW/EXISTING/SIMILAR
- Save to
.pm/gaps/[date]-analysis.md
Feature Filing (/pm:review, /pm:file)
/pm:review- Walk through gaps, decide FILE/WAIT/SKIP/pm:file- Create GitHub Issues for approved gaps (skips duplicates)- Apply labels:
pm:feature-request,winning:*,priority:*
PRD Generation (/pm:prd [feature])
- Load feature context from gap analysis or GitHub Issue
- Generate PRD: Problem, User Stories, Acceptance Criteria, etc.
- Save to
.pm/prds/[slug].md - Create GitHub Issue with PRD content as feature request
Backlog & Roadmap (/pm:backlog, /pm:roadmap)
- Fetch open issues with
pm:labels - Sort by WINNING score or RICE
- Organize into Now/Next/Later priorities
GitHub Integration
Labels (Auto-Created)
pm:feature-request pm:gap-identified pm:competitor-intel
priority:now priority:next priority:later
winning:high (40+) winning:medium (25-39) winning:low (<25)
Prerequisites
- GitHub CLI (
gh) installed and authenticated - Run
gh auth statusto verify
See references/github-labels.md for label definitions.
See references/issue-template.md for issue format.
Integration with spec-kit
This plugin handles WHAT to build and WHY (product discovery). For HOW to build it, use spec-kit:
PM Plugin → GitHub Issue → spec-kit
/pm:file Creates issue /speckit.specify
/pm:prd Creates issue /speckit.plan → /speckit.implement
The GitHub Issue IS the handoff—no separate command needed.
Staleness Handling
PM data ages. Handle proactively:
- Competitor data >30 days: Prompt refresh before gap analysis
- Gap analysis >14 days: Warn when viewing backlog
- GitHub sync >24 hours: Suggest
/pm:syncon session start
⚠️ Competitor data is 45 days old. Run `/pm:landscape` to refresh.
Additional Resources
Reference Files
references/winning-filter.md- Detailed WINNING scoring criteriareferences/github-labels.md- Label definitions and colorsreferences/issue-template.md- GitHub Issue templatereferences/data-structure.md- Complete.pm/folder structure
Example Files
examples/gap-analysis.md- Sample gap analysis outputexamples/competitor-profile.md- Sample competitor profile
More from ooiyeefei/ccc
excalidraw
Generate architecture diagrams as .excalidraw files from codebase analysis, with optional PNG/SVG export. Use when the user asks to create architecture diagrams, system diagrams, visualize codebase structure, generate excalidraw files, export excalidraw diagrams to PNG or SVG, or convert .excalidraw files to image formats.
73streak
Universal challenge tracker with flexible cadence, intelligent insights, and cross-challenge learning detection. Use when user wants to track any personal challenge - learning, habits, building, fitness, creative, or custom. Supports daily, weekly, or N-day check-ins with type-adaptive preferences, backlog, and context files.
16uat-testing
End-to-end User Acceptance Testing for web applications. Analyzes branch changes and specs to generate exhaustive test cases, sets up the local environment, executes tests via Playwright browser automation, and produces a pass/fail results report with screenshots and fix documentation. Use when the user says "run UAT", "test this feature", "UAT testing", "acceptance test", "test my branch", "generate test cases", or wants to verify a feature branch against its spec before merge.
7landing-page-gtm
Build and update high-converting SaaS landing pages with GTM-aware marketing copy, competitive positioning, and sales psychology. Use when creating new landing pages, rewriting feature cards, updating marketing copy, launching product pages, or transforming technical features into customer-facing sales language. Triggers on "build landing page", "update feature cards", "rewrite marketing copy", "create product page", "launch page", "GTM", "sales copy", "competitive positioning", or when converting product features into conversion-focused web pages.
4rethink-surveys
Design, critique, or scaffold surveys grounded in Caroline Jarrett, Dillman, and Tourangeau methods. Use when designing a new survey, critiquing an existing one, scoring or clustering responses, or turning questions into an app. Triggers on "survey", "questionnaire", "user research", "customer discovery", "intent capture", "interview script", "lint my survey", "score responses", or "how to ask better questions". When the bundled MCP server is connected, prefer its deterministic tools (`critique_survey`, `get_template`, `design_survey_session`, `score_response`, `cluster_responses`) over manual reasoning. Captures real past behavior over hypotheticals, supports text/voice/AI-interviewer modalities, and includes templates for event organizers, startup founders, and gig-economy workers.
1agentic-system-design
Prescriptive Q&A workflow for designing agentic pipelines, multi-model councils, sub-agent hierarchies, and tool-loop hardening for any domain. Use when the user asks to "design an agent", "design a multi-agent system", "should I use a council/debate", "build a [domain] review agent" (HAZOP, finance, tutorial, marketing, compliance, accounting), "real agency vs workflow", "how to add sub-agents", "AI for [domain] review", or names patterns like "orchestrator-worker", "evaluator-optimizer", "Magentic", "ReAct", "plan-and-execute", "handoffs". Walks the user through 12 stages one question at a time and emits a buildable design doc with citations. Do NOT use for general coding questions, single-shot prompt tuning, or bare "use Claude to do X" requests with no agency requirement.
1