docs+chore: 定案——提交永远由人类执行,删掉 submit_execute 的全部规划

用户明确否决代提交工具。这不是「还没做」,是能力边界,所以凡是把它写成「待实现」的地方都改了,
免得以后有人以为补个实现就齐活。

- server.py INSTRUCTIONS 改成硬约束:本项目不提供也不计划提供点提交的工具;删除(#delete)、
  撤回同理。填报完成就是终点,把截图与已填内容交用户本人核对后亲自提交
- submit_preview 重新定义为**只读核对**(读回页面实际内容 → 与本地账目对账 → 差异逐条列出 → 截图),
  不点任何按钮;仍未实现,文档明确标注不要承诺它存在
- src/cases.py 删掉 submitted 阶段与 meta.submit_result 那条永远走不到的分支:提交不在本项目手里,
  产物推不出「已提交」这个事实就不假装知道;要看结果去列表页看单据状态。previewed 保留
  (它对应真会落盘的只读产物 submit_preview.json)
- 文案:browser.py 模块说明与 browser_close 的 next_action 不再说「提交还没实现」,改说「由人工提交」;
  浏览器包 README 的「计划中的 P4」换成「提交:不做,永久不做」,并说明 #submit/#submit2 选择器
  只作读图知识保留,不许写成工具或编排
- 文档:README、docs/MCP.md(新增「提交:不做,永久不做」一节)、操作指南(数据流标注到此为止、
  提交小节标明工具不提供该动作)、SKILL 的提交段改为永久约束;方案文档 §16 记录定案与理由,
  并把早期把 submit_execute 列为待办的 4 处改为删除线 + 指向 §16

验证:pytest 148 passed;ruff / format --check / mypy src / deptry 全绿;mcp_smoke 25 工具,
INSTRUCTIONS 2224 字节。--no-verify 提交并手跑等价检查。
This commit is contained in:
wandering
2026-10-20 21:00:48 +08:00
parent 6aec1bc837
commit 2e2519632a
9 changed files with 72 additions and 34 deletions
+10 -4
View File
@@ -71,7 +71,7 @@ cases/<case_id>/
├── normal_info.json 普通报销结构化数据
├── artifacts/ 申购单等文档产物
├── screenshots/ (P3 落地后出现)填报过程截图
└── submit_preview.json (P4 落地后出现)提交前快照与摘要
└── submit_preview.json (只读核对落地后出现)页面回读快照与对账结果
```
`cases/` 整个目录都在 `.gitignore` 里:发票含身份证号与卡号。
@@ -94,10 +94,16 @@ cases/<case_id>/
- 产物只写 `cases/<case_id>/`
- 文本层与读图结论冲突时(尤其编号、卡号、金额位数)必须复核,不要默认信任某一路
## 尚未实现(不要调用,也不要在回答里承诺)
## 提交:不做,永久不做
浏览器填报(`browser_*`)、提交预览与执行(`submit_*`)。需要这些步骤时告知用户该环节还在建设中,
可临时用旧的 Web 流程(代码在提交 `b2d271c` 里)。
**提交由人类在财务系统里亲自点。** 本项目不提供、也不计划提供 `submit_execute` 这类代提交工具
(用户明确否决)。填报完成就是 Agent 的终点:把 `browser_page_state` 的截图与已填内容报给用户,
由本人核对后自己提交。删除(`#delete`)、撤回同理,都在页面上手工做。
计划中的只有一个**只读**工具 `submit_preview`:把单据页上的实际内容读回来、与会话里的账目对账、
截图留证,帮人在点提交前发现问题。它不点任何按钮。目前尚未实现,不要调用、也不要承诺。
同样已下线的:Word 版易耗品出库单(模板自 2026-08 起不在仓库,历史上长期静默失败)。
---
+6 -3
View File
@@ -85,7 +85,7 @@ last_reviewed: 2026-10-19
- `travel_info` 与 `normal_info` 同时存在时,`browser_new_form` 必须显式传 `kind`(混合发票只能走普通报销)
- 步骤不能跳:travel 是 basic/details/payment/subsidy/attachments,normal 没有 subsidy
- 每步截图按 `001-步骤名.png` 落在 `cases/<id>/screenshots/`;失败时截图路径在返回的 `detail.screenshot`
- **`browser_close` 不提交也不存草稿**,填了一半会丢;提交本身仍未实现(P4),必须人工核对后自己点
- **`browser_close` 不提交也不存草稿**,填了一半会丢;**提交永远由人做**——本项目不提供点提交的工具,
- 中途断了不必重来:重新开浏览器登录后用 `browser_open_form`(先 `preview_only=true` 核对**单据编号**,
命中多张会直接拒绝)从列表页找回原单续填;**别再 `browser_new_form`**,那会多建一张单
- 列表页那个「查看」按钮是看审批流程图,不是打开单据;要接着填是选中行后点「修改」
@@ -158,7 +158,10 @@ Agent 不许自己宣布「可以提交了」。
| 文件上传 | `#file` | set_input_files |
| 确定按钮 | `#cjtj` | click |
### 提交
### 提交(只作页面知识保留,工具不提供这个动作)
下表是财务系统里提交相关控件的位置,写在这里是为了排查时看得懂页面;
**本项目的工具不会点它们**,提交一律由人来做。
| 操作 | 选择器 |
|------|--------|
@@ -186,7 +189,7 @@ travel_info.json 或 normal_info.json
│ doc_requisition(Excel COM,仅普通发票)
▼
artifacts/ 申购单
│ browser_open → browser_login → browser_new_form → browser_fill(提交仍未实现,须人工)
│ browser_open → browser_login → browser_new_form / browser_open_form → browser_fill
▼
财务系统报销单
```