文档:清除第 3.1 节一处行尾空白

Repository checks 的 git diff --check 门禁失败:文档第 260 行是一条只含两个空格
的空行。改为真正的空行。

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-13 08:54:00 +00:00
parent e5bc593afc
commit 89b7a65171
@@ -257,7 +257,7 @@ composition/brief 相关的强制要求:
- **blocking**:`prompt.rs` 的 `game_creator_agent_role_definition`(`apps/ai-game-creator-shell/src-tauri/src/agent/prompt.rs:661-679`)是把 `agent_id` 合成出 `(group_definition, role_definition)` 身份信息的唯一函数,目前只做「`agent_id == GAME_CREATOR_PROJECT_SUPERVISOR_AGENT_ID` 则特判,否则遍历 `GAME_CREATOR_AGENT_GROUP_DEFINITIONS` 的 group.roles」这个二分——`project-planning` 落进 else 分支后遍历不到任何组角色,返回 `None`。它的两个调用方都是 `.ok_or_else(...)?` 直接把 `None` 转成 `Err` 中断:
- `provider_request_builders.rs:536-539`(`build_game_creator_background_agent_context`)——`agent.delegate` 派发后台任务后,Runtime 驱动每一轮实际执行都要经过这里,`project-planning` 第一轮就会硬失败,报「未知 Agent 模板:project-planning」;
- `prompt.rs:416-417`(`build_game_creator_role_agent_context_for_session`)——直接对话式 chat 的身份/上下文构建函数,同样的失败方式。
也就是说,**仅做本节描述的 catalog 登记,D11 的静态委派在执行层面完全跑不起来**;`game_creator_agent_role_definition` 需要一个平行于 supervisor 特判的 `project-planning` 分支,这是 M1 必须一并落地的代码,不属于本轮「不改任何 .rs」的范围。
- **needs_change**:`task_ops.rs` 的 `task.create` 工具(`apps/ai-game-creator-shell/src-tauri/src/agent/runtime_tools/task_ops.rs:335-363`)在拿不到角色定义、且调用方未显式传 `group`/`role` 时,把 group 兜底成 `Design`、role 兜底成 `"Agent"`,而不是报错或识别「无 group」。`task.create` 对所有 `agent_id`统一开放,`project-planning` 一旦调用它且未显式带参数,会被静默记成「Design 组 / Agent 角色」任务写进 manifest.json,污染 6 组任务审计和按 group 聚合的面板,且无任何报错提示误分类。
- **needs_change**:`delegation.rs` 的 `agent.spawn_isolated` 校验(`apps/ai-game-creator-shell/src-tauri/src/agent/runtime_tools/delegation.rs:1396-1412`)只排除 `child-` 前缀和 supervisor 本体,其余 catalog 成员一律放行为合法的 isolated 模板。`project-planning` 登记后会自动满足这个放行条件,于是任何持有 `agent.spawn_isolated` 权限的 Agent(不只是 Project Supervisor)都能拿它当模板动态孵生隔离子实例——这与 D11「`project-planning` 只应由 Supervisor 通过 `agent.delegate` 静态委派」的设计意图不一致,是登记后新增的隐性能力扩权,需要在 M1 与「blocking」项一并处理,不能默认「反正没人这么调」。