Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
- 开始任何实质性修改前,先阅读 `docs/cynos-default-project-layout.md`。
- 理解项目时读取 `docs/PROJECT.md`(存在时);处理需求时读取对应的 `docs/changes/<change-id>/intent.md`、`spec.md` 和 `plan.md`(存在时)。
- 已发布 MVP 基线工件位于 `docs/changes/luowang-harness-mvp/`。
- 当前增量变更是 `docs/changes/luowang-v07-production-closure/`,用于补齐 v0.7 Role Skills、固定分支请求、数据清理、实时进度、历史 Run 和真实联合验收;处理这些主题时先读该目录,冲突处以其 Spec 为准。
- 当前增量变更是 `docs/changes/luowang-v07-production-closure/`,用于补齐 v0.7 Built-in Role Instructions(内置角色指令)、固定分支请求、数据清理、实时进度、历史 Run 和真实联合验收;罗网不使用 Pi Skills,并保持 Main/Runner/Reviewer 三组 Agent 配置、正常 Run 四个隔离 Session。处理这些主题时先读该目录,冲突处以其 Spec 为准。
- 技术栈、产品边界和验收要求以对应需求 `spec.md` 为准,不在本文件重复维护。

## 仓库与分支
Expand Down
23 changes: 12 additions & 11 deletions docs/changes/luowang-v07-production-closure/intent.md
Original file line number Diff line number Diff line change
@@ -1,22 +1,22 @@
# 罗网 v0.7 生产闭环补齐 Intent

- 状态:Approved v0.1
- 状态:Approved v0.2
- 关联规格:[spec.md](./spec.md)
- 实现计划:[plan.md](./plan.md)
- 上游基线:[罗网 Harness MVP](../luowang-harness-mvp/intent.md)
- 权威设计:`罗网(LuoWang)场景测试 Harness 设计 · MVP Implementation Baseline v0.7`

## 1. 为什么需要这个变更

罗网 `v0.1.0` 已经实现主要框架,包括 Git/SQLite/OSS、固定 commit Run、Main → Runner → Reviewer → Main、场景维护、归档与 Issue、FIFO 队列、Playwright MCP、控制台和 Docker 部署。现有自动化测试也能使用本地仓库、样例应用和 test doubles 验证大量确定性规则。
罗网 `v0.1.0` 已经实现主要框架,包括 Git/SQLite/OSS、固定 commit Run、Main · 规划 → Runner → Reviewer → Main · 最终汇总、场景维护、归档与 Issue、FIFO 队列、Playwright MCP、控制台和 Docker 部署。现有自动化测试也能使用本地仓库、样例应用和 test doubles 验证大量确定性规则。

但当前代码和发布说明把“本地 fixture 回归通过”表述成了“34 个 AC 全量验收完成”,而真实外部 smoke 仍为 blocked;同时,生产路径存在几项会阻止 v0.7 闭环成立的缺口:

1. 角色方法全部硬编码在 Orchestrator 长提示词中,同一内容还同时作为 system prompt 和用户消息发送;Pi 的 ambient Skills 虽被安全禁用,但罗网也没有版本化、按角色隔离的内置工作方法资源
1. 角色方法全部硬编码在 Orchestrator 长提示词中,同一内容还同时作为 system prompt 和用户消息发送;Pi Skills 已被安全禁用,但罗网也没有版本化、按角色隔离的内置角色指令资源
2. 用户指定 branch/tag/SHA 时,merge 和测试是两个独立动作,普通 Run API 还允许直接传任意 target,可能绕开固定 `scenario-testing` 分支;
3. 生产默认测试数据管理器只能登记数据,没有“Runner 已通过 UI/API 删除并确认”的路径;只要登记数据且没有注入测试适配器,Run 就会被强制 blocked;
4. 当前场景和执行进度只在 Run 创建时初始化为 `null`、`0/0`,真实 Runner 不会上报变化;
5. Main 只得到 Git 正式报告摘要和 GitHub Issues,无法查询 SQLite 中特殊 blocked、interrupted、场景 PR 和归档失败等详细历史 Run;
5. Main · 规划只得到 Git 正式报告摘要和 GitHub Issues,无法查询 SQLite 中特殊 blocked、interrupted、场景 PR 和归档失败等详细历史 Run;
6. Phase 9 默认验收使用 `FixtureSessionFactory` 和直接 Playwright,未走真实 `createAgentSession()` 模型工具循环,也没有完成真实 Provider + Pi + Playwright MCP + OSS + 非生产应用的联合证明;
7. README 对验收状态和本地原生依赖的说明不准确。

Expand All @@ -26,12 +26,12 @@

完成本变更后,罗网应具备以下可观察结果:

