Claude-skill-registry idea-validation

install
source · Clone the upstream repo
git clone https://github.com/majiayu000/claude-skill-registry
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/majiayu000/claude-skill-registry "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/data/idea-validation" ~/.claude/skills/majiayu000-claude-skill-registry-idea-validation && rm -rf "$T"
manifest: skills/data/idea-validation/SKILL.md
source content

Idea Validation

Understand what the user wants, ask the right questions based on project type, and create a comprehensive PRD.

Phase A: Discovery

Step 1: Identify Project Type

First, determine project type from user's description or ask directly:

question: "Какой тип проекта?"
header: "Type"
options:
  - label: "Web App (SaaS)"
    description: "Веб-приложение с UI"
  - label: "Telegram Bot"
    description: "Бот для Telegram"
  - label: "REST/GraphQL API"
    description: "Backend сервис"
  - label: "CLI Tool"
    description: "Консольная утилита"
# Other types via "Other": Mobile App, Discord Bot, Library/SDK, Data Pipeline, Browser Extension

Step 2: Brainstorm Offer

Based on complexity, offer brainstorming:

SignalRecommendation
Description < 10 wordsSuggest brainstorm
Complex type (Telegram, Mobile, Data)Suggest brainstorm
Detailed descriptionSuggest skip
User says "быстро"/"simple"Auto-skip
question: "Хочешь уточнить идею через brainstorm?"
header: "Brainstorm"
options:
  - label: "Да, давай уточним"
    description: "Детальные вопросы → полный PRD"
  - label: "Нет, идея понятна"
    description: "Быстрые вопросы → минимальный PRD"
  - label: "Частично"
    description: "Ключевые вопросы только"

Step 3: Core Questions (всегда)

Q1: Problem

question: "Какую проблему это решает?"
header: "Problem"
options: [3-4 contextual options based on idea]

Q2: Target User

question: "Кто будет этим пользоваться?"
header: "User"
options:
  - label: "Для себя"
    description: "Личное использование"
  - label: "AI агенты"
    description: "Через API/MCP"
  - label: "Команда/Бизнес"
    description: "Совместная работа"
  - label: "Публичный сервис"
    description: "Широкая аудитория"

Q3: Core Action

question: "Что первое делает пользователь?"
header: "Action"
options: [3-4 contextual options]

Q4: Success

question: "Как понять что сработало?"
header: "Success"
options: [3-4 contextual options]

Step 4: Type-Specific Questions (если brainstorm)

For Telegram Bot:

question: "Как бот взаимодействует с пользователем?"
header: "Interaction"
options:
  - label: "Команды (/start, /help)"
    description: "Структурированное взаимодействие"
  - label: "Диалог"
    description: "Свободное общение"
  - label: "Inline режим"
    description: "Поиск из любого чата"
  - label: "Кнопки/меню"
    description: "Визуальная навигация"

question: "Нужна ли база данных?"
header: "Storage"
options:
  - label: "Да, SQLite"
    description: "Простое хранение"
  - label: "Да, PostgreSQL"
    description: "Масштабируемое"
  - label: "Нет"
    description: "Stateless бот"

question: "Внешние интеграции?"
header: "APIs"
multiSelect: true
options:
  - label: "OpenAI/LLM"
  - label: "Payment (Stripe/YooKassa)"
  - label: "External APIs"
  - label: "Нет интеграций"

For Web App (SaaS):

question: "Нужна ли авторизация?"
header: "Auth"
options:
  - label: "Email + пароль"
  - label: "OAuth (Google/GitHub)"
  - label: "Magic link"
  - label: "Не нужна"

question: "Realtime функции?"
header: "Realtime"
options:
  - label: "Да, WebSocket"
  - label: "Да, Server-Sent Events"
  - label: "Нет, обычный HTTP"

For REST API:

question: "Для кого API?"
header: "Audience"
options:
  - label: "Internal"
    description: "Для своих фронтов"
  - label: "Public"
    description: "Для внешних разработчиков"
  - label: "Partner"
    description: "Для партнёров"

question: "Аутентификация?"
header: "Auth"
options:
  - label: "API Key"
  - label: "JWT"
  - label: "OAuth2"
  - label: "Без авторизации"

For CLI Tool:

