讲师中心 微信公众号
AI工具推荐 视频效率加速

glmv-prd-to-app

Polar Sponsor
爱发电 赞助
.NET 9.0

根据PRD文档、原型图和资源文件,构建完整可投产的全栈Web应用。处理完整流程:系统设计...

GLM-V PRD-to-App: Full-Stack 应用程序构建器.

功能概述

GLM-V PRD-to-App: Full-Stack 应用程序构建器.是一项面向实际任务的技能,主要用于Language : 用用户使用的相同语言响应. 代码注释应该匹配. . 构建一个完整,部署的网络应用程序,来自 PRD + 原型。它将相关步骤、工具调用和结果整理方式集中到统一流程中,帮助使用者更快完成目标并减少重复操作。

核心要点

  • 使用时应结合输入条件选择合适的执行方式,核对必要参数、依赖环境与输出内容,并按原始要求处理异常情况。
  • 该技能适合需要稳定复用相关能力的场景,可作为自动化工作流的一部分,也便于后续检查、调整和扩展。
  • 从功能定位来看,该技能强调把分散的操作要求整理成清晰、可复用的处理流程,使用户能够围绕既定目标快速准备输入、选择执行方式并获得结构化结果。

使用与执行

实际使用前应先确认任务范围、数据来源、运行环境、必要权限和关键参数,再依据技能说明逐步执行;若输入条件不完整,应先补齐信息或采用保守配置,避免因错误假设导致结果偏离需求。

结果检查与注意事项

执行过程中需要关注工具调用是否成功、接口或依赖是否可用、输出格式是否符合预期,并对异常提示、缺失字段和边界情况进行处理;涉及批量任务时,还应保存进度,避免中断后重复操作。

GLM-V PRD-to-App:全栈应用构建器

语言:使用用户所用的相同语言进行响应。代码注释也须保持一致。

基于 PRD + 原型图 + 资源文件,构建一个完整且已部署的 Web 应用程序。 最终成果必须可通过单条命令 bash /workspace/start.sh 完全可复现。

阶段 0:材料发现与分析

在开始任何开发工作之前,首先需全面理解手头所拥有的材料。

0a. 定位全部输入文件

/workspace/prd.md              ← 产品需求文档(PRD)
/workspace/prototypes/*.jpg    ← UI 原型图(视觉事实依据)
/workspace/resources/**/*      ← 图片、视频、图标及其他资源文件

若材料位于其他路径,请相应调整。务必通读 PRD 全文。

0b. 深度原型图分析

对每一张原型图执行以下操作:

  1. 逐张读取图像:使用 Read 工具——你具备多模态能力,请直接审视图像本身。

  2. 对每张图像,记录以下信息:

    • 页面标识:该图像所代表的具体页面或视图
    • 布局结构:页眉、侧边栏、主内容区、页脚、模态框等
    • 组件清单:所有按钮、表单、卡片、表格、列表、导航元素等
    • 内容清单:所有可见文字、数字、标签、占位内容
    • 颜色提取:主色、辅色、强调色、背景色、文字色(十六进制值)
    • 排版样式:观察到的字体大小、字重、层级关系
    • 交互状态:悬停效果、激活标签页、选中项、开关状态等
    • 数据模式:填充列表/表格/卡片的数据类型与结构——这将决定种子数据的设计
  3. 构建一份页面映射图,清晰展示各原型页面之间的导航流向。

0c. 资源文件清点

列出 /workspace/resources/ 下所有文件,并逐一标注其在原型图中出现的位置。 每个资源文件都必须在最终应用中于对应位置被实际使用。

阶段 1:系统设计文档

在 /workspace/docs/design.md 生成一份全面的设计文档。

1a. 数据模型

对每个实体,明确指定以下内容:

  • 表名或集合名
  • 所有字段及其类型、约束条件、默认值
  • 关系定义(外键、多对多关联)
  • 为支持常见查询模式所需的索引
  • 内容映射:原型图中的哪些元素映射至哪些字段

示例:

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) ← 来自分类筛选器
  ...

1b. API 设计

针对每个页面交互行为,定义对应的 API 接口:

  • HTTP 方法 + 路径
  • 请求参数/请求体结构
  • 响应结构及示例
  • 触发该 API 的原型图交互行为
  • 错误响应定义

