Archived
数据工单只建名单上的料:拼出来的料号与在库的料号写下来都当场拒(W05 1.4.1)
用户在新一单上看到件上多出一行要人补的料号。查实:模型在数据工单里给一颗**不存在的** XL2596S-ADJ 铺了空骨架 —— 库里没有、入参里也没有,是把两个候选的名字拼出来的; 件上于是多出一行、红带点名它缺品牌。存在性核对本身判对了(ADJ found、XL absent), 错在「判对了却多写了一行」—— 事实在模型手里,能判对也能写错。 两道门,都在写入那一刻: - `parts.profile.internal_pn refersTo sub_eval.pn_check.internal_pn` —— 只许建核对表里核过的料号, 凭空拼出来的当场拒(参数/资料两张子表的 internal_pn 本就引用 profile,随之一并拦住)。 - 契约新增对象声明 `createOnly`(平台侧,~25 行):标了的表本单只建不改,键已在正式表当场拒并指路。 它守的是另一形(在库的料被当成新料重建)。只管 Agent 的写路径,人在件上的保存不受此限。 纯函数 `createOnlyViolation` 可测(复合主键按全部键列比);活动侧三张 parts 表标上;剧本补一句。 当前在跑那一单的草稿里拼出来的那行已手工撤掉。2100 测 / typecheck / lint / depcruise 绿;api-report 已刷。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01FJcX8A6TWp4GRs41TYryEh
This commit is contained in:
@@ -218,6 +218,17 @@ export const objectDeclarationSchema = z.object({
|
||||
* 安装期就能核:它在不在 fields 里、是不是主键的一部分。
|
||||
*/
|
||||
caseKey: identifier.optional(),
|
||||
/**
|
||||
* **本单只许新建正式表里没有的行**(2026-08-27,W05 数据工单逼出来的)。
|
||||
*
|
||||
* 数据工单让人「从零建一张主数据」—— 这张表在本单里的语义就是**只建不改**。
|
||||
* 实测(W05):模型在数据工单里多铺了一行不该建的料号 —— 件上于是多出一行要人填的记录,
|
||||
* 红带点名它缺品牌;剧本写了「found 的一行都不建」拦不住。这一项守的是其中一种形:
|
||||
* **在库的料号被当成新料重建**。标了它的表,写入那一刻查正式表:键已经在库 → 当场拒并指路
|
||||
* (墙要配路:撤掉那一行)。凭空拼出来的料号由 `refersTo` 核对表那道门管。
|
||||
* 只管 Agent 的写(人在件上的保存走另一条路,不受此限)。
|
||||
*/
|
||||
createOnly: z.boolean().optional(),
|
||||
/**
|
||||
* **这张表的每一行还是一份资料文件** —— 哪几列合起来是那份文件(2026-08-23 加)。
|
||||
*
|
||||
|
||||
Reference in New Issue
Block a user