zizi 856a583325 feat(tier2): Phaser 自治生成引擎全栈首落(workflow 9 agent 建·6c6g 静态全过)
override spike-first(创始人 06-23 裁),全栈铺 Phaser tier2 引擎。recon→契约→6模块并行→集成 workflow 产出 ~60 文件,全 6c6g 静态校验过、红线零碰 Tier0/1 产线:
- 契约(6):tier2-source-project.schema / tier2-verdict.schema(fork·round放开·三层校验+富游戏门)/ toolkit 签名 / 探针钩子 / boot-phaser-host.d.ts / mini-肥鹅 fixture 规格
- M1 Phaser scaffold+装载 host+引擎能力面(19;logic-smoke 13/13:五耦合点真接线+赢输双路径+latch不回弹)
- M2 CDP 探针 Phaser 重写+business-sim driver+九门+富游戏三门(5;verdict 过 schema)
- M3 Python 单写 ReAct agent loop+9 工具 toolkit+M3 Anthropic接法+四熔断(9;mini-desktop 真 2.0.2 venv 验:import/9工具/中间件注册 OK)
- M4 datatable schema+金标+资产占位(4)/ M5 prompt+Phaser skill+rag(13)/ M6 成本 RecordingChatModel+trace adapter(3)
- 集成:run_engine.py 入口 + 接线断点已修 + RUN-ON-MINI-DESKTOP.md

待 mini-desktop 真跑(esbuild build + CDP 九门 + M3 生成 = 本质即 0号 spike)。AgentScope 2.0.2 API 逐条对 /root/oss/agentscope 源码核验。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-23 20:13:44 +00:00

