311 Commits

Author SHA1 Message Date
zizi
0b1b37ea3c feat(aigc): W-G1 开闸验收门·组A 落地——D12 控制平面 v0 + GP9 合规先行段
把"一句话生成"对真实创作者放开前焊死 2 道硬阻塞闸:单用户压不垮全局串行 worker、违规 prompt 进不了生成与 feed。
契约先行(V15 DDL/错误码/配置类先于业务),feature-flag 默认关=现行行为逐字不变。

D12 控制平面 v0:
- 抽私有 enqueueWithControlPlane,submitGenerate 与 retryTask 共用(决策D:retry 也走全门,违规/超配额无法靠 retry 绕过)。
  门序(最便宜→最贵):① 降级门(infra ConfigApi 读 aigc.generate.paused,fail-open on switch)
  → ② 配额+并发门(per-creator×level 当日非取消计数 + 在飞并发,判定一律 >=)
  → ③ 背压门(全局在飞 >= queue-depth-limit)→ ④ GP9 safety(放最后)→ ⑤ insert + 额度记账骨架(仅 log,非真扣费)。
- V15.0.0 game_aigc_task 加 level 列(TINYINT NOT NULL DEFAULT 1)+ AigcTaskDO.level;v0 统一落 L1(会员档未建,避孤儿)。
- 新建 AigcControlPlaneProperties(前缀 aigc.control-plane):enabled/queue-depth-limit/safety{timeout-ms,max-retry,fail-closed,
  new-api base/key/model}/quota{L1/L2/L3 daily+concurrency}(数值占位待创始人)。
- ErrorCodeConstants 加 001 子段 5 码(配额/背压/降级 + UNSAFE_PROMPT/LLM_SAFETY_ERROR);均业务码,不产生 HTTP 429/503。
- AigcTaskMapper 加 3 计数查询(selectCount,零原生 SQL/零 DDL 索引);aigc-server pom 补 huijing-module-infra-api 依赖。

GP9 合规先行段:
- 新建服务层独立 SafetyCheckClient(不复用执行器 ExecutorLlmClient——被 aigc.executor.enabled 门控、服务层注入不到):
  new-api 连接走 control-plane 配置(与执行器开关解耦,解 new-api 服务层可达性),装载 01-safety prompt,短超时 8s + 至多 1 重试。
