{
  "markdown": "# claude-interview-mode\n\nAn MCP server that turns Claude into a structured interviewer — and **gets smarter with every conversation**. Each interview feeds a shared evolution system where checkpoints are scored, ranked, and recommended based on real usage patterns across all users.\n\n## The Evolution System\n\nThis isn't just an interview tool. It's a **collectively evolving knowledge system**.\n\nEvery time anyone runs an interview in a category (e.g., \"saas-pricing\"), the system learns:\n\n```\nSession 1:  You explore freely → decisions become new checkpoints\nSession 2:  Checkpoints load → Claude prioritizes what matters\nSession 5:  Bayesian scores stabilize → the interview path optimizes itself\nSession 20: Community patterns emerge → everyone benefits from collective experience\n```\n\n### How evolution works\n\n**1. Checkpoint Discovery** — When a decision is made during an interview, its topic is automatically registered as a new checkpoint. After just a few sessions, the system knows what topics matter for each category.\n\n**2. Bayesian Scoring** — Each checkpoint tracks how often it's covered and how often it leads to a decision. The score uses Bayesian smoothing to handle sparse data:\n\n```\ndecision_rate = (decisions + 0.6) / (times_covered + 2)\n```\n\nThe prior (0.6/2 = 30% base rate) ensures new checkpoints start with a reasonable score. After ~5 sessions, real data dominates.\n\n**3. Composite Ranking** — Checkpoints are ranked by a composite score combining decision-leading effectiveness (70%) and usage frequency (30%):\n\n```\ncomposite = decision_rate × 0.7 + normalized_usage × 0.3\n```\n\nHigh-scoring checkpoints are the ones that consistently lead to concrete decisions — not just topics that get discussed.\n\n**4. Recommended Path** — The system computes an optimal interview path: checkpoints with `decision_rate > 0.2`, sorted by their average position in past sessions. This tells Claude not just *what* to ask, but *when* to ask it.\n\n**5. Community Evolution** — All metadata flows to a shared database. When you interview about \"api-design\", you benefit from every other user who interviewed about \"api-design\" before you. The checkpoints, scores, and paths evolve collectively.\n\n### What gets shared (and what doesn't)\n\n| Shared (metadata only) | Never shared |\n|------------------------|--------------|\n| Category names (e.g., \"saas-pricing\") | Your actual questions and answers |\n| Checkpoint names (e.g., \"pricing-model\") | Decision details and reasoning |\n| Usage counts, scores, positions | Any personal or project-specific content |\n\n## What it does\n\n- **Claude drives the interview** — asks questions, proposes options with reasoning, challenges assumptions\n- **Tracks Q&As and decisions** — structured records with timestamps\n- **Evolving checkpoints** — learns what topics matter per category, ranked by Bayesian effectiveness scores\n- **Recommended paths** — suggests the optimal order to explore topics based on past interview patterns\n- **Concurrent sessions** — supports multiple interviews running in parallel\n- **Privacy-first** — only anonymous metadata (categories, checkpoint names, counts) goes to the shared database\n\n## Install\n\n```bash\nnpx claude-interview-mode\n```\n\nOr install globally:\n\n```bash\nnpm install -g claude-interview-mode\n```\n\n## Setup with Claude Code\n\nAdd to your project's `.mcp.json`:\n\n```json\n{\n  \"mcpServers\": {\n    \"interview-mode\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"claude-interview-mode\"]\n    }\n  }\n}\n```\n\nRestart your Claude Code session to load the MCP server. That's it — the evolution system starts working immediately via a shared community database.\n\n### Optional: Your own Supabase\n\nBy default, checkpoint data is stored in a shared community Supabase instance. If you want your own private database:\n\n```json\n{\n  \"mcpServers\": {\n    \"interview-mode\": {\n      \"type\": \"stdio\",\n      \"command\": \"npx\",\n      \"args\": [\"-y\", \"claude-interview-mode\"],\n      \"env\": {\n        \"SUPABASE_URL\": \"https://your-project.supabase.co\",\n        \"SUPABASE_ANON_KEY\": \"your-anon-key\"\n      }\n    }\n  }\n}\n```\n\nThen run `supabase/schema.sql` in your Supabase SQL Editor to create the tables.\n\n## Usage\n\nStart an interview with Claude Code:\n\n```\n> Let's do an interview about my SaaS pricing strategy\n```\n\nClaude will lead the conversation. As the interview progresses:\n- Each Q&A and decision is recorded with checkpoint coverage\n- At the end, metadata is uploaded to evolve the system\n- Next time anyone interviews in the same category, the improved checkpoints are loaded\n\n### Tools\n\n| Tool | Description |\n|------|-------------|\n| `start_interview` | Begin a session — loads scored checkpoints and recommended path |\n| `record` | Record a Q&A or decision, with checkpoint coverage tracking |\n| `get_context` | Review progress, see uncovered checkpoints ranked by score |\n| `end_interview` | End session, upload metadata, evolve the checkpoint system |\n\n## Architecture\n\n```\nYou ←→ Claude ←→ MCP Server (interview-mode)\n                      │\n                      ├─ read (anon key, read-only)\n                      │     └→ checkpoints, scores, patterns\n                      │\n                      └─ write (Edge Function, validated)\n                            └→ metadata, checkpoint updates, score recalculation\n                      │\n               Supabase (shared community DB)\n```\n\n**4 database tables power the evolution:**\n\n| Table | Purpose |\n|-------|---------|\n| `checkpoints` | Checkpoint dictionary per category (name, usage count, decision count) |\n| `checkpoint_scores` | Bayesian scores per checkpoint (decision rate, avg position, samples) |\n| `interview_patterns` | Coverage sequences per session (which checkpoints, in what order) |\n| `interview_metadata` | Session summaries (category, counts, duration) |\n\n**Security:**\n- Anon key is read-only (SELECT only via RLS)\n- All writes go through an Edge Function with input validation and spam defense\n- Empty interviews, implausible rates, and oversized payloads are rejected\n\n## Development\n\n```bash\ngit clone https://github.com/teabagkim/claude-interview-mode.git\ncd claude-interview-mode\nnpm install\nnpm run build    # TypeScript → dist/index.js\nnpm run dev      # Watch mode\n```\n\n## License\n\nMIT\n",
  "bytes": 6269,
  "sha": "9f594b3f083bfb9edf2fba1ebfea1c8c8bf1a889a26a6ade79b24b71f2f37bf5",
  "repo_slug": "teabagkim/claude-interview-mode",
  "fonte": "repo",
  "truncated": false,
  "api": "https://agentalog.com/api/listings/mcp_io_github_teabagkim_interview_mode_9abc41ab/readme"
}