Files
mini-openclaw-v2/docs/v2/17-batch-delivery-records.md
T
qiaoqichaoandClaude Code 02289661a8 feat(v2): 纠偏第一批——执行链产出新版预审记录(真实运行验收)
覆盖 AC-46/47/48/49(BR-45/46/47、E-27)。审计确认的 P1 缺口"正常发起评审不产生
新版预审记录"由此关闭:视图由执行链出口产生,不再依赖测试或脚本注入。

后端:
- services/prescreen.py:新增 screening_from_run(),把一次真实运行的执行结果装配成
  预审视图;维度与阶段按**本次实际执行的组件与核查项**投影
  (dimensions_and_evidence:冻结方案声明过、且本次真的执行过的技能/规则才算维度;
  经验核查等方案外伪步骤不算;阶段只表达证据成熟度,不看结论好坏)。
- services/assistant_worker.py:运行出口(含失败路径)统一调用 save_prescreen_view(),
  运行结束即落库视图;装配失败单独记事件,不让运行一起丢。
- contracts/prescreen.py:视图带 evidence(界面"查看依据"的来源实体);
  新增运行级错误码 RUN_STEP_FAILED(E-27)。
- 维度状态用本次执行的步骤与核查项算(含跑通但无问题的项),
  只看待办 finding 会把通过的维度误判成未核查。

前端:面板新增"核查结果"区(每条可打开依据抽屉,显示来源、定位、原文片段与组件版本)
与降级记录展示;没有证据时明确写"按缺证处理",不编造。

测试:backend/test_prescreen_from_run.py 12 项,用真实 enqueue + DurableWorker.process_next
(临时库)断言视图由执行链产生、失败与模型不可用如实留痕、重跑新增记录。
含反例:执行前不得存在任何记录。

实际验收(浏览器渲染 + 真实运行):状态 partial、10 维(5 已核查/2 待核实/3 阻断)、
4 条核查结果、14 条证据、1 条 RUN_STEP_FAILED 未完成项;记录见
docs/v2/17-batch-delivery-records.md(含剩余缺口:界面点击未自动化、材料确认未在浏览器走完、
演示角色需 XINGBANG_DEMO_ROLE_LOGIN=1、模型未配置)。

Co-Authored-By: Claude Code <noreply@anthropic.com>
2026-09-30 12:34:45 +08:00

79 lines
3.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 四批交付记录
口径见 [16 交付纠偏规格](16-delivery-corrections.md) §4:每批必须列出**页面入口、操作步骤、
实际结果、证据位置、剩余缺口**;未接通项标"部分完成"。
---
## 第一批:接通正常预审执行链
状态:**部分完成**(执行链已接通并经真实运行验收;界面点击本身尚未由自动化驱动,
材料确认步骤未在浏览器中完整走一遍)。
### 页面入口
| 入口 | 位置 |
|---|---|
| 发起预审 | `/xingbang-workbench?project=DEMO-B`「材料与问题」页 → 顶部"开始AI预审"按钮 |
| 查看结果与依据 | 同页「预审与推进沙盘」面板:主审意见、核查结果(4)、核查维度(10)、每条"查看依据" |
### 操作步骤(实际执行)
1. 启动 v2:后端 `uvicorn app:app --port 8012`(带 `XINGBANG_DEMO_ROLE_LOGIN=1`)、
前端 `npm run dev -- -p 3212`。
2. 经前端代理发起预审(与页面按钮同一请求):
`POST /api/risk-agent/project-assistant/projects/DEMO-B/runs`,角色头 `manager`。
3. 等 worker 执行结束(轮询运行状态)。
4. 读取 `GET .../prescreen/projects/DEMO-B/runs/{run_id}`。
5. 浏览器打开工作台并渲染面板截图。
### 实际结果
- 运行结束状态 `partial`,视图 `recommendation=supplement`,`probability=null`。
- **维度 10 个**:5 已核查 / 2 待核实 / 3 存在阻断项;阶段 1–2
(`corporate.consistency`、`corporate.cashflow`、`corporate.assets`、`corporate.coverage`、
`skill-quality`、`skill-finance`、`skill-credit`、`demo.coverage`、`rules-corporate`、`corporate.analysis`)。
- **核查结果 4 条**(`lease.coverage.below_demo_threshold`、`lease.asset.duplicate`、
`financial.cashflow.missing`、`financial.liabilities.conflict`),各带依据与组件版本。
- **证据 14 条**随视图返回,界面"查看依据"可展开来源与定位。
- **未完成项 1 条**:`RUN_STEP_FAILED 金租对公业务综合核查:未配置受信模型,语义核查未执行`
——模型不可用时如实标未完成,不伪造结论。
- 缺证 2 项:`financial.operating_cashflow`、存在尚未人工确认的材料候选。
- 反复发起产生多条记录(本轮 3 条),旧记录仍可读;轨迹引用指向本次运行。
- 呈现判定:10 维超出雷达可读范围 → 界面改用分组列表并保留全部维度(AC-44 真实分支)。
### 证据位置
| 内容 | 位置 |
|---|---|
| 会话内验证日志 | 本轮运行输出(发起→轮询→读视图) |
| 端到端测试 | `backend/test_prescreen_from_run.py`(12 项,真实 enqueue + worker 执行) |
| 界面渲染 | `claude_use/tmp/v2-batch1-panel.png`(本机截图,未入库) |
| 全量验证 | `test-evidence/<时间戳>-<短SHA>/`(`scripts/verify.py`) |
### 剩余缺口
- **界面点击未由自动化驱动**:本机无 playwright/puppeteer/chromium-cli,发起预审是通过
与页面按钮同一条代理请求完成的;"点按钮"这一步没有脚本化证据。
- **材料确认步骤未在浏览器走一遍**:本轮直接用已存在的演示项目 DEMO-B;
"新建演示项目→确认材料"这一段仍只有 T02 的服务与测试覆盖。
- **演示角色需要 `XINGBANG_DEMO_ROLE_LOGIN=1`**:否则 worker 的 `authorized()` 会把
演示角色发起的运行判为"权限已撤销"(运行会失败但可读)。这是配置要求,需写入部署说明。
- **模型类技能始终失败**:未配置内网模型,语义核查永远 `RUN_STEP_FAILED`;
因此"完整跑完"路径仍未验证(不是本批的接通问题,但影响演示观感)。
- 取消中的运行不产出视图(只处理 completed/partial/failed)。
---
## 第二批:完成历史经验加工流程
状态:**未开始**。
## 第三批:按已确认原型完成新版界面
状态:**未开始**。
## 第四批:接通评审反馈与改进发布
状态:**未开始**。