- 接门④:safe=false 抛 AIGC_UNSAFE_PROMPT 同步拒绝不入队;超时/失败 fail-closed 抛中性 AIGC_LLM_SAFETY_ERROR(复用 FailureReasonEnum
  语义不新增枚举)。pom copy-glob 加 01-safety/*.md(已验进 classpath)。
- 补 10 条违规负例集 contracts/prompts/eval/safety.prompt-check/(十类红线各 1 条,全 expectedSafe:false)+ README。

装配:AigcControlPlaneConfiguration @ConditionalOnProperty(aigc.control-plane.enabled) 注册 Bean;AigcTaskServiceImpl
经 ObjectProvider 软注入(enabled=false/Bean 缺席 → 全门+GP9 旁路 = 现行行为)。

零越界:门③ promptHash 缓存未做(promptHash 仍照算照落 provenance,v0 不读它做缓存);真实计费扣退/组B 落库/审核台/会员档数值均未触碰。

验证(mini-desktop):test-compile BUILD SUCCESS;AigcControlPlaneTest 16/16 + SafetyCheckClientTest 7/7 +
AigcTaskServiceImplTest 9/9(零回归)+ 全 aigc-server 99 run/0 fail;V15 SQL 真 MySQL 8.4.8 语法校验通过。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 20:10:44 +08:00
zizi
c42135bf6b fix(trade,ad): M4 支付 P1/P2 加固(对抗审计 opus 一轮收尾)——mock 卡单兜底 + ad 回调铸币面
- P1-1 mock 崩溃卡单兜底:MockPayoutClient.queryTerminalStatus 由默认 UNKNOWN→返 SUCCESS(同步直通已发起即成功),让 compensateStuckPayouts 能恢复"initiatePayout 后回调前进程崩溃"致 status=1 卡死的提现单(frozen 不再永久锁死)
- P2-2 ad 回调空 secret 铸币面:CallbackAdProvider 空 sign-secret 由"直通 return true"改"默认拒绝 return false",新增 ad.callback.sandbox-passthrough 显式开关(仅开时空 secret 桩直通,生产严禁开+注释固化);堵死 @PermitAll 公网端点伪造回调铸广告收入入台账
- P1-2 setSql 拼接:AccountMapper 加注释固化"金额必须服务端校验过的 Long、严禁字符串透传"(预防性,不改逻辑)
- 单测:MockPayoutClientTest 新建 + CallbackAdProviderTest(空secret拒绝/passthrough放行)+ PayoutClientFactoryTest 断言更新;mini ad 40 测 + trade 73 测全绿(主 agent 自跑、逮修 opus 截断留下的 2 处旧断言)
2026-06-16 11:15:47 +00:00
zizi
ca695362bd fix(trade): M4 支付 2 个 P0 资金安全 bug(对抗审计 Opus+Codex+主agent 三方确认,87单测漏掉)
- P0-1 money-loss:AccountServiceImpl settlePaid/refundFrozen 更新 0 行原只 log.error 不抛→改抛 TRADE_ACCOUNT_FROZEN_NOT_ENOUGH(错误码 1-106-001-002),让 handlePayoutNotify(@Transactional)的 status CAS 与账户动作一并回滚,杜绝"状态已置终态、资金没动"半态 commit 破 balance+frozen+total_withdraw=total_income 恒等式;对齐既有 freeze 0 行抛错范式
- P0-2 切渠道误驱动:PayoutClientFactory 加 byChannel(channel)(current() 委托之、fail-fast 收敛一处);compensateStuckPayouts 改用 byChannel(w.getChannel()) 按提现单记录渠道查终态,而非当前 Nacos 渠道——切渠道(mock→wxpay)不再用错渠道 client 误驱动 1→2/1→4
- 单测+5:0行抛错(settle/refund)/回滚透传(handlePayoutNotify)/byChannel(注册·未注册fail-fast)/compensate 渠道路由;mini trade-server 46 测全绿(41→46)零回归
- Codex 佐证:同 bizNo 并发/成功失败回调赛跑/审核驳回赛跑均被 uk_biz_no/status CAS 挡住(安全),无新增 P0
- 余 P1/P2(mock 渠道崩溃卡单兜底/ad 回调空 secret 铸币面/setSql 预防)待 Codex 完整报告后续修
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 10:55:47 +00:00
zizi
689d86ed87 docs(gen): W-G1 组A execution v2——两轮对抗评审(Codex+opus)修订定稿
v1 判 NO-GO(3 P0 未穿透)→ v2 修订:
- 砍门③(promptHash 全局缓存=跨用户复用/跨模块孤儿API/sha256口径雷,非开闸闸;防刷由配额门兜)
- GP9 safety 前置到 submitGenerate 服务层(避执行器内卡串行 tick=DoS;独立客户端短超时8s+1重试)
- retry 走共享 enqueueWithControlPlane(堵 retry 绕过 GP9/配额)
- fail-closed 用中性 LLM_ERROR(不误标正常用户违规)
- P1:pom 改 -server/补 infra-api 依赖/验收断业务码非HTTP429/背压>=/level加分档测试/删CAS错误背书
范围=2门+降级+GP9前置;待创始人 nod 实施

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 18:45:09 +08:00
zizi
a344ccff04 docs(收口): SoT总账 M4纠偏 + goals活账 + staging-ops 整机安全重部署配方蒸馏
- MVP进度总账:M4④由"桩"诚实纠偏为"mock可切真"(业务逻辑已真+87单测+staging mock e2e+4对账断言;真广告/真支付受日历闸门=mock gated非真变现);ad/trade模块真实度 🟡→🟢;链路④ 🟢;§6 新增七goal并行波执行记录;⑤→④ typo 修
- goals.md:G1/G2/G3 状态同步(已提交推origin + merge点)
- staging-ops §3:补"整机重部署隔离验证后再切"安全变体(2026-06-16新命名空间整机重部署实证:隔离端口验全过才切live、备份jar留到复验、严禁无隔离验证切live)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 10:30:08 +00:00
zizi
c50e336792 feat(studio): feed 卖相打磨——互动按钮玻璃质感 + 卡片封面"无图也好看"(评审 V-1/V-2)
- V-1 互动按钮(InteractBar):深蓝实底 rgba(16,21,34,.6)→半透白 rgba(255,255,255,.10)+backdrop-filter blur(8px)+box-shadow,抖音式悬浮玻璃;图标/计数/点赞态行为不变
- V-2 卡片封面(GameCard+新增 utils/coverGradient.ts):纯确定性 FNV-1a hash→5套渐变主题(青绿/森系/青紫/暖/冷)+3套装饰,无封面卡按 title 分化渐变+柔光点+波形(无图也好看);真实封面优先逻辑不变
- verify:vue-tsc 类型门逮修一处真类型问题(computed 早返回{});build双绿;真机 :4173 CDP 实算样式(bg rgba(255,255,255,.1)/blur8)+截图(9卡按title渐变各异)双证
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 10:24:13 +00:00
zizi
22bc528243 feat(studio): 看板占位接真——完玩率/广告收益/七日趋势 接 G1/G2 live 端点
- 完玩率←telemetry/my/summary.completionRate;广告收益←trade/my/income-summary.totalNet(分→元);七日趋势←telemetry/my/game-stat/trend?days=7 渲真柱状(播放/完成双柱)
- 新增 api/trade.ts getMyIncomeSummary + telemetry.ts getMySummary/getMyTrend + types 契约镜像;api/index 导出 tradeApi
- 失败/空走真实空态(完玩率"--"/收益"--"/趋势"近7日暂无数据"),不再"建设中"
- 真机验证(:4173 live 截图双态):有数据态完玩率50%+真趋势柱、空账号态真空态,console 零错;测试态 DB 已还原零漂移(game_project 全归 creator=1)
- 契约 follow-up:trend.statDate 实测序列化为 JSON 数组[y,m,d](Jackson LocalDate 默认)与 telemetry.yaml 描述 yyyy-MM-dd 不符,前端已兼容,建议后端/契约对齐
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 09:54:08 +00:00
zizi
7290f889c1 docs(gen): W-G1 开闸验收门评审版 master spec + tap 修经验蒸馏入 skill §7
- W-G1开闸验收门-review:6 项验收门排序裁定(gap-map 接地:已设计×现有代码×净缺口)——2 项硬阻塞先做(D12 控制平面 v0=submitGenerate 加3道前置门〔配额+并发+背压+防刷缓存〕,取消/幂等/补偿/watchdog 复用执行器现有 / GP9 合规先行段=10违规负例+prompt审查接线)+ 3 项 v0 并行落库追溯(D11就绪评分/9d trace账本/D9反同质化告警,大半移植 agent-loop-v1 现成 v0 部件)+ 1 项同批焊地板(首局品类门)+ 1 处跨轨(真实计费扣退随 M4,new-api AddToken 阻塞)
- cheap-model skill §7:tap-targets driver:none 缺口【已修·a2cbabe6】=规则③家族二分,tictactoe 整链 9/9 全绿铁证,saolei 残留=便宜模型 factory 质量正交(非本修失败)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 17:44:08 +08:00
zizi
639ab17590 docs(gen): 生成引擎主线传承演进 + 任务清单普查落档(O1-O6 主目标 + 12 条遗漏普查补正)
- 传承演进-review:换框架(AgentScope→SAA HJ-AGI-002)后核验原任务无丢失(§2 SAA 保全账逐构件)+ 演进三线(补 SAA 强项 / 可玩地板数据驱动 / 好玩天花板)
- 任务清单普查:O1-O6 主目标层(SAA 基线意图蒸馏+批判增补)+ §1-§9 任务分层 + §9 supersede 过滤;经全量普查(483 条意图差集,覆盖~78%)补入 12 条真遗漏=W-G1 开闸验收门 6 项硬交付(控制平面/合规负例/反同质化/就绪评分/trace回放/首局门)+ 2 个 confidence-100 跨轨安全洞(new-api 3000暴露/短信旁路8888)+ Dify残骸清理/旧编排器退役/per-creator token阻塞/feed多因子,均来源可追溯

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 17:10:35 +08:00
zizi
a2cbabe647 fix(gen): tap 类 design-agent 自产 driver——规则③家族二分补 tap-targets,闭 driver:none 临门一脚(Python+SAA 逐字同改)
DESIGN_SYSTEM 规则③旧「纯点击类用 driver:none」一刀切 = moat「一句话现生成」对 tap 族不可靠真因(盲打打不中离散目标→H_progress 卡)。改家族二分:
- 离散点击目标类(井字棋/打地鼠/扫雷)→ 必产 tap-targets + 导出 targets[{x,y,idx,occupied}];规避/推理族 +safeOnly +导出 safe(仅 _forensicsView 测试可见不渲染)+断言 result==win;安全放置族断言 progress↑
- 技巧挡板类→ 仍 paddle-intercept(ball.x,绝不 ball.y);其余→ none
roles.py(Python worker)与 SaaPrompts.java(SAA backend)规则段逐字一致(1076 chars,公平性铁律),SAA test-compile 绿。

验证(Python 派发面,play_spec={} 逼自产,stage1=deepseek-v4-flash):
- tictactoe(放置族)整链 9/9 全绿一次过=design 自产 tap-targets→factory 自产 targets→九门含 H_progress+latch 达终态(铁证)
- saolei(避负族)driver 自产正确 3/4,但九门未翻绿=便宜模型扫雷 factory 质量(Math.random违禁/win不可达/A_boot崩),九门正确拦截,与本修正交(O1 factory 级,§9/scale-20 跟踪)
- breakout 回归未误伤=恒 paddle-intercept,H_progress 绿;成本闸内(¥0.014~0.052/款);仅改 prompt 未加 extractGatespec 兜底

源:2026-06-15-WG1-tap-targets-driver-自产缺口-L1brief.md / driver-coverage §6

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 17:08:12 +08:00
zizi
afa0771599 feat(studio): B端定制前端(goal G3)——提单/进度看板/验收接 biz 7端点
- 3 视图(views/biz):BizLeads(我的订单列表+提单入口)+ BizCreate(提单表单+分场景选模板)+ BizLeadDetail(进度时间线+报价+demo试玩/反馈/确认验收)
- 接 biz.yaml 7 客户侧端点逐条命中(leads/my/{id}/progress/templates/acceptances feedback/confirm);签署=客户侧契约无在线签章端点(sign-offline 归 admin),线下兜底符合契约
- router +3(均 requiresAuth)+ 个人中心"企业定制"入口;数据层 api/store/mock/types 复用既有范式
- verify:vue-tsc 类型门 + vite build 双绿;真机走查留合并点
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 09:01:19 +00:00
zizi
e3be456d82 feat(trade,ad,community): M4 变现④可切真(goal G1)——打款异步/fail-fast/reward到账/广告回调
设计权威=docs/agent-specs/2026-06-16-M4变现真实化-review.md(主agent评审通过)。前提:ad/trade业务逻辑读码实证已真,本波=切真+补e2e门+衔接。
- 打款异步状态机(trade):审核 0→1 打款中(不置已打款,§2.3解耦)→事务外发起转账→回调驱动 1→2/1→4(CAS幂等防重复发钱);WithdrawPayoutCompensateJob 对账补偿扫卡单
- fail-fast(PayoutClientFactory):真实渠道缺实现抛 TRADE_PAYOUT_CHANNEL_UNAVAILABLE 挂起,严禁静默降级 mock 发假钱;Nacos trade.payout-channel 单开关;MockPayoutClient 同步直通
- reward 现金发放做真(community seam+trade):recordIncome(TIP,reward.id,shareRate=1.0) uk_source 幂等 + status CAS 0→1 + granted_ref
- 广告回调验签(ad):CallbackAdProvider sandbox + /app-api/ad/reward/callback 验签骨架,真实 csj/gdt 留 SPI 位
- 收益端点:/app-api/trade/my/income-summary(解 G2 看板收益,读 game_trade_income 归属隔离)
- DB V14:withdraw 加 transfer_ref;pay 模块 pom 未接运行态(留合并点);错误码段 ad=1-111/trade=1-106 不越界
- verify:87 单测绿(ad24/trade41/community22)+ staging mock e2e门真跑(广告→结算→提现→mock打款回调1→2)+ 4条对账断言全HOLD;红线读码核验通过。欠验=结算job真跑(staging XXL关)+真UI走查 留合并点
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 09:01:19 +00:00
zizi
b51025e14f feat(telemetry): 创作者侧 stats 读端点(goal G2)——/app-api/telemetry/my/{summary,trend}
- 新增创作者侧只读端点:summary(跨我的作品聚合 totalPlay/totalComplete/completionRate)+ game-stat/trend(七日按日)
- 归属隔离:creatorUserId=getLoginUserId()(token,非前端入参)→ 经 ProjectApi.getMyGameIds 取我的 gameId 集合 → 仅聚合这些;空作品短路、completionRate 除零兜 0、days 夹紧[1,90]
- project 加 getMyGameIds(-api seam,镜像 ad/feed 既有消费范式);复用 game_telemetry_game_stat 聚合
- verify:telemetry 38 单测绿 + project test-compile 绿(mini);广告收益由 G1 income-summary 供(遥测表无收益列,已诚实占位)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 09:01:19 +00:00
zizi
5463796f52 feat(studio): 创作者数据看板(P-OPS-01/02)——指标卡接真 + 趋势诚实占位
- 看板视图(views/dashboard):累计播放/点赞(project /my 聚合)+已发布数(community /level)+累计奖励(community /rewards)接真;完玩率/广告收益/七日趋势=诚实占位"数据接口建设中"(契约无创作者侧读端点,不伪造)
- 入口:个人中心"创作数据"→/dashboard(requiresAuth+hideTabBar)
- 实证缺口:契约仅 admin-api 有 telemetry game-stat / ad revenue(RBAC=admin),无 /app-api 创作者侧;建议后端补 /app-api/telemetry/my/{summary,trend}(creator 归属隔离)

verify-as-you-go:vite build + vue-tsc 双绿;接的3端点逐条命中契约;3处gap逐条grep证伪;真机走查留合并点
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 09:01:19 +00:00
zizi
3147b11d60 feat(studio): 用户向前端——消息中心 + 个人中心(闭合评审 L-1 消息无入口 / Profile 缺失)
- 消息中心(views/message):消费 community.yaml 玩家侧端点(messages 列表/mark-read/unread-count),类型筛选+未读红点+标记已读+游标翻页+诚实空态;TabBar 底部 3→4 tab 加"消息"一级入口
- 个人中心(views/profile):账号信息(passport /me)+创作成长(community /level)+功能入口+退出登录(复用既有 logout() 不重实现);"我的"tab 指向 /profile
- 支撑:api/community.ts + store/message.ts + mock/community.ts(沿用每模块带 mock 约定)+ 契约 VO 入 types.ts;router 加 /message /profile(均 requiresAuth)

verify-as-you-go:vite build --mode staging ✓ + vue-tsc EXIT=0;消费端点逐条核验在 community.yaml(:41/:69/:90/:114)+passport.yaml(:100)契约内;真机走查留合并点
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 09:01:19 +00:00
zizi
2650347840 merge(aigc): spike/saa-prod 并入 dev/2.0.0——SAA 裸图编排 form①+checkpoint+observation 落 dev 2026-06-16 14:51:24 +08:00
zizi
5a6607c4d3 docs(roadmap+review): 产品开发路线图(产品视角·分阶段) + studio↔demo UI 差距评审
- 产品开发路线图-review.md:已完成(①②③⑤可演示)/待完成分阶段排期(Phase0卖相→Phase1变现→Phase2生成质量→Phase3日历闸门→Phase4生态),日历闸门=关键路径;①创作 W-CLEAN 迁移空窗已诚实更正
- studio↔demo UI差距评审-review.md:29 agent 工作流评审,差距95%有意MVP降级 vs 16真差距,Top5(退出登录孤儿P0/品牌渐变·字体·消息入口P1)+设计系统专章+覆盖矩阵
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 06:43:12 +00:00
zizi
42342e8c53 fix(studio): Phase0 卖相批——退出登录入口/品牌渐变/Inter字体/字号token/创作页诚实空态
- 退出登录入口(Project.vue):接既有 userStore.logout()(不重实现),isRealLogin() 门控仅登录态显示,二次确认→replace('/feed');闭合 §7「退出登录无入口」孤儿红线
- 主按钮品牌渐变(AppButton.vue):.app-btn--primary 纯色青→135° cyan→green 渐变+weight 820+深色字#061014,对齐 demo
- 品牌字体(reset.css + public/fonts):self-host Inter 拉丁子集 400/600/700 woff2,@font-face font-display:swap,'Inter' 前置字体栈(中文兜底 PingFang SC/微软雅黑)
- 字号阶梯(tokens.css):新增 --fs-h1/h2/body/caption,additive
- 创作页诚实空态(Create.vue):W-CLEAN 后模板列表返空属迁移非故障,区分"✨升级中"与"⚠加载失败"不再误报,空态给"去游戏流"出口

真机走查实证(staging :4173 CDP 截图双证):退出登录可见可登出/主按钮青绿渐变/Inter真渲/创作页诚实文案 全生效
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 06:43:12 +00:00
zizi
188511d2ce docs(agentic): 视觉增强 repair NO-GO 决策记录
三独立透镜一致否决 + 硬数据证伪,存为决策记录防再提:
- 对抗评审:前提塌陷(play.cdp.cjs:548 waitBoot抛错→552 first-paint永不写,A/D失败无截图;evidence零清场→陈旧图幻觉);看图冗余/两头不靠;漏算诊断进K_FEEDBACK放大后续全量重出轮token
- 可行性评审:同P0;judgeVision复用带回playerSystem的verdict=M3又当门(自打"M3不当门"红线)
- 桌面统计(N=49失败/87运行):D_render=0,C_frame=0 视觉失败象限不存在;真病灶=H_progress 85%+G_input/F_wiring各34%逻辑层
数据指向真修复线:H_progress(game loop终态驱动)+G_input(输入响应)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 04:45:06 +00:00
zizi
b7786caa40 docs(saa): 新增 SAA 图编排 skill + 索引(AGENTS §7 沉淀)
知识缺口收口:现有 ai-generation-pipeline.md 是退役 Dify 蓝图、无 SAA 编排 playbook。
新建 .agents/skills/saa-graph-orchestration.md:最小依赖集/拓扑/加节点/接 new-api(剥 /v1 坑)/checkpoint(含 saved_at 无 tiebreaker 框架坑+显式 checkPointId 修法)/observation/派发契约/验证门(门E/门B)。
索引更新 .agents/README.md + AGENTS.md §5。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 02:36:41 +00:00
zizi
b92eba6b06 docs(agentic): 主线 agentic 基建口径 HJ-AGI-001(AgentScope 2.x) → HJ-AGI-002(SAA) 漂移对齐
SAA 迁移 spike 落地后,把主线文档里"agentic 基建=AgentScope 2.x(HJ-AGI-001)"的过时活文本,对齐到现行决策 HJ-AGI-002(SAA-only)。审计由 5 代理 workflow + Codex 独立审 + 源码 grep 三源交叉定位,再独立验残零遗漏。

- Tier-1 活文本直改(7处): AGENTS.md / tech-decisions.md(×4,含 §95 "SAA 藏 job/callback 契约#6 后保持可替换") / contracts/DEPRECATED-dify-workflow-io.md / .agents/skills/ai-generation-pipeline.md
- Tier-2 活文本改+回填注(9处): product-and-architecture / glossary / mvp-scope-and-milestones / ai-development-protocol / 技术架构与模块(T-AGC-18) / MVP进度总账 / MVP作战清单
- Tier-3 历史 spec 加 supersede 横幅(4档): 2026-06-12-agentic基建框架选型-review、2026-06-14-OpenGame蓝图补缺-review、2026-06-14-P3-W-G1生成主线-review/execution
- 统一口径: SAA(Spring AI Alibaba v1.1.2.2)裸图编排,short-term SAA-only,AgentScope 降 long-term premium 独立轨
- 历史进度账用括号回填、不改史;全仓 grep 残留零(Python 对照基线/banner 覆盖项除外)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 02:34:42 +00:00
zizi
314b421ac1 feat(saa): form① 进程内派发器 + step5 MysqlSaver checkpoint + observation 埋点收口 (HJ-AGI-002)
把已跑通的 Python agentic 生成系统 SAA 迁移从 spike 推进到生产收口:form① 进程内派发器 + 迁移 step5(checkpoint) + 可观测埋点,并修 split-brain、调和依赖。

- form①: GenerationDispatcher 契约 + SaaGraphDispatcher 进程内直调 difyCallbackService.handleCallback(消灭 HTTP+HMAC);默认 dispatcher=http 逐字非破坏,saa 仅 opt-in,SAA 图懒构造在席零开销
- test→main: SaaGenNodes/SaaPrompts/SaaStudioNodes 提升;抽 SaaStudioGraph 为唯一布线源,SaaStudioGraphTest 改调 build()(修 split-brain,杜绝两处布线漂移)
- step5: MysqlSaver checkpoint(懒建/一图一 saver/注 yudao Druid/releaseThread(false)/CREATE_IF_NOT_EXISTS),SaaGraphDispatcher threadId 缝接实;Flyway 零撞名(GRAPH_CHECKPOINT/GRAPH_THREAD 大写引擎私有,测试隔离 saa_spike schema,生产 ruoyi-vue-pro 零污染)
- observation: GraphObservationLifecycleListener 节点级 trace/耗时/失败埋点(经 starter-graph-observation 自动配置)
- 依赖调和: 删 agent-framework/builtin-nodes(零引用·后者硬钉 1.1.2.2 脱 BOM 版本钉债,拖 tika 全家桶),留 graph-core/starter-graph-observation/spring-ai-starter-model-openai;MysqlSaver/observation 机芯均在 graph-core(动 pom 前已核归属)
- 验证: 全 SAA 套件 16 run/0 fail/3 skip(harness-gated 正确跳过);test-compile 门绿;依赖树 Boot 全 3.5.14/redisson 4.4.0/零 3.22 泄漏;checkpoint 真恢复 6/6 确定性(查库 GRAPH_CHECKPOINT 实有 node_id=n1/next=n2 行 + 跨实例 N1_RUNS==1 真接续非重放)
- 框架坑记档: SAA MysqlSaver.saved_at 秒级 TIMESTAMP、load SQL ORDER BY saved_at DESC 无 tiebreaker → 同秒多 checkpoint 时默认 resume() 非确定;修法=getStateHistory 按内容选中断点、显式 checkPointId 续跑绕开排序

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 10:19:48 +08:00
zizi
2b59f53f44 feat(saa): Python agentic 生成系统迁移到 SAA(Spring AI Alibaba)裸图 spike (HJ-AGI-002)
全图 design->generate->validate->[repair环]->scaffold->build->play(九门)->player->emit;build/play 复用既有 harness 子进程。
SAA 完整框架集接入 aigc-server(graph-core/agent-framework/builtin-nodes/observation/openai,3 BOM;Boot3.5.14/Redisson4.4.0 保住)。
双评审(Opus+Codex)9 项对比前必修:LLM超时重试/ProcessBuilder超时修复/采样面对齐/playerFeedback清串味/gatespec强解析/problems归一/recursionLimit兜底/cost/端口参数化。
首轮对比 breakout/whack/flappy:SAA 通过率 2/3 >= Python 1/3。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-16 07:55:27 +08:00
lili
6404ea7db1 docs(ip): 命名空间同步 com.wanxiang.huijing + Codex 复核整改
- 软著3/4 源代码鉴别材料按当前 com.wanxiang.huijing 源码重新提取(gen_ru3/新增 gen_ru4,字节忠实)
- 全量同步包名/路径/芋道目录标签;自研主张以 .game. 段为界,芋道(MIT)整体排除
- 总表 §一统计对齐各清单(123/10186、210/12841、9859、12/1650、461 文件);5.6万→约4.7万(纠无支撑数)
- Codex 只读复核整改:高企表述加限定;专利4 权9 矛盾、专利1 manifest 口径修正;ru-6 便宜→低成本、七门九门→多门统一
- 新增双层复核报告对外洁净版

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-15 11:17:02 -07:00
zizi
b780323e53 Merge commit 'a9d11725' into dev/2.0.0 2026-06-15 14:49:26 +00:00
zizi
063ec4edf2 docs(rename): ③ 文档/契约漂移清理——contracts+docs+根文档 yudao 标识同步 com.wanxiang.huijing(follow-up,脚本)
- 范围:全仓除已完成的 game-cloud/game-admin(及排除区);91 文件
- cn.iocoder.yudao→com.wanxiang.huijing / cn.wanxiang.game→com.wanxiang.huijing.game / cn.iocoder.cloud→com.wanxiang / Yudao*→Huijing* / bare yudao→huijing
- 含 contracts/api-schemas(apiInterface FQCN)、docs/architecture+agent-specs(含中文名,git ls-files -z 修复)、AGENTS.md/CLAUDE.md 等根文档
- 保留不动:上游归属 URL(gitee/github yudaocode·YunaiV,改则断链+违反署名)、game-cloud Flyway 迁移注释(保 checksum)、lockfile(装包重生)
- 纯文档/字符串,零构建影响(game-cloud/game-admin 字节码未动)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 14:32:44 +00:00
lili
a9d1172509 docs(ip): 知识产权申报材料(6软著+4专利)+ 双层复核(Codex×Opus)整改
- 6 件软著材料 ruanzhu-1..6(软件说明书/源文件清单/源代码鉴别材料/申请信息表)
- 4 件发明专利交底材料 patents/01..04 + 知识产权申报总表
- 双层复核报告 + 整改(均经验证、零第三方泄漏):
  · ru-3 补漏纳 2 文件 + 重生成鉴别材料消逐字不符 + 统计→123/10186
  · ru-6 补 service.py(300行)→12/1650;ru-1 修鉴别材料截断边界
  · ru-4/ru-5 计数漂移同步(12841 / 9859);run.py/prompt.py「九门」口径
  · 6 包 清单/鉴别材料/申请表 三者一致
- docs/ip/_tools 确定性重生成器 + README(提交窗口重快照复用)
- 材料含【待填】行政占位,待律所终审 + 著作权人实名提交后生效(尚未提交)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 07:09:16 -07:00
zizi
384a26da59 fix(studio): feed 卡占位封面(1×1 透明 GIF)当无封面走标题底纹兜底——修"一片黑"卖相
链路③⑤ 人测亲见:feed 卡一片黑+只剩播放按钮。根因=生成侧无缩略图时后端回填 1×1
透明占位 GIF(data:image/gif;base64,R0lGODlhAQAB…),它是 truthy → 绕过旧 `!coverUrl`
兜底、被当背景渲染成透明(视觉=黑)。

修:GameCard.vue 加 hasCover 计算属性,识别 1×1 占位 GIF 当"无封面"→走既有标题底纹兜底,
feed 卡始终有可读内容。真实封面(OSS http(s)/实质图)才用作背景;真缩略图归 W-G1。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 13:39:14 +00:00
zizi
cf2e1ed3b5 docs(agents): 改名收尾——playbook 内 yudao-server/YudaoServerApplication/cn.wanxiang.game 同步到 huijing-server/HuijingServerApplication/com.wanxiang.huijing.game(follow-up ②,c74aa7da 改名连带)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 13:31:31 +00:00
zizi
c74aa7dab6 refactor(rename): yudao 命名空间整体改名 com.wanxiang.huijing(公司 Wanxiang / 项目 Huijing)
- 包根 cn.iocoder.yudao → com.wanxiang.huijing;业务 cn.wanxiang.game → com.wanxiang.huijing.game(统一单一命名空间)
- groupId cn.iocoder.cloud → com.wanxiang;artifactId + 模块目录 yudao-* → huijing-*(含 huijing-server/framework/gateway/dependencies)
- 类名 Yudao* → Huijing*(44 个);配置前缀 yudao.* → huijing.*(Tier A 标识符 + Tier B 配置)
- 排除不动:Flyway 迁移脚本(不可变历史,保 checksum)、上游归属 URL/LICENSE、DB 表名(真表 system_*/game_*,无 yudao_ 业务表)
- 范围:game-cloud + game-admin。范围外 contracts/docs/.agents 的 yudao 引用=文档漂移,后续单独清(Opus H4 判不阻断)