1c. 前端架构

  • 组件层级结构(树状结构)
  • 路由定义与原型图页面的映射关系
  • 状态管理方案
  • 各原型图页面与前端组件的对应关系

1d. 技术栈选择

根据 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) 与后端语言匹配

请记录所选技术栈及其选用理由。

1e. 目录结构

/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

阶段 2:种子数据生成

种子数据至关重要——它确保应用首次启动即呈现真实感。

规则

  1. 从原型图中提取:原型图中所有可见文字、图片、数字,均须出现在种子数据中。请再次逐张读取原型图并转录全部内容。

  2. 全覆盖原则:

    • 每个列表/表格必须包含原型图中显示的确切条目数
    • 每张卡片的内容必须与原型图完全一致
    • 每个下拉框的选项必须与原型图完全一致
    • 导航项必须与原型图完全一致
    • 统计数值/计数器必须与原型图数字完全一致
  3. 使用资源文件:将 /workspace/resources/ 中的资源文件(图片、视频、图标等)映射至种子数据条目。使用相对路径,或将文件复制至 public/static 目录。

  4. 禁止使用占位内容:不得使用 “Lorem ipsum”、不得使用 “Test Item 1”、不得使用 placeholder.com 类占位图。

  5. 覆盖全部状态:需包含用于验证空状态、加载状态、错误场景等的数据,且需严格遵循 PRD 规定。

输出格式

将种子数据保存为以下任一格式:

  • SQL 种子文件
  • JSON 测试数据文件
  • ORM 种子脚本

存放路径为 /workspace/backend/src/seed/(或等效路径)。

阶段 3:后端实现

3a. 数据库 Schema

  • 为所有表创建迁移文件
  • 包含完整的约束、索引、外键定义
  • 运行迁移以验证其正确性

3b. API 接口实现

针对设计文档中定义的每个接口:

  1. 实现路由处理器
  2. 添加输入校验(类型、必填字段、数值范围等)
  3. 添加错误处理逻辑,并返回恰当的 HTTP 状态码
  4. 使用 curl 或等效工具测试,验证响应格式是否符合预期

3c. 种子数据加载

  • 实现种子脚本,要求具备以下能力:
    • 清除已有数据(支持幂等式重播种)
    • 按依赖顺序插入全部种子数据
    • 将资源文件复制至正确的静态资源服务路径
  • 验证种子数据加载过程无报错

3d. 静态文件服务

  • 配置后端以提供资源文件(图片、视频等)服务
  • 确保前端可通过正确 URL 访问这些资源

阶段 4:前端实现

此阶段视觉保真度最为关键。原型图是唯一权威参考。

4a. 全局样式与设计令牌

在构建组件前,先确立以下基础:

  • 颜色变量:与原型图颜色完全一致
  • 排版比例:与原型图所用字体大小、字重、层级完全一致
  • 间距/尺寸体系:与原型图的留白、尺寸比例完全一致
  • 通用组件样式:按钮、卡片、输入框等的统一风格

4b. 页面逐页实现

对每一张原型图,按顺序执行以下步骤:

  1. 重新读取原型图——确保上下文始终最新
  2. 精确构建页面组件,严格匹配其布局:
    • 间距与比例完全一致
    • 颜色与排版完全一致
    • 视觉层级完全一致
    • 内容位置完全一致
  3. 对接后端 API 调用
  4. 实现所有可见或隐含的交互行为:
    • 页面间导航
    • 表单提交
    • 搜索与筛选
    • 排序
    • 模态框与对话框
    • 加载状态
    • 错误状态
    • 悬停效果
    • 激活/选中状态

4c. 资源集成

  • 将 /workspace/resources/ 下所有资源文件复制至前端 assets 目录
  • 在组件中正确引用这些资源
  • 确保图片按原型图所示尺寸正确渲染

4d. 响应式适配

  • 匹配原型图中展示的视口宽度
  • 若原型图包含移动端视图,则需实现响应式断点

阶段 5:视觉验证循环

该阶段是区分优秀实现与卓越实现的关键。 请对每个页面重复执行本循环。

5a. 页面截图渲染

使用 Playwright 捕获正在运行的应用界面:

python ${SKILL_DIR}/scripts/render_page.py 
  --url "http://localhost:3000/page-path" 
  --output "/workspace/docs/screenshots/page_name.png" 
  --width 1280

