lili 824b4eaba3 fix(cheap-gen): 重同步 cheap-system.md 正文——补 edit_file 提示欠账
热取源 04-config/cheap-system.md 停留在「六工具/没有 edit_file/改文件用 write_file
整体覆盖」,而内联 _SYSTEM_PROMPT 早已加 edit_file(七工具/小改优先 edit_file)。生产
热取到 stale 提示 → 逼模型整文件重写 → 大文件截断(便宜档死圈病根之一)。按「.md 正文
= _SYSTEM_PROMPT 逐字节对齐」铁律重同步正文,registry.yaml + .md frontmatter version
双升 1.6.1→1.6.2;test_roles hotload 不变量 2 测试转绿。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-10 04:27:17 -07:00
..

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

Prompt 即契约。所有生成链路的 LLM prompt 在此 Git 化注册、版本化、过门禁,禁止散落在 Dify 节点/代码里。 治理细则见 .agents/skills/prompt-governance.md(单一 how-to 源);历史执行档已退役进 git 史(git show bb7c2baf:docs/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)

引用与变更

  • 引用:aigc 壳层用 {{registry:id@ver}} 引用,PromptResourceLoader 加载注入(Dify 已降级远期,原 Dify 节点引用方式随之退役)。
  • 变更:改 prompt 必须升 version,并过四道闸 CI(Schema 通过率 / 生成成功率≥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)

已挂载(2026-07-03):

  • pre-commit:.githooks/pre-commit 在本次暂存触及 contracts/prompts/ 时跑本脚本,非零即拦(紧急绕过 git commit --no-verify,服务端门仍兜)。
  • CI:.gitea/workflows/contract-gates.yml(与 docs-gate 平级的服务端门)每次 push / PR 全量跑,不可绕。

触发时机:任何 prompt .md 或 registry.yaml 变更(pre-commit 按路径条件触发);CI 每次全量跑。