收口创作流程统一总计划并修复等待页窄屏裁切
This commit is contained in:
@@ -1,18 +1,26 @@
|
||||
# 提交前质量门禁
|
||||
|
||||
本目录记录一期创作流程统一化提交前必须执行的检查。门禁既可以是自动脚本,也可以是需要人工确认的体验流程。
|
||||
本目录记录当前创作流程统一化提交前必须执行的检查。门禁既可以是自动脚本,也可以是需要人工确认的体验流程。
|
||||
|
||||
## 一期必跑
|
||||
## 当前必跑
|
||||
|
||||
- [【玩法创作】统一创作页门禁-2026-05-29.md](./【玩法创作】统一创作页门禁-2026-05-29.md)
|
||||
- [【玩法创作】统一生成页门禁-2026-05-29.md](./【玩法创作】统一生成页门禁-2026-05-29.md)
|
||||
- [【玩法创作】跨玩法回归与冒烟门禁-2026-05-30.md](./【玩法创作】跨玩法回归与冒烟门禁-2026-05-30.md)
|
||||
- [【开发运维】dev-stack状态文件门禁-2026-05-29.md](./【开发运维】dev-stack状态文件门禁-2026-05-29.md)
|
||||
|
||||
## 基线脚本
|
||||
## 快速基线
|
||||
|
||||
```bash
|
||||
npm run check:encoding
|
||||
npm run test -- src/components/unified-creation/unifiedCreationSpecs.test.ts src/components/unified-creation/UnifiedGenerationPage.test.tsx
|
||||
npm run test -- scripts/dev.test.ts
|
||||
node --check scripts/dev.mjs
|
||||
npm run typecheck
|
||||
npm run admin-web:typecheck
|
||||
npm run test -- src/components/platform-entry/platformEntryCreationTypes.test.ts src/components/unified-creation/unifiedCreationSpecs.test.ts src/components/unified-creation/UnifiedCreationPage.test.tsx src/components/unified-creation/UnifiedGenerationPage.test.tsx
|
||||
npm run test -- src/components/puzzle-agent/PuzzleAgentWorkspace.interaction.test.tsx src/components/match3d-creation/Match3DAgentWorkspace.interaction.test.tsx src/components/wooden-fish-creation/WoodenFishWorkspace.test.tsx
|
||||
```
|
||||
|
||||
## 使用说明
|
||||
|
||||
- `统一创作页门禁` 和 `统一生成页门禁` 仍作为 Phase 2 的基础门禁。
|
||||
- `跨玩法回归与冒烟门禁` 覆盖 Phase 2 之后的最小验证集合,Phase 5 / Phase 6 冻结前以它为主。
|
||||
- `dev-stack` 状态文件门禁继续单独维护,不并入玩法回归矩阵。
|
||||
|
||||
94
quality-gates/【玩法创作】跨玩法回归与冒烟门禁-2026-05-30.md
Normal file
94
quality-gates/【玩法创作】跨玩法回归与冒烟门禁-2026-05-30.md
Normal file
@@ -0,0 +1,94 @@
|
||||
# 跨玩法回归与冒烟门禁
|
||||
|
||||
## 适用范围
|
||||
|
||||
- Phase 2 的配置与统一壳收口。
|
||||
- Phase 3 的普通工作台接入。
|
||||
- Phase 4 的特殊工作台与例外边界。
|
||||
- Phase 5 的结果页、发布、作品架、公开详情与运行态收口。
|
||||
- Phase 6 冻结前的最小验证集合。
|
||||
|
||||
## 共同前置
|
||||
|
||||
```bash
|
||||
npm run check:encoding
|
||||
npm run typecheck
|
||||
npm run admin-web:typecheck
|
||||
npm run check:spacetime-schema
|
||||
```
|
||||
|
||||
## Phase 2:配置与统一壳
|
||||
|
||||
```bash
|
||||
npm run test -- src/components/platform-entry/platformEntryCreationTypes.test.ts src/components/unified-creation/unifiedCreationSpecs.test.ts src/components/unified-creation/UnifiedCreationPage.test.tsx src/components/unified-creation/UnifiedGenerationPage.test.tsx
|
||||
```
|
||||
|
||||
- 验证 `creation-entry config`、`unifiedCreationSpec`、统一创作页和统一生成页的阶段映射一致。
|
||||
- 需要改 SpacetimeDB schema 时,再追加 `npm run check:spacetime-schema`。
|
||||
|
||||
## Phase 3:普通工作台
|
||||
|
||||
```bash
|
||||
npm run test -- src/components/puzzle-agent/PuzzleAgentWorkspace.interaction.test.tsx src/components/match3d-creation/Match3DAgentWorkspace.interaction.test.tsx src/components/wooden-fish-creation/WoodenFishWorkspace.test.tsx src/components/jump-hop-creation/JumpHopWorkspace.test.tsx src/components/jump-hop-result/JumpHopResultView.test.tsx src/components/jump-hop-runtime/JumpHopRuntimeShell.test.tsx src/components/edutainment-creation/BabyObjectMatchWorkspace.test.tsx src/components/edutainment-result/BabyObjectMatchResultView.test.tsx src/components/edutainment-runtime/BabyObjectMatchRuntimeShell.test.tsx src/components/big-fish-creation/BigFishAgentWorkspace.interaction.test.tsx src/components/big-fish-result/BigFishResultView.test.tsx src/components/big-fish-runtime/BigFishRuntimeShell.test.tsx src/components/square-hole-result/SquareHoleResultView.test.tsx
|
||||
npm run test -- src/components/rpg-entry/RpgEntryFlowShell.agent.interaction.test.tsx -t "direct jump hop result route"
|
||||
```
|
||||
|
||||
- 验证表单 / 图片 / 音频工作台仍提交结构化 payload,不会退回聊天式输入。
|
||||
- 跳一跳需同时覆盖工作台结构化提交、结果页试玩 / 发布 / 局部重生成入口、结果页恢复面板和 runtime 起跳 / 重开 / 返回。
|
||||
- 宝贝识物与大鱼吃小鱼也要纳入同一批最小回归,避免只验首批或单一工作台。
|
||||
- 方洞结果页需覆盖“保存成功后再试玩 / 发布”的路径,避免测试绕过真实保存链路。
|
||||
|
||||
## Phase 4:特殊工作台与例外
|
||||
|
||||
```bash
|
||||
npm run test -- src/components/rpg-entry/RpgEntryFlowShell.agent.interaction.test.tsx -t "opening RPG agent workspace does not refetch session snapshot in a render loop|create tab resumes agent workspace when draft has no compiled result yet|create tab resumes agent workspace when session has no draft profile even if summary counts look compiled|opening a compiled draft with a missing agent session falls back to draft hub"
|
||||
npm run test -- src/components/rpg-entry/RpgEntryFlowShell.agent.interaction.test.tsx -t "create tab opens bark battle entry form from the template card|bark battle draft result can test before publish and publish to work detail|direct bark battle runtime public code opens published runtime"
|
||||
npm run test -- src/components/visual-novel-creation/VisualNovelAgentWorkspace.test.tsx src/components/visual-novel-result/VisualNovelResultView.test.tsx src/components/visual-novel-runtime/VisualNovelRuntimeShell.test.tsx src/components/visual-novel-creation/visualNovelEntryGeneration.test.ts
|
||||
npm run check:visual-novel-vn11
|
||||
```
|
||||
|
||||
- 验证 RPG 例外边界、Bark Battle 的创作 / 发布 / 正式 runtime 闭环,以及视觉小说入口、生成页、结果页、运行态和负向扫描门禁。
|
||||
|
||||
## Phase 5:结果页与公开闭环
|
||||
|
||||
```bash
|
||||
npm run test -- src/components/rpg-entry/RpgEntryFlowShell.agent.interaction.test.tsx -t "agent draft result publishes to gallery from publish panel|creation hub published work enters existing detail view|creation hub published work experience button enters world directly|creation hub published work start uses loaded detail profile instead of library summary"
|
||||
npm run test -- src/components/rpg-entry/RpgEntryFlowShell.agent.interaction.test.tsx -t "published puzzle works appear on home and mobile game category channel|published big fish works stay hidden from platform home and game category channel|home recommendation Match3D runtime keeps profile generated models when card summary is stale|home recommendation Match3D runtime passes top-level UI background assets|home recommendation Match3D runtime reloads detail when card only has UI assets"
|
||||
npm run test -- src/components/platform-entry/PlatformWorkDetailView.test.tsx src/components/platform-entry/PlatformErrorDialog.test.tsx src/components/platform-entry/PlatformFeedbackView.test.tsx src/components/rpg-entry/rpgEntryWorldPresentation.test.ts
|
||||
npm run test -- src/components/custom-world-home/CustomWorldCreationHub.test.tsx src/components/custom-world-home/CustomWorldCreationHub.interaction.test.tsx
|
||||
```
|
||||
|
||||
- 验证结果页、发布、作品架、公开详情、推荐 runtime 和公开 read model 的最小回归面。
|
||||
- 验证作品架恢复矩阵、公开详情作者展示和跨流程错误 / 反馈弹窗仍和统一链路一致。
|
||||
- 若本轮还改了 API 路由、BFF、公开列表或 `/works/detail` 回读,再补 API smoke。`npm run dev:api-server` 是长驻进程,另开终端执行:
|
||||
|
||||
```bash
|
||||
curl -fsS "$(node -e 'const fs=require("fs"); const s=JSON.parse(fs.readFileSync(".app/dev-stack.json","utf8")); const services=s.services||{}; const svc=services["api-server"]||services.apiServer||{}; const url=String(svc.url||s.apiTarget||"http://127.0.0.1:8082").replace(/\/$/,""); process.stdout.write(`${url}/healthz`);')"
|
||||
```
|
||||
|
||||
## 竖屏浏览器冒烟
|
||||
|
||||
自动测试通过后,仍需用竖屏视口确认页面不是空白、未跳错入口、底部操作不被遮挡。当前仓库没有专用 Playwright 脚本时,可用系统 Chrome 生成截图:
|
||||
|
||||
```bash
|
||||
out=.app/browser-check/phase-flow-$(date +%Y%m%d)
|
||||
mkdir -p "$out"
|
||||
for route in \
|
||||
creation-jump-hop:/creation/jump-hop \
|
||||
creation-visual-novel:/creation/visual-novel \
|
||||
creation-square-hole:/creation/square-hole \
|
||||
creation-bark-battle:/creation/bark-battle \
|
||||
creation-baby-object-match:/creation/baby-object-match \
|
||||
generating-jump-hop:/creation/jump-hop/generating \
|
||||
result-jump-hop:/creation/jump-hop/result \
|
||||
runtime-jump-hop:/runtime/jump-hop
|
||||
do
|
||||
name=${route%%:*}
|
||||
path=${route#*:}
|
||||
google-chrome --headless=new --no-sandbox --disable-gpu --window-size=390,844 --virtual-time-budget=4000 --screenshot="$out/$name.png" "http://127.0.0.1:3000$path"
|
||||
done
|
||||
ls -lh "$out"
|
||||
```
|
||||
|
||||
- 执行前确保 `npm run dev:spacetime`、`npm run dev:api-server`、`npm run dev:web` 已按实际端口启动;若 `.app/dev-stack.json` 和实际端口不一致,以 `ss -ltnp` 和 `/healthz` 为准。
|
||||
- 截图只保存本地 `.app/`,不提交 Git。检查时至少确认首屏有对应玩法工作台 / 生成页 / 结果页 / runtime 内容,且竖屏下无明显空白死页、入口跳错、按钮遮挡或套滚动。跳一跳结果页若缺少恢复信息,应显示恢复面板而不是空白页。
|
||||
Reference in New Issue
Block a user