lili 34923812c3 fix(gen): 模板起局鲁棒性 menuStartBtn 解耦 render + targets 键/起局约定进 prompt v1.6.1 + gen.mjs 入口守卫 (W-S1 修复单②)
T1 六款模板(_template + feiyi/puzzle/shop/story/trpg)起局/重开按钮命中矩形:
从 render 副作用回写(menuStartBtn = renderMenu(...).startBtn)改为抽纯几何
menuStartRect/overRestartRect + 在场景进入点 onEnter 确定性赋值、render 只画;
治并发 rAF 饥饿下 render 未跑过=命中矩形恒 null=卡 menu(归因案4)。
no-render 探针坐实:修复前六款均卡 menu、修复后均按坐标起局进 play。

T2 cheap-system.md 升 v1.6.1,红线段增两条硬约束:①点 target 玩法 state 键名
固定为 targets(不得改成 items 等,C5 驱动器族选择依赖)②起局命中矩形须在状态
进入点建立、不依赖渲染帧;各模板 _forensicsView 加同义契约注释。cheap_roles.py
_SYSTEM_PROMPT 与 md 正文逐字节 parity 同步,registry.yaml 版本 bump 对齐。

T3 gen.mjs 顶层裸调 main() 加入口守卫(import.meta.url === pathToFileURL(argv[1])),
被 import 时不再触发真生成(footgun,曾 ~116s)、直接执行行为不变。

T4 puzzle-game-design.md §9 死链经核实在本 commit 不存在(唯一 play-spec 引用已
正确指向存在的 puzzle.play-spec.json),未伪造改动;littlejs-game-dev.md 补一条
起局 onEnter 指导闭合 doc-code。

验证:test_roles 12/12 + check_registry 17 对齐 + md↔_SYSTEM_PROMPT parity True
+ 6 模板 esbuild build 全绿 + amodel-gen tests 15+11 + 模板 node --test 除
_template-shop/headless-boot(既存红,与基线同)外全绿。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-03 14:17:53 -07:00

