From b0782e43be82bc2d57aecf0aadbfdafb53a90476 Mon Sep 17 00:00:00 2001 From: DKChan <524912269@qq.com> Date: Thu, 5 Nov 2026 05:09:00 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=87=E6=A1=A3(=E9=A2=84=E8=A7=88=E5=9B=BE?= =?UTF-8?q?=E4=B8=A4=E7=BA=A7=E6=8A=8A=E5=85=B3=C2=B7=E7=94=A8=E6=88=B7?= =?UTF-8?q?=E8=A3=81):=20=E7=94=BB=E9=9D=A2=E7=B1=BB=E9=9C=80=E6=B1=82(?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E7=94=BB=E9=9D=A2=E8=A6=81=E7=B4=A0/?= =?UTF-8?q?=E5=B8=83=E5=B1=80/=E9=85=8D=E8=89=B2/=E5=8A=A8=E6=95=88?= =?UTF-8?q?=E8=A7=A6=E7=A2=B0=E7=94=BB=E9=9D=A2=E5=91=88=E7=8E=B0=E8=A7=84?= =?UTF-8?q?=E6=A0=BC)=E8=AE=BE=E8=AE=A1=E6=AE=B5=E5=85=88=E5=87=BA?= =?UTF-8?q?=E9=A2=84=E8=A7=88=E5=9B=BE(HTML/SVG=20=E6=95=88=E6=9E=9C?= =?UTF-8?q?=E5=9B=BE,diagram-design=20=E9=80=9A=E9=81=93)=E7=BB=8F?= =?UTF-8?q?=E7=94=A8=E6=88=B7=E4=BA=BA=E5=AE=A1=E6=89=8D=E8=BF=9B=E5=86=99?= =?UTF-8?q?=E5=8D=A1=E6=AE=B5,=E9=A2=84=E8=A7=88=E5=9B=BE=E5=86=85?= =?UTF-8?q?=E5=B5=8C=20ux/=20=E8=A7=84=E6=A0=BC=E6=96=87=E6=A1=A3=E9=9A=8F?= =?UTF-8?q?=E9=99=84=E5=83=8F=E7=B4=A0=E7=BA=A7=E8=A7=86=E8=A7=89=E5=88=A4?= =?UTF-8?q?=E6=8D=AE=E5=8F=A5;=E5=86=99=E5=8D=A1=E6=AE=B5=E7=94=BB?= =?UTF-8?q?=E9=9D=A2=E7=B1=BB=E5=8D=A1=E7=89=87=E5=BF=85=E5=BC=95=E5=B7=B2?= =?UTF-8?q?=E4=BA=BA=E5=AE=A1=E9=A2=84=E8=A7=88=E5=9B=BE(=E5=88=A4?= =?UTF-8?q?=E6=8D=AE=E5=87=BA=E5=A4=84=E8=A1=8C=E9=94=9A=E6=8C=87=E5=90=91?= =?UTF-8?q?=E5=86=85=E5=B5=8C=E9=A2=84=E8=A7=88=E8=8A=82);=E5=AE=9E?= =?UTF-8?q?=E7=8E=B0=E6=89=B9=E7=94=BB=E9=9D=A2=E7=B1=BB=E9=9C=80=E6=B1=82?= =?UTF-8?q?=E9=BB=84=E9=87=91=E5=9B=BE=E5=9F=BA=E7=BA=BF=E5=86=BB=E7=BB=93?= =?UTF-8?q?=E5=89=8D=E7=94=A8=E6=88=B7=E5=AF=B9=E7=85=A7=E9=A2=84=E8=A7=88?= =?UTF-8?q?=E5=9B=BE=E7=A1=AE=E8=AE=A4=E4=B8=80=E7=9C=BC,=E6=AD=A4?= =?UTF-8?q?=E5=90=8E=E6=B8=B2=E6=9F=93=E9=97=B8=E9=80=90=E5=83=8F=E7=B4=A0?= =?UTF-8?q?=E8=87=AA=E5=8A=A8=E7=9B=AF=E9=9B=B6=E4=BA=BA=E5=B7=A5;?= =?UTF-8?q?=E9=A2=84=E8=A7=88=E5=9B=BE=E4=B8=8E=E5=BC=95=E6=93=8E=E6=B8=B2?= =?UTF-8?q?=E6=9F=93=E4=B8=A4=E5=A5=97=E7=AE=A1=E7=BA=BF=E7=A6=81=E7=9B=B4?= =?UTF-8?q?=E6=8E=A5=E5=85=85=E5=BD=93=E6=AF=94=E5=AF=B9=E5=9F=BA=E7=BA=BF?= =?UTF-8?q?;=E7=BC=BA=E9=99=B7=E4=BF=AE=E5=A4=8D=E4=BB=A5=E7=8E=B0?= =?UTF-8?q?=E8=A1=8C=E8=A7=84=E6=A0=BC=E4=B8=8E=E5=9C=A8=E5=BA=93=E5=9F=BA?= =?UTF-8?q?=E7=BA=BF=E4=B8=BA=E5=87=86=E4=B8=8D=E8=A7=A6=E5=8F=91=E6=96=B0?= =?UTF-8?q?=E9=A2=84=E8=A7=88=E2=80=94=E2=80=94process-conventions=20?= =?UTF-8?q?=C2=A72=20=E6=AE=B5=E4=BA=8C/=E4=B8=89/=E4=BA=94=E8=A1=8C+test-?= =?UTF-8?q?conventions=20=C2=A78.2=20golden=20=E6=B5=8B=E8=AF=95=E9=A1=B9?= =?UTF-8?q?=E6=89=A9=E9=A1=B9=E8=8A=82=E6=96=B0=E5=A2=9E;.zcode=20?= =?UTF-8?q?=E4=B8=89=E6=8A=80=E8=83=BD(doc-design=20=E7=AC=AC3=E6=AD=A55/r?= =?UTF-8?q?eq-card=20=E7=AC=AC=E3=80=87=E6=AD=A5=E4=B8=8E=E5=BF=85?= =?UTF-8?q?=E5=A4=87=E7=BB=93=E6=9E=848/iter=20=E7=AC=AC4=E6=AD=A54)?= =?UTF-8?q?=E5=90=8C=E6=89=B9=E6=8D=A2=E4=BB=A3(=E4=B8=BB=E5=8C=BA?= =?UTF-8?q?=E7=9B=B4=E6=94=B9=E8=B1=81=E5=85=8D=E9=9D=A2=E4=B8=8D=E5=85=A5?= =?UTF-8?q?=20git)=E3=80=82=E6=9C=AC=E6=AD=A5=E5=87=AD=E6=8D=AE:=E6=96=87?= =?UTF-8?q?=E6=A1=A3=E5=9F=9F=E9=97=B8=208=20=E9=81=93=E5=85=A8=20exit=3D0?= =?UTF-8?q?=20=E6=97=A0=E6=96=B0=E5=A2=9E=E7=BA=A2(gdd=5Flint/=E5=8F=98?= =?UTF-8?q?=E6=9B=B4=E8=AE=B0=E5=BD=95=E8=8A=82/doc=5Flink/doc=5Fterm/?= =?UTF-8?q?=E6=B5=81=E6=B0=B4=E7=BA=BF=E9=97=B8/=E5=BC=95=E7=94=A8?= =?UTF-8?q?=E5=8F=AF=E6=A0=B8/=E8=83=BD=E5=8A=9B=E5=AE=A1=E8=AE=A1/?= =?UTF-8?q?=E7=86=B5=E5=A2=9E),=E5=9B=9E=E6=89=A7=20all=5Fgreen=3Dtrue,?= =?UTF-8?q?=E5=9F=BA=E7=BA=BF=2069c417d8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- design/engineering/process-conventions.md | 6 +++--- design/engineering/test-conventions.md | 1 + 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/design/engineering/process-conventions.md b/design/engineering/process-conventions.md index 7ec0ae38..ddf65b99 100644 --- a/design/engineering/process-conventions.md +++ b/design/engineering/process-conventions.md @@ -22,10 +22,10 @@ | 段 | 入口技能 | 产出 | 出入口铁律 | |---|---|---|---| | 一·登记 | 无(闸管格式) | 待办清单条目 | 条目=标题登记元数据(日期/来源/可选优先级)+正文四属性(实况/缺口/改动面/状态);标题登记后不再变,正文随进程演进。格式与状态机权威=doc-conventions 第 12 节 | -| 二·文档设计/美术设计 | doc-design(文档线,兼任反哺点写入)/asset-ingest(美术录入;样张素材由用户主导产出) | GDD 文档或 art-bible/过审样张素材 | 用户提起或从待办清单取出;会话内进行、用户主导、禁无监管自跑;经用户点头确认心智一致才许写入文档;完成判据=待裁点清零,带未裁点的是讨论稿;设计线闭合凭据记入待办清单实况清单(文档线=文档路径+版本号,美术线=art-bible 条款版本);缺哪条线写在缺口属性,闭合与否写在状态段 | -| 三·写需求卡片 | req-card | 需求卡片 | 设计线闭合后用户发令;新玩法/新系统/新内容必须有设计定稿前置,例外=需求性工程条目(缺陷修复/重构等改游戏行为)凭实况里的证据指认跳过设计线;配套维护类(工程债/测试基建/工具维护,不动游戏行为)=工程改动直改类,不走本段,由用户发令直改;卡片必经 grilling 多轮复核、零待裁点才成立;写完在待办清单状态记「已写卡」,卡片路径记入实况清单(防遗忘) | +| 二·文档设计/美术设计 | doc-design(文档线,兼任反哺点写入)/asset-ingest(美术录入;样张素材由用户主导产出) | GDD 文档或 art-bible/过审样张素材;画面类需求另出预览图(文档线,2026-11-05 用户裁) | 用户提起或从待办清单取出;会话内进行、用户主导、禁无监管自跑;经用户点头确认心智一致才许写入文档;完成判据=待裁点清零,带未裁点的是讨论稿;设计线闭合凭据记入待办清单实况清单(文档线=文档路径+版本号,美术线=art-bible 条款版本);缺哪条线写在缺口属性,闭合与否写在状态段。画面类需求(新增画面要素/布局/配色/动效等触碰画面呈现规格的改动)设计段先出预览图=目标画面的 HTML/SVG 效果图(diagram-design 通道,AGENTS.md 图优先的同款载体),经用户人审通过才许进写卡段;预览图内嵌对应 ux/ 规格文档并随附像素级视觉判据句(§7 第 2 条同款写法);缺陷修复以现行规格与在库基线为准,不触发新预览 | +| 三·写需求卡片 | req-card | 需求卡片 | 设计线闭合后用户发令;新玩法/新系统/新内容必须有设计定稿前置,例外=需求性工程条目(缺陷修复/重构等改游戏行为)凭实况里的证据指认跳过设计线;配套维护类(工程债/测试基建/工具维护,不动游戏行为)=工程改动直改类,不走本段,由用户发令直改;卡片必经 grilling 多轮复核、零待裁点才成立;写完在待办清单状态记「已写卡」,卡片路径记入实况清单(防遗忘);画面类需求卡片必引设计段已人审的预览图(验收判据的判据出处行锚指向 ux/ 内嵌预览节,test-conventions §8.3 锚口径不变) | | 四·迭代编排 | iter-plan | roadmap 迭代行 | 编排四查:①每卡卡片文件存在 ②每卡设计闭合凭据齐(或需求性工程条目的证据指认)③估时与冻结线——所选卡估时按区间**中值**求和(单位工作日、写精确值不取整):**卡片任何工作量均可编入**(2026-10-25 用户立:工作量限制属迭代层、非卡片层);编入后迭代总量 <5 个工作日=迭代行状态「冻结待凑批」、不可开工,凑批 ≥5 后由编排段改「待开工」(迭代体量偏好,2026-10-21 用户立、2026-10-25 改冻结制);5–10 个工作日为常规区间;超过 10 个工作日须经用户确认(确认前呈报整批/拆批两案等裁,禁自行拆分或塞入),确认后迭代行随带日期特批标记;超过 20 个工作日禁止编(硬上限,用户确认也不放行,必须拆批)④写完 roadmap 行后跑流水线闸确认绿;编入未完成迭代,新开迭代行经用户确认 | -| 五·实现 | iter | 代码与配置,可运行的游戏 | 需求卡片永不单独施工,统一由用户指定迭代号触发(=U0 开工令),按 iter 技能与本文 §3 执行;**本段是代码实现批:禁写 `design/` 与根规则文件,产出物只落 `reports/`(见 §3 第 12 条)**;设计权威文档(GDD/art-bible)批内一律不更新;完成人闸=实机目检清单+实现决定记录写齐即完成批内义务 | +| 五·实现 | iter | 代码与配置,可运行的游戏 | 需求卡片永不单独施工,统一由用户指定迭代号触发(=U0 开工令),按 iter 技能与本文 §3 执行;**本段是代码实现批:禁写 `design/` 与根规则文件,产出物只落 `reports/`(见 §3 第 12 条)**;设计权威文档(GDD/art-bible)批内一律不更新;完成人闸=实机目检清单+实现决定记录写齐即完成批内义务;画面类需求实现批另按 test-conventions §8.2 黄金图基线冻结口径执行(实跑截图入基线前用户对照预览图确认一眼,此后渲染闸自动盯) | **实现段零裁断**:实现段的输入在编排段出口已锁死(卡片零待裁点+设计闭合凭据齐+编排四查过)。实现中冒出卡片没写清的分歧=上游缺陷——停该卡、待办清单状态回退+缺口补记,退回上游;禁自答、禁内联提问求裁断;该卡停摆不阻塞同迭代其他卡。环境故障与测试红走异常分级(自救重试/记录继续/停机呈报)。代拍板白名单保留:授权发生在卡片审问阶段,实现只执行预授权;超白名单/超卡片明列范围事项记入实现报告「实现决定记录」节备案,不另立追认单。 diff --git a/design/engineering/test-conventions.md b/design/engineering/test-conventions.md index 46adb3d2..c9eee8a7 100644 --- a/design/engineering/test-conventions.md +++ b/design/engineering/test-conventions.md @@ -81,6 +81,7 @@ - **接口**:模块边界的公开契约——数据表加载、存档与断点、事件载荷、命令接口;测试从公开入口进出。接口级断言随单元套件落(`unit/contracts/`),不另设承载目录。 - **集成**:跨宿主的接线、持久、生命周期——例如 LevelRunner 把 level_counters 传给 BattleOrchestrator、两场战斗共享同一个桶、断点续玩;测试必须实例化真实宿主链,禁止用裸 EffectEngine 代替。 - **探针/golden**:玩家可达性与观感;真实实例化场景、驱动真实输入。 +- **golden 测试项扩项(2026-11-05 立)**:触碰画面呈现规格的需求批(新增画面要素/布局/配色/动效;判据=设计段出了预览图),实现段把该画面纳入渲染闸机器面:截图采集清单扩项+实跑截图冻结进 `game/tests/golden/`(基线属入库测试资产,render_gate.sh 在册例外)。黄金图=游戏真实渲染截屏冻结的逐像素基准,比对器与容差口径见 render_gate.sh 头注释(脚本即清单,本文不另列)。基线冻结(新建与换代同口径)=用户对照设计段预览图确认后执行,触发原因写进当批提交说明(`tools/golden_baseline_refresh.sh` 现役义务);此后渲染闸逐像素自动盯、零人工。预览图(HTML/SVG 效果图)与引擎渲染是两套管线,禁直接充当比对基线——预览图只作人审参照与验收判据句的出处(判据出处行锚指向 ux/ 内嵌预览节);缺陷修复以现行规格与在库基线为准,不触发新预览。 分层不是形式。改动发生在哪一层,验收就必须从那一层的真实入口进入。测试绕过了改动点,就不算这个改动的验收——这正是「断言存在、接线坏了却不红」的来源。