AI workspace for product managers to turn vague ideas into Requirement Specs, PRDs, demo-ready HTML prototypes, consistency reports, and targeted iteration plans.
PRD Pilot is built for product managers, indie builders, and small teams that need to move from a vague idea to a reviewable solution quickly.
Most generators can output a PRD or a mockup, but the workflow usually breaks when:
- the PRD and demo drift apart
- key pages or flows go missing
- feedback turns into a full rewrite
PRD Pilot keeps one shared Requirement Spec through generation, validation, and iteration so the output stays aligned.
| Requirement Spec | Demo Preview | Consistency Check |
|---|---|---|
![]() |
![]() |
![]() |
| PRD Draft | Targeted Iteration | Home Workspace |
|---|---|---|
![]() |
![]() |
![]() |
flowchart LR
A["Input idea"] --> B["Structure Requirement Spec"]
B --> C["Generate PRD"]
B --> D["Generate Demo plan + HTML"]
B --> E["Generate Prototype Outline"]
D --> F["Demo quality gate"]
C --> G["Consistency Check"]
E --> G
F --> G
G --> H["Targeted Iteration"]
H --> B
PRD Pilot first structures user input into a single internal spec:
product_nameproduct_typetarget_usersuser_pain_pointscore_scenarioskey_featuresprimary_pagesuser_flowstyle_preferenceconstraintssuccess_criteria
This spec becomes the source of truth for generation, checks, and iteration.
PRD: Chinese Markdown draft for reviewDemo: single-file HTML prototype for preview and downloadPrototype Outline: structure, flow, and validation goals
The demo pipeline validates:
- HTML completeness
- key button presence
- interaction signals
- main page connectivity
- result and feedback state coverage
If quality fails, PRD Pilot attempts one repair pass before returning a structured error.
Built-in checks cover:
- page coverage
- feature coverage
- flow connectivity
- naming consistency
- prototype alignment
- scenario coverage
Reports include:
- severity
- evidence
- issue list
- repair actions that can be mapped into targeted iteration
Instead of regenerating everything, PRD Pilot supports scoped updates such as:
- add page
- modify user
- remove feature
- adjust layout
- change style
- improve data density
- simplify PRD
- clarify flow
Each iteration returns:
change_summarychanged_sectionsaffected_pages
PRD Pilot now officially includes:
- thin MCP service in
mcp/ - Claude Code skill in
.claude/skills/prd-pilot/SKILL.md - shared
use_caseslayer used by Web API, MCP, and tests
See docs/integration.md for setup details.
Standard cases are included in prd-pilot/docs/examples/:
git clone https://github.com/156181679-dev/prd-pilot.git
cd prd-pilot/prd-pilot/backend
pip install -r requirements.txt
copy .env.example .env
python main.pyExample .env:
OPENAI_PROVIDER=deepseek
OPENAI_API_KEY=your_deepseek_api_key_here
OPENAI_BASE_URL=https://api.deepseek.com/v1
OPENAI_MODEL=deepseek-chat
OPENAI_MAX_TOKENS=0
APP_HOST=127.0.0.1
APP_PORT=8000cd ../frontend
npm install
npm run devThe frontend reads VITE_API_BASE_URL if you want to override the default /api path. In local dev, Vite proxies /api to http://127.0.0.1:8000.
- Frontend: http://127.0.0.1:5173
- Backend health: http://127.0.0.1:8000/api/health
- API docs: http://127.0.0.1:8000/docs
Base URL: http://127.0.0.1:8000
| Endpoint | Method | Description |
|---|---|---|
/api/health |
GET | Health check |
/api/model-options |
GET | List available models |
/api/test-model-config |
POST | Test API key + model connection |
/api/structure-requirement |
POST | Generate Requirement Spec from brief |
/api/generate-prd |
POST | Generate PRD from Requirement Spec |
/api/generate-demo |
POST | Generate HTML Demo from Requirement Spec |
/api/check-consistency |
POST | Cross-check PRD + Demo against Spec |
/api/iterate-prd |
POST | Scoped PRD update |
/api/iterate-demo |
POST | Scoped Demo update |
generate-demo and iterate-demo return:
demo_qualitygeneration_meta
Structured demo-stage failures return:
error_codestageretryabledetail
The repository includes:
- backend
pytestcoverage foruse_cases, structured demo errors, and consistency output - Playwright smoke coverage for the web happy path and demo timeout path
- GitHub Actions workflow for backend tests, frontend build, and browser smoke tests
- Vue 3
- Vite
- Element Plus
- Tailwind CSS
- MarkdownIt
- VueUse
- Playwright
- FastAPI
- OpenAI-compatible API client
- Pydantic
- Python Dotenv
- FastMCP / MCP
- Pytest
.
+-- prd-pilot/
| +-- backend/
| | +-- main.py
| | +-- requirements.txt
| | +-- services/
| | | +-- llm_service.py
| | | +-- use_cases.py
| | | +-- mock_llm_service.py
| | +-- tests/
| +-- frontend/
| | +-- src/
| | | +-- App.vue
| | +-- tests/e2e/
| | +-- package.json
| | +-- vite.config.js
+-- mcp/
+-- docs/
| +-- README.zh-CN.md
| +-- integration.md
| +-- screenshots/
+-- .claude/skills/prd-pilot/
+-- .github/workflows/
+-- README.md
+-- CONTRIBUTING.md
+-- ROADMAP.md
+-- LICENSE
- prototype output is
HTML Demo + Prototype Outline - consistency checks are rule-based, not AI-score-driven
- targeted iteration is scoped, but not yet a persistent version system
- no image-based prototype generation
MIT







