prd-to-app
Skill6 starsChanged 3 months agoMITView on GitHub
Build a complete, production-ready full-stack web application from PRD documents, prototype images, and resource files. Handles the entire pipeline: system design, database schema, seed data, backend API, frontend UI, visual verification against prototypes, and deployment script generation.
In this repository59 other files it gives its agents.
- skills/chronos/references/AGENTS.mdAGENTS.md
- api-contract-testingSkill
- api-doc-generatorSkill
- canonSkill
- censorSkill
- changelog-generatorSkill
- chronosSkill
- code-reviewSkill
- commit-lintSkill
- commit-message-writerSkill
- coverage-analyzerSkill
- csv-proSkill
- data-analysisSkill
- deweySkill
- diagram-makerSkill
- doc-compareSkill
- docs-productSkill
- docs-projectSkill
- docs-systemSkill
- dsh-runnerSkill
- frontend-a11ySkill
- frontend-design-tasteSkill
- frontend-perfectionSkill
- frontend-performanceSkill
- frontend-testingSkill
- github-repo-hygieneSkill
- long-running-agent-workflowSkill
- mermaid-to-imageSkill
- mobile-frontendSkill
- pdf-report-builderSkill
- plan-skillSkill
- presentation-craftSkill
- presentation-engineeringSkill
- presentation-makerSkill
- raster-to-svgSkill
- reddit-karmaSkill
- repo-community-filesSkill
- repo-metadata-healthSkill
- repo-readme-assetsSkill
- repo-social-previewSkill
- secret-scannerSkill
- security-reviewSkill
- seo-auditSkill
- seo-contentSkill
- seo-crawlSkill
- seo-schemaSkill
- seo-toolkitSkill
- skill-feedbackSkill
- skill-forgeSkill
- skill-suggesterSkill
- sql-helperSkill
- systematic-debuggerSkill
- test-generatorSkill
- test-graphicsSkill
- velesSkill
- version-bumperSkill
- video-script-writerSkill
- web-replicationSkill
- web-scraperSkill
The file
We split this skill into the rules it gives an agent
11 rules. About 0 are common, 10 are distinctive, and 1 is very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈10
Distinctive · estimate
This author's own choices. Worth a look.
1
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 39
Before anything else, understand what you're working with.
- Distinctive: line 49
If the materials are in a different location, adapt accordingly.
- Distinctive: line 62
Component inventory: every button, form, card, table, list, nav element
- Distinctive: line 63
Content inventory: all visible text, numbers, labels, placeholder content
- Distinctive: line 74
Every resource file must be used in the final application where relevant.
- Distinctive: line 86
All fields with types, constraints, defaults
- Distinctive: line 128
Extract from prototypes: Every piece of visible text, image, number in the prototype images must appear in seed data.
- Very specific: line 130
Complete coverage: Every list/table/card/dropdown must match prototype content exactly.
- Distinctive: line 169
Start local server, capture with Playwright:
- Distinctive: line 186
Read prototype image and screenshot side by side.
- Distinctive: line 241
Do not use for a small isolated UI change or documentation-only task.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
PRD-to-App: Full-Stack Application Builder
Language: Respond in the same language the user uses. Code comments should match.
Build a complete, deployed web application from PRD + prototypes + resources.
The result must be fully reproducible via a single bash start.sh.
Origin: Adapted from zai-org/GLM-skills/glmv-prd-to-app (Apache 2.0).
ZHIPU API dependencies removed; replaced with Playwright + look_at for prototype analysis.
Phase 0: Material Discovery & Analysis
Before anything else, understand what you're working with.
0a. Locate all inputs
./prd.md ← Product requirement document
./prototypes/*.jpg|*.png ← UI prototype images (the visual truth)
./resources/**/* ← Images, videos, icons, and other assetsIf the materials are in a different location, adapt accordingly. Read the PRD fully.
0b. Deep prototype analysis
For every prototype image:
- Read the image using the
look_attool (orReadtool for images) — examine it directly. Extract: page identity, layout structure, component inventory, content inventory, color extraction (hex values), typography, interactive states, data patterns. - For each image, document:
- Page identity: which page/view this represents
- Layout structure: header, sidebar, main content, footer, modals
- Component inventory: every button, form, card, table, list, nav element
- Content inventory: all visible text, numbers, labels, placeholder content
- Color extraction: primary, secondary, accent, background, text colors (hex values)
- Typography: font sizes, weights, hierarchy observed
- Interactive states: hover effects, active tabs, selected items, toggles
- Data patterns: what data populates lists/tables/cards — this drives seed data
- Build a page map showing navigation flow between prototype pages.
0c. Resource inventory
List all files in ./resources/ and map each to where it appears in the prototypes.
Every resource file must be used in the final application where relevant.
Phase 1: System Design Document
Produce a comprehensive design document at ./docs/design.md.
1a. Data Model
For each entity, specify:
- Table/collection name
- All fields with types, constraints, defaults
- Relationships (foreign keys, many-to-many)
- Indexes needed for query patterns
- Content mapping: which prototype elements map to which fields
1b. API Design
For every page interaction, define an API endpoint:
- Method + path
- Request params/body schema
- Response schema with example
- Which prototype interaction triggers this API
- Error responses
1c. Frontend Architecture
- Component hierarchy (tree structure)
- Route definitions mapping to prototype pages
- State management approach
- How each prototype page maps to components
1d. Technology Stack
Choose based on PRD complexity:
| Layer | Choice | When to use |
| Frontend | React + TypeScript + Vite | Default for SPAs |
| Frontend | Next.js | If SSR/SEO needed |
| Styling | Tailwind CSS | Default |
| Backend | Node.js + Express | Simple APIs |
| Backend | Python + FastAPI | If PRD mentions Python |
| Database | SQLite | Simple apps, <10 tables |
| Database | PostgreSQL | Complex apps, relationships |
| ORM | Prisma (Node) / SQLAlchemy (Python) | Match backend |
Phase 2: Seed Data Generation
Rules
- Extract from prototypes: Every piece of visible text, image, number in the prototype images must appear in seed data. Re-read each prototype image and transcribe content.
- Complete coverage: Every list/table/card/dropdown must match prototype content exactly.
- Use resource files: Map resource files from
./resources/to seed data entries. - No placeholders: No "Lorem ipsum", no "Test Item 1", no placeholder images.
- Support all states: Include data for empty states, loaded states, error scenarios.
Phase 3: Backend Implementation
3a. Database schema — migrations with constraints, indexes, foreign keys
3b. API endpoints — route handlers, validation, error handling, curl-tested
3c. Seed data loading — idempotent re-seeding, dependency order
3d. Static file serving — backend serves resource files
Phase 4: Frontend Implementation
4a. Global styles and tokens — color variables, typography, spacing from prototypes
4b. Page-by-page implementation
For each prototype image:
- Re-read the prototype image
- Build page component matching layout exactly
- Wire up API calls
- Implement all interactions (navigation, forms, search, filter, sort, modals, states)
4c. Resource integration — copy from ./resources/, reference correctly
4d. Responsive — match prototype viewport, breakpoints if mobile views shown
Phase 5: Visual Verification Loop
Repeat for every page. Max 3 iterations.
5a. Render page to screenshot
Start local server, capture with Playwright:
python3 -c "
from playwright.sync_api import sync_playwright
with sync_playwright() as p:
browser = p.chromium.launch()
page = browser.new_page(viewport={'width': 1280, 'height': 800})
page.goto('http://localhost:3000/page-path')
page.wait_for_load_state('networkidle')
page.screenshot(path='docs/screenshots/page_name.png', full_page=True)
browser.close()
"5b. Visual comparison
Read prototype image and screenshot side by side. Compare:
- Layout, colors, typography, content, spacing, images, components
5c. Fix discrepancies → re-render → re-compare
Phase 6: Integration Testing
6a. API health check — curl each endpoint, verify status codes
6b. E2E flow — walk through every user flow from PRD
6c. Fix issues — CORS, URL mismatches, data format problems
Phase 7: Deployment Script
Generate ./start.sh — fully self-contained, works from absolute zero.
Requirements: install deps → setup DB → migrations → seed → build frontend → start both → app at :3000
Phase 8: Documentation
./docs/design.md— final architecture, data model, API reference./README.md— overview, stack, quick start, structure
Deliverables Checklist
- All PRD features implemented
- All prototype pages built
- Visual match verified via screenshots
- All resources used
- Seed data matches prototypes
- All API endpoints working
- All interactions functional
bash start.shworks from clean state- Documentation complete
Critical Principles
- Prototypes are truth — prototype wins over PRD text for visual/layout decisions
- No shortcuts on data — all visible content from database via APIs
- Complete implementation — every page, feature, interaction
- Resources must be used — matching files from
./resources/ - Reproducibility —
start.shworks from absolute zero - Verify, don't assume — screenshot comparison + API checks + startup test
Boundaries
- Do not use for a small isolated UI change or documentation-only task.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

