games-development-ai/.agents/skills/prompt-governance.md
lili a207cb8d65
Some checks failed
contract-gates / contract-gates (push) Has been cancelled
docs-gate / docs-gate (push) Has been cancelled
docs(agents): skill 规范化双层收口 + 席位context skill 新增 + W-NSTAR/W-TPL/W-GENLOG 设计波落档
- .agents/skills 25 件全量 frontmatter 规范化与评审修入(含 prompt-governance 大修);.claude/skills 7 件薄壳按双层方案①落位
- 新增 skill:agentic-seat-context-design(agentic 席位与 context 工程设计基线,2026-07-05 探索蒸馏)
- 设计波三件落档:复杂游戏北极星件(W-NSTAR 终审稿待拍)/黄金模板规格件(W-TPL 定稿待批)/生成侧过程蒸馏回路(W-GENLOG 骨架)
- protocol/在飞板/作战清单/数据飞轮 SoT/契约 prompts 索引同步;breakout 九门证据刷新
- .gitignore 补 /localagents.md 真实忽略行(该文件自声明绝不提交,此前声明未被机器执行)
- 刻意不入库:nacos-data/ 与 _tier2-gen、c2v-*、amgen-* 生成产物(可重生成,忽略行格式待拍)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-06 05:32:56 -07:00

15 KiB
Raw Blame History

name, description
name description
prompt-governance 当新增或修改生命周期 prompt、搭建 Prompt Registry 与四道闸 eval 门禁、或对接人在环节点时使用:prompt 即第 8 类契约,contracts/prompts 版本化单一事实源与治理流程(段A版本闸+段B真模型闸 CI 已接)。

Prompt 工程治理手册prompt-governance

蒸馏来源:执行版 ../../docs/architecture/架构/生成引擎/prompt治理.mdHJ-PROMPT-GOV-EXEC-001。 适用:新增/修改任何生命周期 prompt安全/意图/模板/生成/素材/质量/修复/元信息八阶段,及 tier2 富游戏线)、搭建 Prompt Registry 与 eval 门禁、对接人在环HITL节点。 配套:契约先行见 ./contract-first-development.mdAI 生成链路见 ./agentic-amodel-generation.md;运行时/Cocos 见 ./runtime-and-multichannel.md;选型见 ../knowledge/tech-decisions.md §1.1;降级红线见 ../rules/security-and-reliability.md

⚠️ 引擎上下文纠偏2026-06-12:本手册核心理念Prompt 即第 8 契约 / Registry / eval 门禁 / HITL现行有效不变;但下文凡以 Dify / OpenGame 为注入目标/引擎载体的描述均按现行裁决改读——Dify/OpenGame=降级远期未部署C2/HJ-GEN-001Tier1 生成主线=new-api 网关 + agent 写码于插件库(引擎=LittleJS 增强发行版agentic 编排基建=AgentScope 2.xHJ-AGI-001。"模板填充"措辞按模板哲学终裁更新玩法模板层废除。Cocos-MCPTier2/3仍现行有效。

⚠️ 现行化重写2026-07-05§1§3 已按现行 registry.yaml(阶段编号目录重构 + 头部消费面三态对账)与 W-PCI 后口径整块重写——目录树、加载器类名(PromptResourceLoader)、两条 live 生成线(便宜档 cheap-worker / tier2 AgentScope形态均改为现行事实此前散在正文的划线改读不再需要、随句清理。上条 2026-06-12 记的「Cocos-MCP 仍现行有效」本次一并修正Cocos-MCP 降为 3D 与渠道导出的人在环工具,非 live 生成形态。


核心理念Prompt 即第 8 类契约资产

所有 prompt 进 git contracts/prompts/ 单一事实源,与 Day-0 七契约同级,在 registry.yaml 按条目登记id / version / stage / owner / file / desc / eval各配 Golden eval 集与硬约束。运行时按注册条目正文加载注入、不在引擎/编排内核里内嵌——便宜档由 cheap-worker 读、tier2 由 AgentScope gen-worker 读、后端模板策划由 PromptResourceLoader 读,延续"能力增强放壳层、不动内核"的纪律。

为什么必须治理:多条生成线(便宜档 / tier2 / 后端模板策划)使 prompt 数量与形态膨胀;无单一事实源 → 跨链路无法统一治理、改动无法回归验证。


1. Registry 目录结构

Prompt 按生成链路阶段编号归档,registry.yaml 作索引(唯一事实源),eval/ 放各条 Golden 集,同级还摆着三个治理脚本:

contracts/prompts/
├── registry.yaml           # 注册表(索引):每条 prompt 的 id / version / stage / owner / file / desc / eval
├── README.md               # 目录说明 + registry 一致性 CI 门说明
├── check_registry.py       # CI 门:registry.yaml 各条 version 与对应 .md frontmatter version 对齐
├── check_version_bump.py   # 段 A 离线版本闸:改正文必升 version(见 §6)
├── eval_gate.py            # 段 B 真模型闸:对 live 条目跑四道闸、真调 M3(见 §6)
├── 01-safety/             # Prompt 安全/注入检测
├── 02-intent/             # 意图解析
├── 03-template/           # 模板匹配
├── 04-config/            # 生成主线:cheap-system(便宜档主 prompt) + 各品类 -designer(模板策划/编码)
├── 05-asset/             # 素材生成(ComfyUI 引导)
├── 06-quality/           # 质量评估
├── 07-fix/               # 失败修复/重生成
├── 08-meta/              # 标题/简介/封面文案
├── 09-tier2-richgame/    # tier2 富游戏自治生成线的 8 条 prompt(AgentScope 多 agent)
└── eval/<id>/            # 每条 prompt 的 Golden eval 集(inputs.jsonl / labels.jsonl / baseline.json / runs/)

0108 是按生成链路顺序保留的阶段槽,眼下真正落有条目的是 01-safety04-config(生成主线含便宜档)、06-quality07-fixagent 闭环批跑遗留),加上 09-tier2-richgametier2 八条);其余为规划槽、暂无 prompt。