评审:Opus 对抗复审(逮 Flyway checksum Blocker→已修排除迁移);Codex 未同步交回。
本地验证:apply 幂等✓;范围内真代码残留 0(16 处 \bYudao 均在已排除迁移注释内)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 13:05:48 +00:00
zizi
fce6713f17 merge(wg1): 并入 L1 W-G1 bake-off——便宜模型0造不出/失败全归基建·人锚不可替代
L1(lili-mac)自主完成 P2(P1 校准放量 blocked-on-founder)。核验:flappy verdict 九门全绿
(实证非自述)、results.json 真 bake-off 数据(deepseek-v4-flash retries=2 真重试链)。

- driver-coverage 1→8 型闭口:flappy/multiball/asteroids/angrybirds 四款翻绿(九门真验)
- 三分类铁论:0 模型造不出 / 0 3D 硬界——失败全归 ①宿主键盘桥(L0 已修 d754b71)
  ②driver 覆盖(L1 增强)③可测性边界(游戏 exportState)
- P2 三档对照(同款 Breakout):flash ¥0.194 / M2.7 ¥0.514 / pro ¥0.417;
  pro 碰撞 bug 被两便宜 player 假绿=人锚不可替代(创始人亲玩锚)
- t2048 8/9(2048 抗死锁 latch 体裁边界,游戏真可玩,建议放宽门)
- 蒸馏:game-e2e §8(driver 1→8+H 假阴归因)/cheap-model §9/L1 闭口报告
- L1 lane(_wg1-gen+gen-worker),与 L0 lane 不相交=clean merge

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 11:21:27 +00:00
zizi
00a1275637 chore(cleanup): 清理 yudao 存量死代码/垃圾(139 删+1 改,净删 ~5.6 万行)
- yudao 内置 demo 示例代码:infra Demo01/02/03 学生CRUD · pay PayDemo · bpm flowable 监听器示例 · system DemoJob(零外部引用,无菜单/xml/test 连带)
- yudao-ui/ 5 个占位 README stub(实际前端在顶层 game-admin/game-studio)
- 21 个 .http IDE scratch 文件(infra/pay/system/bpm)
- sql/ 非 MySQL 方言 DDL:db2/dm/kingbase/oracle/opengauss/postgresql/sqlserver(平台只用 MySQL;含 dm/flowable-patch 手工补丁,未入 maven 构建)
- infra ErrorCodeConstants 移除 10 个 DEMO 孤儿错误码常量(引用方已删)
- game-admin src/{api,views}/infra/demo codegen 示例视图