130 lines
10 KiB
YAML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 契约 #8 Prompt Registry —— Prompt 即契约Git 化注册表)
# owner各 prompt 归属工位 | 治理:见 .agents/skills/prompt-governance.md 与 docs/agent-specs/prompt治理体系-execution.md
# 引用方式Dify/aigc 用 {{registry:id@ver}} 引用;变更 prompt 必须升 version 并过四道闸CI
version: 1
prompts:
- id: safety.prompt-check
version: 1.0.0
stage: "01-safety" # 8 阶段01-safety 02-intent 03-template 04-config 05-asset 06-quality 07-fix 08-meta
owner: WS2 # 归属工位
file: 01-safety/prompt-safety-check.md
desc: 创作者 Prompt 安全/注入检测(生成链路第 1 节点)
eval: eval/safety.prompt-check/ # Golden eval 集四道闸Schema/成功率/回归diff/成本延迟)
# —— agent 化生成 QA 闭环 v1 三件套HJ-AGENT-LOOP-EXEC-001 §5v1 仅 clicker 走批跑)——
- id: config.clicker-designer
version: 1.1.0 # v1.1.0batch-001 冻结告警→新增 designIntent 模板内约束(加规则不改口径)
stage: "04-config"
owner: WS2
file: 04-config/clicker-designer.md
desc: agent 闭环独立策划创意一句话→GameDesign 三段designIntent/expectedPlaySeconds/configconfig 受 contracts/templates/clicker.schema.json 约束)
eval: eval/config.clicker-designer/ # 每批 evalflow.py 强制回流inputs/labels JSONL+ C1 spike 52 条种子D3 转入)
- id: config.merge-designer
version: 1.0.0 # 首版merge 模板策划(结构对齐 clicker-designer按 merge schema 改字段约束)
stage: "04-config"
owner: WS2
file: 04-config/merge-designer.md
desc: agent 闭环 merge 模板策划创意一句话→GameDesign 三段designIntent/expectedPlaySeconds/configconfig 受 contracts/templates/merge.schema.json 约束)
eval: eval/config.merge-designer/ # 新建 Golden 目录首版无种子随批回流§4.5
- id: config.idle-designer
version: 1.0.0 # 首版idle 模板策划(结构对齐 clicker/merge-designer按 idle schema 改字段约束)
stage: "04-config"
owner: WS2
file: 04-config/idle-designer.md
desc: agent 闭环 idle 模板策划创意一句话→GameDesign 三段designIntent/expectedPlaySeconds/configconfig 受 contracts/templates/idle.schema.json 约束)
eval: eval/config.idle-designer/ # 新建 Golden 目录(首版无种子,随批回流)
- id: config.tycoon-designer
version: 1.0.0 # 首版tycoon 模板策划(结构对齐 clicker/merge-designer按 tycoon schema 改字段约束)
stage: "04-config"
owner: WS2
file: 04-config/tycoon-designer.md
desc: agent 闭环 tycoon 模板策划创意一句话→GameDesign 三段designIntent/expectedPlaySeconds/configconfig 受 contracts/templates/tycoon.schema.json 约束)
eval: eval/config.tycoon-designer/ # 新建 Golden 目录(首版无种子,随批回流)
# —— P3 生成主线编码 promptW-G12026-06-14范式=编码出 bundle 源码,非策划出 GameConfig——
- id: config.generic-coder
version: 0.0.1 # ⚠️ STUB 占位骨架04-config/generic-coder.md 仅 frontmatter+三要点提纲,非正式 promptL1 出正式草案时整体替换并升版,两处 version 同步
stage: "04-config"
owner: WS2
file: 04-config/generic-coder.md
desc: P3 编码 prompt创意一句话→GameHostFactory 源码→esbuild 打 __GameBundle bundle非策划出 GameConfig。【当前为 STUB 占位骨架·L1 出正式草案替换】
eval: eval/config.generic-coder/ # 新建 Golden eval 目录(首版无种子,随 bake-off 批回流)
- id: quality.adversary-review
version: 1.1.2 # v1.1.2:细则①追加 merge 域示例P0/P1 口径文字仍未动)
stage: "06-quality"
owner: WS2
file: 06-quality/adversary-review.md
desc: agent 闭环对抗策划GameDesign→findings[]P0/P1/P2 口径写死;只批不改、不下结论、不可见试玩数据)
eval: eval/quality.adversary-review/ # 每批 evalflow.py 强制回流;批末稳定性重测一致率素材
- id: fix.design-revise
version: 1.0.1 # v1.0.1+template_schema 注入段/:48 括注中性化
stage: "07-fix"
owner: WS2
file: 07-fix/design-revise.md
desc: agent 闭环 fix 变体:原 GameDesign+findings(P1) 回灌重出(只修指出项,未指出字段原样保留;回炉额度合计 1 轮)
eval: eval/fix.design-revise/ # 每批 evalflow.py 强制回流fix 前后对照跨目录按 rootDesignId 关联§16 D2-a
# ── tier2 富游戏自治生成线 prompt09-tier2-richgamerange=tier2/gen-worker/worker/roles.py─────────────
# 范式AgentScope 2.0.2 ReAct 两阶段角色(阶段 1 工作室多 agent 设计 / 阶段 2 单写 ReAct + L3 软检玩家),
# 【非】cheap-line 的策划/编码出 GameConfig|bundle 范式。与 Tier0/1 既有条目01-safety~07-fix完全隔离、互不影响。
# 消费方 = roles.py 经 worker/prompts.py 运行时读本段 file 指向的正文;读不到/脏 → 回落 roles.py 内置原文best-effort绝不中断生成
# 首版正文 = roles.py 内置原文逐字节对齐(带参的存 {{input.*}} 模板),故默认行为字节不变;调一条 prompt = 改对应 .md 正文升 version 重跑。
# 注eval 字段暂留待建(图说 B 族明示 tier2 eval/灰度门当前不存在,配置改动只「下次生效+轨迹留痕」两层保护,非设计缺陷)。
- id: tier2.design-system
version: 1.0.0
stage: "09-tier2-richgame"
owner: WS2
file: 09-tier2-richgame/design-system.md
desc: 阶段 1 单 design agent 兜底题面→富游戏设计稿七要点design_team 失败时 degrade 回落用)
- id: tier2.design-systems-designer
version: 1.1.0 # v1.1.0:策划知识包 v2——加第 5 条策划判据(可判定句式;不给平衡数值)
stage: "09-tier2-richgame"
owner: WS2
file: 09-tier2-richgame/design-systems-designer.md
desc: 阶段 1 工作室专家·系统设计师(核心循环/多系统拆解/耦合点/可观测语义 state
- id: tier2.design-economy-designer
version: 1.1.0 # v1.1.0:策划知识包 v2——加第 5 条策划判据(可判定句式;不给平衡数值)
stage: "09-tier2-richgame"
owner: WS2
file: 09-tier2-richgame/design-economy-designer.md
desc: 阶段 1 工作室专家·经济数值设计师(数据表/经济流转/胜负条件含失败态/难度曲线)
- id: tier2.design-level-designer
version: 1.1.0 # v1.1.0:策划知识包 v2——加第 5 条策划判据(可判定句式;不给平衡数值)
stage: "09-tier2-richgame"
owner: WS2
file: 09-tier2-richgame/design-level-designer.md
desc: 阶段 1 工作室专家·玩法关卡设计师(玩法节奏/关卡阶段编排/操作手感/失败-重试体验)
- id: tier2.design-presentation-designer
version: 1.1.0 # v1.1.0:策划知识包 v2——加第 5 条策划判据(可判定句式;不给平衡数值)
stage: "09-tier2-richgame"
owner: WS2
file: 09-tier2-richgame/design-presentation-designer.md
desc: 阶段 1 工作室专家·表现层与可玩性设计师Phaser scene 树/UI-HUD 布局与命中映射/进展反馈/可玩性)
- id: tier2.design-leader-system
version: 1.0.0
stage: "09-tier2-richgame"
owner: WS2
file: 09-tier2-richgame/design-leader-system.md
desc: 阶段 1 工作室 leader拆题面→调四专家工具→汇总成连贯设计稿带参 input.brief
- id: tier2.writer-system
version: 1.0.0
stage: "09-tier2-richgame"
owner: WS2
file: 09-tier2-richgame/writer-system.md
desc: 阶段 2 单写 agent system 固定前缀(任务/九工具/工作纪律铁律/典型循环节奏;题面+品类靶+设计稿三块由 roles.py 按入参条件追加)
- id: tier2.player-system
version: 1.1.0 # v1.1.0打磨不降档——fun=5 须记忆点、fun≥4 才 passscoreOnly 软检,纯评语口径、零行为影响)
stage: "09-tier2-richgame"
owner: WS2
file: 09-tier2-richgame/player-system.md
desc: L3 视觉软检玩家 agent看截图+语义 state 判富游戏体验;只评分绝不当门;带参 input.persona
# ── cheap-worker 便宜档 A-model 生成线 prompt04-configrange=cheap-worker/cheap_roles.py──────────
# 消费方 = cheap_roles.py 经 _load_system_prompt() 运行时读本段 file 指向的正文;
# 读不到/脏/缺文件 → 回落 cheap_roles._SYSTEM_PROMPTbest-effort绝不中断生成
# 首版正文 = _SYSTEM_PROMPT 内置原文逐字节对齐(含 ⟦G⟧/⟦SCAFFOLD_DESC⟧ 占位符),默认行为字节不变;
# 调一条 prompt = 改 04-config/cheap-system.md 正文 + 升 version下次生成自动生效。
- id: config.cheap-system
version: 1.6.1 # v1.6.1:起局鲁棒性 + targets 键契约进红线——①起局/交互按钮命中矩形必须在状态进入点 onEnter 确定性建立、render 只画(治并发 rAF 饥饿下卡 menu②点目标玩法 state 键名固定 `targets`(驱动器契约 C5 依赖,改名=盲驱动器选错族=H 门挂。v1.6.0:打磨不降档(创始人 07-04 定调「档位切 scope 不切 polish」——删 spike「能跑能玩即可」残留、hitstop 出禁项改结算标配、设计块强制落盘+finish 前收尾自查、新增 ⑩ 难度曲线、⑨ 经营决策模式指针。v1.5.0:策划知识包 v2——⑨ 否决项加判定句式+内嵌正反例8/9 条计数口径统一prompt.mjs 冻结为 A/B 史料不再双源同改。v1.4.0W-GENRE 品类路由并集(剧情+6/TRPG+7/非遗+8/解谜+9
stage: "04-config"
owner: WS2
file: 04-config/cheap-system.md
desc: 便宜档 LittleJS A-model 生成 agent system prompt轻量 AI 参与档,入口契约+插件+红线+输入契约+完成判据;运行时热取,回落 cheap_roles._SYSTEM_PROMPT
# 其余 prompt 待各工位 Day-0 抽取迁入Dify 节点/OpenGame 内嵌 prompt → 本 Registry