每条 prompt 在 registry.yaml 登记一条索引,字段固定为 id / version / stage / owner / file / desc / eval没有 engine / tier——生成线归属由 stage 与消费方代码决定,不写进注册表。摘一条现行 live 条目为例:

- id: safety.prompt-check                    # 唯一 id = 阶段域.角色
  version: 1.0.0                             # 语义化版本;改正文必升(段 A 版本闸强制)
  stage: "01-safety"                         # 阶段编号目录(01-safety…08-meta / 09-tier2-richgame)
  owner: WS2                                 # 唯一负责工位
  file: 01-safety/prompt-safety-check.md     # 正文文件(其 frontmatter 至少含 id+version)
  desc: 创作者 Prompt 安全/注入检测(生成链路第 1 节点)
  eval: eval/safety.prompt-check/            # Golden eval 集(四道闸:Schema/成功率/回归diff/成本延迟)

注册表是索引与对账基准prompt 正文另存于 file 指向的 .md各带一份 frontmatter至少 id 与 versioncheck_registry.py 逐条比对两侧 version 防漂移)。有的正文还内嵌 output_schema / hard_constraints如 safety或 tier / engine 注记(如 tier2 各条),那是正文自己的元信息,注册表条目只认上述七字段。


2. 加载 / 注入机制

三条生成线各有自己的加载器,共同纪律是按 file 指向的正文加载、best-effort 回落进程内内置原文、绝不因 prompt 读取失败中断生成:

  • 后端模板策划 prompt04-config 各品类 -designer 由 game-module-aigc 的 PromptResourceLoader 加载。构建期 maven-resources-plugin 把 contracts 下的 prompt 与 schema 快照进 classpath:wanxiang-contracts/jar 内只是构建时快照git contracts/ 仍是唯一事实源);启动逐模板自检,任一缺失或形态非法即整体 ready=false 自禁用,执行器 tick 首检不认领任务、不崩 app。渲染只做 {{input.xxx}} 替换加残留占位符检测version 仅作可追溯日志,不做 registry 对账——那是 CI 四道闸的职责Java 不复制治理逻辑。配了 aigc.prompts.dir / AIGC_PROMPTS_DIR 外置目录后每 60s 热取,运营改完 prompt 无需重启即生效读失败保留上次、classpath 快照永久兜底。
  • 便宜档 cheap-workercheap_roles.py_load_system_prompt() 运行时读 04-config/cheap-system.md 正文,读不到、脏或缺文件即回落进程内 _SYSTEM_PROMPT
  • tier2 富游戏 gen-workerroles.pyworker/prompts.pyprompts.load 运行时读 09-tier2-richgame/ 下八条正文,读不到或脏即回落 roles.py 内置原文。

