# 应用工程脚手架基线 PRD - 功能编号:GOV-009 - PRD 版本:0.1 - 状态:approved - 日期:2026-08-13 ## 问题 项目已经完成工程治理、部署配置、MySQL 5.7、Redis 和 RocketMQ 5.x 的架构基线,但 `web/` 与 `server/` 仍只有占位文件,尚不能启动、构建或承载市场概览功能。现有 Schema 工具也没有读取项目约定的 `*.env.local`,并只允许回环主机,无法对已经确认的固定远程开发库执行版本化结构备份。 ## 目标 - 建立可独立开发和部署的 Vue 3 Web 与 NestJS Server 工程。 - Server 在同一工程内提供 API、Scheduler、Worker 三个独立进程入口。 - 建立统一的 Node.js 22 LTS、pnpm 10、TypeScript、检查、测试和构建入口。 - HTTP 契约由 Server 的 DTO 与 OpenAPI 定义,Web 使用生成客户端,不共享后端源码。 - RocketMQ 消息契约只在 Server 内由 Scheduler 与 Worker共享。 - 本地进程加载现有 `deploy/env/development/*.env.local`,同时保持真实配置不进入 Git。 - Schema 工具只允许读取固定开发配置,支持经过白名单批准的远程开发库。 - 为 FEAT-MO-001 提供能够直接开始页面开发的工程底座。 ## 用户价值 开发者可以用明确命令安装依赖、启动 Web/API/Scheduler/Worker、运行测试和构建,并能在不复制接口类型、不泄漏密钥、不误触生产数据库的前提下持续开发市场分析功能。 ## 范围 - 根 pnpm workspace 与统一版本约束。 - Vue 3、Vite、TypeScript、Vue Router、Pinia、Naive UI、Dart Sass、Vitest 和 Playwright 基础工程。 - NestJS API、Scheduler、Worker 多应用工程及共享后端库边界。 - Server 配置解析、条件必填和启动失败策略。 - API 健康检查、OpenAPI 产物与 Web 客户端生成链路。 - Redis 与 MySQL 开发连接健康检查;RocketMQ 保持配置可选和默认关闭。 - Ubuntu 源码部署所需 Web/Server 产物与 systemd、Nginx 命令对齐,Docker 能力由后续确认的仅源码决策移除。 - Schema 开发配置路径、固定远程开发库白名单及空库基线处理。 ## 非目标 - 不实现市场概览页面和业务指标。 - 不实现正式行情采集、AI 分析或付费功能。 - 不实现用户、邀请、权限、会员或订阅。 - 不把 HTTP DTO、数据库实体或消息事件做成前后端共享源码包。 - 不实现未经验证的 RocketMQ Node SDK;本功能只建立 Adapter 边界、配置校验和禁用态启动能力。 - 不创建、删除或修改生产基础设施与生产数据。 - 不管理本地或生产 Redis、MySQL、RocketMQ 的生命周期,不提供容器兜底。 ## 验收标准 - Node.js 非 22.x 时安装或校验入口明确失败,pnpm 主版本固定为 10。 - 根命令可以分别启动、测试和构建 Web、API、Scheduler、Worker。 - 三个 Server 进程共享配置和后端库,但拥有独立入口与最小配置读取范围。 - Web 不导入 `server/` 源码;前端 API 类型来自提交或构建生成的 OpenAPI 客户端。 - RocketMQ 事件类型不进入 Web 构建产物。 - API 健康检查能够报告进程状态,并分别区分 Redis、MySQL 和禁用的 RocketMQ。 - 开发配置从 `*.env.local` 加载,真实值继续被 Git 忽略,生产模板不获得开发地址或密码。 - Schema 工具只接受 `development`、`a_share_analysis_dev`、MySQL 5.7、`utf8mb4_general_ci` 和固定主机白名单;其他远程主机立即拒绝。 - 空开发库可以生成可验证的 captured Schema 基线,不用空 SQL 冒充结构,也不退回 `not_applicable`。 - 单元测试、契约测试、构建、开发启动冒烟和适用的浏览器验证全部通过。 - 仓库不存在活动 Dockerfile、Compose 或 Docker 专用门禁;`pnpm verify:release` 只执行源码发布检查。 - 全部实施完成后必须基于真实代码和部署产物提交《实施架构复核》,向用户论证前后端职责、依赖方向、进程边界、替代方案和演进成本;获得用户再次确认前,GOV-009 不得标记完成或创建发布标签。