六能力完全闭环 + 待办项落实记录(2026-07-12)

六能力完全闭环 + 待办项落实记录(2026-07-12)

目标

将历史待办(死规则、emit bug、is_required 校准、create_post 关系回写、冗余清理、project-validate、_syncBuiltinRules 对齐、持久化兜底)全部落实并验证。

一、已完成并验证

1. 死规则修复(3 条)

  • _checkRuleContract() 中把 has_missing_vendor_fields 加入 supportedTypes 白名单(之前缺失 → 该条件类型被判定为不支持 → 规则变死)。
  • 修复点:server/core/rule-engine.js L1294。
  • 现状:builtin-vendor-* 等依赖该条件的规则已复活。

2. AI Inspector emit 噪音修复

  • 程序化调用(数字员工/调度)无 SSE 通道时,用本地 onProgress 回调替代未定义的 emit
  • 修复点:server/routes/ai-inspector.js L1578 附近(加 const onProgress = ...; if (typeof emit === 'function') emit(...); else onProgress(...))。

3. is_required / 核心类必填校准(闭环验证通过)

  • 写入 calibrate_required.js:把 Part(name,item_number,unit)、Product(name,item_number)、Customer(name,address)、Vendor(name,address)、Project(name,scheduling_mode,scheduling_type)、ECN(title,item_number,basis) 等核心类业务必填字段合并回 sciot_templates.required_fields,落盘标准库 + 引擎库两库。
  • 验证:重启服务后,对缺 unit 的 Part 走 /api/capability/validate,规则引擎 builtin-generic-required-check 命中并 blocked:trueblock_reason="必填字段 ... 不能为空"source=rule_engine。✅ 校验闭环由校准后的元数据驱动。
  • 注意:之前 finalize_meta 一次性落盘覆盖了首次校准,已重新执行 calibrate_required.js 并验证持久化。

4. create_post 关系级回写(已实现)

  • server/routes/unified-create.js 新增 applyRelationshipWriteback():将 create_post 规则产出的 relationships(仅带 item_number/id 的"关联已存在对象")以 action="add" + related_id(action="get") 写回 SCSAI。绝不创建新相关对象(安全非破坏性)。
  • runCreatePost() 中接入:原"仅记录 relationshipHint"改为实际调用回写。
  • 验证:创建 Part 并内联 Part Document 关系(引用已存在 DOC-0001)→ createRelationships 返回 success:true + SCSAI 关系 ID,关系级闭环确认可用。

5. 冗余文件清理

  • 归档 src/composables/useCreate.js.deprecated/useCreate.js(确认无真实 import,前端 ItemTypeManagement.vue 已改用 POST /api/unified/create)。
  • 清理调试残留:probe_contract.js/probe_full_meta.js/probe_status.js/fix_required.js/rebuild-engine-meta.js/debug-create-fail.json 移入 .deprecated/;删除空标记文件 data/_deprecated_rule_engine_db_20260711-184656
  • tmp_*.js 已不存在。

6. project-validate 为 0 排查 → 已确认正常

  • 实测 DB:builtin-project-validate-001/002/003 均存在,scope='validate',与 RULE_SCOPES.VALIDATE 值一致。共 9 条 validate 规则。历史 summary 的担忧已不成立。

7. _syncBuiltinRules INSERT 对齐确认

  • INSERT 列清单(17 列)= 14 个 ? + 字面量 'builtin'(source) + 2 个 ?(conflict_strategy, min_quality_score)。完全对齐,无错位。

8. 持久化兜底(防删库即崩)

  • 新增 rebuild-engine-meta.js(已归档到 .deprecated/ 备用):用原始 sql.js 从 sciot_import.db 全量复制 5 张元数据表(sciot_properties / sciot_templates / sciot_list_values / sciot_relationships / sciot_sequences)到 rule_engine.db,绕过 db-adapter 代理避免 schema 不一致。
  • 引擎运行时不依赖元数据表重建(init 内存合并 2367 标准库规则 + 76 builtin);删库恢复走此脚本。

二、端到端验证结果

  • 六能力 HTTP 实测(identify/validate/repair/optimize/compare/generate/inspect)全部 success=true
  • create:Part 真实落库 SCSAI,返回 item_id;关系级闭环 success。
  • validate:缺必填 → 规则引擎 block 成功。

三、待办(未做 / 需后续)

  • SCSAI 真值同步方向:本次仅做本地 required_fields 校准;把 SCSAI 实际 is_required 反拉写回 DB 的脚本未运行(需 SCSAI 在线 + 字段映射确认)。当前本地基准已能驱动闭环。
  • create_post 关系回写限制:仅支持"关联已存在对象"(action=get),不自动创建新相关对象(设计取舍,安全优先)。
  • cron-tasks 模块缺失告警:server.js 启动报 Cannot find module './cron-tasks',属既有非致命告警,未处理。

四、关键文件

  • server/core/rule-engine.js:_checkRuleContract 白名单、_syncBuiltinRules
  • server/routes/ai-inspector.js:emit 作用域修复
  • server/routes/unified-create.js:applyRelationshipWriteback + runCreatePost 接入
  • server/data/sciot_import.db / server/data/rule_engine.db:元数据 + 规则落盘
  • .deprecated/calibrate_required.js(校准脚本备份)、.deprecated/rebuild-engine-meta.js(持久化恢复脚本)
← 返回案例列表
分享:
🤖 Try Now →
🤖
🎁