版本一致性由 check_registry.py 守门:逐条比对 registry 的 version 与对应 .md frontmatter 的 version不一致即拒绝合入PromptResourceLoader 构建期快照版本与注册表宣称漂移、审计失真),已挂 pre-commit 与服务端 contract-gates.yml

改 prompt = 改 git 正文加升 version → PR → eval 门禁 → 合入 → 下次构建或热取自动携带新版。


3. 两条 live 生成线的 prompt 形态

现行 runtime 只有两条生成线在跑prompt 形态、加载器与失败回落各管一摊:

维度 便宜档 cheap-worker tier2 富游戏 AgentScope 多 agent
主 prompt 单条 config.cheap-system tier2.* 八条leader + 四工作室专家 + 兜底 design-system + 单写 writer + 软检 player
范式 A-model 一个 agent 写 LittleJS src/ 源工程(入口契约 + 插件 + 红线 + 输入契约 + 完成判据) AgentScope 2.0.2 ReAct 两阶段:阶段 1 工作室多 agent 出设计稿 → 阶段 2 单写 ReAct 写 Phaser 源码 + L3 视觉软检玩家
AI 参与深度 便宜档插件库承重、AI 少写) 重(自治多轮、有状态工具编排)
归属目录 04-config/cheap-system.md 09-tier2-richgame/(八文件)
消费方 cheap_roles.py _load_system_prompt() roles.pyworker/prompts.py prompts.load
失败回落 回落 cheap_roles._SYSTEM_PROMPT 回落 roles.py 内置原文

Cocos-MCP 不是 live 生成形态:它降为 3D 与渠道导出的人在环工具(人工在编辑器里操作),不进 MVP 生成 runtime也不在本治理的形态对照内。素材生成链ComfyUI 引导,归 05-asset/)另走各自门禁。


4. 新增一条 Prompt操作步骤

  1. 在对应阶段编号目录建 prompt 正文 .md写 frontmatter至少 id + version归属写 ownerstage 与注册表一致)。
  2. 有输出约束的(如 04-config 各品类模板策划)绑定 contracts/templates/<id>.schema.json;纯 system promptcheap-system / tier2 各条)无外置输出 schema。
  3. 写硬约束块 + guardrails注入检测/Schema 校验/资源引用校验)。
  4. 建 Golden eval 集 eval/<id>/inputs.jsonl(核心样本)+ labels.jsonl(期望标注)+ baseline.json(基线快照,--update-baseline 建,闸 3/4 据此判增量);每次跑的台账 append-only 落 runs/
  5. registry.yaml 登记条目id/version/stage/owner/file/desc/eval
  6. 提 PR → eval 门禁绿 + 人工抽检 → 合入 → 部署同步。

5. 修改一条 Prompt 并验证效果(操作步骤)

  1. 改 prompt 文件,version 必须 bump(语义化)。
  2. PR 触发 eval跑绑定的 Golden 集 → 四道闸比对(见 §6
  3. 全绿 + 人工抽检 K 条 → 合入;任一红 → 阻断 PR + 给 diff 报告。
  4. 合入后灰度新版本 → 观察 telemetry 行为指标(完玩/重玩率)→ 全量或一键回滚version 切换)。

常用 prompt 预留参数槽:运营改参数(如难度/时长)不改结构,免 PR改结构才走 PR+eval。


6. Eval 轻量门禁(四道闸)

判定 来源
① Schema 通过率 输出符合 output_schema 的比例 ≥ 阈值 评审版 §4.4
② 生成成功率 可运行 + 质量通过 ≥ 80% MVP 验收线
③ Golden 回归 baseline.json 关键字段 diff防退化 泛化自 T-AGC-08
④ 成本/延迟 token/耗时不劣化 评审版 §4.4

四闸全绿 → 人工抽检 K 条(主观质量/可玩性)→ 合入。

