
用/smoke-check守好 CCGS 的 QA 交接门从自动化测试到人工冒烟清单的全流程验收协议【免费下载链接】Claude-Code-Game-StudiosTurn Claude Code into a full game dev studio — 49 AI agents, 72 workflow skills, and a complete coordination system mirroring real studio hierarchy.项目地址: https://gitcode.com/GitHub_Trending/cl/Claude-Code-Game-Studios在 Claude Code Game StudiosCCGS框架中/smoke-check是位于实现完成与QA 交接之间的守门技能gate skill它检测测试环境、通过 Bash 执行自动化测试套件、将测试覆盖与冲刺故事sprint stories逐一比对并借助AskUserQuestion与开发者批量确认人工冒烟检查项最后在获得用户明确许可后把报告写入production/qa/smoke-[date].md。读完本文你将掌握该技能的完整行为协议、三种判定语义PASS / PASS WITH WARNINGS / FAIL、五类典型测试场景的期望行为以及它如何与 test-setup、/story-done、/bug-report等技能协同形成可验证的发布质量闭环。一、技能定位实现与 QA 之间的交接闸门1.1 它解决什么问题在 CCGS 的工作流中从 story 创建到 QA 交接之间存在一个关键质量关口不能把尚未通过冒烟验证的功能交到 QA 手里。/smoke-check正是为此设计——它不替代 QA而是保证被交接的东西至少是冒烟级可运行的。其核心职责可以拆解为四步环境探测检测测试目录与游戏引擎Godot / Unity / Unreal并尝试读取 QA 计划自动化测试执行通过 Bash 调用引擎对应的无头测试运行器如 Godot 的gdunit4_runner.gd并解析结果覆盖扫描将测试文件与当前冲刺的故事逐一比对标记MISSING无对应测试的故事人工冒烟确认使用AskUserQuestion分批Batch 1 / Batch 2必要时 Batch 3向开发者确认核心稳定性与冲刺机制冒烟项而非使用内联文本提问。在整套 CCGS 技能体系中它的上游依赖是 test-setup脚手架化tests/目录与运行器下游交接对象是 QA 团队与/story-done。在 WORKFLOW-GUIDE.md 中它被标注为 Critical path smoke test gate before QA hand-offQA 交接前的关键路径冒烟测试闸门优先级为 5-6。1.2 判定语义只有三种裁决技能的输出判定词汇表是严格封闭的只有三种不允许出现其他措辞判定触发条件含义PASS自动化测试全部通过、所有冒烟检查通过、无缺失测试证据可以放心交接给 QAPASS WITH WARNINGS自动化测试通过或 NOT RUN所有关键检查通过但存在建议性缺口如某故事缺少测试覆盖可交接给 QA但缺口需在/story-done关闭相关故事前解决FAIL任一自动化测试失败或 Batch 1 / Batch 2 任一项冒烟检查返回 FAIL禁止交接必须先修复值得注意的是自动化测试未运行NOT RUN例如引擎二进制不在 PATH 上会被记录为警告warning而不是 FAIL——这与自动化测试真实失败有本质区别后文协议合规一节会展开说明。二、结构约束静态断言与目录门检查2.1 七项静态断言作为一份行为规范behavioral spec/smoke-check需要满足 CCGS Skill Testing Framework 的静态结构检查这些检查由/skill-test static自动验证无需夹具fixture具备必需的 frontmatter 字段name、description、argument-hint、user-invocable、allowed-tools至少包含 2 个阶段标题phase headings包含判定关键词PASS、PASS WITH WARNINGS、FAIL在写报告前包含 May I write 协作协议语言包含下一步交接指引如 FAIL 时转/bug-reportPASS 时给出 QA 交接指引这些检查是框架对全部 72 个技能的通用质量底线。在 quality-rubric.md 中utility类别的判定标准U1正是通过全部 7 项静态检查/skill-test static [name]返回 COMPLIANT 且 0 FAILsmoke-check在 catalog.yaml 中被登记为category: utility、priority: low。若技能会触发导演门director gate还需满足 U2正确应用 full/lean/solo 门控逻辑——但/smoke-check明确不适用。2.2 导演门检查无门/smoke-check的 Director Gate Checks 章节内容非常明确None。它属于 pre-QA 工具型技能utility skill在整个执行过程中不 spawn 任何导演 Agentcreative-director / technical-director / producer / art-director输出中不出现任何门 IDCD-*、TD-*、AD-*、PR-*不调用/gate-check。这意味着它可以在不打断创意/技术决策流程的前提下作为一个纯质量验证工具随时运行——这也是它被划归 utility 类别、而非 gate 类别的原因。三、五类测试场景的行为规范规格文件用五个用例Test Cases从正面、反面和边界三个维度定义了/smoke-check的完整行为契约。下面逐一展开。3.1 Case 1Happy Path —— 一切通过判定 PASS夹具Fixturetests/目录存在且包含 GDUnit4 运行器脚本从technical-preferences.md检测到引擎为 Godotproduction/qa/qa-plan-sprint-005.md存在自动化测试运行器报告 12 个测试全部通过、0 失败开发者确认 Batch 1 与 Batch 2 冒烟检查全部 PASS所有冲刺故事都有对应测试文件无 MISSING 覆盖。输入/smoke-check期望行为链10 步检测测试目录与引擎注意到 QA 计划存在通过 Bash 执行godot --headless --script tests/gdunit4_runner.gd解析输出12/12 通过扫描测试覆盖——所有故事均为 COVERED 或 EXPECTED对 Batch 1核心稳定性与 Batch 2冲刺机制使用AskUserQuestion开发者对所有项目选择 PASS组装报告自动化测试 PASS、全部冒烟检查 PASS、无 MISSING 覆盖询问 May I write this smoke check report toproduction/qa/smoke-[date].md?获批后写入报告交付判定PASS。断言要点自动化运行器必须经由 Bash 调用人工冒烟批次必须使用AskUserQuestion写报告文件前必须问 May I write报告写入production/qa/smoke-[date].md判定为 PASS。值得注意第 4 步的EXPECTED状态规格允许预期无测试的故事存在例如纯文档类故事这类故事不会被记为 MISSING这与 Case 3 的 MISSING 语义形成对照。3.2 Case 2Failure Path —— 自动化测试失败判定 FAIL夹具tests/存在引擎为 Godot运行器报告 10 个测试中 8 通过、2 失败失败用例为test_health_clamp_at_zero与test_damage_calculation_negativeQA 计划存在。期望行为链通过 Bash 运行自动化测试解析输出——检测到 2 个失败记录失败测试名继续走完人工冒烟检查批次此时自动测试已 FAIL但人工确认流程仍执行报告中将自动化测试标为 FAIL并列出失败测试名询问写报告获批后写入交付 FAIL 判定并给出标准消息The smoke check failed. Do not hand off to QA until these failures are resolved.冒烟测试失败在解决这些失败之前不要交接给 QA列出失败测试并建议修复后重新运行/smoke-check。断言要点失败测试名必须出现在报告中判定为 FAIL判定后的消息必须指引开发者先修复再交接 QA必须建议修复后重跑/smoke-check。这个用例揭示了技能的一个关键设计自动化测试失败不会中断人工冒烟流程但最终判定被 FAIL 锁定——人工冒烟通过也无法救回一个自动化测试失败的构建。这与NOT RUN 只算警告形成鲜明对比体现了协议对真实失败与无法运行的严格区分。3.3 Case 3Manual Confirmation —— 覆盖缺失判定 PASS WITH WARNINGS夹具tests/存在引擎为 Godot自动化测试 8/8 全部通过一个 Logic 类故事没有对应测试文件MISSING 覆盖开发者确认 Batch 1 / Batch 2 全部 PASS。期望行为链自动化测试 PASS覆盖扫描发现 1 条 Logic 故事的 MISSING 条目对 Batch 1 / Batch 2 使用AskUserQuestion——开发者确认全部 PASS报告呈现自动化测试 PASS、人工检查全部 PASS、1 条 MISSING 覆盖条目判定为PASS WITH WARNINGS——构建可以交接 QA但该 MISSING 条目必须在/story-done关闭受影响故事之前解决询问写报告获批后写入。断言要点人工冒烟批次必须用AskUserQuestion而非内联文本提示MISSING 覆盖条目必须出现在报告中判定必须是 PASS WITH WARNINGS既不是 PASS 也不是 FAIL建议性说明必须指出 MISSING 条目需在/story-done前解决报告写入production/qa/smoke-[date].md。这一用例是三种判定中最微妙的它允许带警告放行但警告不是口头建议——它是有截止点的债务与/story-done的关闭流程强绑定。在 qa-plan.md 中也能看到同类设计配置/数据类故事balance tuning的下一站正是 smoke check。3.4 Case 4No Test Directory —— 优雅停止并给出补救指引夹具tests/目录不存在引擎配置为 Godot。期望行为链Phase 1 检查tests/目录——未找到技能输出标准错误消息No test directory found attests/. Run/test-setupto scaffold the testing infrastructure, or create the directory manually if tests live elsewhere.未在tests/找到测试目录。运行/test-setup来搭建测试基础设施若测试位于其他位置也可手动创建目录技能停止——不运行自动化测试、不进行人工冒烟检查、不写任何报告。断言要点错误消息必须指向缺失的tests/目录必须建议/test-setup作为补救步骤技能在输出该消息后停止不再执行后续阶段不写入任何报告文件。这是失败前先自省依赖的典型模式/smoke-check的自动测试能力完全依赖 test-setup 建立的tests/结构unit/、integration/、performance/、playtest/ 四个子目录及对应运行器。若前置依赖缺失宁可停止也不产出虚假的通过结论。3.5 Case 5Director Gate Check —— 全程无门夹具测试设置有效自动化测试通过人工冒烟检查已确认。期望行为链技能跑完全部阶段并产出 PASS 或 PASS WITH WARNINGS任何时刻都不 spawn 导演 Agent输出中不出现任何门 IDCD-*、TD-*、AD-*、PR-*不调用/gate-check。断言要点不触发任何导演门不出现门跳过消息gate skip messages判定为 PASS / PASS WITH WARNINGS / FAIL 三者之一与门控无关。四、协议合规清单可机械核验的行为契约规格文件的 Protocol Compliance 章节定义了 8 条可逐项勾选的行为契约可作为人工审查或自动化断言的基础所有人工冒烟批次Batch 1、Batch 2、Batch 3一律使用AskUserQuestion在提出任何人工问题之前先通过 Bash 运行自动化测试创建报告文件前必须问 May I write——未经批准绝不写入判定词汇严格限定为 PASS / PASS WITH WARNINGS / FAIL无其他判定FAIL 由自动化测试失败或 Batch 1 / Batch 2 的 FAIL 响应触发PASS WITH WARNINGS 在存在 MISSING 测试覆盖但无关键失败时触发NOT RUN引擎二进制不可用记录为警告而非 FAIL全程不调用导演门这条清单本质上是把什么时候该放行、什么时候该拦住、什么时候该带警告放行的判定规则形式化使得同一个技能在不同项目、不同引擎下行为保持一致也使得/skill-test spec smoke-check可以用机械方式核验其合规性。五、覆盖说明quick参数、--platform参数与 NOT RUN 边界规格的 Coverage Notes 章节交代了三个未单独做夹具测试、但行为已被协议约束的边界场景理解它们有助于正确使用技能5.1quick参数/smoke-check quick会跳过 Phase 3 覆盖扫描与 Batch 3第三批冒烟检查。它未单独做夹具测试但遵循与 Case 1 相同的模式区别仅在于输出中会附带一条覆盖跳过coverage-skip说明。适合需要在提交前快速自检、而非完整交接验收的场景。5.2--platform参数/smoke-check --platform会追加平台专属的AskUserQuestion批次并输出按平台分组的判定表格per-platform verdict table。同样未单独测试用于多平台发布前的分平台冒烟例如 PC / 主机 / 移动端各自的关键路径验证。5.3 NOT RUN引擎二进制不在 PATH当引擎二进制不在 PATH 上无法执行自动化测试时遵循PASS WITH WARNINGS模式并受上述协议合规断言的约束NOT RUN 被记录为警告而非 FAIL。这意味着环境缺失不会阻塞交接但会以警告形式显式暴露供开发者判断是否需要补齐环境后重跑。六、在 CCGS 工作流中的协同位置/smoke-check并非孤立技能它在 CCGS 的质量链路中处于承上启下的位置阶段相关技能关系测试基础设施搭建test-setup前置依赖tests/目录缺失时/smoke-check会停止并建议运行/test-setup测试计划制定qa-plan冒烟前应有 QA 计划如qa-plan-sprint-005.md供技能探测冒烟验收本文/smoke-check实现 → QA 的交接闸门产出production/qa/smoke-[date].md失败处理/bug-reportFAIL 判定后的标准交接路径故事关闭/story-donePASS WITH WARNINGS 中的 MISSING 覆盖需在/story-done前解决框架级验证/skill-test、/skill-improve在 CCGS Skill Testing Framework 中可通过skill-test static/skill-test spec smoke-check验证本文描述的静态断言与行为契约此外从框架管理视角看smoke-check与其他 QA 类技能/qa-plan、/soak-test、/regression-suite、/test-setup、/test-helpers、/test-evidence-review、/test-flakiness一起构成 CCGS 的完整质量工具集见 根 README而本技能的行为规范文件本身也由框架的catalog.yaml统一登记追踪测试覆盖与最近测试结果。七、小结为什么交接要过一道门/smoke-check的全部设计围绕一个原则QA 交接必须建立在可验证的证据之上而非口头承诺之上。自动化测试结果Bash 执行 输出解析提供了机器证据覆盖扫描提供了每个故事都有测试兜底的结构证据AskUserQuestion分批确认提供了开发者对核心稳定性与冲刺机制的人工证据三者汇合后才允许写报告、出判定。而May I write协议确保了任何文件写入都经过显式授权production/qa/smoke-[date].md则让每次交接都留下可追溯、可复查的审计痕迹。掌握这份行为规范你就能在 CCGS 项目中正确调用/smoke-check理解三种判定的业务含义在tests/缺失、引擎二进制缺失、quick/--platform参数等边界场景下准确预期其行为并将其嵌入到从 test-setup 到 story-done 的完整质量闭环之中。【免费下载链接】Claude-Code-Game-StudiosTurn Claude Code into a full game dev studio — 49 AI agents, 72 workflow skills, and a complete coordination system mirroring real studio hierarchy.项目地址: https://gitcode.com/GitHub_Trending/cl/Claude-Code-Game-Studios创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考