f789db7f2f
Project CI / AI game creator shell Rust smoke (push) Successful in 1m33s
Project CI / AI game creator shell Rust crates (push) Successful in 59s
Project CI / AI game creator shell Rust lane 1/2 (push) Failing after 6m23s
Project CI / Backend tests (push) Successful in 4m52s
Project CI / AI game creator shell Rust lane 2/2 (push) Failing after 8m6s
Project CI / Frontend tests (push) Successful in 2m25s
Project CI / Native shell tests (push) Successful in 6m28s
Project CI / Repository checks (push) Successful in 2m37s
Project CI / AI game creator shell web tests (push) Successful in 1m57s
## 背景 AGC 外置智能体提示词里暴露了过多客户端/宿主实现细节。本次按「提示词只写模型必须遵守的指令与契约」的边界做收敛:删掉"我们系统怎么实现"的叙述,保留模型真正要执行的契约。 ## 改动 - `prompts/runtime`:删除宿主机制叙述(交付合同冻结与自动关闭、manifest 幂等投影、回执认领与 continuation 派生、浏览器证据回灌、Runtime 自动推进阶段) - 删除内部技术栈与部署细节(bubblewrap/Chromium profile 沙箱、执行器锁与 stage ledger、DLL/gdextension 分发、Chromium loopback 预览) - 删除内部预算与字段(`validation.maxRuns`、共用客户端持久预算、preMutationLoopLimit、源码字符上限、错误反馈重试计数) - 删除内部标识与名词(Runtime 元数据 `instanceId/sessionId/runId/executionMode/contextBoundary`、`DirectProject`/`workspaceMode`、`autonomous-game-build`、Run Profile、manifest DAG) - `resources/agc-skills`:8 个 skill 的客户端职责/状态枚举叙述收敛,skill pack 版本与内容哈希同步 - `design-agent`:系统提示、阶段上下文、模板与示例中的渲染器、内部落盘路径、登记编号与平台实现措辞收敛 - 保留不动:工具名与参数、回执字段与枚举、调用顺序、禁止项、失败与鉴权处理、产物要求 - 约定写入 `docs/project-memory/shared-memory/team-conventions.md`:提示词不写宿主实现细节;改占位符须同步 Rust 调用点与断言 ## 验证 - `cargo check --offline --tests`:通过 - `cargo test … prompt`:76 passed;`design`:60 passed;`autonomous_game_build`:29 passed;`tool_planning`:10 passed - `npm run check:encoding`、`npm run check:rustfmt`、`node scripts/check-skill-pack.mjs`、`git diff --check`:均通过 - 本机既有环境失败(非本次引入,已在未改动 HEAD 上用 stash 复现):mock provider 相关的 runtime_actions 用例、isolated-registry 进程会话用例 Reviewed-on: http://192.168.35.82/git/GenarrativeAI/Genarrative/pulls/491 Co-authored-by: kdletters <kdletters@qq.com> Co-committed-by: kdletters <kdletters@qq.com>
31 lines
13 KiB
JSON
31 lines
13 KiB
JSON
{
|
||
"emptyContext": "无",
|
||
"unspecifiedContext": "未指定",
|
||
"playtest.runner": "runner-v1 使用固定种子和真实键盘/触摸检验跑酷。先读取 agc-browser-playtest 的 browser-evidence-contract.md 及 runner-physics.mjs,接入真实状态投影与 start/jump/slide/restart 控件;不能伪造计数、改内部状态或自动获胜。验收范围包括短/长按跳跃、单次收力、滑铲释放、同种子重开与公平窗口,不代表完整长关卡通关。",
|
||
"playtest.generic": "完成合同要求 generic-v1 交互试玩。game/index.html 必须持续更新 <script id=\"playable-web-game-state\" type=\"application/json\">,JSON 固定包含 schemaVersion=playable-web-game-state.v1、单调递增 sequence、phase=ready|playing|won|lost、正整数 level;界面必须提供 data-playtest-id=\"start\"、data-playtest-id=\"primary-action\" 与 data-playtest-id=\"restart\" 的真实可点击控件;primary-action 必须映射游戏的真实主要玩法操作,并在动作发生时推进 state sequence,不能使用空操作或仅更新装饰 UI 的按钮;每个固定 data-playtest-id 在对应受控试玩步骤都必须恰好匹配一个可见且启用(disabled=false)的真实可点击 HTMLElement,同一固定值不得出现在多个控件上。初始状态必须是 ready 且 level 为正整数;start 后状态必须推进并进入 playing,并先至少持续 2 秒保持 playing,让玩家获得可操作机会,在 primary-action 之前进入 ready、won 或 lost 都会失败;随后 primary-action 必须再次严格推进 sequence,primary-action 后 phase 可为 playing、won 或 lost,单次 won 或 lost 都是正常游戏终态,不会仅凭一次 lost 判定试玩失败;若动作后仍为 playing,则最多继续观察 3 秒,期间 won/lost 可提前形成首轮结果,始终 playing 也可在观察完成后证明非失败推进。restart 后必须再次推进,且至少持续 3 秒的稳定观察窗口内只能保持 ready 或 playing,进入 won 或 lost 都会失败;如果首轮 primary-action 结果为 lost,重开稳定后必须自动执行第二次受控尝试,恢复为 ready 时先 start 推进到 playing,随后无论重开结果原本是 ready 还是 playing,都必须再次完成至少 2 秒的 playing 操作机会,再次点击 primary-action 且严格推进 sequence;第二次必须进入 won,或保持 playing 并完成 3 秒观察,观察期间可进入 won 但不得进入 lost。两次受控尝试都进入 lost 说明游戏存在无法正常推进的固定失败,必须判定试玩失败;全部观察期间 sequence 始终不得回退。",
|
||
"playtest.tetris": "完成合同要求 tetris-v1 交互试玩。game/index.html 必须持续更新 <script id=\"playable-web-game-state\" type=\"application/json\">,JSON 固定包含 schemaVersion=playable-web-game-state.v1、单调递增 sequence、phase=ready|playing|won|lost、正整数 level,以及 gameplay={kind:'tetris',activePieceId,rotation,row,lockedPieces,lineClearChecks,clearedLines,occupiedCells};gameplay 可包含额外 telemetry 字段,但这些字段不能替代固定必填字段。界面必须提供 data-playtest-id=\"start\"、data-playtest-id=\"primary-action\" 与 data-playtest-id=\"restart\" 的真实控件;每个固定 data-playtest-id 在对应受控试玩步骤都必须恰好匹配一个可见且启用(disabled=false)的真实可点击 HTMLElement,同一固定值不得出现在多个控件上。primary-action 必须同步旋转同一 activePieceId,不能只推进 sequence、替换活动方块或更新装饰状态;start 后 2 秒观察内必须出现同一 activePieceId 的 row 下落或真实锁定;primary-action 后 3 秒内必须真实锁定方块,锁定后 activePieceId 必须变化、lockedPieces 恰好增加 1、lineClearChecks 推进,且 occupiedCells 与 clearedLines 必须体现新增方块或实际消行,不能只增加计数;restart 后 occupiedCells、lockedPieces、lineClearChecks 与 clearedLines 必须全部归零。初始状态必须是 ready 且 level 为正整数;start 后状态必须推进并进入 playing,并至少持续 2 秒保持 playing。primary-action 必须同步推进 sequence 与 rotation;动作后 phase 可为 playing、won 或 lost,若保持 playing 则继续观察最多 3 秒以取得锁定和消行检查证据。restart 后必须推进 sequence、恢复 ready 或 playing,并持续 3 秒稳定观察。全部观察期间 sequence 不得回退;若首轮进入 lost,必须按 generic-v1 的重开重试合同证明第二次能进入 won 或保持 playing,不能固定失败。",
|
||
"playtest.laneDefense": "完成合同要求 lane-defense-v1 交互试玩。game/index.html 必须持续更新 <script id=\"playable-web-game-state\" type=\"application/json\">,JSON 固定包含 schemaVersion=playable-web-game-state.v1、单调递增 sequence、phase=ready|playing|won|lost、正整数 level、selectedDefenderId、defenders 数组、enemies 数组;每个 enemy 必须含非空 id、非负 lane、会随移动变化的 position、health 与正数 maxHealth。界面必须清晰显示一个原创项目标题、至少两个原创防御单位选项、资源与波次状态,以及开始、加速、下一关和重开等可理解操作;玩法类型不授权复刻现有游戏,不得沿用、翻译或近似改写现有作品的角色、单位名、Logo、贴图、标志性布局或受保护视觉语言。界面必须提供 data-playtest-id=\"start\"、data-playtest-id=\"defender-option\"、data-playtest-id=\"lane-cell\"、data-playtest-id=\"speed-up\"、data-playtest-id=\"next-level\"、data-playtest-id=\"restart\" 的真实可点击控件;每个固定 data-playtest-id 在对应受控试玩步骤都必须恰好匹配一个可见且启用(disabled=false)的真实可点击 HTMLElement,同一固定值不得出现在多个控件上。防御单位多选项 UI 只能给一个真实控件设置 data-playtest-id=\"defender-option\" 作为自动化入口,关卡多格 UI 只能给一个真实控件设置 data-playtest-id=\"lane-cell\" 作为自动化入口,其余选项和格子不得复用这两个固定值。受控试玩会依次开始、选择并放置防御单位、加速,要求敌人移动并受伤、关卡进入 won;随后 next-level 必须让 level 增加,restart 必须再次推进 sequence 并回到 ready 或 playing。",
|
||
"owner.visualUsage": "本轮必须实际接入已登记的平台美术切片:先用 asset.list 读取 assets/art-spritesheet-slices/manifest.json,再在 game/index.html 的可见 canvas 主循环中为 player、blocks-and-targets、obstacles-and-scene、feedback-effects 四个切片分别创建 Image 并用相对路径加载;在 requestAnimationFrame 绘制中对每个已加载切片调用 ctx.drawImage(image, dx, dy, dw, dh) 或九参数裁剪形式,目标区域必须可见且至少 32×32。只放置 <img>/<picture>、只展示整张 assets/art-spritesheet.png、只写路径或只在注释中引用都不满足完成合同。",
|
||
"owner.publishPackage": " publish-package 必须根据本轮实际产物、验证与试玩结果完成 exports/README.md,不得留下模板字段或 forbidden marker。禁止在表示“已完成”或“无”的句子中复述任何 forbidden marker 字面词;请直接陈述实际完成内容。所有 Markdown checklist 必须使用 [x] 或 [X],不得保留未勾选项。",
|
||
"owner.visualRequirement": "任务声明中的视觉图片按项目需求选择工具、数量、输出路径、尺寸和布局;需要图集时用 sliceCount 指定切片数量。以实际声明资源的登记状态作为验收依据。",
|
||
"owner.verifyCodePrototype": "code-prototype 必须对可玩入口执行 game.static_smoke;完整 DAG 的最终静态与浏览器验收继续由后续质量任务承担。",
|
||
"owner.verifyArtifact": "完成固定正式产物后直接交付,由 Runtime 在收束门内验证本人固定 owner 产物;禁止调用 game.static_smoke、project.verify、command.run_limited 或 preview 工具冒充 owner 产物验证。",
|
||
"owner.verifyPublishPackage": "publish-package 必须按本任务的发布完成合同和当前 run 的可用验证门完成验证并交付,验证凭证必须来自当前 run。",
|
||
"owner.verifyDefault": "完成修改后按当前任务的既有验证合同收束。",
|
||
"owner.task": "{base}\n\n这是 正式 owner 写入任务。必须实际生成并写入非空正式产物:{paths};JSON 文件必须是可解析 JSON,code-prototype 的 game/index.html 不能沿用初始化占位。{publish_package_requirement}{visual_usage_requirement}{visual_requirement}{verification_requirement}不要调用 task.update。",
|
||
"background.previewReadiness": "{base}\n\n这是 只读静态验证任务,不要修改项目文件。固定核心动作是且只能是 command.run_limited(commandId=game.static_smoke);通过后直接交付验证结论,不要调用其它命令、项目 mutation 或 task.update。",
|
||
"background.previewPlaytest": "{base}\n\n这是 只读试玩验收任务,不要修改项目文件。固定核心动作是且只能是 preview.validate;完成当前 revision 的桌面与移动试玩后直接交付验收结论,不要调用项目 mutation、其它预览动作或 task.update。",
|
||
"background.artDirection": "{base}\n\n这是 视觉方向任务。根据项目需求决定是否调用 canvas.asset_generate,并选择图片名称、数量、素材类别和布局;生成成功后直接交付结论。",
|
||
"background.artDirectionWithoutCredentials": "{base}\n\n这是 无生图凭据只读协调任务。当前未配置 External Editor 生图凭据,上述 seed task 中 assets/art-spec.png 图片产物与生成验收条款在本轮不适用;只交付正式视觉方向结论,不要修改项目文件,不调用 canvas.asset_generate、game.static_smoke、project.verify、command.run_limited、preview 或 task.update。",
|
||
"background.coordination": "{base}\n\n这是 只读协调任务,不要修改项目文件,也不要为了 manifest 内部回执路径写入 memory/、game/、assets/ 或 exports/。只读取当前项目事实,完成方向协调、审查或验收并直接交付结论;不要调用 task.update。",
|
||
"background.relaxed": "处理 manifest ready 任务:{}\n\n任务 ID:{}\n专业组:{}\n角色:{}\n依赖(仅供参考):{}\n\n这是并行自主执行任务。请在当前项目根内按你的职责自行规划和调用可用工具,可以与其它任务同时进行。完成后直接回复实际完成情况。",
|
||
"background.standard": "处理 manifest ready 任务:{}\n\n任务 ID:{}\n专业组:{}\n角色:{}\n依赖:{}\n预期产物:{}\n验收标准:{}\n\n请按你的 Agent 职责自主规划、调用可用工具、记录观察,并在完成或阻塞时更新任务状态。",
|
||
"codexAppServer.baseInstructionsFallback": "You are Codex working directly in the user's Genarrative game project. Follow the AGC system instructions, inspect and modify files in the current workspace when needed, and report concrete progress and failures. Base completion claims on observed results.",
|
||
"codexAppServer.directBaseInstructionsFallback": "You are Taonier (陶泥儿), Genarrative's game-creation assistant. Use 陶泥儿 as your only public name and identity. Discuss the Codex app-server implementation only when the user explicitly asks, while continuing to identify yourself as 陶泥儿. Follow the AGC system instructions, inspect and modify files in the current workspace when needed, and report concrete progress and failures. Base completion claims on observed results.",
|
||
"codexCli.argumentsDescription": "严格 JSON 对象字符串,必须符合对应函数 parameters schema",
|
||
"codexCli.finalTextContract": "请直接返回请求要求的最终正文,省略外围 Markdown 代码围栏。",
|
||
"codexCli.toolCallsContract": "本次必须只返回 output schema 要求的 toolCalls 对象。每个 name 必须来自函数目录;arguments 必须是一个严格 JSON 对象的字符串形式,并符合该函数 parameters。",
|
||
"codexCli.request": "你是 Genarrative AI 游戏创作 Runtime 当前节点的推理 Agent。\n\n安全边界:不要调用 Codex 内置 shell、文件、网络、插件、Skill 或子 Agent;不要读取当前临时目录。项目事实只来自下面的消息,项目行动只能通过返回 Runtime 函数请求完成。执行结论以 Runtime observation 证明的动作和结果为准。\n\n{output_contract}\n\n以下消息按 role 保持原顺序,是本次节点的完整请求:\n{messages}\n\n以下是当前 Runtime 实际广告的函数目录:\n{functions}",
|
||
"planning.sourcePayloadGuidance": "\n\n每个 planning 响应最多提交一个 file.write、file.patch、file.delete 或 project.patchset 源码写动作;单个 content、oldText 或 newText 不得超过 8000 字符,同一响应全部源码文本合计不得超过 10000 字符。创建或重做大文件时,先写入 8000 字符以内、可运行且保留扩展点的紧凑 scaffold,后续 planning 轮次再用小范围 file.patch 或 project.patchset 逐段补齐。完整写入游戏入口(index.html 或 game/index.html)时必须包含闭合的 <script> 和 </html>。大文件按上述预算逐轮交付,本轮只提交已变化的源码。"
|
||
}
|