docs(v2): 第二批交付记录与交接(历史经验加工)
按 16 §4 的五项口径(页面入口 / 操作步骤 / 实际结果 / 证据位置 / 剩余缺口) 填第二批,状态记**部分完成**: - 后端闭环已接通并经真实执行链测试(提炼→候选治理→卡片进方案→运行可追溯); - 本模块独立入口 /experience-center 已建,通过生产构建与新增源码守卫; - 未闭合三项写清楚而不是含糊带过:真实模型提炼未实测(F17,需端点)、 例外边界未进入可求值条件语言(F18)、卡片适用条件不参与运行内逐项判定(F19); - 界面证据明确标注为"源码守卫 + 生产构建 + 代码走查",不是端到端点击证明。 验证:`test-evidence/20261001-003148-2e7e194/`(verify.py 12/12 PASS,全量 567 项)。 15 §7 交接同步更新:新增 F17/F18/F19,F13 标记为已由第一批关闭,F6 更新为 Q3–Q5。 Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
@@ -105,45 +105,43 @@ docs/project-process/README.md、XINGBANG-ADAPTATION.md,执行 git status --sh
|
||||
> 交付定义与四批顺序以 [16 交付纠偏规格](16-delivery-corrections.md) 为准;
|
||||
> 下表的"已交付"只表示该任务包的代码与测试存在,不再表示产品功能可用。
|
||||
|
||||
- 日期:2026-09-30(T08–T11 实施轮;前一轮 T00–T07 见 git 历史)。
|
||||
- 日期:2026-10-01(**纠偏第二批实施轮**;第一批见 git 历史,T08–T11 见更早提交)。
|
||||
- 仓库:`F:/mini-OpenClaw-v2`;远程 `http://192.168.10.111:3000/qiaoqichao/mini-openclaw-v2.git`
|
||||
(2026-09-30 新建并首次推送,OQ-06 Q2 的远程归属就此定案;端口/资源/CI 三问仍 open)。
|
||||
- 完成范围:**T08–T11 各自提交并跑通 `scripts/verify.py`**(11 项检查,含 6 项 UI 源码守卫)。
|
||||
(OQ-06 Q2 的远程归属已定案;端口/资源/CI 三问仍 open;**本轮未推送**)。
|
||||
- 完成范围:**纠偏第二批「历史经验加工」**——真实提炼入口、候选治理、
|
||||
卡片进方案并影响运行,加本模块独立页面入口。`scripts/verify.py` **12 项检查**全通过
|
||||
(新增 `experience-center-ui` 源码守卫)。
|
||||
- 验证入口:`cd F:/mini-OpenClaw-v2 && backend/venv/Scripts/python.exe scripts/verify.py`;
|
||||
逐次证据在 `test-evidence/<时间戳>-<短SHA>/`。
|
||||
- 测试规模:全量 519 项 unittest(T07 时 410 项),既有测试无回归。
|
||||
- 本轮提交:
|
||||
- T08 专项离线质检 —— `501a4d9`
|
||||
- T09 预审与推进沙盘 —— `22f8a37`
|
||||
- T10 轨迹与会议结果复盘 —— `f2bbac0`
|
||||
- T11 改进治理与演示交付 —— `d6bc848`
|
||||
- 卡片验收对照:
|
||||
- T08:AC-16/17/18/19/20/38/39/40/41(fixture 契约、逐任务逐用途准入、
|
||||
冻结 checkpoint、上下文预算 E-25、中文否定与例外不硬选正面结果)。
|
||||
- T09:AC-11/12/29/30/31/42/44(模拟不改原运行、演示值只在 demo 域、
|
||||
组合查表非加和、乱序丢弃与失败保基线、同刻度 3–8 维才画雷达、来源文字+图标)。
|
||||
- T10:AC-22/32/33(一个 run 多 step、失败保留、无可观察推理字段、成本未知留空、
|
||||
unmatched 单列、更正追加并引用旧版、回放只读)。
|
||||
- T11:AC-15/16/34/37/41(泄漏样本作废、零分母不填 0%、非独立评测不得声称改进、
|
||||
没有对照不发布、自批拒绝、发布幂等且引用不可变版本)。
|
||||
本轮证据:`test-evidence/20261001-003148-2e7e194/`(12/12 PASS)。
|
||||
- 测试规模:全量 **567 项** unittest(本批新增 36 项:提炼 15 / 候选治理 15 / 卡片到运行 6),既有测试无回归。
|
||||
- 本轮提交:`2e7e194` —— `feat(v2): 纠偏第二批——接通历史经验加工闭环`。
|
||||
- 卡片验收对照(详见 [17 四批交付记录](17-batch-delivery-records.md) 第二批):
|
||||
- AC-50:真的调用模型才产候选;模型不可用 → E-28 且**候选数为 0**
|
||||
(提炼跑完后复查库,而不是只看返回值)。
|
||||
- AC-51:自然语言修订真的发起一次模型调用;修订只产草稿、保留 origin 与来源、不自批;
|
||||
模型不可用时拒绝且卡片一字未改。
|
||||
- AC-52:同一项目两次运行对照——基座方案无该核查项,含卡片的方案有 1 条,
|
||||
`basis_ids=[卡片id@1.0.0]`,`component_versions` 含卡片版本。
|
||||
- BR-50(部分):历史经验加工获得独立入口 `/experience-center`;另两个入口与深色导航属第三批。
|
||||
- 未决项(阻塞后续):
|
||||
- **F8** Docker 运行时冒烟未实测(本机 Docker Desktop 守护进程不可达)
|
||||
- **F11** 界面仍未经浏览器验证:T09 面板只有类型检查、构建与源码守卫三层证据
|
||||
- **F7** 各卡门禁仍 `proposed`,审阅者未指派——用户授权不等于评审通过
|
||||
- **F6** OQ-06 Q2–Q5:远程归属已定(`origin/main`,见上);**端口冲突核验、运行资源、
|
||||
Gitea CI 是否启用仍 open**
|
||||
- **F12** 主审自身的模型调用仍走既有 `assistant_model`,冻结口径未统一
|
||||
- **F13** 运行写入方缺位:`prescreen_run` 视图目前由测试写入,
|
||||
真正的执行链路(把装配结果落库)属 T07/T10 执行侧,尚未接线
|
||||
- **F14** 轨迹写入仍是既有 `DurableWorker.save_step`,因此暂无 judgment/rule
|
||||
类步骤的产出方;会议标签映射(E-26)未实现
|
||||
- **F15** 改进发布只委托注入的 publisher;与 `knowledge_cards.publish`
|
||||
的实际接线未做(发布幂等与版本引用已由测试覆盖)
|
||||
- **F16** 沙盘的假设动作登记表(ASSUMPTIONS)是 P0 固定两项,
|
||||
方案级动作清单仍待 T06 方案装配产出
|
||||
- 下一任务:**T12(可选)Jev 与实时专项**需要端点与凭据;无凭据时先做
|
||||
**收口评审**(F7 审阅者签署、F8/F11 补验证),不要为了推进而把演示当验收。
|
||||
- 待输入:真实数据/制度/会议标签映射与客户身份权限(M5/M6);Laya 硬件与中文
|
||||
效果需实机探测;Jev 端点与凭据。
|
||||
- Git:本轮已推送 `origin/main`;核对命令 `git ls-remote origin main`,返回 SHA 与本地
|
||||
HEAD 一致(`b6f1e80`)。推送后仍不得从旧恢复点 4d5a420 推断最新版本已备份。
|
||||
- **F17(新)真实模型提炼未实测**:本机未设置 `XINGBANG_LOCAL_MODEL_*`,
|
||||
AC-50 前半句目前只有"不可用路径 + 假传输成功路径"两类证据。
|
||||
需端点后按 17 的操作步骤补一次真实调用;在此之前不得宣称"真实提炼已跑通"。
|
||||
- **F18(新)例外边界未进入可求值条件语言**:注册表条件只支持数值阈值算子
|
||||
(`present/absent` 被既有断言锁定拒绝),模型给出的例外保存为文本 `exception_note`。
|
||||
- **F19(新)卡片适用条件不参与运行内逐项判定**:只用于域/范围/有效期过滤
|
||||
(`knowledge_cards.effective()`);运行内条件求值需独立设计。
|
||||
- **F11** 界面仍未经浏览器验证:新增的 `/experience-center` 同样只有源码守卫与
|
||||
生产构建两层证据(本机无 playwright/puppeteer/chromium)。
|
||||
- **F7** 各卡门禁仍 `proposed`,审阅者未指派——用户授权不等于评审通过。
|
||||
- **F8** Docker 运行时冒烟未实测(本机 Docker Desktop 守护进程不可达)。
|
||||
- **F6** OQ-06 Q3–Q5:端口冲突核验、运行资源、Gitea CI 是否启用仍 open。
|
||||
- **F12/F13/F14/F16** 仍有效(F13 已由第一批关闭:运行视图改由执行链出口产生)。
|
||||
- **F15** 改进发布仍未接真实知识发布入口,属**第三/四批**范围。
|
||||
- 下一任务:**第三批「按已确认原型完成新版界面」**(深色导航 + 三入口 + AC-53/54/55);
|
||||
或先补 **F17**(需要你提供模型端点与调用时机)。不要为了推进而把演示当验收。
|
||||
- 待输入:模型端点与调用时机(F17);真实数据/制度/会议标签映射与客户身份权限(M5/M6);
|
||||
Laya 硬件与中文效果需实机探测;Jev 端点与凭据。
|
||||
- Git:本轮提交在 `codex/xingbang-v2-model-field-fix` 分支,**尚未推送**;
|
||||
核对命令 `git log --oneline -3`(当前 HEAD `2e7e194`)。
|
||||
不得从旧恢复点 4d5a420 推断最新版本已备份。
|
||||
|
||||
@@ -130,7 +130,76 @@ XINGBANG_LOCAL_MODEL_KEY=<你的 DeepSeek API Key>
|
||||
|
||||
## 第二批:完成历史经验加工流程
|
||||
|
||||
状态:**未开始**。
|
||||
状态:**部分完成**。后端闭环(真实提炼入口 → 候选治理 → 卡片进方案并影响运行)已接通,
|
||||
并经真实执行链测试;本模块页面入口已建并通过生产构建与源码守卫。
|
||||
**未闭合**:① 真实模型提炼调用尚未实测(需要模型端点,见"剩余缺口");
|
||||
② 界面点击未由自动化驱动(本机无浏览器自动化,沿用第一批 F11 口径)。
|
||||
|
||||
覆盖:AC-50/51/52、BR-48/49、E-28;页面入口部分覆盖 BR-50(三个入口中的第一个)。
|
||||
|
||||
### 页面入口
|
||||
|
||||
| 入口 | 位置 |
|
||||
|---|---|
|
||||
| 历史经验加工 | 顶部导航「历史经验加工」→ `/experience-center?project=<项目>` |
|
||||
| 流程四段 | ① 来源:历史过程时间线 → ② 提炼:用真实模型生成候选 → ③ 候选:修订/评测/发布 → ④ 方案:让卡片影响核查 |
|
||||
|
||||
### 操作步骤(实现并按此验收)
|
||||
|
||||
1. 「从项目材料重建时间线」→ `POST /prescreen/projects/{id}/case-timeline`(确定性,不调用模型)。
|
||||
2. 勾选来源事件、填写提炼要求 →「请求提炼」→ `POST .../knowledge-extractions`。
|
||||
3. 候选卡上「自然语言修改适用范围」或「补充独立测试样本」→ `PATCH .../knowledge-candidates/{card_id}`。
|
||||
4. 「隔离评测」→ 由**另一位**有发布资格的人「审核发布」→ `POST .../knowledge-candidates/{card_id}/transitions`。
|
||||
5. 已发布卡「选入新方案」→「评测方案」→「发布方案」→ `POST .../review-plans` 与 `/review-plans/{id}/transitions`。
|
||||
6. 在项目工作台用该方案发起预审;运行结果冻结并记录卡片版本。
|
||||
|
||||
### 实际结果
|
||||
|
||||
- **提炼(模型未配置)**:记录 `status=failed`,`candidate_id=null`,degradations 带
|
||||
`EXTRACTION_UNAVAILABLE`,文案"本次未能完成经验提炼,请稍后重试或改为人工创建";
|
||||
**提炼跑完后库里一张候选草稿都没有**(`test_experience_extraction` 的反例断言)。
|
||||
这与第一批"模型不可用如实标未完成"同口径。
|
||||
- **提炼(模型可用)**:以假传输层走真实 `agent_manager.invoke_scoped` 路径,
|
||||
产出 `origin=history_derived` 且带来源事件 id 的 Skill 候选;记录保存
|
||||
`prompt_version=history-extraction.v1` 与模型名,可核对"确实发起了调用"。
|
||||
**真实模型调用未实测**(见剩余缺口)。
|
||||
- **候选治理**:自然语言修订真的发起一次模型调用(测试断言调用次数为 1);
|
||||
模型不可用时**拒绝且卡片一字未改**(比对修订前后 revision 与 conditions);
|
||||
修订后仍为 `history_derived` 且保留来源、状态仍为 draft;已发布后修订升版本并记 `parent_version`。
|
||||
- **卡片影响核查**:同项目两次运行对照——基座方案 `corporate.pre-review` 不含该卡片,
|
||||
运行里没有该核查项;含卡片的新方案运行里出现 1 条 `history.repayment.dependency`,
|
||||
其 `basis_ids=[skill.history.repayment@1.0.0]`,`component_versions` 含 `(卡片id, 1.0.0)`。
|
||||
- **依赖门禁**:草稿卡片进方案时,发布被 409 拒绝;引用不存在组件时评测 `passed=false` 且发布被拒。
|
||||
|
||||
### 证据位置
|
||||
|
||||
| 内容 | 位置 |
|
||||
|---|---|
|
||||
| 提炼入口(15 项) | `backend/test_experience_extraction.py` |
|
||||
| 候选治理与自然语言修订(15 项) | `backend/test_knowledge_governance.py` |
|
||||
| 卡片 → 方案 → 运行(6 项) | `backend/test_card_to_run.py` |
|
||||
| 界面源码守卫(新增) | `scripts/test_experience_center_ui.cjs`(已登记进 `scripts/verify.py`) |
|
||||
| 全量验证 | `test-evidence/20261001-003148-2e7e194/`(`scripts/verify.py` **12/12 PASS**,含 `backend-unit` 全量 567 项、`frontend-build`、新增 `experience-center-ui` 守卫) |
|
||||
|
||||
### 剩余缺口
|
||||
|
||||
- **真实模型提炼未实测(P0)**:AC-50 的"若模型已配置则实际调用"需要一次真实调用证据。
|
||||
本轮机器上没有设置 `XINGBANG_LOCAL_MODEL_*`,因此只交付了"不可用路径"与"假传输成功路径"。
|
||||
实测方法:带 `XINGBANG_DEMO_ROLE_LOGIN=1` 与三个模型变量启动后端,再走上面步骤 2;
|
||||
在此之前不得宣称"真实提炼已跑通"。
|
||||
- **界面点击未由自动化驱动**:本机无 playwright/puppeteer/chromium-cli。界面证据是
|
||||
"源码守卫 + 生产构建(`/experience-center` 6.08 kB)+ 代码走查",**不是**端到端点击证明;
|
||||
本批的"页面入口/操作步骤"是按实现与接口核对写出的,不是浏览器截图。
|
||||
- **例外边界未进入可求值条件语言**:注册表条件只支持数值阈值算子,`present/absent` 被既有断言
|
||||
锁定拒绝,因此模型给出的例外保存为文本 `exception_note`,供专家修订,不作为可执行条件。
|
||||
- **卡片适用条件不参与运行内逐项判定**:`conditions` 目前只用于域/范围/有效期过滤
|
||||
(`knowledge_cards.effective()`);运行内条件求值需独立设计,不在本批冒充完成。
|
||||
- **治理状态只实现 draft/published**:`in_review`/`rejected`/`withdrawn` 在注册表没有落地表达,
|
||||
候选状态机因此只提供 `evaluate` 与 `publish`,不造一个假状态掩盖。
|
||||
- **规则类(Rule)候选不在本批**:数值阈值与正式依据门禁(`_check_hard_basis`)需要单独设计,
|
||||
本批只产出 Skill 类候选(可验证的缺件核查动作)。
|
||||
- **顺带发现、未修**:`01-requirements.md` 的 E-18 写作 `HARD_RULE_BASIS_REQUIRED`,
|
||||
但代码走的是 `ValueError` → 422 `INVALID_REQUEST`,错误码未对齐(既有问题,非本批引入)。
|
||||
|
||||
## 第三批:按已确认原型完成新版界面
|
||||
|
||||
|
||||
Reference in New Issue
Block a user