question: "Как запускается?"
header: "Execution"
options:
  - label: "Одна команда"
    description: "cli do-something"
  - label: "Субкоманды"
    description: "cli cmd1, cli cmd2"
  - label: "Интерактивный"
    description: "Диалог с пользователем"

question: "Вывод?"
header: "Output"
options:
  - label: "Текст"
  - label: "JSON"
  - label: "Файлы"
  - label: "Табличный"

Step 5: Constraints (если brainstorm full)

question: "Есть ли ограничения?"
header: "Constraints"
multiSelect: true
options:
  - label: "Бесплатные сервисы only"
    description: "Без платных зависимостей"
  - label: "Быстрый MVP"
    description: "Дедлайн < 1 недели"
  - label: "Scale 1000+ пользователей"
    description: "Нужна масштабируемость"
  - label: "Нет ограничений"

Phase B: PRD Generation

Minimal PRD (простые проекты, skip brainstorm)

# {Name} PRD

## Problem
{One sentence from Q1}

## User
{From Q2}

## Core Features
- [ ] {Feature from Q3}
- [ ] {Feature 2}
- [ ] {Feature 3}

## Success Metric
{From Q4}

## Tech Stack
{Based on project type}

---
Generated: {date}
Status: Draft

Standard PRD (средние проекты, partial brainstorm)

# {Name} PRD

## Problem
{One sentence from Q1}

## User
{From Q2 with context}

## Product Type
{Type} — {type-specific details}

## Core Features (MVP)
1. **{Feature Name}**
   - User story: As a {user}, I want to {action} so that {benefit}
   - Acceptance criteria:
     - [ ] {Criterion 1}
     - [ ] {Criterion 2}

2. **{Feature 2}**
   ...

## Non-Goals
- {What we're NOT building}

## Success Metrics
- **Primary:** {From Q4}

## Tech Stack
{Based on project type and answers}

## Dependencies
- {External APIs if any}
- {Third-party services}

---
Generated: {date}
Status: Draft

Full PRD (сложные проекты, full brainstorm)

# {Name} — Product Requirements Document

## Overview
{Brief description of what we're building and why}

## Problem Statement
{Detailed problem from Q1 with context}

## Target Users
- **Primary persona:** {From Q2}
- **Use context:** {When/where they use this}
- **User volume:** {Expected scale}

## Product Type
{Type}

### Type-Specific Requirements
{Section content varies by project type - from type-specific questions}

## Core Features (MVP)

### Feature 1: {Name}
- **User story:** As a {user}, I want to {action} so that {benefit}
- **Acceptance criteria:**
  - [ ] {Criterion 1}
  - [ ] {Criterion 2}
  - [ ] {Criterion 3}
- **Priority:** P0

### Feature 2: {Name}
...

## Non-Goals (Explicitly Out of Scope)
- Not doing {X} because {Y}
- Not doing {Z} in MVP, maybe later

## Success Metrics
- **Primary:** {From Q4}
- **Secondary:** {Supporting metrics}

## Technical Constraints
- **Hosting:** {Where it runs}
- **Budget:** {Free tier / paid services}
- **Performance:** {Latency/throughput requirements}
- **Security:** {Auth, encryption, compliance}

## Dependencies
- **External APIs:** {list}
- **Third-party services:** {list}

## Risks & Mitigations
- Risk 1 → Mitigation
- Risk 2 → Mitigation

---
Generated: {date}
Status: Draft

PRD Selection Logic

Project TypeDefault PRD
CLI ToolMinimal
Simple APIMinimal
Web AppStandard
Telegram BotStandard
Mobile AppFull
Data PipelineFull
SaaS with AuthFull

Override:

  • User chose "skip brainstorm" → Minimal
  • User chose "partial" → Standard
  • User chose "full brainstorm" → Full

After PRD Creation

  1. Validate PRD:

    python3 scripts/validate_prd.py --path docs/PRD.md
    
  2. Report to user:

    PRD saved to docs/PRD.md
    
    Summary:
    - Type: {project type}
    - Features: {count}
    - Complexity: {minimal/standard/full}
    
    Next: Task[rust-project-init] or Task[python-project-init]
    

Rules

  • Ask type first — determines question flow
  • One question at a time — don't overwhelm
  • Adaptive depth — simple projects get simple PRD
  • No guessing — if unclear, ask
  • Save PRD.md — always persist
  • Validate — run validate_prd.py after creation