怎么跑2026-07-04 已接成 CIW-PCI:四道闸按成本分两段落地。段 A 离线版本闸contracts/prompts/check_version_bump.py)兜闸 0「改正文必升 version」——相对基线剔除 frontmatter version 行后比正文,正文变而 version 没升即 exit 1.githooks/pre-commit.gitea/workflows/contract-gates.yml 服务端门,每次提交自动跑、秒级零成本。段 B 真模型闸contracts/prompts/eval_gate.py --id <id>--changed --base <ref>)跑闸 1~4对改动的 prompt 拿其金标集真调 MiniMax-M3经 new-api、thinking 关、key 从 env 读、ProxyHandler({}) 绕系统代理)判定;.gitea/workflows/prompt-eval.yml 手动 workflow_dispatch 触发,单跑预算硬上限 ≤¥5。只焊 live 面:接门前先查 registry.yaml 头部消费面三态对账——非 livefossil/batch-relic条目 SKIP 豁免、live 但无金标集 fail-closed绝不假绿别把门焊在已下架的化石 prompt 上白花钱。调用失败(网关 500/限流)排除出判定分母、建议复跑(不阻塞、不误判 prompt。台账 append-only 落 eval/<id>/runs/,回归基线 eval/<id>/baseline.json--update-baseline 建,闸 3/4 据此判增量)。可玩性 MVP 不自动评分(结构校验测不了"好玩"),靠人工抽检 + 上线后行为指标反哺下一轮。


7. HITL 人在环节点

  • 创作者C 端·每次生成):输入一句话/选 IP 附件 → 任务链进度可中断 → 预览试玩 → 接受/带修改重生成 → 锁风强度 → 对白调试 → 发布前检查 → AI 诊断一键迭代。P-CRT-01/04/05/08/09、P-LIC-04/05、P-PUB-03、P-OPS-03/04
  • 运营B 端·Prompt 生命周期):提 PR 改 prompt → eval 门禁+人工抽检批准 → 模板库策展 → 人工复核队列T-CMP-05→ 新版灰度+回滚。

8. 测试脚本生成T-AGC-09

aigc 新增无状态原子:输入 GameConfig → 输出可玩性测试脚本(启动/输入响应/边界);由 runtime 编译流水线执行为入库门禁的一环。其 prompt 若落地归质量评估阶段 06-quality/。(现行可玩性判定实走生成线九门真玩 harness本条 T-AGC-09 独立测试脚本 prompt 尚未落地。)不新增模块。


9. 降级铁律

失败点 降级
prompt 加载失败(缺 id/version 回退内置默认 prompt + 告警,不中断生成
LLM 不可用 退化为确定性 Fallback 生成器(确定性兜底产出,模板填充措辞已更新,见 ../rules/security-and-reliability.md §5.2
tier2 / 便宜档 prompt 正文热取读到脏或缺失 回落进程内内置原文roles.py 原文 / cheap_roles._SYSTEM_PROMPT / classpath 快照best-effort 绝不中断生成
eval CI 跑不通LLM 限流) 标记 skip + 人工兜底审,不阻塞紧急修复

10. 常见坑

排查 / 应对
改了 prompt 没 bump version CI 卡version 未变拒绝合入(防静默覆盖)
Golden 集过拟合 样本要覆盖典型+边界bad case 增量补;勿只放"好跑"的样本
registry 与运行时不同步 部署强制版本校验DB 镜像只读;改 prompt 必同步 registry.yaml
tier2 多 agent prompt 当单次文生代码写 它是 AgentScope ReAct 多步有状态编排(工作室设计→单写→软检);改一条只改对应 09-tier2-richgame/*.md 正文加升 version不改 Python
把 CI 门焊在化石 prompt 上白花钱 段 B 真模型闸只焊 live 面;接门前先查 registry 头部消费面三态对账,非 livefossil/batch-relicSKIP 豁免、live 无金标 fail-closed先用代码坐实「谁真被 live 路径喂 LLM」再决定跑不跑
单条模型调用失败当成 prompt 退化拦 网关 500/限流是基础设施问题,从判定分母排除 + 建议复跑(多数失败才判人工兜底),别让偶发抖动误判 prompt 质量
运营绕过 eval 直接改 DB DB 是 git 只读镜像,无写入路径;改 prompt 唯一入口=PR
prompt 注入攻击 guardrails 内置 injection-detect + 输出 Schema 校验,与内容安全双层链路同治理