214 lines
10 KiB
JSON
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"$id": "https://wanxiang.ai/tier2/fixtures/mini-fei-e/datatable.schema.json",
"title": "MiniFeiEDataTable",
"description": "mini-肥鹅(G2 靶子游戏)数据表 schema —— spike 第一段『便宜/中等模型自治能不能稳定填出富游戏数据表』的填值靶。【这份是什么】把 mini-肥鹅 三系统(资源/合成/订单)的可填数值表钉成机器可校验形状:items(12 物品)/ mergeChains(6 合成链)/ orders(5 订单)/ currencies(2 货币:coins 金币 + ingredients 食材库存)。platform 骨架(scaffold_init,A7)预建为留空模板(data/datatable.empty.json),LLM 自治循环往里填值;人工预建『金标』样例(data/datatable.gold.json)供 driver/门(D 三层校验 + A5 富游戏三门)做对照测试,不依赖 LLM。【与 A3 关系】本份是 fixture 内部的品类数据表 schema,不是 A3 源项目契约(那份认整个 Phaser 工程);这张表会作为 fileTree 里一个 role=config(平衡参数表)的工程内文件被 build 进 bundle。【三门判据来源】mergeChains 必须有向无环(dagAcyclic 门);order.requires 的物品必须落在 mergeChains 可产出集合里(requiresReachable 门);完单真调 addCoins、合成真调 consumeIngredient(F 门级真接线,本表不约束运行时调用、只约束数据自洽,真接线由探针在真玩时取证)。详见 tier2/contracts/mini-fei-e-fixture-spec.md。状态=建(待 0号 spike;directional v1,字段随 spike 实证收窄)。",
"type": "object",
"required": ["currencies", "items", "mergeChains", "orders", "winCondition", "loseCondition"],
"additionalProperties": false,
"properties": {
"schemaVersion": {
"description": "数据表版本(独立于 A3 源项目契约版本)。directional v1;spike 跑通后随实证收窄。",
"const": "mini-fei-e-1.0"
},
"_note": {
"description": "内联文档字段(可选;留空模板/金标里写人读说明,不参与运行)。沿用仓内 manifest.json note 字段惯例。",
"type": "string"
},
"_filledByLlm": {
"description": "可选标记位:LLM 自治填值后置 true(留空模板为 false/缺省)。供 build 前快检『模板是否还是空壳』。",
"type": "boolean"
},
"currencies": {
"description": "系统一·资源系统:两种货币的开局/配置。coins=金币(单值,完单产出、解锁消耗);ingredients=食材库存(per-itemId 计数,合成消耗/产出)。命令式 API(addCoins/spendCoins/consumeIngredient/addIngredient)由 platform 骨架实现,本表只配开局数值。",
"type": "object",
"required": ["coins", "ingredients"],
"additionalProperties": false,
"properties": {
"coins": {
"description": "金币货币配置。",
"type": "object",
"required": ["initial"],
"additionalProperties": false,
"properties": {
"id": {
"description": "货币 id(恒 'coins',订单 reward / 解锁 cost 都按它结算)。",
"const": "coins"
},
"initial": {
"description": "开局金币(fixture 钉死 20;赢线 = 攒到 100)。",
"type": "integer",
"minimum": 0
},
"label": {
"description": "显示名(表现层 UI 用,如 '金币')。",
"type": "string"
}
}
},
"ingredients": {
"description": "食材库存货币配置(per-itemId 计数表)。",
"type": "object",
"required": ["initial"],
"additionalProperties": false,
"properties": {
"id": {
"description": "货币 id(恒 'ingredients')。",
"const": "ingredients"
},
"initial": {
"description": "开局各食材库存量映射 { itemId: 数量 };key 必须 ∈ items[].id。可空对象(全 0 起手)。",
"type": "object",
"additionalProperties": {
"type": "integer",
"minimum": 0
}
},
"label": {
"description": "显示名(如 '食材')。",
"type": "string"
}
}
}
}
},
"items": {
"description": "12 个物品(钉死 minItems/maxItems=12)。每个物品参与合成链(作为 from 被消耗或作为 to 被产出)、被订单 requires 引用、有图标资产引用(接 query_asset 占位池)。id 全表唯一。",
"type": "array",
"minItems": 12,
"maxItems": 12,
"items": {
"type": "object",
"required": ["id", "name", "tier"],
"additionalProperties": false,
"properties": {
"id": {
"description": "物品 id(全表唯一,小写短横线 slug,如 'wheat'、'dough'。mergeChains.from/to、orders.requires、ingredients.initial 都按它引用)。",
"type": "string",
"pattern": "^[a-z][a-z0-9-]*$",
"minLength": 1
},
"name": {
"description": "物品显示名(中文,表现层棋盘格/订单面板渲染用)。",
"type": "string",
"minLength": 1
},
"tier": {
"description": "合成层级(1=基础原料 / 2=半成品 / 3=成品)。供表现层分色与平衡校对;不参与门判定。",
"type": "integer",
"minimum": 1,
"maximum": 3
},
"assetId": {
"description": "图标资产 id(可选,接 query_asset 占位池 assets/placeholder-manifest.json 的 id;缺省走程序化回退方块)。",
"type": "string"
}
}
}
},
"mergeChains": {
"description": "系统二·合成系统:6 条合成链(钉死 minItems/maxItems=6,覆盖 12 物品)。点两个相同 from → 消耗(consumeIngredient)→ 产出上一级 to(addIngredient)。【门约束】① dagAcyclic:from→to 构成的有向图必须无环(judge 静态拓扑校验);② 覆盖:6 条链的 from/to 并集应覆盖全部 12 物品(spec 钉死『6 条覆盖 12 物品』)。from≠to。",
"type": "array",
"minItems": 6,
"maxItems": 6,
"items": {
"type": "object",
"required": ["from", "to", "cost"],
"additionalProperties": false,
"properties": {
"from": {
"description": "被合成的下级物品 id(消耗源;必须 ∈ items[].id)。点两个相同 from 触发本链。",
"type": "string",
"pattern": "^[a-z][a-z0-9-]*$",
"minLength": 1
},
"to": {
"description": "产出的上级物品 id(必须 ∈ items[].id,且 ≠ from;DAG 边 from→to)。",
"type": "string",
"pattern": "^[a-z][a-z0-9-]*$",
"minLength": 1
},
"cost": {
"description": "本次合成消耗的 from 数量(经营平衡参数;典型 2 = 两个相同合一个上级)。",
"type": "integer",
"minimum": 1
},
"unlockCoins": {
"description": "金币门控解锁阈值(可选;>0 表示该高阶合成链要攒够金币 spendCoins 才解锁,对应耦合点5『金币门控解锁』)。",
"type": "integer",
"minimum": 0
}
}
}
},
"orders": {
"description": "系统三·订单系统:5 个订单模板(钉死 minItems/maxItems=5)。每单要一组物品(requires)给一笔金币(reward),耐心(patience)耗尽则流失。【门约束】requiresReachable:每个 order.requires 的 itemId 必须落在 mergeChains 可产出集合(to 并集 ∪ tier1 基础料)里 —— 证『订单要的东西合成系统造得出来』。完单 → consumeIngredient 扣物品 + addCoins 给金币(真接线由探针取证,非本表约束)。",
"type": "array",
"minItems": 5,
"maxItems": 5,
"items": {
"type": "object",
"required": ["id", "requires", "reward", "patience"],
"additionalProperties": false,
"properties": {
"id": {
"description": "订单 id(全表唯一,如 'order-1')。",
"type": "string",
"pattern": "^[a-z][a-z0-9-]*$",
"minLength": 1
},
"requires": {
"description": "完单需要的物品映射 { itemId: 数量 }(至少 1 项;key 必须 ∈ items[].id 且应可被合成系统产出 —— requiresReachable 门)。",
"type": "object",
"minProperties": 1,
"additionalProperties": {
"type": "integer",
"minimum": 1
}
},
"reward": {
"description": "完单产出金币(addCoins;经济门:正循环靠它把金币从 20 推到 100)。",
"type": "integer",
"minimum": 1
},
"patience": {
"description": "耐心(帧数或秒,平台骨架口径;耗尽则订单流失,计入连续流失计数 —— 输线 = 连续 3 流失)。",
"type": "integer",
"minimum": 1
},
"customerAssetId": {
"description": "顾客头像资产 id(可选,接占位池)。",
"type": "string"
}
}
}
},
"winCondition": {
"description": "赢条件(经济门盈利路判据):金币攒到 target(fixture 钉死 100)→ readState().phase 焊 'win' latch。",
"type": "object",
"required": ["coinsTarget"],
"additionalProperties": false,
"properties": {
"coinsTarget": {
"description": "赢线金币阈值(fixture=100)。",
"type": "integer",
"minimum": 1
}
}
},
"loseCondition": {
"description": "输条件(经济门破产路判据):连续 consecutiveOrderFails 个订单流失(fixture 钉死 3)→ phase 焊 'lose' latch。",
"type": "object",
"required": ["consecutiveOrderFails"],
"additionalProperties": false,
"properties": {
"consecutiveOrderFails": {
"description": "连续订单流失上限(fixture=3)。",
"type": "integer",
"minimum": 1
}
}
}
}
}