未动:yudao-module-bpm/pay 模块裁剪 + scripts/ 一次性脚本(待产品决策);改名搁置。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 10:57:46 +00:00
zizi
23decfefaf feat(passport): staging 限定免真实短信验证登录——内测解锁(profile 门控·生产不受影响)
创始人:「allow login and registration without SMS verification for now」。staging 未接真实
短信网关,随机码外人无从得知→创始人人测/e2e UI 走查均无法登录。

实现(信任边界=后端服务层 PassportServiceImpl,profile/配置级门控):
- 新增 @Value sms-mock-enabled(缺省 false)+ sms-mock-code(缺省 8888)
- sendSmsCode:开关开→mock 受理成功(不依赖真实网关)
- smsLogin:开关开 ∧ 提交码==固定码 才跳过 system_sms_code 校验,否则真实校验(双条件,非无脑放行)
- 仅 application-staging.yaml 置 true;生产/dev/local 不配→@Value 缺省 false→真实短信校验绝不削弱
- log 经 DesensitizedUtil 脱敏手机号;安全注记三处冗余(Javadoc/行内+log.warn/yaml)

⚠ 公网上线前必须关闭(=实名/短信网关日历闸门):开启=任何人凭 8888 登录任意号,绝不可进生产。
编译 BUILD SUCCESS + 20/20 单测(含 5 新增,2 个"开关关→生产不受影响"反证)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 10:40:06 +00:00
lili
06e59de659 feat(wg1): angrybirds 也翻绿——drag-aiming 解析瞄准(暴露物理常数闭可测性边界)
续 cc5fa48:最后一个 driver-coverage 边界 angrybirds 转确定性闭口(复刻 asteroids「暴露所需常数+适配 driver」范式)。

