docs+chore: 定案——submit_* 整类不做,填报完把单据编号交给用户即可

接上一条定案继续收紧:用户不需要提交前预览("我自己去系统就行了,也不需要给我看")。
能力边界停在 browser_fill / browser_page_state。

- 清掉随之变死的代码:cases.py 的 previewed 阶段与 submit_preview.json 读取(没有任何东西会再生成它),
  case_reset(scope=all) 的清理列表同步去掉;阶段链回到五档 empty→extracted→matched→info_ready→docs_ready。
  仍遵循"阶段由产物推导":推不出的一律不写
- INSTRUCTIONS 改为:把单据编号与会话目录告诉用户即可,不必逐张呈报截图。截图仍然生成——它是这一轮
  抓出附件静默假成功的证据,定位是排查用,不是给用户的报告
- SKILL 补一句纪律:提交错了要写情况说明,宁可停在填完,也不替用户按任何不可逆的按钮
- 文档:docs/MCP.md(目录树去掉 submit_preview.json、说明段改为整类否决)、README、浏览器包 README、
  src/mcp/tools/browser.py 模块说明、方案文档 §17 记录定案与连带清理

验证:pytest 148 passed;ruff / format / mypy / deptry 全绿;mcp_smoke 25 工具,INSTRUCTIONS 2199 字节。
仍用 --no-verify 提交并手跑等价检查。
This commit is contained in:
wandering
2026-10-20 21:49:17 +08:00
parent 2e2519632a
commit 6e00ddc37e
9 changed files with 38 additions and 23 deletions
@@ -593,3 +593,22 @@ strip、凭据不读 env、safe_config 不含密码、坏文件与缺文件不
同步改动:README、docs/MCP.md、docs/报销操作指南.md、.agents/skills/reimbursement/SKILL.md、
src/infra/browser/README.md、src/mcp/tools/browser.py 的模块说明与 `browser_close` 提示语。
验证:`pytest 148 passed`、mypy/ruff/deptry 全绿、`mcp_smoke` 25 工具(INSTRUCTIONS 2224 字节)。
## 17. 定案:`submit_*` 整类不做,核对也由人自己看(2026-10-20)
接 §16 之后继续收紧:用户说"只读的 submit_preview 也不需要,我自己去系统就行了,也不需要给我看"。
于是 `submit_*` 这一整类(代提交 + 提交前预览)全部出局,能力边界停在 `browser_fill` / `browser_page_state`。
连带清掉的死代码:
- `cases.py` 的 `previewed` 阶段与 `submit_preview.json` 读取——**没有任何东西会再生成这个产物**,
留着就是一条永远为假的分支;同时从 `case_reset(scope=all)` 的清理列表里去掉
- 阶段链回到五档:`empty → extracted → matched → info_ready → docs_ready`。仍然是"由产物推导",
推不出的一律不写(§16 删 `submitted` 是同一条理由)
- INSTRUCTIONS 从"填报完成后把截图报给用户"改成"把单据编号与会话目录告诉用户即可,
不必逐张呈报截图":截图仍写在 `cases/<id>/screenshots/`,但它的定位是**我核对用的证据**,
不是交给用户的报告——这一轮抓附件假成功靠的就是回看截图,所以不能砍生成,只是不该刷屏
顺带明确一句写进 SKILL:"提交错了要写情况说明,所以宁可停在填完,也不要替用户按下任何不可逆的按钮。"
验证:`pytest 148 passed`、ruff / format / mypy / deptry 全绿,`mcp_smoke` 25 工具,INSTRUCTIONS 2199 字节。