Skip to content

devsandip/pm-interview-prep

Repository files navigation

PM Interview Prep System — Plugin Architecture

Version: 1.0
Architecture: Plugin-based, extensible, category-agnostic
Last Updated: May 2026


Overview

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

Quick Start with Claude Code (Skills)

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
claude

Then 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, or all), and difficulty (or mixed). 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).


Folder Structure

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/

Setup Instructions

Step 1: Clone the repo

git clone https://github.com/devsandip/pm-interview-prep.git
cd pm-interview-prep

If 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

Step 2: Set Up Cowork Question Generator

  1. Open Cowork
  2. Create new Scheduled Task
  3. Name: "Daily PM Interview Question Generator"
  4. Schedule: Every day at 7:00 AM
  5. Instructions: Paste content from _core/master-generator.md
  6. Save

What it does:

  • Reads config.yaml to see which categories are active
  • For each active category:
    • Loads plugins/{category}/generation-rules.md
    • Generates the number of questions specified by questions_per_day in config (2/day for strategic categories, 1/day for analytical — 13 total)
    • Saves to questions/{category}/DAY-MM-DD.md

Step 3: Set Up Cowork Evaluator

  1. Open Cowork
  2. Create new Project (not Scheduled Task)
  3. Name: "PM Interview Practice Arena"
  4. Custom Instructions: Paste content from _core/evaluator.md
  5. 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.md with score and feedback

Step 4: Create Question Folders

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/tradeoffs

Daily Workflow

Morning (Automatic)

7: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.md
    • questions/portfolio/DAY-MM-DD.md
    • questions/tech-application/DAY-MM-DD.md
    • questions/conceptual/DAY-MM-DD.md
    • questions/product-sense/DAY-MM-DD.md
    • questions/goals-metrics/DAY-MM-DD.md
    • questions/debugging/DAY-MM-DD.md
    • questions/tradeoffs/DAY-MM-DD.md

Practice Session (Manual)

  1. Open today's question file (e.g., questions/product-roadmap/DAY-05-22.md)
  2. Review the recommended framework
  3. Upload file to PM Interview Practice Arena (Cowork project)
  4. Answer the question interactively (timer running)
  5. Receive evaluation and feedback
  6. Download ANSWER-05-22.md
  7. Save to questions/product-roadmap/ANSWER-05-22.md

Active Categories

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


Adding a New Category

Example: Adding RCU (Execution) questions

Step 1: Create Plugin Folder

mkdir -p plugins/execution

Step 2: Create 3 Required Files

plugins/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.

Step 3: Update Config

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"

Step 4: Create Question Folder

mkdir -p questions/execution

Step 5: Done!

Master 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.


Disabling a Category

To temporarily stop generating questions:

  1. Open config.yaml
  2. Find the category (e.g., product-sense)
  3. Change active: true to active: false
  4. Save

Next day's generation will skip that category.


Framework Reference

Product Roadmap: MATRIX Framework

  • 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


Portfolio: Business Diagnosis Framework

  1. Diagnose the core constraint
  2. Identify Themes (2-3 strategic bets)
  3. Prioritize ONE to focus on
  4. Build specific products/initiatives
  5. Impact - tie to business outcomes

Time: 20 minutes
Rubric: Diagnose (2) + Themes (2) + Prioritize (2) + Build (3) + Impact (1) = 10 points


Tech Application: Capabilities Matrix Framework

  1. Clarify scope (if ambiguous)
  2. Map technology capabilities × business problems
  3. Prioritize use cases (top 3, ranked)
  4. Deep Dive on #1 use case
  5. Rollout plan (Phase 1 → 2 → 3)

Time: 20 minutes
Rubric: Clarify (1) + Map (2) + Prioritize (2) + Deep Dive (4) + Rollout (1) = 10 points


Conceptual: Definition-Example Framework

  1. Define Each Term (60 sec)
  2. State the Key Distinction (60 sec)
  3. Give an Example (90 sec)
  4. When to Use Each (60 sec)

Time: 5 minutes
Rubric: Define (2) + Distinguish (3) + Example (3) + When (2) = 10 points


Product Sense: MILEJPSR Framework

  • 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


Product Sense: CIRCLES Framework

  • 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


File Reference

Core Files (Never Update for New Categories)

  • _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 logic
  • config.yaml (2.6 KB) — Category registry

Plugin Files (Update Per Category)

Each category has 3 files:

  • framework.md (14-24 KB) — How to answer and evaluate
  • generation-rules.md (6-13 KB) — How to generate questions
  • examples.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)


Maintenance

What NEVER needs updating:

  • Core files (_core/master-generator.md, _core/evaluator.md)
  • When adding new categories
  • When changing question formats
  • When updating frameworks

What needs updating:

  • config.yaml — When activating/deactivating categories
  • plugins/{category}/framework.md — When improving a framework
  • plugins/{category}/generation-rules.md — When changing question pools
  • plugins/{category}/examples.md — When adding better examples

Benefits of This Architecture

✅ Extensible

Add RCU, Trade-offs, or any new category without touching core files

✅ Maintainable

Each category is self-contained. Update MATRIX? Only touch plugins/product-roadmap/framework.md

✅ Testable

Test new categories before activating (active: false in config)

✅ Discoverable

New team member? Read plugin-schema.md to understand structure

✅ Flexible

Disable categories temporarily, adjust question frequency per category


Troubleshooting

Question generation not working

  1. Check config.yaml — Is category active: true?
  2. Check plugin folder exists: plugins/{category}/
  3. Check all 3 files present: framework.md, generation-rules.md, examples.md
  4. Check Cowork scheduled task has _core/master-generator.md content

Evaluation not working

  1. Check question file has correct frontmatter
  2. Check framework_path points to correct plugin
  3. Check framework has standardized rubric format
  4. Check Cowork project has _core/evaluator.md content

Framework not loading

  1. Verify path in question file: /plugins/{category}/framework.md
  2. Check framework file exists at that path
  3. Check framework has required sections:
    • ## The [N] Steps
    • ## Evaluation Rubric (Total: 10 points)
    • ## Common Failure Modes

Version History

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

Support

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

About

Extensible PM interview practice system with plugin architecture - 8 categories, 9 frameworks, daily generation + evaluation via Cowork

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors