diff --git a/docs/process/business-manager-review.md b/docs/process/business-manager-review.md index 420c574..7bb4598 100644 --- a/docs/process/business-manager-review.md +++ b/docs/process/business-manager-review.md @@ -337,4 +337,19 @@ - 是否过度设计:未过度设计。两段提交节奏属于 N11 审查闭环的必要安排:先提交 N0-N10 产物,再提交审查过程中追加的 process logs,目的是避免“审查后又 dirty”的流程缺口;不引入额外架构、功能、工具或复杂发布流程。 - 是否遗漏:无阻塞性遗漏。N11 需要补齐的关键验收已覆盖:四条验证命令、`git status --short`、精确 stage、禁止 broad stage、禁止 build 临时产物、提交范围清晰、最终 clean。若任一验证失败、出现无关生成物被 staged、工作区残留非 `runs/` 构建输出、或出现 Python MCP/search/send/file tools,应停止并返工。 - 是否允许进入下一轮:允许进入本轮 N11 执行;不允许进入 N12。N11 只能做 Commit and review checkpoint,完成后必须再次提交业务终审,不能自动开始 real logged-in UIA capture gate。 -- 业务经理结论:批准本轮只执行 N11:Commit and review checkpoint。批准“两段提交节奏”:A. 实现智能体先运行验证并精确提交 N0-N10 产物;B. pi/opencode/业务经理审查追加各自日志后,由实现智能体在同一 N11 内做最终 process checkpoint 精确提交,再由主协调核对 `git status --short` clean。不要求替代节奏;若无法保持精确 stage 或最终 clean,应停止并报告。 \ No newline at end of file +- 业务经理结论:批准本轮只执行 N11:Commit and review checkpoint。批准“两段提交节奏”:A. 实现智能体先运行验证并精确提交 N0-N10 产物;B. pi/opencode/业务经理审查追加各自日志后,由实现智能体在同一 N11 内做最终 process checkpoint 精确提交,再由主协调核对 `git status --short` clean。不要求替代节奏;若无法保持精确 stage 或最终 clean,应停止并报告。 +## 2026-07-05 N11 终审 + +- 当前节点:第十一轮 N11 Commit and review checkpoint 终审;评估 N11-A 验证与提交是否通过,是否批准 N11-B 最终 process checkpoint 提交,以及是否允许实际进入 N12。 +- 本轮目标: + - 在 N10 已通过的前提下,冻结第一阶段 Go MCP 产物,在真实 iSphere 数据引入前形成可审查、可回滚、可交付的 Git checkpoint。 + - N11-A 已运行验证命令:`powershell -NoProfile -ExecutionPolicy Bypass -File scripts\verify-win-helper.ps1`、`powershell -NoProfile -ExecutionPolicy Bypass -File scripts\verify-go-mcp.ps1`、`go test ./...`、`go build ./cmd/isphere-mcp`,并检查 `git status --short`。 + - N11-A 已通过精确 stage 提交 N0-N10 产物,形成四个提交:`63cda71 docs: add go mcp plan and process logs`、`8956f33 feat: add go helper client and mcp tools`、`17fa9dd test: add go mcp verification script`、`57f1d42 docs: add go mcp runbook`。 + - 审查阶段按既定两段节奏追加 `docs/process/pi-review.md`、`docs/process/opencode-review.md`,本终审追加 `docs/process/business-manager-review.md`;因此仍需 N11-B 做最终 process checkpoint 精确提交并核对 clean。 + - 明确禁止:不得真实采集 iSphere 登录 UIA,不得搜索联系人、打开会话、发送消息、发送/接收文件、自动登录、注入、hook、读内存或规避安防。 +- 业务判断:N11-A 通过,N11 业务目标已基本达成,允许执行 N11-B 收尾。验证命令均记录为 exit 0,C# helper 和 Go MCP smoke 均返回 ok=true,Go test/build 通过,临时 exe 已删除;四个提交按文档、Go helper/MCP、验证脚本、runbook 分组,pi 和 opencode 均认为低风险/不建议返工,未发现 build 产物、Python MCP、search/send/file tools、N12 真实采集或越界能力。 +- 是否跑偏:未跑偏。N11-A 只做验证、精确提交和 checkpoint;审查阶段只追加过程文档;没有进入 N12,没有真实采集登录 UIA,没有新增工具或业务动作,没有扩大四个只读工具的范围。 +- 是否过度设计:未过度设计。两段提交节奏已按执行前审批用于解决审查日志追加后的 dirty 问题;提交粒度虽被 opencode 记录为略粗,但仍按交付类型分组,未混入无关文件,属于非阻塞质量观察,不构成返工理由。 +- 是否遗漏:无阻塞性遗漏。N11 验证、提交、临时产物清理、Python MCP 缺失确认、无 search/send/file tools 等关键验收已有审查证据;唯一剩余事项是 N11-B 将审查追加的 process docs 精确提交并核对 `git status --short` clean,这属于已批准两段节奏的收尾,不是 N11 业务目标缺口。若 N11-B 后仍非 clean、出现 broad stage、提交 build 产物或出现 N12/业务动作文件,应立即停止并返工。 +- 是否允许进入下一轮:不允许实际进入 N12,停止在 N12 前。原因是当前事实没有用户已手动登录并打开 iSphere 主窗口的前置条件;即使 N11-B 完成 clean,也只能进入“等待用户手动登录/打开 iSphere 并重新发起 N12 执行前审批”的状态,不能自动开始 real logged-in UIA capture。 +- 业务经理结论:批准 N11-A 通过;批准执行 N11-B 最终 process checkpoint 精确提交,提交范围仅限审查阶段追加/修改的 process docs,并由主协调核对 `git status --short` clean。不要求返工,不停止项目本身;但明确不批准实际进入 N12,不得真实采集、不得搜索/发送/文件/自动登录/注入/hook/读内存。N12 必须等待用户手动登录并打开 iSphere 可见主窗口后,再单独提交执行前审批。 \ No newline at end of file diff --git a/docs/process/opencode-review.md b/docs/process/opencode-review.md index b3307d2..6a91d55 100644 --- a/docs/process/opencode-review.md +++ b/docs/process/opencode-review.md @@ -429,3 +429,50 @@ ### 结论 - 第十轮 N10 结果与计划一致:新增 operator runbook,覆盖构建、验证、MCP client 配置、四个只读工具、非目标边界和未来 real-login UIA capture procedure;README 未改,功能代码未改,未新增依赖或脚本,未进入 N11。 - 未发现过度设计、不必要依赖、Go/C# 边界混乱、伪造验证、硬编码假通过或暗示未实现业务能力。 + +## 2026-07-05 第十一轮 N11-A Commit/review checkpoint 审查记录 + +### 审查文件 +- docs/go-mcp-minimal-plan.md(重点复核 N11 Commit and review checkpoint、N12 Real logged-in UIA capture gate) +- docs/process/go-implementation-log.md(复核 N11-A verification and precise commit 记录) +- git log --oneline -8 / git show --stat --name-only / git show --name-status 输出 +- cmd/isphere-mcp/main.go +- internal/helperclient/client.go / contract.go +- internal/mcpserver/server.go +- internal/tools/winhelper.go +- scripts/verify-go-mcp.ps1 +- go.mod / go.sum +- git status / git ls-files / Select-String / go list / go test / go build 输出 + +### 结构问题 +- N11-A 提交链存在且顺序清晰:`63cda71 docs: add go mcp plan and process logs`、`8956f33 feat: add go helper client and mcp tools`、`17fa9dd test: add go mcp verification script`、`57f1d42 docs: add go mcp runbook`。 +- N11-A 后初始 `git status --short --untracked-files=all` 无输出;在本审查追加前工作区是 clean。 +- 四个提交未包含 C# helper 修改;`git show --name-only` 对 `native/ISphereWinHelper/*` 无输出。 +- 未发现提交 build 产物:`git ls-files` 对 `.exe/.dll/.pdb/.zip/.bin/.obj/.o/.test/.log` 等后缀无命中;根目录 `isphere-mcp.exe` 不存在;tracked `runs/` 只有 `runs/.gitkeep`。 +- 未发现进入 N12:没有 tracked `runs/real-loggedin-lab/*`,未采集真实登录 UIA,当前工具仍仅为 scan/dump 两个只读能力可用于未来 N12 gate。 +- 提交粒度有一个非阻塞质量项:`8956f33` 将 go.mod、helperclient、mcpserver、tools 和测试合并为一个 1014 行 Go feature 提交,`63cda71` 将计划和多份过程日志合并为 2272 行 docs/process 提交;如果团队要求严格逐节点/逐层审计,可进一步拆分。但从 N11-A “精确提交 N0-N10 产物”角度看,提交边界仍按 docs / Go feature / verification script / runbook 分组,未混入无关文件。 + +### 代码问题 +- Go/C# 边界清晰:Go 侧 `internal/helperclient.Client` 只通过进程 stdin/stdout JSON 调用 `runs\win-helper\ISphereWinHelper.exe --json`;Go 侧未复制 C# `WindowScanner`、`UiaDumper`、UIA 或 Win32 实现。 +- `internal/mcpserver.NewServer()` 仅创建 stdio MCP server 并注册 WinHelper tools;`cmd/isphere-mcp/main.go` 只运行 `mcp.StdioTransport`,没有 HTTP/gRPC/named pipe/daemon。 +- `internal/tools/winhelper.go` 中 `mcp.AddTool` 数量为 4,工具名仅为 `win_helper_version`、`win_helper_self_check`、`win_helper_scan_windows`、`win_helper_dump_uia`。 +- 禁止能力抽查无实现命中:未发现 `win_helper_send`、`win_helper_file`、`win_helper_login`、`search_contacts`、`open_conversation`、`send_message`、`send_file`、`receive_file`、`download_file`、`FindWindow`、`SendKeys`、`user32`、`ReadProcessMemory`、`SetWindowsHookEx` 等实现痕迹;`autologin` 只出现在 `verify-go-mcp.ps1` 的 forbiddenTerms 检查中。 +- 未发现 Python MCP 回流:`git ls-files -- src/isphere_ai_bridge/* tests/test_*.py` 无输出。 +- 依赖控制合理:`go.mod` 只有一个 direct require `github.com/modelcontextprotocol/go-sdk v1.3.1`;其余为 SDK 间接依赖,未发现第二套 MCP 框架或额外业务依赖。 +- 未发现伪造、硬编码假通过:`verify-go-mcp.ps1` 通过 SDK harness 实际列工具并调用 `win_helper_version`,`tool_count`、`helper_name`、`action_tools_present=false` 都来自校验逻辑;N11-A 日志记录 verify-win-helper、verify-go-mcp、go test、go build 均退出 0。 + +### 测试问题 +- 已复核 `go list -m all`:退出码 `0`,MCP-related dependency 为 `github.com/modelcontextprotocol/go-sdk v1.3.1`,其余为传递依赖。 +- 已复核 `go test ./... -count=1`:`cmd/isphere-mcp [no test files]`,`internal/helperclient` PASS,`internal/mcpserver` PASS,`internal/tools` PASS,退出码 `0`。 +- 已复核 `go build -o NUL ./cmd/isphere-mcp`:退出码 `0`,未在工作区留下 `isphere-mcp.exe` 或其他构建产物。 +- 已复核运行测试/构建后 `git status --short --untracked-files=all` 仍无输出;本审查追加前工作区保持 clean。 +- 本轮未重跑 `verify-win-helper.ps1` 或 `verify-go-mcp.ps1`,因为只读审查不应重新生成 helper/binary/harness 产物;N11-A 过程日志已经记录两者退出 0 和关键 JSON 输出,本轮用 Go 测试、NUL build、git 状态和静态边界复核补充验证。 + +### 是否建议返工 +- 不建议返工。 +- 非阻塞建议:如果后续 reviewer 要求更强的逐节点审计,可考虑在不改变内容的前提下重排/拆分 `8956f33` 和 `63cda71` 的提交粒度;当前不建议为了提交粒度返工或重写历史。 +- 继续保持 N11 边界,等待业务经理批准后才进入 N12;不要真实采集登录 UIA,不要新增搜索/会话/发送/文件/自动登录等业务能力。 + +### 结论 +- 第十一轮 N11-A 结果与计划总体一致:验证记录齐全,四个提交按文档/Go 功能/验证脚本/runbook 分组,N11-A 后工作区 clean,未提交 build 产物,未改 C#,未恢复 Python MCP,未进入 N12。 +- 未发现过度设计、不必要依赖、Go/C# 边界混乱、伪造验证、硬编码假通过或业务动作越界。 diff --git a/docs/process/pi-review.md b/docs/process/pi-review.md index ec2e09f..2a39a64 100644 --- a/docs/process/pi-review.md +++ b/docs/process/pi-review.md @@ -312,3 +312,34 @@ N0/N1 的实现与验证证据可信;未发现硬编码成功、伪造测试 - 风险等级:低。 - 是否阻止进入下一轮:不阻止进入下一轮审批;N11 仍需业务经理单独批准后再执行。 - 结论:N10 runbook 文档覆盖计划要求的命令、允许工具、MCP client command、explicit non-goals、real-login UIA capture procedure;未发现硬编码成功、伪造验证、Python MCP 必需表述、发送/搜索/文件能力已实现暗示、README 修改、提交或 N11 越界迹象。 + +## 2026-07-05 第十一轮 N11-A pi 审查 + +- 审查范围: + - `docs/go-mcp-minimal-plan.md` 的 N11 Commit and review checkpoint 节点。 + - `docs/process/go-implementation-log.md` 的 N11-A 验证与精确提交记录。 + - `git status --short --untracked-files=all`、`git log --oneline -8`。 + - 四个 N11-A 提交:`63cda71`、`8956f33`、`17fa9dd`、`57f1d42` 的 `git show --stat --name-only` / `--shortstat`。 + - `git ls-files` 对 Python MCP 路径与构建产物的检查。 + - Go 源码中 `mcp.AddTool`、四个工具名与禁止能力关键词的 PowerShell `Select-String` 检查;未使用 `rg`。 + - 现场复核 `go test ./... -count=1`。 +- 审查证据: + - N11-A 前置状态复核:追加本审查前,`git status --short --untracked-files=all` 无输出,符合 N11-A 后 clean worktree 报告。 + - 最近提交为:`57f1d42 docs: add go mcp runbook`、`17fa9dd test: add go mcp verification script`、`8956f33 feat: add go helper client and mcp tools`、`63cda71 docs: add go mcp plan and process logs`。 + - 提交范围与主题匹配: + - `63cda71` 仅包含 plan/library-decision/process review/log 文档。 + - `8956f33` 包含 Go module、helperclient、mcpserver、tools 与 cmd 入口。 + - `17fa9dd` 仅包含 `scripts/verify-go-mcp.ps1`。 + - `57f1d42` 仅包含 `docs/go-mcp-runbook.md`。 + - 未发现提交临时 build 产物:HEAD 中仅有 `runs/.gitkeep` 命中 runs/exe 相关检查;`isphere-mcp.exe` 与 `cmd\isphere-mcp\isphere-mcp.exe` 均不存在。 + - 未发现 Python MCP 文件:`git ls-files -- 'src/isphere_ai_bridge/*' 'tests/test_*.py' '*.py'` 无输出。 + - 现场复核 `go test ./... -count=1` 退出 0:`cmd/isphere-mcp [no test files]`,`internal/helperclient`、`internal/mcpserver`、`internal/tools` 均 ok。 + - 生产 Go 源码 `mcp.AddTool` 数量为 4,工具名仅为 `win_helper_version`、`win_helper_self_check`、`win_helper_scan_windows`、`win_helper_dump_uia`。 + - 生产 Go 源码禁止能力关键词检查未命中 SearchContact/OpenSession/SendMessage/SendFile/ReceiveFile/Upload/Download/auto login/process injection/ReadProcessMemory/OpenProcess/WriteProcessMemory/CreateRemoteThread/SetWindowsHookEx/SendKeys/UIAutomation/AutomationElement/FindWindow 等实现。 + - `docs/process/go-implementation-log.md` 记录 N11-A 已运行 `verify-win-helper.ps1`、`verify-go-mcp.ps1`、`go test ./...`、`go build ./cmd/isphere-mcp`,并清理顶层 `isphere-mcp.exe`;本轮 pi 审查未复跑会创建/重写构建产物的 helper/MCP build 脚本,仅复跑不会在仓库留下产物的 `go test`。 +- 发现的问题: + - 未发现阻塞问题。 + - 观察项:`63cda71` 文档提交插入量较大,但文件类型均为计划/过程/审查文档,未混入功能代码或构建产物;属于 N0-N10 累积过程日志归档。 +- 风险等级:低。 +- 是否阻止进入下一轮:不阻止 N11-B / 下一步流程 checkpoint;但不代表允许进入 N12,真实登录 UIA 采集仍需单独审批。 +- 结论:N11-A 验证与提交记录可信;四个提交按文档、Go helper/MCP、验证脚本、runbook 分组,未发现 broad stage 混入临时 exe 或无关产物;当前无 Python MCP、无 search/send/file action tools、无 N12 真实登录 UIA 采集或越界能力迹象。