5b. 视觉比对

并排读取原型图与截图:

  1. 读取 /workspace/prototypes/ 下的原型图
  2. 读取已渲染的截图
  3. 系统化比对:
    • 布局:各区域是否处于正确位置?
    • 颜色:色彩是否完全一致?
    • 排版:字体大小与字重是否准确?
    • 内容:原型图中所有内容是否均已呈现?
    • 间距:外边距与内边距是否接近?
    • 图片:所有图片是否正常渲染?
    • 组件:所有 UI 组件是否齐全且正确?

5c. 修复差异项

对每一处差异:

  1. 定位所需修改的具体 CSS 或组件
  2. 实施修复
  3. 重新渲染并再次比对

5d. 循环直至满意

每页最多执行 3 轮迭代。优先处理影响最显著的差异项。

阶段 6:集成测试

6a. API 健康检查

运行 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

6b. 端到端流程验证

遍历 PRD 中定义的所有用户流程:

  1. 在 http://localhost:3000 打开应用
  2. 依次访问每个页面
  3. 测试各项交互功能
  4. 验证数据是否从数据库正确加载
  5. 验证表单能否成功提交
  6. 验证搜索/筛选/排序功能是否正常

6c. 修复发现的问题

解决集成问题:CORS 错误、API 地址不匹配、数据格式不一致等。

阶段 7:部署脚本

生成 /workspace/start.sh——一条命令即可从零开始完成全部部署。

要求

该脚本必须满足以下条件:

  1. 完全自包含——不假设任何前置环境
  2. 可在全新环境中运行
  3. 安装所有系统依赖(Node.js、Python、数据库等)
  4. 清理历史状态
  5. 从零初始化数据库
  6. 执行全部数据库迁移
  7. 加载全部种子数据
  8. 构建前端(如需)
  9. 同时启动后端与前端服务
  10. 使应用在 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 后执行以下步骤:

  1. chmod +x /workspace/start.sh
  2. 运行:bash /workspace/start.sh
  3. 等待启动完成
  4. 验证 http://localhost:3000 是否可正常响应
  5. 抽查若干 API 接口
  6. 修复启动过程中发现的任何问题

阶段 8:文档编写

8a. 软件设计文档(/workspace/docs/design.md)

该文档已在阶段 1 创建——请根据实现过程中发生的变更更新以下内容:

  • 最终系统架构
  • 最终数据模型(含开发过程中新增的字段)
  • 技术栈
  • 部署架构
  • API 参考

8b. README(/workspace/README.md)

# [项目名称]

## 概述
[源自 PRD 的产品概述]

## 技术栈
- 前端:...
- 后端:...
- 数据库:...

## 快速启动
```bash
bash start.sh
```
然后访问 http://localhost:3000

## 项目结构
[目录树]

## 数据库
[Schema 概览、如何重新播种]

## API 参考
[关键接口]

交付物核对清单

在宣告完成前,请逐项确认:

  • 所有 PRD 功能均已实现——无任何功能被跳过
  • 所有原型图页面均已构建——无页面被合并或遗漏
  • 视觉效果与原型图完全一致——已通过截图比对验证
  • 所有资源文件均已在原型图对应位置使用
  • 种子数据内容与原型图完全一致
  • 所有 API 接口均可正常工作并返回正确数据
  • 所有交互元素功能完备(表单、搜索、筛选、模态框、导航等)
  • bash /workspace/start.sh 在干净环境中可成功运行
  • 应用可在 http://localhost:3000 正常访问
  • 设计文档已完整撰写
  • README 包含完整的部署说明

核心原则

  1. 原型图为唯一真理——当 PRD 文本与原型图存在冲突时,视觉/布局决策以原型图为准。

  2. 数据不得走捷径——原型图中所有可见内容,必须经由 API 从数据库获取;前端组件中严禁硬编码数据。

  3. 完整实现——每个页面、每个功能、每个交互行为都必须实现。不可跳过所谓“次要”功能,不可将多个独立页面强行合并。

  4. 资源文件必须使用——若原型图中展示了某张图片,且 /workspace/resources/ 中存在对应文件,则必须使用该文件,不得替换为占位图链接。

  5. 可复现性——start.sh 必须能从绝对零状态运行成功。若需 Node 18+,则脚本需自行安装 Node 18+;若需 PostgreSQL,则脚本需自行部署 PostgreSQL。

  6. 以验证代替假设——使用视觉验证循环(阶段 5)实际比对你产出的结果与原型图;使用 API 检查工具验证接口;运行 start.sh 验证部署流程。