- play.cdp.cjs drag-aiming 加 45° 抛【解析模式】:游戏暴露 launch{gravity,powerScale} 即反解拖拽矢量(各发±力度微抖兜物理离散),否则退化力度扫描
- angrybirds brief:pin 死简单可解析物理(powerScale=8/gravity=1200,无阻力)+ 导出 launch:{gravity,powerScale}
- flash 重生成首发过(retries=0):launch 导出与 pin 完全一致、score 0→20 result=win 清场、latch✓
- 终局:flappy/multiball/asteroids/angrybirds 4 款翻绿;仅 t2048 余 8/9(2048 抗死锁 latch 体裁边界,游戏真可玩,建议放宽门)
- 回填:闭口报告 + game-e2e §8(drag-aiming 解析)+ cheap-model §9

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 03:36:01 -07:00
lili
cc5fa486ac feat(wg1): driver-coverage 闭口 + P2 三档对照——flappy/multiball/asteroids 翻绿,0 模型造不出
创始人 2026-06-15 定档「driver 残留闭口 + P2 对照(L1 自主)」;P1 校准放量 blocked-on-founder。

- play.cdp.cjs driver 库 1→8 型:+flap-to-gap vy 前瞻 / paddle-intercept 弃守排空 / drag-aiming(第7) / aim-fire(第8)
- flappy ✅(重生成 score 0→5,vy 前瞻+可达缝隙 brief)
- multiball ✅(重生成首发 retries=0,弃守排空 driver+底部丢球语义 brief)
- asteroids ✅(enrich exportState 暴露陨石坐标+aim-fire driver,score 0→6=可测性边界转确定性闭口范式)
- t2048(8/9,键盘桥已修 score 0→4;latch=2048 抗死锁体裁边界)/ angrybirds(8/9,隐藏弹道物理可测性边界)honest 留界
- 三分类铁论:0 模型造不出 / 0 3D 硬界——全是宿主键盘桥(L0 已修)/driver 覆盖(我域已增强)/可测性边界(游戏 exportState)
- P2:同款 Breakout 三档对照(flash ¥0.194/M2.7 ¥0.514/pro ¥0.417)+ 创始人锚(pro 碰撞 bug 被两便宜 player 假绿=人锚不可替代)
- 蒸馏:game-e2e §8(driver 1→8 型 + H 假阴四因归因铁律)、cheap-model §9(重生成区分实例bug/可测性/模型短板);W-G1 spec 执行进展回填;新增 L1 闭口报告
- 顺带:run.py/prompt.py 注释 六门→九门 对齐(我域,trivial)

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 02:00:07 -07:00
zizi
3c6e3d4ad0 feat(feed): 修 feed 卡 authorName 恒 null——三层补作者昵称回填(链路③⑤走查收口)
curl 实测 feed/stream 9 卡 author 全 null:契约 feed.yaml:216 与 FeedCardRespVO 早有
authorName 字段,纯三层缺实现。补:
- ProjectFeedMetaDTO 加 authorName 字段(来源 creatorUserId 查 system 用户 nickname)
- ProjectServiceImpl.getFeedMeta 经 AdminUserApi(单体内本地 bean·非网络 Feign)单查回填,null 安全
- FeedServiceImpl.backfillCardMeta 加 setAuthorName

最小改动:复用 PlayerApi 既有跨模块本地 bean 范式,不动 pom(project-server 已含 system-api)、
不改批量(单体本地查非真实 N+1)。编译 BUILD SUCCESS(28 模块)。运行时昵称回填待 Phase 2
重部署后 CDP 走查实证。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 08:42:20 +00:00
zizi
29f34b9fda docs(mvp): 总账补 yudao 死菜单清理收口 row(§6)——16棵死子树1243行软删+437孤儿,staging复验12/12,SQL落仓dev/2.0.0
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 08:11:08 +00:00
zizi
3279b5c5a9 chore(admin): yudao 死菜单清理 SQL 落仓——16 棵死子树 1243 行软删+437 行 role_menu 孤儿(备份表+固化删除集,staging 已执行) 2026-06-15 08:07:45 +00:00
zizi
c2cb4d75e3 docs(t1b-beta): T1b-β 实质收口落档——引擎真接线+Runner v2(arc)支撑feed真玩,零闭环缺口/零split-brain
5路并行侦察(读代码非读规格,PLANNED vs ACTUAL 以代码为准)实证:每个灰度闭环必需项
done/absorbed-by-arc 且有真机证据(A6 6/6 `3e5cab4` / P2真机6门 `5d3f7a8` /
3b-B井字棋入feed `238ec2d` / B1主链9001-9002);剩余全是 audit-debt+gold-plating,
无一在完成线(日历闸门)关键路径。

