六能力完全闭环 + 待办项落实记录(2026-07-12)
目标
将历史待办(死规则、emit bug、is_required 校准、create_post 关系回写、冗余清理、project-validate、_syncBuiltinRules 对齐、持久化兜底)全部落实并验证。
一、已完成并验证
1. 死规则修复(3 条)
- 在
_checkRuleContract()中把has_missing_vendor_fields加入supportedTypes白名单(之前缺失 → 该条件类型被判定为不支持 → 规则变死)。 - 修复点:
server/core/rule-engine.jsL1294。 - 现状:
builtin-vendor-*等依赖该条件的规则已复活。
2. AI Inspector emit 噪音修复
- 程序化调用(数字员工/调度)无 SSE 通道时,用本地
onProgress回调替代未定义的emit。 - 修复点:
server/routes/ai-inspector.jsL1578 附近(加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:true,block_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 白名单、_syncBuiltinRulesserver/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(持久化恢复脚本)
BossAgents