根据PRD文档、原型图和资源文件,构建完整可投产的全栈Web应用。处理完整流程:系统设计...
GLM-V PRD-to-App: Full-Stack 应用程序构建器.是一项面向实际任务的技能,主要用于Language : 用用户使用的相同语言响应. 代码注释应该匹配. . 构建一个完整,部署的网络应用程序,来自 PRD + 原型。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。
实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。
执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。
语言:使用用户所用的相同语言进行响应。代码注释也须保持一致。
基于 PRD + 原型图 + 资源文件,构建一个完整且已部署的 Web 应用程序。
最终成果必须可通过单条命令 bash /workspace/start.sh 完全可复现。
在开始任何开发工作之前,首先需全面理解手头所拥有的材料。
/workspace/prd.md ← 产品需求文档(PRD) /workspace/prototypes/*.jpg ← UI 原型图(视觉事实依据) /workspace/resources/**/* ← 图片、视频、图标及其他资源文件
若材料位于其他路径,请相应调整。务必通读 PRD 全文。
对每一张原型图执行以下操作:
逐张读取图像:使用 Read 工具——你具备多模态能力,请直接审视图像本身。
对每张图像,记录以下信息:
构建一份页面映射图,清晰展示各原型页面之间的导航流向。
列出 /workspace/resources/ 下所有文件,并逐一标注其在原型图中出现的位置。
每个资源文件都必须在最终应用中于对应位置被实际使用。
在 /workspace/docs/design.md 生成一份全面的设计文档。
对每个实体,明确指定以下内容:
示例:
products 表: id SERIAL PRIMARY KEY name VARCHAR(200) NOT NULL ← 来自商品卡片标题 price DECIMAL(10,2) NOT NULL ← 来自商品卡片价格标签 image_url TEXT NOT NULL ← 来自商品卡片图片 category_id INTEGER REFERENCES categories(id) ← 来自分类筛选器 ...
针对每个页面交互行为,定义对应的 API 接口:
根据 PRD 复杂度选择技术栈。推荐默认选项如下:
| 层级 | 选项 | 适用场景 |
|---|---|---|
| 前端 | React + TypeScript + Vite | 单页应用(SPA)默认选择 |
| 前端 | Next.js | 需要服务端渲染(SSR)或 SEO 支持时 |
| 样式 | Tailwind CSS | 默认选择 |
| 后端 | Node.js + Express | 简单 API 场景 |
| 后端 | Python + FastAPI | PRD 中明确提及 Python 时 |
| 数据库 | SQLite | 简单应用,表数量 <10 张 |
| 数据库 | PostgreSQL | 复杂应用,含多层关系 |
| ORM | Prisma(Node)/ SQLAlchemy(Python) | 与后端语言匹配 |
请记录所选技术栈及其选用理由。
/workspace/ ├── frontend/ ← 或 client/ │ ├── src/ │ │ ├── components/ │ │ ├── pages/ │ │ ├── hooks/ │ │ ├── services/ ← API 客户端 │ │ ├── types/ │ │ └── assets/ ← 从 /workspace/resources 复制而来 │ └── ... ├── backend/ ← 或 server/ │ ├── src/ │ │ ├── routes/ │ │ ├── models/ │ │ ├── controllers/ │ │ ├── middleware/ │ │ └── seed/ │ └── ... ├── docs/ │ ├── design.md │ └── README.md ├── start.sh └── prd.md
种子数据至关重要——它确保应用首次启动即呈现真实感。
从原型图中提取:原型图中所有可见文字、图片、数字,均须出现在种子数据中。请再次逐张读取原型图并转录全部内容。
全覆盖原则:
使用资源文件:将 /workspace/resources/ 中的资源文件(图片、视频、图标等)映射至种子数据条目。使用相对路径,或将文件复制至 public/static 目录。
禁止使用占位内容:不得使用 “Lorem ipsum”、不得使用 “Test Item 1”、不得使用 placeholder.com 类占位图。
覆盖全部状态:需包含用于验证空状态、加载状态、错误场景等的数据,且需严格遵循 PRD 规定。
将种子数据保存为以下任一格式:
存放路径为 /workspace/backend/src/seed/(或等效路径)。
针对设计文档中定义的每个接口:
此阶段视觉保真度最为关键。原型图是唯一权威参考。
在构建组件前,先确立以下基础:
对每一张原型图,按顺序执行以下步骤:
/workspace/resources/ 下所有资源文件复制至前端 assets 目录该阶段是区分优秀实现与卓越实现的关键。 请对每个页面重复执行本循环。
使用 Playwright 捕获正在运行的应用界面:
python ${SKILL_DIR}/scripts/render_page.py
--url "http://localhost:3000/page-path"
--output "/workspace/docs/screenshots/page_name.png"
--width 1280
并排读取原型图与截图:
/workspace/prototypes/ 下的原型图对每一处差异:
每页最多执行 3 轮迭代。优先处理影响最显著的差异项。
运行 API 健康检查脚本,验证所有接口:
python ${SKILL_DIR}/scripts/check_api.py
--base-url "http://localhost:3000/api"
--endpoints-file "/workspace/docs/endpoints.json"
或手动使用 curl 测试各接口:
curl -s http://localhost:3000/api/products | head -c 200
遍历 PRD 中定义的所有用户流程:
http://localhost:3000 打开应用解决集成问题:CORS 错误、API 地址不匹配、数据格式不一致等。
生成 /workspace/start.sh——一条命令即可从零开始完成全部部署。
该脚本必须满足以下条件:
http://localhost:3000 可访问#!/bin/bash set -e echo "=== PRD-to-App:启动部署 ===" # 1. 系统依赖 echo "[1/7] 检查系统依赖..." # 若缺失则安装 Node.js、npm 等 # 若需要则安装数据库 # 2. 后端初始化 echo "[2/7] 初始化后端..." cd /workspace/backend npm install # 或 pip install -r requirements.txt # 3. 数据库初始化 echo "[3/7] 初始化数据库..." # 删除现有数据库 / 重置 # 执行迁移 # 加载种子数据 # 4. 前端初始化 echo "[4/7] 初始化前端..." cd /workspace/frontend npm install # 5. 复制资源文件 echo "[5/7] 复制资源文件..." # cp -r /workspace/resources/* /workspace/frontend/public/assets/ # 6. 启动后端 echo "[6/7] 启动后端服务..." cd /workspace/backend npm run dev & # 或等效命令 BACKEND_PID=$! # 7. 启动前端 echo "[7/7] 启动前端..." cd /workspace/frontend PORT=3000 npm run dev & FRONTEND_PID=$! echo "" echo "=== 应用已在 http://localhost:3000 运行 ===" echo "后端 PID:$BACKEND_PID" echo "前端 PID:$FRONTEND_PID" echo "停止命令:kill $BACKEND_PID $FRONTEND_PID" wait
生成 start.sh 后执行以下步骤:
chmod +x /workspace/start.shbash /workspace/start.shhttp://localhost:3000 是否可正常响应/workspace/docs/design.md)该文档已在阶段 1 创建——请根据实现过程中发生的变更更新以下内容:
/workspace/README.md)# [项目名称] ## 概述 [源自 PRD 的产品概述] ## 技术栈 - 前端:... - 后端:... - 数据库:... ## 快速启动 ```bash bash start.sh ``` 然后访问 http://localhost:3000 ## 项目结构 [目录树] ## 数据库 [Schema 概览、如何重新播种] ## API 参考 [关键接口]
在宣告完成前,请逐项确认:
bash /workspace/start.sh 在干净环境中可成功运行http://localhost:3000 正常访问原型图为唯一真理——当 PRD 文本与原型图存在冲突时,视觉/布局决策以原型图为准。
数据不得走捷径——原型图中所有可见内容,必须经由 API 从数据库获取;前端组件中严禁硬编码数据。
完整实现——每个页面、每个功能、每个交互行为都必须实现。不可跳过所谓“次要”功能,不可将多个独立页面强行合并。
资源文件必须使用——若原型图中展示了某张图片,且 /workspace/resources/ 中存在对应文件,则必须使用该文件,不得替换为占位图链接。
可复现性——start.sh 必须能从绝对零状态运行成功。若需 Node 18+,则脚本需自行安装 Node 18+;若需 PostgreSQL,则脚本需自行部署 PostgreSQL。
以验证代替假设——使用视觉验证循环(阶段 5)实际比对你产出的结果与原型图;使用 API 检查工具验证接口;运行 start.sh 验证部署流程。
相关专题
热门下载
相关下载
精品课程
共6课时 | 54.7万人学习
共89课时 | 133.9万人学习
共49课时 | 82.5万人学习
最新文章