# 真机验证走查(六条需求) > 前提 1:插件已通过 `dsh plugin --profile add dsh-ezcommit-plugin` 安装, > 且 **profile 已重启**(启动日志可见 `[dsh-ezcommit-plugin]` 公告与「已挂载 /ezcommit/api/* 路由」)。 > > 前提 2:web 会话标题栏出现 `[分支] [一键 Commit]` 按钮(静态双面包自动挂载, > 无需 cordis preset / cordis_define)。本会话工作区必须是 git 仓库。 场景制备工具:`node scripts/stage-fixture.mjs demo|noise|clean`(见下文各步)。 ## 验证矩阵 | # | 需求 | 操作 | 预期结果 | |---|------|------|----------| | 1 | 非 git 仓库 → 按钮置灰 | 临时 `mv .git .git.bak`(不要提交,验证后立即恢复) | 分支 chip 显示「非Git仓库」,按钮置灰,tooltip「当前工作区不是 Git 仓库」 | | 2 | 分支名展示 | 恢复 `.git` 后观察按钮左侧 chip | 显示当前分支名(如 `main`);detached HEAD 时显示短 hash | | 3 | 点击弹二次确认框 | 点击「一键 Commit」 | 弹确认框:分支、改动计数、未跟踪计数;「取消」关闭且无任何 git 操作 | | 4 | 模型按业务颗粒度拆分 | `node scripts/stage-fixture.mjs demo` → 确认框点「开始分析」 | 进入「审查拆分计划」:两批(`feat: ...demo-greeting` 与 `docs: ...` 类),文件清单正确、顺序合理 | | 5 | 无改动 → 置灰 | 执行完毕后观察按钮 | 按钮立即刷新置灰,tooltip「工作区没有改动」 | | 6 | 噪音 → 提示不 commit | `node scripts/stage-fixture.mjs noise` → 分析 | 黄色「环境噪音,无需 commit」框 + reason;`git log` 无新增提交 | ## 详细步骤 1. **(需求 1/2)** `mv .git .git.bak` → 等 ≤5s 轮询刷新 → 按钮置灰、chip 显示「非Git仓库」; `mv .git.bak .git` 恢复 → chip 回到 `main`、按钮可用。 2. **(需求 3)** 点击按钮 → 确认框展示「分支 main · 共 N 个改动(未跟踪 M 个)」; 先点一次「取消」验证无副作用。 3. **(需求 4)** `node scripts/stage-fixture.mjs demo` → 再次点击按钮 → 「开始分析」→ 等待模型裁决 → 审查计划页应出现两批提交(每批 title 符合 Conventional Commits, files 分别对应 `src/demo-greeting.js` 与 `docs/demo-api-notes.md`)。 4. 点击「执行 N 批提交」→ 成功框列出每批短 hash → `git log --oneline` 应多出两笔提交。 5. **(需求 5)** 观察按钮已置灰;`node scripts/stage-fixture.mjs clean` 后仍置灰。 6. **(需求 6)** `node scripts/stage-fixture.mjs noise` → 分析 → 应裁决 `noise`, 弹黄色提示框且 `git log` 无新增提交;`clean` 收尾。 ## 收尾 - 验证产生的演示提交用 `git reset --hard <验证前 commit>` 移除(仓库无远端时安全); 或保留作为使用示例。 - 场景文件全部清理后按钮置灰,闭环验证结束。