目录

热门AI工具

更多
Seko
Seko Hot

一款AI视频创作工具,主要用于商汤科技推出的创编一体的AI短视频创作Agent,适合需要提升相关任务效率的用户。

Laper
Laper Hot

Laper是专为编剧、导演和制片人推出的 AI 原生剧本创作工具。

火山引擎

火山引擎是一款面向企业的云计算与AI服务平台。

WorkBuddy

一款AI办公效率工具,主要用于腾讯云推出的AI原生桌面智能体工作台,适合需要提升相关任务效率的用户。

SkildArt
SkildArt Hot

SkildArt是一款AI文本写作工具,一站式 AI 视觉创作平台。

豆包大模型

豆包大模型是一款由字节跳动推出的企业级大语言模型服务平台。

音述AI
音述AI Hot

一款AI音频处理工具,主要用于音述AI是一个以“用声音述说故事”为核心的 AI 音乐创作与声音分享社区,适合需要提升相关任务效率的用户。

DeepSeek

DeepSeek是一款面向对话、写作、编程和推理场景的AI大模型工具。

切问学术

切问学术是一款AI论文写作工具,复旦大学NLP团队推出的AI学术智能体。

相关专题

更多
Gradle插件开发入门教程
Gradle插件开发入门教程

本专题介绍Gradle插件开发的基本流程,涵盖插件类编写、自定义任务注册、扩展参数设计和插件应用方法,帮助你理解插件如何组织构建逻辑,减少多个项目之间的重复配置。

0

2026.10.22

Gradle Wrapper配置教程
Gradle Wrapper配置教程

本专题介绍Gradle Wrapper的基本作用,涵盖文件组成、生成方法、版本配置和任务调用,帮助你理解项目如何使用指定的Gradle版本,减少不同开发环境带来的构建差异。

0

2026.10.22

Golangci-lint检查器使用教程
Golangci-lint检查器使用教程

本专题整理Golangci-lint常用Linters的用途与配置方法,覆盖错误处理、无效代码、安全、复杂度、命名和依赖检查,帮助项目合理选规则。

0

2026.10.22

Gradle怎么构建Java项目
Gradle怎么构建Java项目

本专题介绍Gradle Java项目构建方法,涵盖Java插件配置、依赖声明、源码编译、测试执行和打包检查,帮助你理解各阶段的任务关系,逐步完成项目构建。

0

2026.10.22

PHP时间戳漏洞修复教程
PHP时间戳漏洞修复教程

本专题汇总PHP常见时间戳漏洞,包括2038年溢出、时区漂移、时间戳伪造、重放攻击、时间盲注与日志审计失效等,并给出升级64位环境、使用 DateTimeImmutable、统一UTC、严格超时校验、预处理绑定、hash_equals 比对等修复方案,帮助开发者快速排查和加固时间相关代码。

0

2026.10.22

Golangci-lint配置文件与规则设置
Golangci-lint配置文件与规则设置

本专题聚焦Golangci-lint YAML配置文件,讲清运行参数、规则启停、目录排除、问题过滤及严重级别设置,便于团队统一检查标准。

0

2026.10.22

Golangci-lint安装与入门教程
Golangci-lint安装与入门教程

本专题讲解Golangci-lint的安装、初始化、基础命令和首次代码检查,覆盖本地环境、Docker及多平台用法,帮助Go开发者快速上手。

0

2026.10.22

PHP2Shell高危漏洞修复教程
PHP2Shell高危漏洞修复教程

PHP2Shell漏洞是什么,哪些PHP版本和运行环境会受到影响,服务器应该如何检测与修复?本专题提供版本自查脚本、Linux与Docker升级命令、PHP-FPM和Apache排查步骤,以及修复验证、临时缓解和应急响应方案。

0

2026.10.22

剧云人物设定与关系管理教程
剧云人物设定与关系管理教程

本专题介绍剧云人物设定与关系管理,讲解角色小传、性格职业、人物目标、背景资料和关系网络的创建及维护方法。

0

2026.10.22

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
热门推荐
/
最新课程
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn