lili
|
c26617192a
|
feat(tier2): 软预算 ¥ 闸从 fail-closed 改优雅收尾软停(交尽力产物·不断链) (切片一 阶段一①/T3)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-02 03:04:24 -07:00 |
|
lili
|
e9c7a3bb47
|
feat(tier2): 续修 RepairMiddleware 提升进 middleware.py + GateJudgment 真契约 + budget_exhausted 联动 (切片一 阶段一①/T2)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-02 02:37:16 -07:00 |
|
lili
|
55162341ca
|
feat(tier2): 统一门判据 GateJudgment + tier2 verdict 适配器 (切片一 阶段一①/T1)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-02 02:24:22 -07:00 |
|
zizi
|
c62143dd1e
|
chore: 工作树散落配置入库(.idea/.codex/.mcp.json/创作者体系白皮书V1.2)
docs-gate / docs-gate (push) Has been cancelled
|
2026-07-02 14:24:13 +08:00 |
|
zizi
|
d97e194383
|
docs(治理): SoT注册表+docs-gate六检门,清缩历史档126→69
- 注册表:docs/architecture/README.md §2,37 份 canonical(frontmatter topic+canonical:true)与表双向机器对账
- 门:.agents/tools/docs-gate.py 六检(品牌根/canonical唯一/死链/入口卫生/留痕隔离/设计档申报),挂 .githooks/pre-commit(本仓已激活)+ .gitea/workflows/docs-gate.yml(待runner)+ wave-close 第8步;旧 check-deadlinks.sh 退役并入 G3
- 清缩:删 54 项历史档(plans 16/agent-specs 设计与spike 20/brainstorms 5/memorys 3/goals+作战清单完成史归档/王蓝莓design/SAA现状html/add-game-template);channel-spike 564K 代码资产迁仓级 spikes/;六件删前蒸馏已迁(代码评审16条open项→进度总账§5、prefix-cache字段表→cheap-model skill、意图基线29条→需求清单附录、九门降级rationale→验收门、A11 TODO→tech-decisions、3layer边界→littlejs-game-dev 指针)
- 修口径约90处:六处SAA『现行主线』旧标、Nacos/RocketMQ『未部署』旧述(07-01反转)、gameDefinition残留、全部死链改 git show 定位;AGENTS.md 249→136行(决策史归tech-decisions);_index 改纯在飞板;对外演示版 md→html
- 依据:docs/agent-specs/2026-07-02-文档治理-{全量普查与裁决-report,SoT注册表与治理门-设计}.md(四路普查191份md+Codex/Opus双评审必修项已折入);恢复基线 8ea97234(单档 git checkout 8ea97234 -- <路径>)
|
2026-07-02 14:24:12 +08:00 |
|
lili
|
8ea972340e
|
chore: 工作树散落活账整理提交(多工作线)
- .gitignore:忽略 AgentScope 2.0.2 源码克隆(.claude/skills/agentscope-skill/agentscope/,本机开发直读参考、~17MB、含自带 .git、非本仓产物、可重克隆)
- .claude/skills/agentscope-skill/SKILL.md:agentscope skill 更新
- contracts/prompts/04-config/cheap-system.md:便宜档 system prompt 加「核心操作非无脑」第9条好玩自检(否决项:⑨不命中则①-⑧全中也只是有元素的无趣游戏)+ 决策层与九门自动验收解耦(基础分保盲驱动器过门 / 技巧分给真人爽感)
- game-runtime/evidence/integration/evidence.json:集成 evidence 更新
- game-studio/public/mock-manifests/:U5+U2 真 UI 走查 runbook + walk 脚本 + mock manifest
- wg1/gen-worker/results/gamedef-quickcheck.json:bake-off 结果(同既有 27 tracked 同类)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-01 19:00:42 -07:00 |
|
lili
|
a164f4c222
|
docs(.agents): 配置控制面阶段〇蒸馏 + 累积能力蒸馏批次 + 本轮 plan/设计
- tech-decisions §10:配置控制面阶段〇生产基建落地(Nacos 2.4.3/RocketMQ 5.3.1/Sentinel
自托管 mini-infra + 三层并发正交承重[Sentinel=入口QPS / consumeThreadMax=dispatch速率 /
有界worker池=真并发cap follow-up]+ rocketmq-spring consumeThreadMax 无界队列坑:死参数须 min=max)
- AGENTS.md:Nacos/RocketMQ/Sentinel 反转为 MVP 生产 runtime(2026-07-01 build-vs-buy 现货尽调)
- 累积 .agents 蒸馏:agentscope-2.0-facts / build-vs-buy 硬门 / cheap-model-game-generation /
contract-first-development / game-e2e-cdp-harness + README 索引
- 本轮留痕:配置控制面 spike 与阶段〇 plan + 设计文档
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-01 18:53:39 -07:00 |
|
lili
|
2fac985bbf
|
feat(gen-worker): middleware 热参经 Nacos v1 同步 watcher 热读(快照兜底)(切片一 阶段〇 D2)
NacosHotConfig 线程安全 store(RLock)+ get_config 三级兜底 + v1 add_config_watcher 同步热更(免 event-loop),
消灭自建薄读接口。回调 dict 键逐字对齐已核验 v1 源(data_id/group/namespace/raw_content/content)。
6 单测绿(初读/热更/不可达回落/默认保留/脏内容保旧值/并发线程安全)。真连烟测随后端窗口。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-01 17:40:40 -07:00 |
|
lili
|
ab6791cf34
|
feat(gen-worker): AgentScope Service 注册进 Nacos discovery(替硬编码@8200)(切片一 阶段〇 D1)
nacos_registry 注册实例+心跳+优雅注销,advertise_ip 指 mini-desktop Tailscale;代理旁路;
NACOS_REGISTER=1 才开、best-effort 失败不中断 Service。单测 mock client 锁注册+旁路+best-effort。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-01 17:40:40 -07:00 |
|
lili
|
4bc36ec6dd
|
feat(game-cloud): RocketMQ 异步 gen 队列(生产者+有界消费≤15+CAS 幂等)(切片一 阶段〇 C3)
入队发 AIGC_GEN_TOPIC 信号替 @Scheduled 轮询触发;消费者 consumeThreadMax=15(在跑并发权威)+ 既有
claimQueuedTask CAS 认领幂等;派发失败落 failed 不留悬空 running;@Scheduled 降级兜底(捞 stale queued +
超时 running)。发 MQ best-effort 不回滚入队。单测锁幂等/best-effort;端到端随后端窗口。
name-server 各 profile(dev/local/staging)+base 指 mini-infra 100.64.0.8:9876;rocketmq-spring-boot-starter
在 starter-mq/websocket 均 optional=true 不传递,故 aigc-server 直依赖(版本走依赖管理)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-01 17:40:40 -07:00 |
|
lili
|
6d6bb52d9d
|
feat(game-cloud): Sentinel 入口 QPS 突发保护(FLOW_GRADE_QPS·规则热源 Nacos)(切片一 阶段〇 C2)
入队入口套 @SentinelResource(aigc:gen:admission)做入口速率闸,与 DB 三门(per-creator 配额)分层;
越限 blockHandler 优雅拒非 500。并发≤15 权威=C3 consumeThreadMax(非本 Task)。规则改 Nacos dataId 热生效。
单测锁降级语义;真限流集成验证随后端窗口。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-01 09:59:31 -07:00 |
|
lili
|
55e833b470
|
feat(game-cloud): 重启用 Nacos 配置中心+服务发现指向 mini-infra(切片一 阶段〇 C1)
application.yaml nacos discovery/config enabled false→true + server-addr 100.64.0.8:8848 + 鉴权。
依赖零新增(starter 已声明)。本地编译绿;真注册验证随后端窗口。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-01 09:32:42 -07:00 |
|
lili
|
c197abc420
|
docs(architecture): 新增总架构图说·创始人对外演示版(13 张内置 SVG)
面向技术尽调/技术顾问的单文档对外演示:开篇全闭环价值锚点,三大部分(整体技术架构 / 功能模块 / 游戏生成),收尾护城河四层。诚实技术口径、自研 vs 不自研边界、采主流标准(A2A/MCP/OTel),非程序员散文 + 13 张内置 SVG(商业信息图风格,已逐张渲染验证)。README §3 加对外版指针。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-01 09:03:12 -07:00 |
|
lili
|
22b3016048
|
feat(infra): RocketMQ 5.3.1 自托管 mini-infra(NameServer+单 Broker+lean 1g JVM)(切片一 阶段〇 B2)
纯增量、host 网络、brokerIP1 指 Tailscale 地址;探针绿、Broker 注册成功、内存在 lean 预算内。
端点写回 docs/内网凭据与端点.md。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-01 08:55:59 -07:00 |
|
lili
|
38dd2dc4e5
|
feat(infra): Nacos 2.4.3 自托管 mini-infra(standalone+MySQL 后端+lean 512m JVM)(切片一 阶段〇 B1)
纯增量部署、host 网络、复用既有 MySQL nacos 库;鉴权开 token。探针 200 绿,内存 <700M 不挤 RAGflow。
端点/密钥写回 docs/内网凭据与端点.md。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-01 08:32:13 -07:00 |
|
lili
|
061cf22c87
|
feat(cheap-worker): 续修 middleware 机制 spike 坐实(拦 finish+注入+续跑)(切片一 阶段一前置)
on_reasoning 洋葱拦 finish Msg + 独立跑 fake check + 没过压制+注入 UserMsg 续跑,
4/4 确定性单测绿(stub 模型、零 LLM/chrome)。机制成立,阶段一接真 run_gates。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-07-01 05:22:49 -07:00 |
|
zizi
|
6d2f8789d7
|
remove archive doc
|
2026-07-01 11:18:20 +08:00 |
|
lili
|
ba69b386ee
|
docs(plans): 便宜档 M3 生产 cutover plan(已批准·选B·§6.8 双评审收口)+ plan① 横切回写
M3 plan:承接 6-28 已完成的路由 cutover、推进对外开闸放量(S0 核实→S1 worker 更新到 M1 富化→S2 control-plane 重启+验Bean→S3 阈值起步→S4 小流量→S5 生产≥80%复验→S6 6门放行);Codex 有条件放行 + Opus(BLOCKER 经核实=误判)双评审 12 项发现全修;创始人裁定决策点二选 B(直接 live 开 flag+回滚兜、不走 staging 避 split-brain)。plan① 横切回写:状态表/§M3 记路由 cutover 已 6-28 go-live、§104 五款3/5 校正为 M1-rich 达标、§119 灰度→D3 整体翻转校正(横切一致性漂移修齐)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 03:37:17 -07:00 |
|
lili
|
9ae3334240
|
docs(.agents): 蒸馏便宜档切片一收口(richness 红线兑现 + 两个测试坑)
tech-decisions §5.1 回写:richness 架构落地(纯 LLM 非阻塞、代码零丰富度断言)+ 富游戏 M1 全 3 品类 100% 达标 + 退役授权 authorized;蒸馏 stale-play-spec 复用坑(复验须 --offset)与 amgen-base* 是 load_brief 依赖(清理须排除)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:06 -07:00 |
|
lili
|
1e004a361b
|
feat(game-admin): 生成控制面只读监控页(切片一 C3b)
genMonitor 三 card(角色模型表/trace 时间线/成本对账)照搬既有 wanxiang 页模式;独立 axios 实例取 gen-worker 裸 JSON(不走 CommonResult 拦截器);eslint 0。页面真跑随 M3 部署窗口。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:06 -07:00 |
|
lili
|
5265f538b8
|
feat(contracts,aigc): prompt registry 一致性 CI 门 + Java TTL 运行时热取(切片一 C2)
check_registry.py 校验 registry.yaml 每条 id.version 与 .md frontmatter 对齐(漂移 exit 1,17 条全绿);PromptResourceLoader 加 @Scheduled 60s TTL 热取 + classpath 永久兜底 + volatile 原子换 Map(mvn compile 过 + 9/9 测试)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:06 -07:00 |
|
lili
|
f4cea4677a
|
feat(tier2): 统一 trace 落库 sink + SAA schema + 生成控制面只读后端(切片一 C1/C3a)
JsonlFileSink 把五字段 trace 落 workdir/trace.jsonl(非阻塞·写失败不阻断生成);studio.py sink 接线;SAA 扩展段 schema(接口对称五核心+内容不对称 ext);管理面 3 只读端点 roles/traces/cost(惰性 import 保住「仅 import service.app 不牵 fastapi」红线)。测试 test_jsonl_sink 3 / test_admin_routes 6 全绿。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:06 -07:00 |
|
lili
|
e6525aaa3d
|
feat(cheap-worker): 便宜档生成丰富度 + M1 达标门富化重验(切片一 A/B)
接 sim-business 设计指导到生成 agent(cheap_roles+prompt.mjs 双源,先设计后写码+MVP-first);新建纯 LLM 丰富度验证 agent cheap_verify(非阻塞·不进 verdict·零 code-presence 断言,红线落地);bake_off 加 richness 列;cheap_roles 三级回落配置热取(C2a 加载器);cheap_studio trace 接线(C1b)。富游戏 M1 三品类各 5/5=100% 过九门达标。测试 test_roles 12 / test_cheap_verify 11 / test_bake_off 17 / test_cheap_trace 4 全绿。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:06 -07:00 |
|
lili
|
ba0197a1a3
|
docs(cheap-worker): 纠 reskin 错框 + plan 切片完成度回写
创始人纠正:reskin「锁循环只换皮作成本主线」/「重做丰富脚手架」= 越线,成本数据留痕、
策略框作废。架构红线:项目代码只做机械确定的事;玩法/美术/音乐的「丰富生成」归生成 agent
设计创作(据 sim-business 指导 + 组合插件)、「丰富校验」归纯 LLM 验证 agent(非阻塞)——
代码/九门/脚手架都不碰。便宜=LLM 低参与度≠游戏低质量,底线=2D 丰富游戏。
- tech-decisions §5.1 / 设计文档执行进度 / plan① 切片一里程碑:reskin 错框纠正 + 修正方向
(接 sim-business 设计指导 + 建 LLM 丰富度验证 agent → 喂 M1「过九门+丰富」)。
- plan① §2 执行现状:加切片完成度快照(切片一地基✅/达标门✗ · 切片二 go-no-go悬 · 切片三~90%
· 基建线~15%)+ 便宜档待办更新(减摩擦已落 + 丰富度新缺口 + 预算闸已接线)+ A11 现状更新。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:05 -07:00 |
|
lili
|
92f6a84205
|
docs(cheap-worker): 经营 reskin n=5 收敛环确认——降本杠杆坐实
5 个不同店主题(奶茶/书店/花店/拉面/冰淇淋)强制换皮跑:
5/5 全过九门 · 成本均 ¥0.252(区间 0.21-0.38,-64% vs 基线 ~¥0.7)·
game-logic.js 全 0-diff(循环锁定证明生效)· 全 1 轮 · 5 店菜单全互异。
连同咖啡馆 = n=6 全过、全腰斩、循环全锁定——reskin 三件(成本腰斩稳 /
过门 100% 可靠 / 多款不雷同)全确认收敛,无失败无需追加。扩模板降本杠杆
= 脚手架 + 写边界强制锁循环,经营档坐实;阶段二以 reskin 为成本主线、
剩四品类各建骨架 + n=5 确认。蒸馏入设计/tech-decisions §5.1/plan① 切片一。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:05 -07:00 |
|
lili
|
c17b15cbdf
|
docs(cheap-worker): 扩模板数据点结论蒸馏——降工作面只在强制换皮 reskin 模式
经营品类三路对照(同咖啡馆 brief,n=1):
- 无脚手架基线(7 局 bake-shop-serve):~890 行 / ¥0.7 / 6·7 过门。
- 软脚手架(骨架 + 软提示):892 行 / ¥0.85 / 过门 / distinct——AI 把省下预算投增富化
(自加 combo + VIP)、对基线三指标(行数/成本/轮数)全平没降。
- 强制换皮(write_whitelist 锁 game-logic.js、只改 core 主题 + render 观感):
696 行(-22%)/ ¥0.34(-51%)/ tokens -64% / game-logic 0-diff / 过门 / 仍 distinct。
结论:设计 §1「扩模板缩小 AI 工作面」假设成立、但只在强制换皮 reskin 模式(脚手架 +
写边界强制锁循环);软脚手架买质量/过门鲁棒(增富化)、不买成本。降本杠杆 = 脚手架 + 锁循环、
非脚手架本身。取舍:reskin 省成本但封顶增富化,软脚手架反之。阶段二应以 reskin 为成本主线
(待创始人定范围、n=3-5 每类确认)。蒸馏入设计执行进度 / tech-decisions §5.1 / plan① 切片一。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:05 -07:00 |
|
lili
|
47d6394347
|
feat(cheap-worker): per-genre 脚手架路由接入 scaffold_template/scaffold_desc(扩模板数据点)
扩模板需让难品类 AI 从预置品类骨架起步、少写。接入(全缺省回落 _template、create 路零改):
- tools.mjs scaffoldSaa(gameId, templateName='_template'):clone 指定模板;CLI 加第 3 参;模板缺失 warn 回落。
- cheap_run.scaffold(game_id, template=None):shell-out 透传模板名。
- cheap_studio.run_studio(scaffold_template, scaffold_desc):线程到 prep + build_system_prompt。
- cheap_roles:system prompt 脚手架描述参数化(⟦SCAFFOLD_DESC⟧),让 AI 知道起点已是该品类完整游戏、换皮而非重写。
管线 routing 单测 27/27、prompt 参数化 8/8。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:05 -07:00 |
|
lili
|
9ddd173c06
|
feat(cheap-worker): 经营品类黄金脚手架 _template-shop(扩模板数据点)
蒸馏 6/7 过九门的 bake-shop-serve 实证 pattern 成 per-genre 黄金骨架:
顾客→桌位→上菜收钱→耐心→限时循环 + _forensicsView 的 targets/score 取证契约
(自动驱动器据此点 occupied 桌驱动上菜、score 涨过 H_progress)。母语化 API
(sessionScore.add / juice.burst / drawButton 返命中矩形)+ core.js 顶部多样性参数
空间(DISH_MENU/数值)+ fill-in 标记界定结构层 vs 身份层;修 patienceRatio 的
_elapsedMs 潜伏 bug。独立过九门(H_progress score 0→154),core 单测 8/8。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:05 -07:00 |
|
lili
|
c7811c7dfa
|
docs(knowledge): tech-decisions §5.1 蒸馏阶段一B落地 —— 方向①向母语对齐全完成
把"降AI参与方向①(插件API向母语直觉对齐)"的落地写回 tech-decisions §5.1(该节正是
drawButton 等改签名的方向源):附A 15处签名 #1-#15 全完成 + 正交泛型门修(save.get 误杀)
+ 减摩擦端到端见效(打地鼠+save 从失败→一次过九门/¥0.64/不thrash),2a20e5e7→2be7b718 13提交。
剩:补密度(阶段一C)+ 扩模板(数据点门控)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:05 -07:00 |
|
lili
|
7c9c8a8b47
|
docs(cheap-gen): 阶段一B 改签名收口 —— plan①里程碑 + 设计执行进度 + 存量重生成复验
阶段一B(附A 15 处可改签名 #1-#15)全完成收口:
- plan① 切片一「降AI参与」里程碑:执行序列标记阶段一A/B ✅(2a20e5e7→2be7b718 共13提交、前置核查证 L2/tier2 隔离)
- 设计文档执行进度:逐条母语化要点 + 正交泛型门修复 + 存量重生成九门复验结果
- 存量重生成代表性一局 PASS:打地鼠+菜单+高分(drawButton/sessionScore/save.get/ctx.random)
attempts=1/¥0.64/209s,对比改签名前同款栽在 save.get 泛型门 bug(2attempts/¥6.69/失败)
—— 现一次过、更便宜更快不 thrash,减摩擦端到端见效。
下一步:难品类数据点(B,前置阶段二)→ 阶段一C 补密度 → 阶段二扩模板。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:05 -07:00 |
|
lili
|
f9393ccbb8
|
feat(cheap-gen): 阶段一B #12 collision Aabb 统一接受 {x,y,w,h} 与 {x,y,hw,hh}
附A #12(最后一处·几何约定统一):collision Aabb 用中心+半宽高 {x,y,hw,hh},与 hud-ui Rect/
drawButton 的 {x,y,w,h}(左上角+尺寸)不一致——AI 易混,skill 原要专门警告"非 {x,y,w,h}"。
加 _normAabb 归一化:circleVsAabb/aabbVsAabb/raycastAabb 现同时接受 {x,y,w,h}(自动按左上角换算中心)
和 {x,y,hw,hh}(原样),AI 可用与 Rect 一致的 {x,y,w,h}、不必记区别。低风险(存量 {x,y,hw,hh} 透传不变)。
全链路同改:collision/impl.js(_normAabb + 3 直接函数归一化)+ api.d.ts Aabb 文档 + skill:113。
验证:collision 16/16(存量 center-form 不破)+ 确定性({x,y,w,h} 与等价 {x,y,hw,hh} 三函数结果全一致)。
注:SpatialHash broadphase(进阶、便宜档罕用)仍取 center-form {x,y,hw,hh};AI 常用的直接查询函数已统一。
至此附A 15 处可改签名全部完成(#1-#15)+ 正交泛型门修复。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:05 -07:00 |
|
lili
|
619351052d
|
feat(cheap-gen): 阶段一B #1 ctx.random/ctx.time 改可调用(双 API·向母语直觉,最高频)
附A #1(最高频·每游戏用):ctx.random/ctx.time 原是对象、须 .next()/.nowMs(),AI 直觉 ctx.random()/
ctx.time() 当函数调会抛错——prompt/形状门都教"是对象不是函数"当幻觉拦。改成双 API:既可直接调用
(ctx.time()=毫秒、ctx.random()=[0,1))又保留全部方法(.nowMs()/.elapsedMs()、.next()/.range()/.reseed()),
向后兼容(框架/插件内部仍用方法形态)。
单点实现:boot-game-host 复用 createHostDevContext(单一 context 源),故 buildContext 一处包装即覆盖
host-dev + 真游戏。加 _callableTime/_callableRandom 双 API 包装器,ctx 装配处 time/random 包装。
全链路同改:plugin.js(包装器+装配)+ tools.mjs(CTX_METHODS 加 time/random、API 门错误文案翻转)
+ prompt.mjs/cheap_roles.py 双源(调用形态翻转:两形态都对、但 ctx.nowMs() 漏 .time 仍错)+ skill:144。
验证:core plugin 31/31(核心不破)+ 确定性(ctx.random()/time() 可调用 + .next()/.range()/.reseed()/
.nowMs()/.elapsedMs() 双 API)+ 形状门 11/11 + [check] PASS(双形态同段)+ cheap-worker 16/16 + 双源一致。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:05 -07:00 |
|
lili
|
fb01654311
|
feat(cheap-gen): 阶段一B #14 palettePost 加 applyPreset 常用后处理观感预设
附A #14:palettePost 原不内置成品观感,AI 要逐项配 vignette/dither/scanline 的 enabled/strength
才出效果。加 applyPreset(name) 一键套预设:'none'(全关)/'soft'(柔暗角)/'retro'(扫描线+暗角)/
'crt'(扫描线+暗角+抖动)/'dither'(抖动),委托 setPost。换色色板(from/to RGB)仍由游戏注入
(那需源色、非预设态)。全链路同改:impl(applyPreset 委托 plugin.setPost)+ api.d.ts 声明 + skill:117。
验证:palette-post 12/12 + 确定性(retro 开扫描线+暗角、none 全关)。prompt 不细列 palettePost 故仅 skill。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:05 -07:00 |
|
lili
|
ea229edf78
|
docs(cheap-gen): 阶段一B #7+#11 timer 单位钉死 + juice.render 每帧手调钉死
附A #7(文档钉死类·timer 是 ms 时钟、改秒是破坏性重构,取显式标注):timerScheduler.after/every
收毫秒、与 update(dt) 的 dt=秒相反——AI 易混(3 秒误写 after(3))。skill:129 + prompt.mjs/cheap_roles.py
双源钉死"3 秒=after(3000)、别 after(3)、与 dt 秒相反"。
附A #11(文档钉死/自动化·自动化不可行=render 需游戏侧 g):juice.render(g) 须每帧在游戏 render 里手调,
忘了粒子/打击感不显示。skill:116 强化(原已钉死、补 #11 标记 + 后果)。
均 doc-only(timer 本就标 ms、juice.render 本就钉死),本次显式化 + 双源对齐。验证:prompt node --check
+ cheap_roles py_compile 绿、双源一致。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:05 -07:00 |
|
lili
|
8196e07c2c
|
feat(cheap-gen): 阶段一B #8+#9 audioMusic 音效放开语义名 + play 强度容错
附A #8:playSfx 原限 blip/thud/chime 三预设,AI 直觉用 'click'/'hit'/'win'/'coin' 等语义名会静默失败。
加 SFX_ALIASES 语义名→预设映射(click/jump/coin→blip、hit/fail/land→thud、win/success/levelup→chime),
未识别名兜底 blip(不静默)——AI 用任意音名都出声。
附A #9:play(intensity) 入参是情绪强度 0..1、非曲目名,AI 误传字符串 → NaN 强度。play/loop 对非数容错
为默认强度;api.d.ts/skill 文档钉死"入参是强度非曲目名,曲子先 loadSong"。
全链路同改:impl(SFX_ALIASES + playSfx 兜底 + play/loop 容错)+ api.d.ts(playSfx 放宽 string + 文档)
+ skill line118。验证:audio-music 16/16 + 确定性(playSfx 任意名不抛、play 非数不抛)。prompt 不提 audioMusic 故仅 skill。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:05 -07:00 |
|
lili
|
5cb73a6d82
|
feat(cheap-gen): 阶段一B #4 gamefeel 加 CoyoteTimer/ComboWindow 工厂方法(免 new+传 time)
附A #4:gamefeel 的 CoyoteTimer/ComboWindow 是 class、须 new 且要传受控 TimeSource——AI 拿不到
受控 time、做不出来。加工厂方法 gamefeel.createCoyoteTimer(opts)/createComboWindow(opts):
用 init 时捕获的受控时间源自动注入,AI 直接调、免 new + 免找 time。全链路同改:
- gamefeel/impl.js:init 捕获 ctx.time,加两个工厂方法(new CoyoteTimer/ComboWindow(time,opts))
- gamefeel/api.d.ts:GamefeelPlugin 接口加两个工厂声明
- skill line115:列工厂方法(免 new + 自动注入受控 time);内置 inputBuffer 改 gamefeel.inputBuffer
验证:gamefeel 18/18 + 确定性(init 后工厂可调、返带 isAvailable/hit 的实例)。prompt 不提 gamefeel 故不同改。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:05 -07:00 |
|
lili
|
b29a379f9c
|
feat(cheap-gen): 阶段一B #3 collision 几何查询函数挂实例(向母语直觉)
附A #3:collision 实例原只有 spatial,7 个几何查询函数(circleVsCircle/circleVsAabb/
aabbVsAabb/satVsPolygon/raycastCircle/raycastAabb/raycastSegment)仅模块级导出——但 skill:113
本就把它们列在 collision 能力下,AI 直觉 collision.circleVsCircle(...) 取不到=真 gap。
把 7 个纯函数挂上实例(引模块级、不依赖 this),api.d.ts CollisionPlugin 接口同补。skill:113
原措辞现在成真、无需改。验证:collision 16/16 + 确定性(实例 circleVsCircle/aabbVsAabb/raycastAabb
可调且算对)。注:Aabb{x,y,hw,hh} 与 Rect{x,y,w,h} 的几何约定统一(#12)风险高、留后续careful。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:05 -07:00 |
|
lili
|
d79e1b9f89
|
feat(cheap-gen): 阶段一B #2+#13 physics 几何挂实例 + ProjectileState px/py→x/y
附A #2:physics 实例原为空 {}、几何运动函数仅模块级导出,AI 直觉 physics.integrateProjectile(...)
取不到。把 6 个运动原语(integrateProjectile/springStep/criticalDamping/moveWithConstraint/
clampSpeed/applyFriction)+ Projectile 类挂上实例(引模块级纯函数,不依赖 this),api.d.ts 接口同补。
附A #13:ProjectileState 位置 px/py → x/y(向母语直觉,与 Vec2/命中矩形的 x/y 统一)。impl/test/
PLUGIN.md 同步(px/py 仅 ProjectileState 字段,replace_all 安全)。
注:physics 当前无 prompt/skill 指引(便宜档 niche、projectile 罕用),本次是完整性 + 正确性
(实例可用 + 字段直觉),不改生成侧行为。验证:physics-lite 16/16 + 确定性(实例 integrateProjectile/
clampSpeed 可调、ProjectileState 返 x/y)。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:05 -07:00 |
|
lili
|
c6d31c0d81
|
docs(cheap-gen): 阶段一B #15 scene 回调签名钉死(防臆造首参)
附A #15(文档钉死类、非 API 改):scene-fsm 回调表里 update 只收 (dt)、render 只收 (g)
(api.d.ts:38 本就如此),但 prompt/skill 未明示防臆造首参。加钉死:别写 update(scene, dt)
这类场景名/state 首参、与五法同形。prompt.mjs + cheap_roles.py 双源 + skill define footgun 同改。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:05 -07:00 |
|
lili
|
bdcd7d472c
|
feat(cheap-gen): 阶段一B #10 juice 加 burst(x,y) 便利方法(向母语直觉)
附A #10:AI 母语直觉是 juice.burst(x,y),旧 API 只有 spawnEmitter('burst',x,y)、burst 仅预设名
——prompt 原本教"particles-juice 没有 burst"当幻觉拦。加 burst(x,y,overrides?) 便利方法委托
spawnEmitter('burst',...) 后,直觉名直接可用。全链路同改:
- particles-juice/impl.js:加 burst(x,y,overrides) 委托 plugin.spawnEmitter('burst',...)(引 plugin 自身不依赖 this)
- particles-juice/api.d.ts:实例接口加 burst 声明
- prompt.mjs + cheap_roles.py 双源:删"particles-juice 没有 burst"(它现在有了)
- skill line116:spawnEmitter 旁注 burst(x,y) 母语别名
验证:particles-juice 18/18(含 burst 别名 spec 等价测试)+ 确定性 burst≡spawnEmitter('burst')
+ [check] PASS(juice.burst 被 API 门认可)+ 双源一致。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:05 -07:00 |
|
lili
|
8c361f4a5b
|
feat(cheap-gen): 阶段一B #6 sessionScore 加 add 别名(向母语直觉)
附A #6:AI 母语直觉是 score.add(10),旧 API 只有 addScore——skill 原本把 add 当
幻觉拦(❌ add → ✅ addScore)。改签名加 add 别名后,直觉名直接可用,翻转 skill。
全链路同改:
- session-score/impl.js:加 add(delta) 别名(引 plugin 自身委托 addScore、不依赖 this)
- session-score/api.d.ts:实例接口加 add(delta): number 声明
- skill:line 145 由"❌ add→✅ addScore"翻为"add=addScore 别名直接可用";line 126 方法表注别名
- prompt.mjs/cheap_roles.py 无需同改(它们不提 addScore,仅 skill 提)
验证:session-score 插件测试 7/7(含 add 别名断言)+ 确定性验 add≡addScore + cheap-worker 16/16。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:05 -07:00 |
|
lili
|
13126a08ca
|
fix(amodel-gen): API 静态门方法名提取支持泛型声明(治 save.get<T> 被误判不存在)
#5 九门 gen 暴露的正交真 bug:check 的 API-存在静态门用正则
/(?:^|\n)\s*(\w+)\??\s*\(/ 抽 api.d.ts 方法名,遇泛型声明 `get<T = unknown>(`
时 \w+ 后是 `<` 非 `(`、抽不到 `get`,把真实存在(impl + api.d.ts:79 都有)的
save.get 误判"方法名幻觉不存在"→ 误杀一整类带存档持久化的游戏(高分榜等)。
修:两处方法名正则加可选泛型段 (?:<[^>]*>)?(apiMethodSet + apiVoidMethodSet)。
验证:形状门单测 11/11;针对性 check 一段同用 save.get('best',0)+sessionScore.add+
drawButton 的 game-logic → [check] PASS(三者均不再误判)。over-permissive 取向不变。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:05 -07:00 |
|
lili
|
dc49f5f866
|
feat(cheap-gen): 阶段一B #5 drawButton 改返命中矩形(黄金首件·治 #1 翻车点根因)
降AI参与·阶段一B 改签名第一处(附A #5)。逐插件改逐插件回归的黄金样板。
drawButton 由返 void 改为回吐它绘制的归一化命中矩形 {x,y,w,h}——AI 的直觉写法
const btn = hudUi.drawButton(g,{x,y,w,h},{label}); if (hudUi.pointInRect(px,py,btn)) 现在就对,
治了 #1 翻车点(drawButton 返 void 误用→变量恒 undefined→命中短路→卡菜单)的根因,而非教绕路。
全链路同改(漏一个造新脏数据):
- hud-ui/impl.js:drawButton 模块函数 + 实例方法回吐归一化矩形 r(g=null 也回吐、绝不 undefined)
- hud-ui/api.d.ts:模块函数 + 实例方法 两处 :void → :Rect + JSDoc
- tools.mjs 形状门:删 drawButton 特例分支(api.d.ts 改后自然掉出 void 名集),
泛化判据留给仍真返 void 的方法(drawText/drawPanel/drawBar/play/flashScreen)
- prompt.mjs/cheap_roles.py(双源)/skill:指引由"返void绝不接"翻为"回吐命中矩形可直接 pointInRect"
- check.test.mjs:drawButton 测试反转(赋值不再拦)+ 链式测改 drawText
- test_roles.py/test_toolkit.py:footgun 断言 + 形状门 drawButton 测试随签名更新
验证(逐插件回归矩阵):
- 形状门单测 11/11(amodel-gen)+ cheap-worker test_roles/test_toolkit 16/16 + hud-ui 19/19
- 确定性 impl 铁证:drawButton 回吐 {x,y,w,h}、g=null 不 undefined、回吐矩形直接 pointInRect 闭环
- 真生成代码(菜单+按钮游戏)用了 drawButton、check 未拦 drawButton,证明 #5 不破坏生成
- 双源 drawButton 文案一致;prompt.mjs node --check + cheap_roles.py py_compile 绿
正交发现(非 #5):该局九门 gen 栽在 save.get() 方法名幻觉(save 插件无 get)——
是另一处方法名摩擦,记为阶段一B 后续/补密度候选,不在 #5 范围。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:05 -07:00 |
|
lili
|
62f819ad43
|
docs(cheap-gen): 降AI参与设计收口更新 —— 认领+前置核查已解、执行进度
收口 TODO:① 已认领 plan①(56e9f28e);② 前置核查已做——L2 插件与 tier2 物理隔离
(tier2 用自己 Phaser engine-caps、零 import 便宜档 L2 插件)→ 阶段一B 改 L2 API 无 tier2 回归。
执行进度:✅ 阶段一A 清脏数据(a6a37b1c);下一步据创始人裁定 A 阶段一B改签名/B 数据点/C review。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:05 -07:00 |
|
lili
|
f477666f1d
|
docs(plan①): 切片一认领「降AI参与」里程碑(L2 API 母语化 + per-genre 脚手架)
把「便宜档降AI参与」探索结论正式认领进 plan① 切片一(canonical · 创始人 2026-06-29 directed):
- 加里程碑「降AI参与·减摩擦+扩模板覆盖」= 把 3/5 推向 ≥80% 的生成质量地基,喂 M1 达标门
· 减摩擦(小头,26× 含学 API 税):改 L2 签名向母语直觉 + 清脏数据 + 重写形状门判据
· 扩模板覆盖(大头未验):per-genre 脚手架,缩 AI 自由写面 —— 难品类数据点前不敲定范围
- WU 归属:WU-B 实例达标 / WU-C 5.4 能力面契约变更(改 22 处 L2 API)/ WU-F 达标门
- 跨设计面加 L2 API 母语化契约变更 + 设计指针
红线:九门内核不降 / L2 插件库保留(降参与核心载体非税)/ 不动 tier2。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:05 -07:00 |
|
lili
|
74a7135746
|
feat(cheap-gen): 便宜档降AI参与 设计落仓 + 阶段一A 清脏数据(治传导断裂)
探索会话诊断+设计(Codex+Opus 双评审、证据驱动重定位),认领进 plan① 切片一里程碑。
落仓产物:
- 动因 evidence(母语vs方言:M3 不弱、便宜档现状方言产同款要 ~26× token)
- 方向设计(降AI参与=减摩擦[小头]+扩模板覆盖[大头未验];附A 22处摩擦/15可改签名清单)
- tech-decisions §5.1 + agent-specs/_index 蒸馏
阶段一A 清脏数据 + 文档治理锚(prompt.mjs + cheap_roles.py 双源 + skill 三文件):
- 治"传导断裂"根因:植入定位锚——便宜档=AI参与深度低的高质游戏(轻量≠简单),
复杂度靠工程脚手架+L2 插件库、少写多调;"极小/最小游戏「点圆得分」"重框成
"脚手架起点、借插件能力改造成高质游戏"
- collision.pointInRect(不存在)收敛 hudUi、删干净
- 漂移范例 catch-fruit/wanglanmei(旧 opts 签名)→ _template(唯一匹配现契约)
- 插件数口径统一"注入 11 + runtime-probe 取证不注入"
验证:prompt.mjs node --check + cheap_roles.py py_compile 绿;九门复验跑一局打地鼠
(历史翻车品类)attempts=1、verdict.pass、failedGates=[]、¥0.95——清脏数据未破坏生成。
核心结论(创始人确认):便宜档≠简单游戏;L2 插件库是降AI参与核心载体非税;
"换母语扔插件"=升参与、与策略相反,已推翻。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:05 -07:00 |
|
lili
|
1152f0d0d4
|
docs(studio): A11 切片三全闭环 —— 受计费真后端 e2e 跑通
受计费 e2e 在 mini-desktop 隔离实例(:48090 + worker :9502,不碰 live)跑通:
- 三件硬证据全坐实:① 三断言/modifyManifest 落库(ROUND_MS 30000→18000 found / behavior changed+untouchedStable)
② D12 计费(regenerate cost.totalRmb=0.307 / deterministic 零LLM cost=0,均经配额门)
③ 血缘(game_source_project v93145→v93146/47/48 base_version_id=93145)
- 判意图分类正确(config/deterministic vs behavior/regenerate-module)、两档执行九门全过
- 抓修 1 阻断性真 seam bug(gameId int→str,a40823b1)
切片三 A11:设计 → 双评审 → M1-M5 执行 → 受计费真后端 e2e,端到端闭环。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:05 -07:00 |
|
lili
|
0465471ef4
|
fix(cheap-worker): 真后端 gameId int→str 归一化(治便宜档经真后端全失败的阻断 bug)
A11 受计费真后端 e2e(mini-desktop 隔离实例)抓到的阻断性 seam bug:
后端 gameId 是 Java Long → JSON number → Python int;worker 直传 cheap_run 的
subprocess shell-out(scaffold/build/stage/smoke/play 要求 str)→ TypeError(expected str, not int)
→ scaffold 失败 → 静默归 llm_error → 便宜档经真后端 generate/modify 全部失败。
本机单测用 str gameId 没暴露;真后端 Java int gameId 才触发(e2e 的价值)。
修:_default_run_fn / _process_modify_job / _process_regenerate_job 三处 job 消费边界
归一 game_id=str(...)(str("x")=no-op,既有零影响)。e2e 重跑后全链路成功。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-30 01:39:05 -07:00 |
|
zizi
|
6998de77f3
|
docs(agents): 蒸馏 tier2 服务态生成配方 + 收敛根因(§7)
本 session 服务化实测的可复用产出写回权威源:新增 skill tier2-service-generation——
★收敛头号杠杆=真玩 driver(没 driver→F_wiring 挂+富游戏门 None+agent thrash 的假性不收敛;
默认 business-sim play_spec 通用修复·007 现成游戏带 driver 重跑 accept 全绿坐实;诊断口诀=九门前几道绿
+F_wiring 挂+富游戏门 None→查 driver 别怪生成,None≠False)+ 驱动 create_app 六集成口径(凭据 data 嵌套/
chat content 块列表/Toolkit.tool_groups 抠九工具/BYPASS+query agent_id/设计阶段接入/SSE read 超时防挂死)
+ 控制面有界 resume + C1 trace 字段口径。README skills 索引同步登记。
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-29 11:40:57 +00:00 |
|
lili
|
9ac0e860d1
|
docs(gen-engine): A11 切片三收口蒸馏 —— 回写 plan① + 设计面入运行时 SoT §六
收口 TODO①②(创始人 2026-06-29):
- 回写 plan① 切片三:确定性覆写定性精化(执行仍零 LLM、但 A11 经判意图两段式到达、
非直接覆写;落点对齐工程规范性)+ 后续细化标记已执行(M1-M5 代码完成、6 提交)
- A11 设计面蒸馏入运行时 SoT:新增 §六 调整回路(试玩后纠错)——两段式判意图/工程规范性改一处/
两档执行/三断言,散文设计面(兑现 plan① TODO⑥ "A11 无 §5.x facet 专节");§三 A11 行状态更新为
便宜档代码完成
- .agents/knowledge/tech-decisions §1.2 A11 调整回路简洁蒸馏(指向 §六 + 细化 plan)
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
2026-06-29 03:08:06 -07:00 |
|