3处 spec↔代码漂移(有意改判非bug,已回填澄清):
- Phase B: packageUrl外链 → engineBundle内嵌(absorbed,契约一致无split-brain)
- Phase C: 1.x srcdoc→URL退役被P2 O2(b)supersede(moot,单宿主GamePlayer.vue无双轨)
- Phase A: random/time/input改判插件自管(透传破粒子确定性/污染帧钟,血统债)

落档(纯文档additive/低风险):
- 母spec 9处banner回填(Phase C supersede / Phase B engineBundle / Phase A drifts / 门3·门5·门12 / §12 immutable裁决)
- 新收口报告 docs/agent-specs/2026-06-15-T1b-β收口报告.md(wave-close七步)
- 总账(§5 backlog+推迟清单+§6执行记录row+表头日期2026-06-15)
- 作战清单(§0+T1b-β item标done)+ .agent(TODO→收口block+推迟清单)
- schema immutable孤儿字段标future(消无孤儿设计红线 AGENTS §7)

推迟清单(gold-plating+audit-debt)入backlog,创始人可点名某项转required。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 08:00:19 +00:00
zizi
c77f7a1e60 docs(mvp): 作战清单回填到 2026-06-15 + 三线分工(6c6g L0‖mac L1‖你)防冲突铁律
回填铁律(本会话多收口未回填):
- 维护行/§0 补本会话生成线大推进:3b-B 派发面+HMAC+视觉终局(via 兜底)/scale-20 14款/
  键盘桥 fix/saolei 翻绿/OpenGame 评审版 merge;DS key 你已解→W-G1 前置清
- §0 重锁候选(可并):①W-G1 bake-off(L1,unblocked)②T1b-β(L0)③dispatch tap-targets(L1)
- 范围裁决:生成游戏「游戏内社交+内购」延后(平台全量不变)
- 新增 §0.5 三线分工表 + 防冲突四铁律(文件=lane 边界/机器分区/git rebase 节奏/brief 防撞名)
- W-G1 标 DS key 已解+【L1】+生成成熟度;new-api 标 DeepSeek+MiniMax 已解

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 05:15:54 +00:00
zizi
824ff672e3 merge(wg1): 并入 L1 saolei-borderline 修复(tap-targets safeOnly 避负族 driver)
独立验证(saolei verdict pass=9门0挂、trial merge、roles.py 未碰)后并入 L1 38032c7:

✅ L1 完成(避负族 facet,真+验证):
- harness driver runTapTargets 加 safeOnly(规避/推理族只点 safe===true 确定性避负到 win;
  安全放置族缺省关、零回归)
- saolei 题面加 safe x-ray 观测位(仅 _forensicsView·勿渲染)+ safeOnly + 断言改 result==win
- 重生成 saolei flash 一次过九门(revealed 0→71/all_cleared/win-latch)=borderline→confirmed-playable;
  自产 safe 正确→坐实缺口在题面非模型;回归 tictactoe/invaders 全绿
- 家族二分法(安全放置 vs 避负/推理)沉淀进 cheap-model/game-e2e skill

冲突解:brief add/add(L1 与 L0 同路径不同切片)取 L1 版为底 + 追加 §十 L0 补充——
澄清 L1 治的是 lane/避负族(saolei),与 3b-B 派发面 driver:none 是不同 facet;
cheap-model skill auto-merge 已含两 facet(line 58 dispatch 面 / line 80 避负族)。

⚠️ 仍 pending(不同 facet):3b-B 派发面 design agent 给 driver:none(roles.py:32,安全放置族
在派发面拿不到 driver)=「一句话现生成 tap 类」缺口,L1 本次零碰 roles.py/studio.py→属 L1 下一步。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 04:56:42 +00:00
lili
38032c72b4 feat(wg1): tap-targets safeOnly oracle driver——扫雷 borderline 翻绿(自产缺口修复)
driver: runTapTargets 加 safeOnly(规避/推理族只点 safe===true、确定性避负到 win;安全放置族缺省关、零回归)。题面: saolei.json targets 加 safe x-ray 观测位(勿渲染)+ safeOnly + 断言 result==win。重生成 saolei: flash 一次过九门(revealed 0→71 / all_cleared / win-latch),自产 safe 正确→坐实缺口在题面非模型。回归 tictactoe(X)/invaders(win)全绿。沉淀 L1brief §九 + game-e2e/cheap-model skill 二分法。零碰 L0(boot-game-host/契约/门面)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 20:36:51 -07:00
zizi
b96aa84866 docs(opengame): 评审版 baseline 刷新到 post-3b-B(v0.4)——吸收派发面 e2e + driver:none 种子
创始人「先 merge+刷新 baseline」拍板执行(OpenGame 执行后续归 L1):
- §1 现状基线补 post-3b-B:派发面全链真证(238ec2d)+视觉终局达成(via 兜底)+唯一剩余生成缺口=tap 类 driver:none
- D4 种子加一条已验证失败类「设计 agent 自产 driver:none(应产 tap-targets)」喂 U3,失败类目=design 自产物缺陷
- 形态/决策/分期全不变,仅刷现状+加种子

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 03:35:47 +00:00
zizi
d9fc9eee3f merge(docs): 并入 OpenGame 蓝图补缺评审版 v0.3(HJ-AGI-OG-001)
L1 产 OpenGame 源码级精读评审版(两轮评审过、待创始人拍板)入档 dev/2.0.0。
形态=A 增量改造(蓝图当内核输入,不换 AgentScope/LittleJS/九门 harness/便宜模型);
核心补 U3 Debug Skill + U4 Template Skill(离线冷路径、零碰热路径/成本/契约 churn);
仅 Tier1,Cocos 维持冻结。创始人拍板:先 merge 存档 + 刷新 baseline 到 post-3b-B,
OpenGame 执行后续归 L1。
2026-06-15 03:34:05 +00:00
lili
076c407551 docs(agent-specs): OpenGame 蓝图补缺升级 评审版 v0.3(HJ-AGI-OG-001)
源码级对标 OpenGame(Debug/Template Skill)后为 W-G1 设计 A 形态增量升级:分类/GDD 折叠 + Debug 活调试协议(9h)+ Template 骨架自增长;离线冷路径经验复利、热路径不变;经验绑契约非绑引擎(engineBinding)保引擎可换不降级。两轮评审收口(1 P0 + 5 P1 全采纳),分四期执行,仅 Tier1/LittleJS,Cocos 维持冻结。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 19:34:37 -07:00
zizi
dee2fcaa5f docs(L1-brief): 闭合「一句话现生成 tap 类」临门一脚——design agent 自产 tap-targets driver
3b-B 视觉终局重跑逮出唯一剩余缺口的 L1 执行 brief:
- 精确根因:roles.py:32 DESIGN_SYSTEM 规则③ 明确叫模型对纯点击类给 driver:none,
  但 harness 早有 tap-targets/tap-pairs driver(play.cdp.cjs:205/208,样板 tictactoe 手供即过)
