npx skills add ...
npx skills add weberwang/phaser-skills --skill phaser4-game-qa-performance
Phaser 4 移动端 2D 游戏的测试与性能角色。用于功能、参考还原、动态玩法视觉、UI/场景、设备兼容、资源预算、性能、稳定性和发布候选验证,并产出可复现证据。
npx skills add weberwang/phaser-skills --skill phaser4-game-qa-performance
控制面边界:可提议、可审查、可在当前用户任务的 Work Item 范围内修改,且必须回到 $phaser4-game-workflow-control 风险门。
本领域可提议验证计划并审查候选,可在当前用户任务、A 等级和路径范围内写测试或证据;结果回到 phaser4-game-workflow-control 审计和状态迁移。测试通过不能覆盖任务范围、路径、基线或 A4-A6 操作批准失败。
证据优先于主观结论。项目未定义量化指标时只报告实测与决策缺口,不自造通用阈值。
visual_validation.mode 默认是 usability,允许合理的位置、尺寸、边距和换行差异,重点检查越界、裁切、关键遮挡、不可读和交互失效。effect-image 不自动启用 exact;只有用户明确要求精确还原时才使用 exact 并核对严格容差与差异证据。USER_DECISION,不把普通细节偏差升级为授权阻塞。not-applicable。效果图在 V2 v2-ready 后核对目标、合同回对、带 bounds 的 coverage 和条件编号证据;V3 还必须逐 annotation_number/region_id 记录显式 production_method、delivery_kind、image_generation_required、generation_record_required、substitution_policy 与 expected_assets。V3 实施包的 visualProductionUnits 必须与 coverage 一一映射,输出路径、所有权和格式不得冲突。production_contract_audit,逐区域核对预期方法与实际方法、交付类型、输出文件、生成/提示词记录和运行时消费;F2 只接受 validationMode=MACHINE 的当前身份机器验证事实。V5 再要求运行测量、F3 runtime replay、freshness-bound fidelity cases、实际消费和无未批准替换;仅上游事实或当前受影响候选身份变化会使对应旧证据失效,其他单元的路径级结果继续有效,不重复请求无关拆解和布局确认。usability 使用代表性视口和关键状态,检查可读性、边界、遮挡、交互和关系不变量;完整视口、严格容差、逐区域 delta、叠加/像素差及全视口/全状态矩阵仅在 exact 模式或项目明确要求时启用。生成式、动画和 VFX 不得只靠像素差判断。phaser4-game-ui-layout 合同,并按 响应式视觉验证 采集真实稳定帧。默认 usability 按 orientationPolicy.allowed 覆盖对应代表视口:支持竖屏时包含窄/标准竖屏,支持横屏时包含横屏/桌面宽屏;单方向项目只测该方向,但仍覆盖窄宽尺寸、DPR 1/1.25 或 1.5/2/>2 封顶、同页连续 resize、降至 DPR 1、DPR 不变 resize 和代表性弹窗轨迹。只有 exact 或项目明确要求时才扩展到完整断点和状态矩阵,方向轴不扩展到未声明方向。每个视口直接记录 CSS 矩形、Canvas backing、raw/effective DPR、逻辑↔CSS↔物理比例、Camera、输入命中、安全区、关键 UI、截图及 resize 轨迹,不能用推导值冒充实测。正式报告绑定候选 SHA、scene/state、布局合同版本和视觉基线版本;缺测量为 unverified,宿主场景证据不能代替独立 DISPLAY_LAYER。没有可复现证据时标记“未验证”。V1/V2 条件门必须绑定当前候选;沉默、继续工作或旧决定不能替代真正需要的 USER_DECISION,用户决定也不能跳过 V2 拆解与布局确认所需的确定性机器 F2。FIT 只证明等比不溢出,不证明满屏或响应式重排;禁止用构建成功、元素存在或无控制台错误假通过。
可复用自动化脚本位于 scripts/responsive-visual-validation.mjs,纯计算测试位于 scripts/responsive-visual-validation.test.mjs。脚本通过 Node ESM 动态导入 Playwright;运行时从设备读取 DPR 并按 dynamic-capped-2 封顶,在同一页面通过 setViewportSize 调整视口并保留 resize 语义;有效声明必须为 (0,2],原始 deviceScaleFactor 允许大于 2,报告同时保留原始值与封顶为 2 的有效值,零、负数、非有限数和字符串在验证前失败。默认报告输出代表性视口与关键状态;exact 模式或明确的全覆盖需求再输出完整页面截图、实测矩阵和结构化 JSON。