1. Main Planning、Runner、Reviewer、Main Finalization 和初始化方法成为罗网自身版本化的内置 Role Skills,由应用按 Session 确定性加载并完整注入;目标仓库、宿主机和用户目录中的 Skills 仍不会被发现或执行;
1. Main · 规划、Runner、Reviewer、Main · 最终汇总和初始化方法成为罗网自身版本化的 Built-in Role Instructions(内置角色指令),由应用按 Session 确定性加载并完整注入;它们是发布物中的固定 Markdown 资源,不是 Pi Skills;目标仓库、宿主机和用户目录中的 Skills 仍不会被发现或执行;
2. 固定方法、安全边界、动态 Run 上下文和本次请求分层传递,不再重复注入同一长提示词;不同角色只看到自己需要的动态事实;
3. 人工 merge 请求进入现有 SQLite FIFO,在轮到它时完成 `merge --no-ff → non-force push → 固定新的 scenario-testing HEAD → Run`;普通人工测试不能直接绕开场景测试分支;
4. Runner 可以登记测试数据并通过 UI/API 删除,但 Runner 的清理声明不能直接变成完成事实;只有受控 adapter 独立核验,或 Reviewer 读取 Harness 管理的清理证据后确认,数据才视为已清理,任何未确认残留仍可靠地使结果 blocked;
5. 网站在真实执行中显示总场景数、已完成数、当前场景和脱敏活动,而不是只依赖 UI fixture;
6. Main 可以按需查询有限、只读、相关的历史 Run 摘要,包括未写入 Git 正式报告的本地事实
6. Main · 规划可以按需查询有限、只读、相关的历史 Run 摘要;Main · 最终汇总只获得本次 confirmed Bugs 的 Issue create/link 所需摘要;Runner 和 Reviewer 均不获得历史查询工具
7. 本地自动化验收与真实外部联合验收明确分层:本地通过不能冒充 live 通过,发布验收在任何必需外部证明 blocked 时必须失败;
8. 使用独立、可信、非生产测试项目完成真实 Provider、Pi Agent、Playwright MCP、OSS、GitHub、数据清理、归档、Issue 和进度闭环;
9. README 准确说明已实现、已本地验证、尚未 live 验证和本地构建前置条件;
Expand All @@ -48,7 +48,7 @@

### 系统

- Agent Session/Prompt/Tool 组装;
- 三组 Agent 配置、四个隔离 SessionPrompt/Tool 组装;
- SQLite 测试请求队列和 Repository Service;
- Run Orchestrator、测试数据管理、Gateway 当前状态和 Run Store;
- Phase 9 acceptance harness、CI 和 README;
Expand All @@ -60,9 +60,10 @@
- 保留单实例、单租户、单目标仓库、单场景测试分支、单测试环境、单 active Run 和 FIFO;
- 不引入多阶段 checkpoint、通用工作流引擎、发布 gate、多 worker、复杂 worktree 或新的长期状态文件;
- 继续使用 `passed | failed | blocked`,不照搬其他项目的五状态、三轴结论或复杂聚合模型;
- 内置 Role Skills 只规定工作方法,所有读取、写入、Secret 和副作用权限继续由代码中的 custom tools、adapter 和路径校验强制执行;
- Pi ambient Skill、Prompt、Context 和宿主机/目标仓库资源发现保持关闭;不得为了读取 Role Skill 给 Agent 开放任意文件 `read`;
- Main 不获得测试账号;Reviewer 不获得测试账号、命令和 Git 写入;Runner 不获得 Git Token、模型 Key、OSS Secret、管理员密码或主密钥;
- 罗网始终只有 `agents.main`、`agents.runner`、`agents.reviewer` 三组 Agent 配置;正常 Run 创建 Main · 规划、Runner、Reviewer、Main · 最终汇总四个互相隔离的 Session,不增加 Planner/Finalizer 配置;
- 内置角色指令只规定工作方法,不提供权限;所有读取、写入、Secret 和副作用权限继续由代码中的 custom tools、Secret Store、adapter、writer、路径 allowlist 和 patch 校验强制执行;
- 保持 `noSkills=true`,不创建 `SKILL.md`、不使用 `skillsOverride`、不启用 Pi Skill 自动发现;ambient Prompt、Context 和宿主机/目标仓库资源发现也保持关闭;不得为了读取内置角色指令给 Agent 开放任意文件 `read`,也不得允许网站配置任意角色指令路径;
- Main · 规划和 Main · 最终汇总均不获得测试账号;Reviewer 不获得测试账号、命令和 Git 写入;Runner 不获得 Git Token、模型 Key、OSS Secret、管理员密码或主密钥;
- 所有正式测试 target 必须是远端场景测试分支上的不可变 commit;merge 冲突不得由 Agent 修改产品代码解决;
- 真实验收只连接操作者确认可信的仓库和非生产环境,使用合成数据和专用账号;
- 凭据只通过进程环境、Docker Secret 或网站 Secret Store 提供,不写入 Git、需求文档、PR、Issue、测试报告或普通日志;
Expand Down Expand Up @@ -104,7 +105,7 @@
本变更成功不以“新增了多少文件或测试”为标准,而以以下事实同时成立为准:

- 已知生产路径缺口均有用户可观察的修复和自动回归;
- 实际 Pi SDK Session 而非 FixtureSessionFactory 完成一次受控工具循环
- 实际 Pi SDK Session 而非 FixtureSessionFactory 分别证明正常四 Session Run 和陌生项目初始化流程,覆盖模型消息、受控工具循环、Session 隔离与 dispose
- 真实联合 Run 在独立非生产项目上完成并可由 Run、commit、报告、截图、OSS object、PR/Issues 和清理结果复核;
- 本地与 live 结果被准确区分,缺少任何 live 前置条件时明确 blocked 且不能发布;
- 没有通过补复杂状态机、放宽安全边界或增加未来架构来“解决”问题。
Expand Down
Loading
Loading