任意对象六能力覆盖验证 — 2026-07-12

任意对象六能力覆盖验证 — 2026-07-12

结论

能。 基于全量元数据(1204 个 ItemType 的 sciot_properties 字段约束)+ 规则工厂动态生成规则,六能力(识别/创建/修复/优化/比对/生成)已对任意对象生效,不再局限于 6 类核心业务。

关键修复(本次)

  1. 元数据全量落盘:发现 rule_engine.dbsciot_properties 表建表语句损坏(重复逗号 + 缺 source 列),导致 db-adapter 代理 schema 与真实文件不一致,所有多列 INSERT 报 no such column: source
  • finalize_meta.js(一次性 sql.js 脚本):从标准库 sciot_import.db 取真实 CREATE SQL,在 rule_engine.db 上 DROP+CREATE 重建 5 个元数据表,再全量导数据,最后 export() 落盘。
  • 结果:sciot_properties=40854 / templates=1205 / list_values=6206 / relationships=587 / sequences=128(之前仅 2821/305/431)。
  1. 移除 _mergeStdMeta 废弃方法(含硬编码坏列名,且不调用),_mergeStdRules 内元数据块删除(文件已全量,init 不再重复同步,避免坏列名报错)。

验证(HTTP,端口 3006,/api/capability/*)

  • validate 对任意类型(Requirement/Document/Manufacturer/Supplier/Part)均 blocked=true,规则工厂注入必填校验(builtin-generic-required-check),source=rule_engine
  • identify / optimize / compare / generate 对 Requirement 均 success=true:identify(rule_engine)/optimize(4条,rule_engine)/compare(llm_router)/generate(fallback)。
  • repair 写回闭环已通(之前验证),对象不存在时 found=0(测试未传 selected_ids)。
  • create:核心 6 类(Project/Product/Part/Vendor/Customer/ECN)真实落库已验证;任意类型落库依赖 SCSAI 端 ItemType 是否存在(数据可达性,非架构阻塞)。

运行时规则数说明

  • 文件 sciot_rules_v2=76(硬编码 builtin)。每次 init 时 _mergeStdRules 从标准库内存合并 SCSAI 全量 + 独有 builtin(共 2399),验证内存引擎对任意类型生效。
  • 文件 76 不影响功能(init 重建内存)。如需持久化可后续让 save 落盘 2399(当前 save 未生效,待查)。

风险/待办

  • rule_engine.db 被删,init 重建后元数据表为空(元数据不再 init 同步)。需保留 finalize 逻辑可重跑,或加 init 兜底检测。
  • 标准库 sciot_properties.is_required 标注质量决定各类型必填基准准不准(当前所有类型只报 item_number 必填,需校准 is_required 标记)。
  • 端口 3006 偶发占用(旧进程未释放),重启前需确认无残留。
  • 后台 "AI Inspector" 报 emit is not defined(独立 bug,不影响能力)。

文件改动

  • server/core/rule-engine.js:删除 _mergeStdMeta 方法;_mergeStdRules 移除元数据同步块,加 this.db.save()
  • finalize_meta.js(已删除,一次性工具)。
← 返回案例列表
分享:
🤖 Try Now →
🤖
🎁