Version: 1.0
Architecture: Plugin-based, extensible, category-agnostic
Last Updated: May 2026
This is a complete PM interview preparation system with:
- 8 active question categories:
- Strategic (5): Product Roadmap, Portfolio, Tech Application, Conceptual, Product Sense
- Analytical (3): Goals & Metrics, Debugging & Diagnosis, Trade-offs
- 9 frameworks (MATRIX, Business Diagnosis, Capabilities Matrix, Definition-Example, MILEJPSR, CIRCLES, G.A.M.E, S.I.E.V.E, T.R.A.D.E)
- Plugin-based architecture (add new categories without touching core files)
- Two ways to drive it:
- Claude Code skills (recommended): clone, open in Claude Code, run
/pm-question,/pm-interview, or/pm-evaluate - Cowork automation (original): scheduled task generates 13 questions every morning, a Cowork project evaluates answers
- Claude Code skills (recommended): clone, open in Claude Code, run
This repo ships three Claude Code skills under .claude/skills/. They auto-load when your working directory is inside this cloned repo.
git clone https://github.com/devsandip/pm-interview-prep.git
cd pm-interview-prep
claudeThen in Claude Code:
-
/pm-question— Ask for one question. Optionally specify category and difficulty. Examples:- "Ask me a PM question."
- "Give me a hard product roadmap question."
- "/pm-question debugging easy" Defaults: random category, medium difficulty.
-
/pm-interview— Run a mock interview. Claude will ask how many questions, which categories (one, several, orall), and difficulty (ormixed). Each question is generated, answered, and evaluated in sequence, with a summary at the end. -
/pm-evaluate— Score an existing answer. Call this directly if you've already answered a question elsewhere and want feedback later. Accepts your answer as pasted text, a local file path, or a Google Drive link.
Answer formats (all supported by /pm-question, /pm-interview, and /pm-evaluate):
- Pasted text in chat.
- Local file path (
/Users/.../my-answer.md). - Google Drive link. The skill tries a public-link fetch first; if the file isn't public, it falls back to a Google Drive MCP if you have one connected, otherwise asks you to share publicly or download locally. Drive MCPs aren't bundled — users who want Drive input need to set up their own.
Where files land: Questions generated by skills are saved as questions/<category>/ON_DEMAND-DAY-MM-DD-HHMM.md. Their evaluations land as ON_DEMAND-ANSWER-MM-DD-HHMM.md in the same folder. This keeps skill-generated files separate from Cowork's daily files (DAY-MM-DD.md and ANSWER-MM-DD.md).
PrepQuestions/
├── .claude/
│ └── skills/ # Claude Code skills (auto-load when cwd is in this repo)
│ ├── pm-question/SKILL.md # /pm-question — one question
│ ├── pm-interview/SKILL.md # /pm-interview — mock interview
│ └── pm-evaluate/SKILL.md # /pm-evaluate — score an answer
│
├── _core/ # Core system files (NEVER needs updating for new categories)
│ ├── plugin-schema.md # How to create new plugins
│ ├── master-generator.md # Category-agnostic question generator
│ └── evaluator.md # Category-agnostic answer evaluator
│
├── config.yaml # Category registry (which plugins are active)
│
├── plugins/ # Self-contained category plugins
│ │
│ │ ── STRATEGIC ──
│ ├── product-roadmap/
│ │ ├── framework.md # MATRIX Framework
│ │ ├── generation-rules.md # How to generate roadmap questions
│ │ └── examples.md # 6 example questions
│ │
│ ├── portfolio/
│ │ ├── framework.md # Business Diagnosis Framework
│ │ ├── generation-rules.md # How to generate CEO/portfolio questions
│ │ └── examples.md # 3 example questions
│ │
│ ├── tech-application/
│ │ ├── framework.md # Capabilities Matrix Framework
│ │ ├── generation-rules.md # How to generate tech application questions
│ │ └── examples.md # 3 example questions
│ │
│ ├── conceptual/
│ │ ├── framework.md # Definition-Example Framework
│ │ ├── generation-rules.md # How to generate conceptual questions
│ │ └── examples.md # 5 example questions
│ │
│ ├── product-sense/
│ │ ├── framework-milejpsr.md # MILEJPSR Framework (25 min)
│ │ ├── framework-circles.md # CIRCLES Framework (20 min)
│ │ ├── generation-rules.md # How to generate product sense questions
│ │ └── examples.md # 6 example questions
│ │
│ │ ── ANALYTICAL ──
│ ├── goals-metrics/
│ │ ├── framework.md # G.A.M.E Framework
│ │ ├── generation-rules.md # How to generate metrics questions
│ │ └── examples.md # Example questions
│ │
│ ├── debugging/
│ │ ├── framework.md # S.I.E.V.E Framework (root-cause / metric drops)
│ │ ├── generation-rules.md # How to generate diagnosis questions
│ │ └── examples.md # Example questions
│ │
│ └── tradeoffs/
│ ├── framework.md # T.R.A.D.E Framework
│ ├── generation-rules.md # How to generate trade-off questions
│ └── examples.md # Example questions
│
└── questions/ # Generated questions and evaluated answers
├── product-roadmap/
│ ├── DAY-05-22.md
│ └── ANSWER-05-22.md
├── portfolio/
├── tech-application/
├── conceptual/
├── product-sense/
├── goals-metrics/
├── debugging/
└── tradeoffs/
git clone https://github.com/devsandip/pm-interview-prep.git
cd pm-interview-prepIf you also want this content in an Obsidian vault for browsing, copy the folder into your vault:
<your-vault-path>/PrepQuestions/
├── _core/
├── plugins/
├── questions/
└── config.yaml
- Open Cowork
- Create new Scheduled Task
- Name: "Daily PM Interview Question Generator"
- Schedule: Every day at 7:00 AM
- Instructions: Paste content from
_core/master-generator.md - Save
What it does:
- Reads
config.yamlto see which categories are active - For each active category:
- Loads
plugins/{category}/generation-rules.md - Generates the number of questions specified by
questions_per_dayin config (2/day for strategic categories, 1/day for analytical — 13 total) - Saves to
questions/{category}/DAY-MM-DD.md
- Loads
- Open Cowork
- Create new Project (not Scheduled Task)
- Name: "PM Interview Practice Arena"
- Custom Instructions: Paste content from
_core/evaluator.md - Save
What it does:
- You upload
questions/{category}/DAY-MM-DD.md - Evaluator loads the framework from
plugins/{category}/framework.md - Runs interactive interview with timer
- Evaluates your answer against framework rubric
- Generates
questions/{category}/ANSWER-MM-DD.mdwith score and feedback
Create these folders in your Obsidian vault:
mkdir -p questions/product-roadmap
mkdir -p questions/portfolio
mkdir -p questions/tech-application
mkdir -p questions/conceptual
mkdir -p questions/product-sense
mkdir -p questions/goals-metrics
mkdir -p questions/debugging
mkdir -p questions/tradeoffs7:00 AM: Cowork scheduled task runs
- Generates 13 questions total (2 per strategic × 5 = 10, plus 1 per analytical × 3 = 3)
- Saves to:
questions/product-roadmap/DAY-MM-DD.mdquestions/portfolio/DAY-MM-DD.mdquestions/tech-application/DAY-MM-DD.mdquestions/conceptual/DAY-MM-DD.mdquestions/product-sense/DAY-MM-DD.mdquestions/goals-metrics/DAY-MM-DD.mdquestions/debugging/DAY-MM-DD.mdquestions/tradeoffs/DAY-MM-DD.md
- Open today's question file (e.g.,
questions/product-roadmap/DAY-05-22.md) - Review the recommended framework
- Upload file to PM Interview Practice Arena (Cowork project)
- Answer the question interactively (timer running)
- Receive evaluation and feedback
- Download
ANSWER-05-22.md - Save to
questions/product-roadmap/ANSWER-05-22.md
Current configuration (8 active categories):
Strategic (5):
| Category | Questions/Day | Time Limit | Framework |
|---|---|---|---|
| Product Roadmap | 2 | 25 min | MATRIX |
| Portfolio (CEO) | 2 | 20 min | Business Diagnosis |
| Tech Application | 2 | 20 min | Capabilities Matrix |
| Conceptual | 2 | 5 min | Definition-Example |
| Product Sense | 2 | 20-25 min | MILEJPSR or CIRCLES |
Analytical (3):
| Category | Questions/Day | Time Limit | Framework |
|---|---|---|---|
| Goals & Metrics | 1 | 25 min | G.A.M.E |
| Debugging & Diagnosis | 1 | 20 min | S.I.E.V.E |
| Trade-offs | 1 | 20 min | T.R.A.D.E |
Total: 13 questions generated daily
Example: Adding RCU (Execution) questions
mkdir -p plugins/executionplugins/execution/framework.md
- Define RCU framework (Resource, Cost, User)
- Include evaluation rubric (Total: 10 points)
- Specify time management
- List common failure modes
plugins/execution/generation-rules.md
- Define question format: "You've decided to build X. How would you execute?"
- Specify selection pools (features, companies)
- Define required context
- Include quality checklist
plugins/execution/examples.md
- Provide 3-6 example questions
- Each with full context
- Follow question template
See _core/plugin-schema.md for detailed specifications and complete RCU example.
Edit config.yaml:
categories:
# ... existing categories ...
- id: execution
name: "Execution (RCU)"
active: true # Turn on
questions_per_day: 1 # Generate 1 per day
time_limit: 15
folder: "plugins/execution"mkdir -p questions/executionMaster generator will automatically:
- Detect the new category
- Generate 1 question per day
- Save to
questions/execution/DAY-MM-DD.md
Evaluator will automatically:
- Load
plugins/execution/framework.md - Evaluate answers against RCU rubric
No changes to core files needed.
To temporarily stop generating questions:
- Open
config.yaml - Find the category (e.g.,
product-sense) - Change
active: truetoactive: false - Save
Next day's generation will skip that category.
- Map the portfolio (themes × surfaces)
- Anchor sequence (Year 1/2/3)
- Tie dependencies
- Resolve Year 1 deeply
- Identify risks
- Xecute (buffer for Q&A)
Time: 25 minutes
Rubric: Map (2) + Anchor (2) + Tie (2) + Resolve (3) + Identify (1) = 10 points
- Diagnose the core constraint
- Identify Themes (2-3 strategic bets)
- Prioritize ONE to focus on
- Build specific products/initiatives
- Impact - tie to business outcomes
Time: 20 minutes
Rubric: Diagnose (2) + Themes (2) + Prioritize (2) + Build (3) + Impact (1) = 10 points
- Clarify scope (if ambiguous)
- Map technology capabilities × business problems
- Prioritize use cases (top 3, ranked)
- Deep Dive on #1 use case
- Rollout plan (Phase 1 → 2 → 3)
Time: 20 minutes
Rubric: Clarify (1) + Map (2) + Prioritize (2) + Deep Dive (4) + Rollout (1) = 10 points
- Define Each Term (60 sec)
- State the Key Distinction (60 sec)
- Give an Example (90 sec)
- When to Use Each (60 sec)
Time: 5 minutes
Rubric: Define (2) + Distinguish (3) + Example (3) + When (2) = 10 points
- Mission & Intent
- Industry Landscape (skip if short on time)
- Landscape & Segment Users (SFARU)
- Experience & Pain Points
- Judge & Prioritize Pain (SCARU)
- Propose Solutions (EAC)
- Specify Success Metrics
- Recommend
Time: 25 minutes
Rubric (6 scored components, MILE/JP collapsed for scoring): Mission (1) + Landscape & Segment (2) + Experience & Judge (2) + Propose Solutions (3) + Success Metrics (1) + Recommend (1) = 10 points
- Comprehend the Situation
- Identify the Customer
- Report the Customer's Needs
- Cut Through Prioritization
- List Solutions
- Evaluate Trade-offs
- Summarize Your Recommendation
Time: 20 minutes
Rubric: 1+2+2+1+2+1+1 = 10 points
_core/plugin-schema.md(20 KB) — Template for creating plugins_core/master-generator.md(8 KB) — Question generation logic_core/evaluator.md(13 KB) — Evaluation logicconfig.yaml(2.6 KB) — Category registry
Each category has 3 files:
framework.md(14-24 KB) — How to answer and evaluategeneration-rules.md(6-13 KB) — How to generate questionsexamples.md(varies) — Example questions
Total: 25 files in plugins/ folder (8 categories × 3 files, plus product-sense has an extra framework file for its second framework)
- Core files (
_core/master-generator.md,_core/evaluator.md) - When adding new categories
- When changing question formats
- When updating frameworks
config.yaml— When activating/deactivating categoriesplugins/{category}/framework.md— When improving a frameworkplugins/{category}/generation-rules.md— When changing question poolsplugins/{category}/examples.md— When adding better examples
Add RCU, Trade-offs, or any new category without touching core files
Each category is self-contained. Update MATRIX? Only touch plugins/product-roadmap/framework.md
Test new categories before activating (active: false in config)
New team member? Read plugin-schema.md to understand structure
Disable categories temporarily, adjust question frequency per category
- Check
config.yaml— Is categoryactive: true? - Check plugin folder exists:
plugins/{category}/ - Check all 3 files present:
framework.md,generation-rules.md,examples.md - Check Cowork scheduled task has
_core/master-generator.mdcontent
- Check question file has correct frontmatter
- Check
framework_pathpoints to correct plugin - Check framework has standardized rubric format
- Check Cowork project has
_core/evaluator.mdcontent
- Verify path in question file:
/plugins/{category}/framework.md - Check framework file exists at that path
- Check framework has required sections:
## The [N] Steps## Evaluation Rubric (Total: 10 points)## Common Failure Modes
v1.1 (May 2026) — Analytical category expansion
- Added Goals & Metrics (G.A.M.E), Debugging & Diagnosis (S.I.E.V.E), Trade-offs (T.R.A.D.E)
- 8 active categories, 9 frameworks, 13 questions/day
v1.0 (May 2026) — Initial plugin architecture release
- 5 active categories
- 6 frameworks
- Plugin-based extensibility
- Category-agnostic core files
Documentation: _core/plugin-schema.md
Questions: Reference this README
Issues: Check Troubleshooting section above
System Version: 1.0
Architecture: Plugin-based
Author: Sandip
Last Updated: May 22, 2026