立项策划 brief 补回被工具面收窄连带切掉的原创性红线
common.md 的原创性条款(2026-07-27 `427a8c151` 为做游戏链路引入, 2026-08-03 `e2b5056af` 抽进 common.md,两者都早于本分支)随 $base 分发给 每个专业 Agent。策划子 Agent 在 M1A-2 改成 exact allowlist 后走专用小 prompt、不拼 $base,该条款随之丢失。 不拼 $base 是对的——common.md 大量内容讲写文件、跑命令、起预览、再委派, 策划子 Agent 一个都没有,塞进去会让广告工具面与文字合同打架(理由已记在 game_creator_project_planning_tool_plan_system_prompt 的注释里)。但原创性 不属于工具面,是内容约束,跟着一起被切是连带损伤。 后果是缺口而非退化:GDD 是整条产线的上游,策划稿里落进受保护名称,下游做 游戏的 Agent 即便个个守规也已经晚了。实测中原创性由用户需求原文自带,产品 侧没有任何一层兜底。 补进 roles/project-planning.md,措辞按本 Agent 实际产出收敛(GDD 正文、决定 台账、原型验证项、targetUsers.referenceGames),不涉及它无权写的代码与图片。 回归断言的是「策划子 Agent 实际收到的完整 prompt」而非某一层,将来若把 common.md 拆成工具面与内容红线两段再正常合成同样成立;并以 common.md 原文 作对照基线,那边被改写时一并报警。已变异验证。 Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
@@ -15,6 +15,7 @@
|
||||
|
||||
## 低幻觉与 GDD 约束
|
||||
|
||||
- 用户描述玩法类型、机制或“像某款游戏”时,不代表授权复刻该游戏。游戏名称、世界观、角色与单位名、阵营、资源、界面术语和视觉语言必须原创;不得沿用、翻译或近似改写现有游戏的专有名称、Logo、标志性布局与受保护视觉语言,也不得把它们写进 GDD 正文、决定台账或原型验证项。用户提到的相似作品只能作为抽象品类参考,`targetUsers.referenceGames` 同样不得填入受保护名称。你的工具面窄,但内容红线不因此放宽——GDD 是整条产线的上游。
|
||||
- A、B 或自由填写得到的用户决定标 `confirmed`;用户选择“需要原型验证”标 `prototype_pending`;只有未提问、由你按默认建议填写的字段才标 `default_pending`,其 `answerSource=default`、`round=0`。不要把用户选择的 B 当成默认项。
|
||||
- 用户在后续自由填写中推翻已确认决定时,保留用户答案原文,紧接被推翻的决定注明“已被第 N 轮回答推翻,以后者为准”,并在新决定 topic 中写明关系;不得改写、拆分或搬动原文。
|
||||
- 只定义一个完整可玩闭环。MVP 不含多人、商城、服务器、开放世界、赛季、复杂社交、完整剧情或全量内容,除非用户明确改变范围。
|
||||
|
||||
@@ -927,6 +927,43 @@ mod tests {
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
/// `common.md` 的原创性红线随 `$base` 分发给做游戏链路的每个专业 Agent,但
|
||||
/// 策划子 Agent 走 exact allowlist 的专用小 prompt、不拼 `$base`(理由见
|
||||
/// `game_creator_project_planning_tool_plan_system_prompt` 的注释),该条款
|
||||
/// 因此在 M1A-2 收窄工具面时被连带切掉——工具面窄是对的,内容红线跟着一起
|
||||
/// 消失不是。GDD 是整条产线的上游:策划稿里落进受保护名称,下游做游戏的
|
||||
/// Agent 即便个个守规也已经晚了。断言的是「策划子 Agent 实际收到的完整
|
||||
/// prompt」,不限定由哪一层提供,将来若把 common.md 拆成工具面与内容红线
|
||||
/// 两段再正常合成,这条同样成立。
|
||||
#[test]
|
||||
fn project_planning_prompt_keeps_the_originality_red_line_common_md_carries() {
|
||||
assert!(
|
||||
required_runtime_prompt_section("common").contains("不代表授权复刻现有游戏"),
|
||||
"common.md 的原创性红线是本断言的对照基线;它若被改写,必须一并复核策划 brief"
|
||||
);
|
||||
let mut delivered = game_creator_agent_runtime_tool_plan_system_prompt_for_agent(
|
||||
GAME_CREATOR_PROJECT_PLANNING_AGENT_ID,
|
||||
"",
|
||||
);
|
||||
delivered.push_str("\n\n");
|
||||
delivered.push_str(&game_creator_agent_runtime_role_overlay_prompt(
|
||||
GAME_CREATOR_PROJECT_PLANNING_AGENT_ID,
|
||||
None,
|
||||
));
|
||||
for required in [
|
||||
"不代表授权复刻",
|
||||
"必须原创",
|
||||
"受保护视觉语言",
|
||||
"referenceGames",
|
||||
] {
|
||||
assert!(
|
||||
delivered.contains(required),
|
||||
"策划子 Agent 收到的 prompt 缺少原创性约束:{required}"
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
#[test]
|
||||
fn project_planning_role_brief_is_isolated_to_its_manifest_overlay() {
|
||||
let planning = game_creator_agent_runtime_role_overlay_prompt(
|
||||
|
||||
Reference in New Issue
Block a user