docs(harness): 收口协议单清单化+四处漂移纠偏+配方出仓蒸馏——2026-06-11 harness 体检落地
体检根因:收口规则散落 4 处(总账铁律/作战清单回填铁律/README 维护规则/协议 §6)靠记忆执行 → 漂移已实发(总账表头停 06-09 两日、作战清单轮次未滚动、.agent 残留 Day-0 横幅、AGENTS §3 仍写"三仓未入本仓")。 - 新增 .agents/skills/wave-close-checklist.md:收口七步唯一可执行清单(总账+表头/作战清单+归档/回填/.agent 仅结构变化/蒸馏/索引/编排资产入库+30秒自检);总账铁律、协议 §6、编排文档全部改为指向它 - 四处漂移一次纠偏:总账表头 06-11+对账 f403d11;game-cloud/.agent(Day-0→11/13 模块实态、技术栈对齐 C2 裁定、Wave4 销账);game-studio/.agent(mock 态→接 staging 实态);AGENTS.md §3 monorepo 实态+目录树补 contracts/game-*/deploy/mvp+memorys 标记停增 - 作战清单瘦身:3843 字符巨型 bullet 等完成史整体迁 MVP作战清单-完成史归档.md(原文快照保真),清单 68→33 行只留队列;新一轮完成线标注待创始人拍板重锁 - 配方出仓蒸馏(原仅存会话私有记忆):skills/staging-ops.md(机器分工/git 同步/重部署字节码实证/前端构建门/冒烟)+ skills/ui-walkthrough-cdp.md(CDP 七坑/studio/admin 走查/信道探针);README+AGENTS §5 索引同步(§5 顺带补回漏登的 add-game-template/prompt-governance) - 编排器 .agent 户口:QA 工具箱定位/组件清单/纪律(新工具不再长进 runs/)/Doc B T-id 编目与 tools/ 迁移留待办 - 协议修正:§5 前端验证门 pnpm test→npm run build(vue-tsc 假门禁红线入文);§1 历史检索改指 agent-specs 收口报告;mvp-execution-orchestration 加波次制现状注记(Day0-15/站会为目标态) - .gitignore 加 __pycache__/.pytest_cache(注释说明与 build/ 老雷的区别) 遗留:nightly cron 哨兵(动 mini-desktop,待拍板)/ Doc B 未编目组件销账 / tools/ 迁移评估。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
parent
33deb9461c
commit
60e736ac1a
@ -49,6 +49,9 @@
|
||||
| `skills/runtime-and-multichannel.md` | 运行时打包、沙箱、SDK 与多渠道导出手册 |
|
||||
| `skills/contract-first-development.md` | 契约先行:契约对齐与并行解耦 |
|
||||
| `skills/prompt-governance.md` | Prompt 即第 8 契约:Registry/加载注入/eval 门禁/HITL 治理手册 |
|
||||
| `skills/wave-close-checklist.md` | 波次收口七步检查单——所有收口铁律指向的唯一可执行清单 |
|
||||
| `skills/staging-ops.md` | staging 运维配方:机器分工/代码同步/后端重部署/前端构建门/冒烟门 |
|
||||
| `skills/ui-walkthrough-cdp.md` | 真 UI 走查配方(CDP on mini-desktop):studio/admin 走查 + CDP 七坑 + 信道探针 |
|
||||
|
||||
**workflows/**
|
||||
|
||||
|
||||
40
.agents/skills/staging-ops.md
Normal file
40
.agents/skills/staging-ops.md
Normal file
@ -0,0 +1,40 @@
|
||||
# staging 运维配方(机器分工 / 代码同步 / 重部署 / 构建门 / 冒烟)
|
||||
|
||||
> staging 全栈在 **mini-desktop(100.64.0.7)**:yudao 单体 :48080 + game-studio :4173 + game-admin :4174 + 隔离 MySQL/Redis 容器;共享基建(Gitea/MySQL/Redis/MinIO/new-api)在 **mini-infra(100.64.0.8)**。
|
||||
> 本配方由 2026-06-09~11 多波实战蒸馏(M1 真跑 / 黄金闭环 / UI 走查 / Wave4 集成门);红线类条目同步收录于 [`../rules/engineering-conventions.md`](../rules/engineering-conventions.md)。真 UI 走查另见 [`ui-walkthrough-cdp.md`](./ui-walkthrough-cdp.md)。
|
||||
|
||||
## 1. 机器分工铁律
|
||||
|
||||
- **重型构建 / 测试 / staging app / 浏览器走查 → mini-desktop**(15G;java17 + mvn3.8.7 + docker + node22 + chrome146)。
|
||||
- **共享基建 → mini-infra**(绝不在其上跑项目 app / 重型构建;缺 RocketMQ+Nacos,MVP 未部署)。
|
||||
- **本机 6c6g 禁跑重活**:重型前端构建 OOM、chrome 连续 exit 144。**元规则:同一失败签名第二次出现 → 换机器,不再换启动姿势。**
|
||||
|
||||
## 2. 代码同步(分类器约束)
|
||||
|
||||
- `scp`/`rsync` 源码树会被分类器语义拦截(settings 放行也没用)。**正解 = git push 到 Gitea → mini-desktop 匿名 HTTP clone/pull**:`http://101.200.34.71:3000/zizi-al/games-development-ai.git`(:3000 HTTP 匿名读,非 :2222 SSH)。
|
||||
- 单文件传输:`cat local | ssh mini-desktop 'cat >/tmp/x'`(分类器不拦单文件)。
|
||||
- 远程脚本省心写法:`ssh mini-desktop 'bash -ls' <<'REMOTE' ... REMOTE`(`-l` 拿 PATH,`-s` 读 stdin,免引号地狱)。
|
||||
|
||||
## 3. 后端重部署标准序(授权窗口内执行)
|
||||
|
||||
> 教训:`~/game-staging/repo` 曾是 stale 克隆,「构建源 ≠ 运行 jar」翻过车——每次部署按此序,以字节码实证收口。
|
||||
|
||||
1. 备份运行 jar 到 `/tmp`;
|
||||
2. 清本地独有 untracked(`application-staging.yaml` 以 origin 版为准——origin 是含 executor/passport 段的超集);
|
||||
3. `git reset --hard origin/dev/2.0.0`;
|
||||
4. `mvn clean install -pl yudao-server -am -DskipTests`(warm .m2 约 33s);
|
||||
5. **jar 字节码实证含本次修改**:`unzip -p <fat.jar> BOOT-INF/lib/<模块>*.jar` 核对 .class;
|
||||
6. `start-app.sh` 重启 → 验 health 200 / 四模板 banner / Flyway up-to-date / admin-api 200(M1 无回归)。
|
||||
|
||||
## 4. 构建/测试门(红线)
|
||||
|
||||
- **`vue-tsc --noEmit` 是假门禁**,前端验证一律 `npm run build`。
|
||||
- mini-desktop 构建 game-studio **必须 `npm run build -- --mode staging`**(vite preview 直接 serve 工作树 dist,默认 build = 事实上改部署、mock 中间件接管且无 warn)。
|
||||
- yudao 前端(game-admin)稳定配方:**pnpm9**(`corepack prepare pnpm@9.15.4 --activate`,一举绕开 pnpm10+ 的 lockfile 镜像校验与构建脚本审批两道坎)+ 前端目录 `.npmrc` 设 npmmirror → `node --max_old_space_size=4096 ./node_modules/vite/bin/vite.js build`(绕 pnpm-run 预检)。node_modules 腐化(如混入 vite8 / 杂散 `pnpm-workspace.yaml` 报 packages 缺失)→ 移开杂散文件 → 清装精确回钉版本。
|
||||
- yudao-module-system 测试:**`SPRING_DATA_REDIS_PORT=26379 mvn test ...`**(宿主 16379 被 staging redis 占用带密码,嵌入式 RedisServer 失败被吞 → NOAUTH 假红)。
|
||||
|
||||
## 5. 冒烟门
|
||||
|
||||
- API 就绪门:`deploy/smoke-test.sh`(只读 12 项)+ `--deep`(13 项含 generate 入队),含 CORS/鉴权(test1 token)验证。
|
||||
- gotcha:feed item 的 `packageUrl` 恒 null,真实取包走 `GET /app-api/runtime/package/{versionId}`。
|
||||
- **API 全绿 ≠ UI 通**:编排器旁路会掩盖 UI 缺陷,用户可见波次收口前必须做一次真 UI 走查(见 [`ui-walkthrough-cdp.md`](./ui-walkthrough-cdp.md))。
|
||||
37
.agents/skills/ui-walkthrough-cdp.md
Normal file
37
.agents/skills/ui-walkthrough-cdp.md
Normal file
@ -0,0 +1,37 @@
|
||||
# 真 UI 走查配方(CDP on mini-desktop)
|
||||
|
||||
> **为什么必须真 UI 走查**:编排器/批跑/curl 全绿 ≠ 真人 UI 能用。编排器旁路曾掩盖 2 个真后端发布缺陷(`currentVersionId` 生成后未回写 / `getZones` 空桩),**真 UI 走查是逮这类缺陷的唯一手段**(HJ-FE-WALK-001)。链路①(创作→生成→预览)与链路②(发布→审核→入 feed)均用本配方闭合。
|
||||
> 工具已入仓 `docs/agent-specs/2026-06-09-agent-loop-v1/orchestrator/`:`player_cdp.py`(游戏试玩 CDP,含 BrowserPool)/ `admin_walk.py`(admin 最小 CDP 客户端:new_target/send/evaljs/nav/shot)/ `run_walk.sh`(chrome 生命周期)/ `probe_bridge_channel.py`(宿主↔iframe 双边信道探针)。
|
||||
|
||||
## 1. 大原则
|
||||
|
||||
- **chrome 一律在 mini-desktop 本地起**(6c6g 连续 exit 144,该路线已作废);被测前端/后端同机,全 localhost。
|
||||
- 浏览器内访问前端必须 **`http://localhost:4173`**(非 Tailscale IP):宿主 manifest 校验用 `crypto.subtle`,仅安全上下文(https/localhost)可用,走 IP 会永远 demo 兜底。
|
||||
- chrome 起后必先 `curl -s localhost:9222/json/version` 验活再用。
|
||||
|
||||
## 2. CDP 七坑(Chrome 146 实证,逐个血泪)
|
||||
|
||||
1. root 运行必须 `--no-sandbox`;
|
||||
2. **`--no-zygote` 必加**(否则 `Failed global descriptor lookup` → 渲染进程崩 → 空 DOM);
|
||||
3. WS 握手 403 → 启动加 `--remote-allow-origins=*`,或 websocket-client 用 `suppress_origin=True`;
|
||||
4. Chrome 111+ 建 target 用 **`PUT /json/new?url`**(GET 不行);
|
||||
5. **ssh 直启 chrome 必死**(继承 ssh 会话 fd,断连即杀,nohup/setsid 救不全)——正解=整个流程写成 mini 上的脚本,脚本内 `exec >/tmp/walk_out.txt 2>&1` 重定向自身输出,`nohup bash run_walk.sh &` 启动即返回,远端 until-loop 轮询输出文件;
|
||||
6. 单文件传 mini:`cat local | ssh mini-desktop 'cat >/tmp/x'`;
|
||||
7. 轮询禁 `sleep N && cmd`(会被拦),用远端 `for i in ...; do grep -q DONE file && break; sleep 2; done`。
|
||||
|
||||
## 3. studio 走查(创作/试玩/发布链路)
|
||||
|
||||
- 入口 `:4173`;受控 textarea 填值 = **原型 setter + dispatch input 事件**(触发 Vue v-model,直接赋值无效);
|
||||
- 点按钮用精确文案匹配防子串误中(`includes('满意')` 会误中「不满意,重做」);
|
||||
- 截图 `cat` 管道拉回本地用 Read 查看;游戏试玩复用 `player_cdp.play()`(批跑必须 `continue_on_demo=False`)。
|
||||
|
||||
## 4. admin 走查(审核台,链路②)
|
||||
|
||||
- 接 staging:`game-admin/.env.local` 两行——`VITE_BASE_URL=http://<staging>:48080` + **`VITE_APP_WANXIANG_MOCK=false`(不关全是假数据,最易漏)**;chrome 与 admin 同机时 BASE 可 localhost。
|
||||
- 登录:租户「芋道源码」/ admin / admin123(表单预填,点登录即过,无验证码);
|
||||
- 审核台:静态路由 `/wanxiang/review`(登录后侧栏「造梦运营→项目审核」恒在);「通过」= `POST /admin-api/project/review {decision:1}` → 同事务 publish;
|
||||
- 验收锚点:**UI 队列数变化 + DB 双实证**(`game_project.status=4` + `game_feed_rank` 新行)。
|
||||
|
||||
## 5. 信道探针(回归排查常备)
|
||||
|
||||
宿主↔iframe postMessage 断裂用 `probe_bridge_channel.py` 取证:四锚点 + 判别实验(文档代际/iframe 重建监视/存活代理注入),v-for ref 数组案(host→game 全断)即由它锁凶。修复类波次收口前跑一轮防回归。
|
||||
24
.agents/skills/wave-close-checklist.md
Normal file
24
.agents/skills/wave-close-checklist.md
Normal file
@ -0,0 +1,24 @@
|
||||
# 波次收口检查单(wave-close checklist)
|
||||
|
||||
> **收口动作的唯一可执行清单**。总账铁律、作战清单回填铁律、`.agents/README` 维护规则、协议 §6 均指向本单——收口流程变更只改这里,不再四处散写。
|
||||
> 触发时机:①波次收口 ②里程碑状态变化 ③裁定类提交(拍板/闸门判定/口径变更)。
|
||||
> 由来:2026-06-11 harness 体检发现收口规则散落 4 处、靠记忆执行,总账表头/作战清单轮次/`.agent` 横幅/AGENTS.md §3 四处同时漂移——本单由此而来。
|
||||
|
||||
## 七步清单(按序执行,全过才算收口)
|
||||
|
||||
- [ ] **1. 总账**:更新 `docs/mvp/MVP进度总账.md` 受影响段(§0 现状 / §1 里程碑 / §2 模块矩阵 / §3 链路 / §5 backlog / §6 执行记录),**并同步表头「最近更新」日期 + 对账 commit**(表头漂移=本单诞生的直接诱因,勿再漏)。
|
||||
- [ ] **2. 作战清单**:`docs/mvp/MVP作战清单.md` 勾掉完成项并**移入完成史归档**(清单保持 ≤ 一屏,只留完成线 + 队列);**一轮完成线达成时,向创始人提请滚动重锁下一轮 §0**。
|
||||
- [ ] **3. 回填检查(裁定类必做)**:拍板/闸门判定/口径变更须同步修订受影响的蓝图档/蒸馏档/对外档(Doc A/B/C、tech-decisions、glossary、BP 等),或在提交说明显式声明「不回填 + 理由」。(原作战清单回填铁律,2026-06-10 HJ-AUDIT-001)
|
||||
- [ ] **4. `.agent` 文件(仅结构变化时)**:新建模块、目录职责/边界变化时更新对应 `.agent`;**纯进度推进不改 `.agent`**(进度一律以总账为准——避免再造「Day-0 横幅」式陈旧)。
|
||||
- [ ] **5. 蒸馏**:可复用产出回写 `.agents/`(事实→knowledge / 红线→rules / 配方→skills / 流程→workflows),先查重后新增;**操作配方必须落 `.agents/skills/`,不得只存会话私有记忆**(私有记忆换会话/换 agent/换人即不可见)。
|
||||
- [ ] **6. 索引同步**:`.agents/` 有结构性变更(增/删/改名)时,同步 `.agents/README.md` 清单 + `AGENTS.md` §5 导航表(两处都要,§5 曾漏更两个 skill)。
|
||||
- [ ] **7. 编排资产入库**:本波用过的 Workflow 脚本 / 探针 / 一次性工具入库(对应 spec 目录或编排器目录),收口报告落 `docs/agent-specs/`;确不入库的,在收口报告声明「不入库 + 理由」。
|
||||
|
||||
## 提交前 30 秒自检
|
||||
|
||||
```bash
|
||||
# 总账表头日期应 = 收口日
|
||||
head -8 docs/mvp/MVP进度总账.md | grep 最近更新
|
||||
# 作战清单不应残留已完成项(完成项应已移入归档)
|
||||
grep -c "✅" docs/mvp/MVP作战清单.md # 期望 ≈ 0
|
||||
```
|
||||
@ -28,7 +28,7 @@ flowchart TD
|
||||
编号步骤:
|
||||
|
||||
1. **识别任务类型与复杂度**——先判断这是分析/评审/编码/调试/写作中的哪一类,是否复杂、高风险、跨模块、用户可见。
|
||||
2. **取经验**——先读 [`../knowledge/`](../knowledge/) 与 `docs/`(架构原档);若存在 `docs/memorys/`,先检索同类历史任务,避免重复劳动。
|
||||
2. **取经验**——先读 [`../knowledge/`](../knowledge/) 与 `docs/`(架构原档);同类历史任务检索 `docs/agent-specs/` 的收口报告与总账 §6 执行记录(`docs/memorys/` 为早期遗留、已停增)。
|
||||
3. **复杂/高风险任务先 Restate**——复述理解,声明:目标、范围边界、已验证事实、假设、影响面(blast radius)、风险、验证计划。
|
||||
4. **评审版 spec**——产出 `docs/agent-specs/YYYY-MM-DD-topic-review.md`:**结论先行**,只留背景/目标/非目标/推荐方案/关键权衡/影响面/风险兼容/验收标准/待确认项,多用 Mermaid,降低认知负荷,不写代码级细节。
|
||||
5. **两轮评审**——评审版经**两轮**评审确认后再进入执行。
|
||||
@ -144,7 +144,7 @@ flowchart TD
|
||||
收尾前跑最相关的验证,并在报告中给出证据:
|
||||
|
||||
- 改动行为的**单元测试**;涉及 DB/MQ 的**集成测试**(Testcontainers)。
|
||||
- **类型检查 / lint / 构建**(后端 `mvn test`/`mvn verify`,前端 `pnpm test`,SDK `pnpm test:size` 体积检查)。
|
||||
- **类型检查 / lint / 构建**(后端 `mvn test`/`mvn verify`;前端一律 **`npm run build`**——`vue-tsc --noEmit` 为假门禁不得作验证依据,mini-desktop 构建 game-studio 必须 `--mode staging`,详见 [`../skills/staging-ops.md`](../skills/staging-ops.md) §4;SDK `pnpm test:size` 体积检查)。
|
||||
- 必要的**冒烟测试**(核心链路)。
|
||||
- 跑不了的,**说明原因并给出下一步验证建议**。
|
||||
|
||||
@ -154,6 +154,8 @@ flowchart TD
|
||||
|
||||
## 6. 与 .agents 的闭环沉淀
|
||||
|
||||
> **波次收口走唯一清单**:[`../skills/wave-close-checklist.md`](../skills/wave-close-checklist.md)(总账+表头 / 作战清单+归档 / 回填 / `.agent` / 蒸馏 / 索引 / 编排资产入库,七步)。本节是其中"蒸馏"一步的细则。
|
||||
|
||||
每次有价值的交付后,按"维护即收尾"原则回写:
|
||||
|
||||
1. **判断新增 vs 更新**:全新主题 → 新增文件;已有主题补充/修正 → 更新现有文件(先查重,不造重复)。
|
||||
|
||||
@ -3,6 +3,8 @@
|
||||
> 适用:以 AI Agent 编排方式交付 MVP——**10 个 Agent × 3 周(15 工作日)× 55 项 P0 产品功能(工作量≈137 技术项)**。本篇是"我(编排者)怎么把活分下去、怎么让效率随推进**复利增长**"的作战手册。
|
||||
> 决策来源:创始人确认(2026-06-07)——"你是执行者,10 人 = 10 个 Agent,3 周交付 MVP;规划如何做、如何复利提效。"
|
||||
> 配套:承接任意任务的通用流程见 [`./ai-development-protocol.md`](./ai-development-protocol.md);工位/范围/里程碑见 [`../knowledge/mvp-scope-and-milestones.md`](../knowledge/mvp-scope-and-milestones.md);契约先行见 [`../skills/contract-first-development.md`](../skills/contract-first-development.md);新增模块见 [`../skills/add-business-module.md`](../skills/add-business-module.md)。
|
||||
>
|
||||
> **⚠️ 现状注记(2026-06-11 harness 体检)**:§1/§2/§6 的「10 固定 Agent × Day0-15 + 每日站会」是开工前的目标态编排模型;**实际运行已演化为波次制**——每波「双 spec(review+execution)→ Workflow/Ultracode 编排建设 → 主 agent 独立验证门 → 按 [`../skills/wave-close-checklist.md`](../skills/wave-close-checklist.md) 收口」,波次史见总账 §6。**§3 复利 8 策略与 §5 验证门禁仍为现行权威**;读 §1/§2/§6 时以波次制为准。
|
||||
|
||||
---
|
||||
|
||||
|
||||
4
.gitignore
vendored
4
.gitignore
vendored
@ -40,3 +40,7 @@ coverage/
|
||||
# 同 gitignore-swallows-frontend-source 记忆:根 .env.* 笼统忽略会吞掉 game-studio/.env.staging,
|
||||
# 致 mini-desktop 匿名克隆后拿不到联调配置、vite --mode staging 起不来。故显式豁免。
|
||||
!game-studio/.env.staging
|
||||
|
||||
# ── Python 字节码缓存:QA 编排器/评估脚本运行即生成,纯缓存可重建;目录名固定,无误吞源码风险(不同于上面 build/ 的教训)──
|
||||
__pycache__/
|
||||
.pytest_cache/
|
||||
|
||||
23
AGENTS.md
23
AGENTS.md
@ -43,9 +43,11 @@ Key quantitative targets:
|
||||
|
||||
## 3. Project Directory
|
||||
|
||||
### 3.1 Three independent Git repos (business code repos; not yet contained in this repo)
|
||||
### 3.1 Three business codebases (now subdirectories of this monorepo; split into independent repos later)
|
||||
|
||||
| Repo | Role | Tech stack |
|
||||
> **Status (2026-06-11):** all three codebases live **in this repo** as `game-cloud/`, `game-admin/`, `game-studio/` (monorepo-first, split later — see memory `monorepo-first-split-later`). The stack column below is blueprint-level: the MVP generation mainline is **template-driven via the new-api gateway** (Dify/OpenGame downgraded to long-term enhancements, C2 ruling; RocketMQ/Nacos are future-state, not deployed in MVP) — see `.agents/knowledge/tech-decisions.md` §4.
|
||||
|
||||
| Codebase | Role | Tech stack |
|
||||
|---|---|---|
|
||||
| **game-cloud** | Backend (Yudao Cloud fork + 13 game business modules) | Java 17 + Spring Cloud Alibaba + MySQL + RocketMQ + Redis + Nacos + Dify + OpenGame |
|
||||
| **game-admin** | Admin console frontend (operations / admins) | Vue3 + Element Plus (yudao-ui-admin-vue3 fork) |
|
||||
@ -53,17 +55,23 @@ Key quantitative targets:
|
||||
|
||||
> **Note (naming distinction):** Wave3 adds a `studio` business module inside the **backend** game-cloud (creation-flow orchestration, error-code segment 112 / Flyway V8). This is distinct from the **product frontend repo `game-studio`** in the table above — the former is a backend orchestration module, the latter is a Vue3 frontend repo. Do not confuse them.
|
||||
|
||||
### 3.2 Current repo (docs repo) directory structure
|
||||
### 3.2 Current repo (monorepo) directory structure
|
||||
|
||||
```
|
||||
games-development-ai/
|
||||
├── CLAUDE.md # Imports @AGENTS.md (redirects to the single entry below)
|
||||
├── AGENTS.md # THIS FILE: project overview + how to work here (single source of truth)
|
||||
├── contracts/ # The 8 contract classes (API yaml / DB Flyway / SDK / GamePackage / events / Dify IO / ad-slot / prompts) — cross-end single source of truth
|
||||
├── game-cloud/ # Backend (yudao fork + game-module-*; see game-cloud/.agent)
|
||||
├── game-admin/ # Admin console frontend (yudao-ui-admin-vue3 fork)
|
||||
├── game-studio/ # Product frontend (creators + players; see game-studio/.agent)
|
||||
├── deploy/ # Deploy & smoke-gate scripts (smoke-test.sh)
|
||||
├── docs/
|
||||
│ ├── architecture/ # 6 architecture docs (investor / tech-decision / dev-team editions + Three-Doc Suite: product requirements · technical architecture & modules · requirement-module mapping)
|
||||
│ ├── agent-specs/ # Execution-level specs (e.g. Prompt governance execution edition)
|
||||
│ ├── agent-specs/ # Review/execution specs + wave close-out reports + agent-loop orchestrator & runs (see orchestrator/.agent)
|
||||
│ ├── superpowers/specs/ # Execution-level specs such as the MVP execution spec
|
||||
│ └── memorys/ # Task history snapshots (date-archived, long-term retention)
|
||||
│ ├── mvp/ # Living ledgers: progress ledger / battle list (+history archive) / gate board / unit-economics model
|
||||
│ └── memorys/ # (Legacy) early task snapshots — superseded by close-out reports under agent-specs/; no longer growing
|
||||
├── docs-design/ # Product / visual design materials
|
||||
└── .agents/ # Agent capability hub (knowledge/rules/skills/workflows)
|
||||
```
|
||||
@ -111,9 +119,14 @@ The 5 documents below form a complete picture of the project. **On first onboard
|
||||
| File | One-liner |
|
||||
|---|---|
|
||||
| [`.agents/skills/add-business-module.md`](.agents/skills/add-business-module.md) | Standard steps to add a game-module business module |
|
||||
| [`.agents/skills/add-game-template.md`](.agents/skills/add-game-template.md) | New gameplay-template onboarding recipe (contract→prompt→runtime→backend→orchestrator→five-level acceptance gates) |
|
||||
| [`.agents/skills/ai-generation-pipeline.md`](.agents/skills/ai-generation-pipeline.md) | AI generation pipeline (Dify + OpenGame + aigc shell) dev handbook |
|
||||
| [`.agents/skills/prompt-governance.md`](.agents/skills/prompt-governance.md) | Prompt as the 8th contract: Registry / load-inject / eval gates / HITL governance |
|
||||
| [`.agents/skills/runtime-and-multichannel.md`](.agents/skills/runtime-and-multichannel.md) | Runtime packaging, sandbox, SDK & multi-channel export handbook |
|
||||
| [`.agents/skills/contract-first-development.md`](.agents/skills/contract-first-development.md) | Contract-first: aligning API/DB/SDK/event contracts & decoupling parallel work |
|
||||
| [`.agents/skills/wave-close-checklist.md`](.agents/skills/wave-close-checklist.md) | Wave close-out 7-step checklist — the single executable list all close-out iron rules point to |
|
||||
| [`.agents/skills/staging-ops.md`](.agents/skills/staging-ops.md) | Staging ops recipes: machine roles / code sync / backend redeploy / build gates / smoke gate |
|
||||
| [`.agents/skills/ui-walkthrough-cdp.md`](.agents/skills/ui-walkthrough-cdp.md) | Real-UI walkthrough via CDP on mini-desktop (studio/admin) + bridge probe |
|
||||
|
||||
### workflows/ — meta-processes, answers "**how to take on a task**"
|
||||
|
||||
|
||||
@ -0,0 +1,26 @@
|
||||
# agent-loop 编排器(生成 QA 闭环 / 批跑 / 走查 / 探针工具箱)
|
||||
|
||||
> **定位**:本目录是项目的**生成 QA 闭环与走查工具箱**——批跑编排、裁决、成本核算、CDP 试玩/走查、信道探针。诞生于 HJ-AGENT-LOOP-EXEC-001(2026-06-09),现已超出单一 spec 范围、被多波次复用(batch-001/002/002b、M-c 校准批与正式批、UI 走查、回包链路取证、W4 成本薄片①)。
|
||||
> **户口注记(2026-06-11 harness 体检)**:本目录即 Doc B §2 登记的「未编目实存组件②(agent 生成 QA 闭环裁决器)」的实体;本 `.agent` 是其户口。**迁往顶层 `tools/` 的评估后置**(涉及 runs/ 相对路径与历史文档引用面,当前收益不急迫)。
|
||||
|
||||
## 组件清单
|
||||
|
||||
- **批跑主链**:`run_batch.py`(批次驱动/预算闸/熔断/发布段)/ `judge.py`(决策表 D1-D10 + Verdict 铸章)/ `ledger.py`(JSONL 账本+幂等重放)/ `llm_client.py`(new-api 调用)/ `prompts.py`(Registry 渲染)/ `backend_gw.py`(staging HTTP)/ `evalflow.py`(eval 回流)/ `report.py`(批报告)——详见 [`README.md`](./README.md) D3 段。
|
||||
- **成本**:`newapi_cost.py`——new-api `logs.quota` 权威成本(merge-prod-20 实测 ¥0.031/款),客户端估算降为 fallback。
|
||||
- **试玩/走查**:`player_cdp.py`(游戏试玩 CDP + BrowserPool)/ `admin_walk.py` + `run_walk.sh`(admin 审核台走查)。
|
||||
- **探针**:`probe_bridge_channel.py`(宿主↔iframe postMessage 双边探针,回包断裂取证常备)。
|
||||
- **测试**:`tests/`(judge 决策表全分支 + ledger 重放/预算/熔断)——**改裁决/账本逻辑必跑**。
|
||||
- Golden 回归 harness 位于 `../runs/golden-regression-*/golden_regression.py`(随黄金集版本目录走)。
|
||||
|
||||
## 边界 / 纪律
|
||||
|
||||
- 批跑/走查一律 **mini-desktop** 执行(本机 6c6g 严禁,见 [`.agents/skills/staging-ops.md`](../../../../.agents/skills/staging-ops.md));`NEWAPI_KEY` 仅经环境变量。
|
||||
- `../runs/` 是产物目录(账本/报告/证据/黄金集);**新工具代码放本目录,不再长进 runs/**。
|
||||
- 操作配方入口:[`.agents/skills/ui-walkthrough-cdp.md`](../../../../.agents/skills/ui-walkthrough-cdp.md)(走查)/ [`.agents/skills/staging-ops.md`](../../../../.agents/skills/staging-ops.md)(部署/冒烟)。
|
||||
|
||||
## 当前状态 / TODO(2026-06-11)
|
||||
|
||||
- [x] 批跑/裁决/Golden 回归/成本/走查/探针全链可用(batch-002b 10/10、merge-prod-20 19/20=95% 实证)。
|
||||
- [ ] `llm_client.py` 补显式 max_tokens(C6 backlog:空 content 重试根因)。
|
||||
- [ ] Doc B 正式 T-id 编目(建议扩入 T-AGC-20/21 注记,随下次 Doc B 修订销账)。
|
||||
- [ ] `tools/` 迁移评估(后置)。
|
||||
66
docs/mvp/MVP作战清单-完成史归档.md
Normal file
66
docs/mvp/MVP作战清单-完成史归档.md
Normal file
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@ -1,9 +1,9 @@
|
||||
# 造梦AI MVP 进度总账(单一事实源 / Single Source of Truth)
|
||||
|
||||
> **本文件是项目管理唯一活账**:把「计划 ↔ 完成 ↔ 待办 ↔ 执行记录」对在一起。
|
||||
> **铁律**:每次波次收口、每次里程碑状态变化,**必须同步更新本表 + 对应模块 `.agent`**,否则视为未收口。
|
||||
> **铁律**:每次波次收口、每次里程碑状态变化,**必须按 [`wave-close-checklist`](../../.agents/skills/wave-close-checklist.md) 七步收口**(本表+表头日期、作战清单+归档、回填、蒸馏、索引;`.agent` 仅结构变化时),否则视为未收口。
|
||||
> 计划权威来源:`.agents/knowledge/mvp-scope-and-milestones.md`(55 P0 / 137 技术项 / M0-M5)、`docs/architecture/{产品需求清单,技术架构与模块,需求模块映射}.md`(Doc A/B/C)、`docs/superpowers/specs/mvp-execution-spec-design.md`。
|
||||
> 维护:主 agent | 最近更新:**2026-06-09**(B2 数据回路 A/B e2e 收口 + 修 telemetry props/json 列 bug;对账至 commit `aa99e76`+本次)。
|
||||
> 维护:主 agent | 最近更新:**2026-06-11**(Wave4 community+biz 收口转真实〔`f403d11`〕+ harness 体检纠偏——表头日期曾停在 06-09 漂移两日,自此随 checklist 第 1 步强制同步;对账至 commit `f403d11`+本次)。
|
||||
|
||||
---
|
||||
|
||||
@ -134,6 +134,7 @@
|
||||
|
||||
| **链路②闭合 + Wave4 评审 spec(Round1 双 lane · Ultracode)** | 2026-06-11 用户选 Ultracode 双 lane 并发:**Lane A**=链路② admin 审核台真 UI 走查闭合(CDP-on-mini:登录→`/wanxiang/review`→点 9137「通过」+确认→项目 PUBLISHED+写 feed_rank)+修 admin 构建腐化(vite8→钉 5.1.4 清装)+admin 接 staging(:4174);**Lane B**=Wave4(community+biz)评审版 spec(4 路 recon→起草→两轮对抗评审 R1 23+R2 6 全接受/重定向→定稿,12 子代理/~39min) | 未提交(工作树改动 + 新 spec 两档 + 走查 harness 三件套入 orchestrator/) | **链路②**:队列 3→2 条(9137 移除)+DB `status=4`/`feed_rank(zone2)` 实证+前后截图;**Wave4**:`HJ-WAVE4-001` spec+评审纪要,3 战略决策(D-A lead form/D-B 通知底座最小集/D-C 不接 ip seam)待创始人拍板 |
|
||||
| **Wave4 community+biz 建设+集成门(HJ-WAVE4-EXEC-001 · Round2 · Ultracode)** | 2026-06-11 创始人拍板 D-A/B/C 全按推荐 → execution 版定稿(三镜头评审逮 aigc 回调 blocker+订正) → **Round2 Workflow**:§0 资源预占(serial·opus,V12/V13 双副本字节一致+错误码段+yaml+root/yudao pom)→haiku 门控→community(C1-C12·含 3 上游 notify 挂点)‖biz(B1-B9·自包含)并行建设(opus) → 主控独立验证门(上游三挂点 surgical+Boolean blocker 已解) → **mini 集成门** | `737e6d5`(双模块 83 文件+3 上游挂点)+`6c7d93f`(biz 单测 argThat 消歧修) | **全 DB 实证**:mvn 60 模块编译 SUCCESS+fat jar 内嵌四 jar;启动 17s/Flyway V11→V13 应用 2 迁移/零 @Primary 冲突;Swagger 18 端点;单测 **32 绿**(community 19+biz 13);**§9.3 两链路 staging 实测**:①mock-trigger→`game_community_message` 2 行+updater 非空+unread `{total:2}` ②biz create→quote→advance `game_biz_lead` status 0→1→2+progress 3 行+updater 非空。纯 `updater='0'` 注入=代码核验+M1 同款模式背书(无鉴权线程无 HTTP 入口=精确留债) |
|
||||
| **并行双 lane:studio 分享OG修 + W4 埋点 review spec(Round2 续 · Ultracode)** | 2026-06-11 用户「Advance in parallel」选 studio走查‖W4埋点(零共享:game-studio vs game-cloud)。**Lane A(前台)**=studio 链路③⑤走查 triage 5 bug→**修分享OG空**(getShareMeta 是桩→照 feed stream 同源 `projectApi.getFeedMeta` 回填 ogTitle/ogImage/ogDescription)+测试更新;余 4 bug 登记(cover 无源=封面生成特性/authorName 跨模块需扩 API/互动登录门·9137 待 UI 走查)。**Lane B(后台 workflow)**=W4 单位经济埋点 review 版 spec(11 agents,5 recon→起草→四镜头对抗评审→定稿) | `1921f85`(OG修+feed测试)+`33deb94`(W4 spec两档) | **Lane A**:staging curl 实证 `ogTitle ""→"王蓝莓的小卖部..."`+ogDesc 派生引流文案(feed 单测 20 绿;**两验证教训**=mvn package 必带 `clean` 否则 stale jar 复用[字节码实证逮]、`strings\|grep 中文`对 UTF-8 字面量假阴性[curl 才权威]);**Lane B**:review spec 297 行+纪要 24 条(接受23/拒0,载体事实全 grep 核实),四镜头「可进 execution」,**核心裁决=否决 telemetry 加列**(评审点破实为新建跨模块写 seam)改③ad 侧只读聚合/④trade 加 game_id 列,§8.1 仅 3 条待创始人拍(假设值红线/gross语义+分成深度/对账归属排期),不阻塞 |
|
||||
|
||||
> 各波次详细 spec:`docs/agent-specs/`(review + execution 双 spec)。
|
||||
|
||||
|
||||
@ -1,15 +1,15 @@
|
||||
# game-cloud(后端 · monorepo 子目录)
|
||||
|
||||
> **本目录状态:脚手架占位(Day-0)。** 业务代码待 yudao-cloud fork 到位后填充。
|
||||
> **本目录状态:MVP 后端主体已建成运行(2026-06-11 对账)。** 11/13 game 模块建成接入单体(community/biz 已建;ip=seam 寄宿 compliance、pay=yudao 原生未接),M1 全栈真启动 + M2 生成链路 + 发布/数据回路/审核台 e2e 真实。**进度一律以 `docs/mvp/MVP进度总账.md` 为准,本文件只随结构变化更新**(收口规则见 `.agents/skills/wave-close-checklist.md` 第 4 步)。
|
||||
> 决策:MVP 先在当前仓 monorepo 承载,later 再拆为独立 game-cloud 仓(见 memory monorepo-first-split-later)。
|
||||
|
||||
## 目标功能
|
||||
绘境AI 后端:Yudao Cloud fork + 13 个 game-module 业务模块(project/aigc/runtime/feed/telemetry/pay/trade/community/ip/compliance/biz/ad/studio)。技术栈 Java 17 + Spring Cloud Alibaba + MySQL + RocketMQ + Redis + Nacos + Dify + OpenGame。
|
||||
绘境AI 后端:Yudao Cloud fork + 13 个 game-module 业务模块(project/aigc/runtime/feed/telemetry/pay/trade/community/ip/compliance/biz/ad/studio)。技术栈 Java 17 + Spring Cloud Alibaba + MySQL + Redis + Flyway(MVP 单体承载);生成主线=模板驱动经 new-api 网关(C2 裁定;Dify/OpenGame 降级远期增强,RocketMQ/Nacos 为远期形态、MVP 未部署)。
|
||||
|
||||
## 目录规划(待落地)
|
||||
## 目录规划(已落地)
|
||||
```
|
||||
game-cloud/
|
||||
├── (yudao-cloud fork 框架:game-framework / game-gateway / game-server ...) ← 前置:需 fork yudao-cloud
|
||||
├── (yudao-cloud fork 框架:game-framework / game-gateway / game-server ...) ← fork 已就位(master-jdk17 裁剪版)
|
||||
├── game-module-project/ ← 黄金模板模块(先做到完美,其余 12 个克隆)
|
||||
│ ├── game-module-project-api/ # 枚举/错误码段 1-100/跨模块 DTO·Feign
|
||||
│ └── game-module-project-server/ # controller(admin/app)/service/dal/convert(结构对齐 yudao fork)
|
||||
@ -20,7 +20,7 @@ game-cloud/
|
||||
- 契约不放这里:`contracts/`(仓根)是跨端单一事实源,本模块引用它。
|
||||
- 管理后台前端 = `game-admin/`;产品端前端 = `game-studio/`(各自子目录)。
|
||||
|
||||
## 当前状态 / TODO(更新 2026-06-09)
|
||||
## 当前状态 / TODO(更新 2026-06-11;此后逐波进度不再追记于此,以总账 §2/§6 为准)
|
||||
|
||||
> **进度对账以 `docs/mvp/MVP进度总账.md`(单一事实源)为准**,本节只记本模块要点。
|
||||
- [x] 契约先行:8 类契约锁定(`contracts/`,M0),含 project 的 DB+API。
|
||||
@ -40,8 +40,8 @@ game-cloud/
|
||||
- [x] **Wave1 闭环脊柱 4 模块(aigc/runtime/feed/telemetry)已并行建成并验证**(Workflow 三相编排:契约→建设→集成;4 模块 46 单测绿 + 全量集成编译绿 41 模块 reactor;详见 `docs/agent-specs/2026-06-08-后端模块并行建设-execution.md`)。13 张表全落 `contracts/db-schemas/V1-V5`,错误码段 100-104 独占。
|
||||
- [x] **Wave2 变现域**:ad/trade 后端建成验证(`43fce85`)。pay 为 yudao 原生,当前未接单体。
|
||||
- [x] **Wave3 治理/创作**:compliance(锁风门 Gate 二态,已注入 project.publish)+ studio(创作任务链)建成(`b70e90b`/`6c8844f`)。
|
||||
- [x] **已建 9/13 game 模块**(project/aigc/runtime/feed/telemetry/ad/trade/compliance/studio),全部接入单体、有单测、有契约 yaml、有 Flyway V1-V9。
|
||||
- [ ] **Wave4 待建 3 模块**:community(5 P0) + biz(6 P0) + ip(D5 seam 寄宿,不独立建)。须先备 review+execution 双 spec。
|
||||
- [x] **已建 11/13 game 模块**(project/aigc/runtime/feed/telemetry/ad/trade/compliance/studio + Wave4 的 community/biz),全部接入单体、有单测、有契约 yaml、有 Flyway V1-V13;ip=D5 seam 寄宿 compliance 不独立建,pay=yudao 原生未接。
|
||||
- [x] **Wave4 community+biz 建成+集成门收口(2026-06-11,`737e6d5`+`6c7d93f`)**:60 模块编译/启动 Flyway V11→V13/18 端点/单测 32 绿/两链路 staging 实测,详见总账 §2/§6 与 `HJ-WAVE4-EXEC-001`。
|
||||
- [ ] **桩真实化(决定 M2-M5)**:Dify 真实生成 / runtime 真实编译 / OSS 存取 / telemetry MQ 聚合 / 真实广告+pay。见总账 §5。
|
||||
- [x] **已全量 git 提交并推送** origin/dev/2.0.0(最新 `8565fa2`)。
|
||||
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
# game-studio(产品端前端 · 创作者 + 玩家)
|
||||
|
||||
> **状态:脊柱已建成并本地验收通过(2026-06-08)。** 单 SPA 双区,全 mock 可试用。
|
||||
> **状态:双区建成并接 staging 真后端(2026-06-11 对账)。** 创作链路①与发布段 UI 走查全绿、真人试玩链路③ e2e 闭环(HJ-FE-WALK-001),mock 仅作离线兜底。**进度一律以 `docs/mvp/MVP进度总账.md` 为准,本文件只随结构变化更新。**
|
||||
> 上游契约:仓根 `contracts/`(5 API YAML + sdk-interface.d.ts#3 + game-package.schema.json#4,单一事实源)。
|
||||
> 建设过程与验收详见 `docs/agent-specs/2026-06-08-前端game-studio建设-{review,execution}.md`。
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user