- 修向(双保险,镜像现有 ball.y→ball.x):① prompt 改离散点击类产 tap-targets+导出 targets 数组
  ② _extract_gatespec 兜底注入
- 验收:2 款 tap 现生成过九门 + 理想派发面落当场生成新游戏入 feed=全真现生成终局
- lane 纪律:只动 wg1/gen-worker,冻结契约/host/backend/壳零改,rebase 238ec2d

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 01:21:12 +00:00
zizi
238ec2dbe8 test(aigc-3b-B): 视觉终局达成——真游戏真玩入 feed(亲眼验);一句话现生成腿缺口=tap类driver:none→L1
3b-B 重跑视觉终局(mini-desktop·证据 wg1/gen-worker/evidence-3bB-final/):

✅ 视觉终局达成(亲眼复核截图):feed 里一款真渲+真玩有进展的井字棋(gameId=9306/versionId=93112)——
  空盘「轮到X」→ 落子填盘 X·O → 「X 胜!」+ 重新开始(latch 终态);feed 真玩门 10/11 过
  (no_demo_fallback/engine_rendered/lively_interactive 全 true,唯一 false=play_start 遥测非阻断)。
  经真 HMAC 回调写链落库(验签通过 engineBundleLen=210891→建版本→组包 checksum 自洽→翻 feed)。

走兜底路(诚实标注):主路一句话现生成两次均失败,故取已验证过九门样板 tictactoe(便宜模型 flash 真生成、
  verdict A-I 全 pass)的 engineBundle 经派发面真回调路落 feed,DB bundle 与样板 sha256 字节级一致。
  仍是便宜模型真生成的过门游戏,只是非本次现生成。

★ 主路两次 fresh 失败真因(非模型壁垒,铁证):design agent 在 dispatch 面 run_studio(play_spec={}) 下
  均给 driver:{type:none}→harness 盲打打不中目标→moves/score 恒 0→H_progress 挂+latch 不触发,repairs=5
  耗尽。游戏本体全对(gen9306/9307 verdict 8/9 门过,targetX/Y/radius·board·moves 导出正确,G_input/
  I_control/F_wiring 均过)。样板过门靠 lane brief 手供 play_spec.driver=tap-targets。
  → 蒸馏入 cheap-model §7:DESIGN_SYSTEM 须对离散点击类强制产 tap-targets driver(纯 L1 生成域,
  moat『一句话现生成』腿的真·临门一脚)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-15 00:48:50 +00:00
zizi
23e86934d2 merge(wg1): 并入 L1 scale-20 放量 + 宿主键盘桥 fix(d754b71·关键盘输入缺口)
独立验证(不信自述)后并入 fix/host-keyboard-bridge(=wg1/scale-20 超集,merge-base d79f2c3):

✅ 宿主键盘桥 fix(d754b71·5行纯增量):boot-game-host.js attachInput() 补 window keydown/keyup
  桥接(ctx.getInput 键盘通道原为空→方向键/空格游戏输入死),对齐 host-dev/host.js:427-428 既有范式,
  inputBridge _assertType 白名单本已含 keydown/keyup=零兼容风险。独立验:tetris verdict 修后
  pass=True/9门/0挂(翻绿铁证)、tictactoe pass=True。

L1 scale-20 14 款放量(briefs/results/calibration/m3_player_test.py + tictactoe/tetris 正样本):
  主力 7/8 真可玩;spec 预判门面缺口几乎全推翻(CCD/文本HUD/网格/match-finding 便宜模型自写对),
  真·L0 门面缺口收敛为唯一一处=宿主键盘桥(本 fix 已补)。trial merge 干净(仅 .agents skill
  auto-merge),我 3b-B 文件(service.py/CallbackSignatureVerifier)完好。

校正:我 §5『点击坑=moat 真壁垒』系单样本(3b-B)过度泛化,与 L1 §9 scale-20 实证矛盾→已改为
  承认便宜模型相当能干、真缺口=键盘桥(已修)+driver-coverage(harness),非模型能力。

重大上修:moat 生成质量远好于 3b-B 单样本所示;失败主因=宿主门面(已补)+harness driver 覆盖,非模型。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 23:49:40 +00:00
lili
1eae58d0ac docs(wg1): 报告补 driver-coverage 残留实测记录(multiball/t2048/flappy/愤怒小鸟)
driver 调参(flap 前瞻/paddle 弃守/2048 双向)实测未翻绿,因玩法特性、收益递减;论题已由 invaders+tetris 双证。实验代码已 revert,仅留必要 key() 修复(早于 4836a6f 已提交)。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 10:58:20 -07:00
lili
4591d64818 verify(host): 重打包键盘款证 host 键盘桥生效(tetris 翻绿)
补宿主键盘桥(d754b71)后重打包 t2048/tetris/asteroids 重跑九门:tetris ✅整盘翻绿(piecesLocked 0→10 + latch 驻留;修前 0→1 重力假性)、t2048 score 0→4 真合并(修前 0→0)、asteroids F_wiring 0→27 + latch✓(船真动真开火;修前全冻 0)。键盘根因坐实。残留 t2048-latch(2048 盲态难死锁)/asteroids-score(盲射没瞄准)=harness driver 跟进,非键盘非模型。

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-14 10:42:49 -07:00