lili db4aadd785
Some checks failed
docs-gate / docs-gate (push) Has been cancelled
merge: W-GENRE 解谜品类四件套(skill puzzle-game-design + _template-puzzle 9/9 + _fewshot-puzzle 正例 + rubric fixture/金标 spec + 范例签名机器门)——品类路由并集 v1.4.0(剧情6/TRPG7/非遗8/解谜9)
合并裁定(rubric 挂点两套实现收敛,fable 亲审):评分尺主干 = TRPG 机制(单 checks 数组契约+嵌套
richness.genre,19 单测钉住);从分支嫁接 fixtures/genre-rubrics/<genre>.json 加载器为第二来源
(内联 GENRE_CHECKLISTS 优先、fixture 兜底,puzzle.json 即刻生效);分支平铺 genreHits/genreChecks
双数组契约弃用,其接线测试适配主干形状。run_studio 增显式 genre= 参数(None→按模板推断,原行为不变)。
GENRE_BY_TEMPLATE += _template-puzzle。顺手补账:.agents/README 索引四个品类 skill(前三次 merge 欠账)。

验收(本机):金标 7 品类 6/6 + cheap_verify 19/19 + 解谜资产门 6/6(含 node scaffold/check 真 shell-out)
+ 模板 node 13/13 + check_registry 17 条 + node --check/py_compile 全过;test_roles 2 红=主干既有基线
(回落分叉,归一单已排)。

诚实记录:分支验收唯「n=3-5 小批全过门」BLOCKED(4/7;三失败=AI 大面重写引入运行时 bug,九门正确
拦截,根因已回写 skill §9 品类红线;spike 路无续修环是结构缺口,生产路 RepairMiddleware 覆盖)。

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-02 23:48:41 -07:00
..

contracts/prompts/ —— 第 8 类契约Prompt Registry

Prompt 即契约。所有生成链路的 LLM prompt 在此 Git 化注册、版本化、过门禁,禁止散落在 Dify 节点/代码里。 治理细则见 .agents/skills/prompt-governance.mddocs/agent-specs/prompt治理体系-execution.md

目录结构8 阶段)

prompts/
├── registry.yaml          # 注册表id@version / owner / stage / file / eval
├── 01-safety/             # Prompt 安全/注入检测
├── 02-intent/             # 意图解析
├── 03-template/           # 模板匹配
├── 04-config/             # GameConfig 生成
├── 05-asset/              # 素材生成ComfyUI 引导)
├── 06-quality/            # 质量评估
├── 07-fix/                # 失败修复/重生成
├── 08-meta/               # 标题/简介/封面文案
└── eval/<id>/             # 每条 prompt 的 Golden eval 集inputs/expect/baseline

引用与变更

  • 引用Dify/aigc 用 {{registry:id@ver}} 引用PromptRegistryLoader 加载注入。
  • 变更:改 prompt 必须升 version,并过四道闸 CISchema 通过率 / 生成成功率≥80% / Golden 回归 diff / 成本延迟);四闸绿后运营 HITL 抽检 K 条方可合入。

Registry 一致性 CI 门check_registry.py

check_registry.py(本目录同级)验证 registry.yaml 里每条 version 与对应 .md frontmatter 的 version 是否完全一致。防止 Java PromptResourceLoader 构建期快照加载的 prompt 版本与注册表宣称版本漂移(二者不一致会导致日志/追溯/审计失真)。

手动跑:

python3 contracts/prompts/check_registry.py
# exit 0 = 全部对齐exit 1 = 有漂移(打印具体 id + 两侧 version

接入 CI / pre-commit推荐

  • CI在流水线加步骤 python3 contracts/prompts/check_registry.py(无三方依赖,标准库即可跑)。
  • pre-commit.pre-commit-config.yaml 加 hookentry: python3 contracts/prompts/check_registry.pypass_filenames: false

触发时机:任何 .mdregistry.yaml 变更都应跑一次CI 全量跑。