Archived
feat(w05): 数据齐了也叫人一次 —— S1 改派只读的验收工单,件同一份、编辑钮收起
用户:「就算数据是足的也进入这个数据工单,就派发一个验收工单,界面和数据要和现在的 第一个数据工单一致,只不过把芯片卡片上的编辑按钮去掉,只展示不能编辑,然后把标题旁边的 数据工单改成验收工单」。 病根在引擎拍首那道 doneWhen 扫描:输入本来就齐的单,S1 的 doneWhen 第一拍就为真, 配方一笔都还没跑,这一步当场被收掉 —— 卡永远发不出去,人一眼没看过就进了 S2。 治法:CMMN 给 S1 标 manualActivation,那道扫描多一个门槛(worldTouched),次序变成 「配方发卡 → 人答 → 下一拍 doneWhen 为真才收」;doneWhen 仍是真门,只是不抢在人前面。 平台:执行工单第三副面孔 variant:'accept'(件只读、人只确认「确认无误」)—— 与 mode:'acceptance'(submit 抬起来的收口验收,带打回重做)分清;三副面孔的判断 抽成纯函数 order-face.ts(有测),chat-bubbles 只摆。 活动:S1 两笔互斥的 card(carded 幂等保证一步只发一张)+ 案卷粘着的旗 order_kind; 一张件两副面孔 —— 题头/标题/页脚三处名字与卡角编辑钮按 v-data / v-accept 由样式表挑 (藏的是容器 .fabs,逐枚去盖打不完)。 测:引擎测钉死那一对(标了人工激活 → 卡发得出去、步不收;没标 → 步当场被收、卡发不出); auto-runner variant 透传;order-face 4 条;包内 2 条(两笔卡 + 粘旗)、view 1 条; 两处变异验证。e2e w05 5/5 released、被拒 0、模型调用恰 1 次 —— 都在库那例摆的正是验收工单。 2558 测、四门禁绿;2.15.0 装库核过。 Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01LKMZDwMbyKzjw6Hembwvet
This commit is contained in:
@@ -128,7 +128,11 @@ export type AutoAction =
|
||||
readonly kind: 'card';
|
||||
readonly when?: string | undefined;
|
||||
readonly as: 'execution' | 'decide';
|
||||
readonly variant?: ('data' | 'review') | undefined;
|
||||
/**
|
||||
* 卡的面孔:`data` 数据工单 / `accept` 验收工单(都是执行工单的变体)· `review` 审核卡(决策卡的)。
|
||||
* 不写就是普通执行工单 / 普通决策卡。
|
||||
*/
|
||||
readonly variant?: ('data' | 'review' | 'accept') | undefined;
|
||||
readonly title: AutoExpr;
|
||||
/** 决策卡问的那句话 */
|
||||
readonly ask?: AutoExpr | undefined;
|
||||
@@ -177,7 +181,7 @@ export const autoActionSchema: z.ZodType<AutoAction> = z.discriminatedUnion('kin
|
||||
kind: z.literal('card'),
|
||||
when: z.string().min(1).optional(),
|
||||
as: z.enum(['execution', 'decide']),
|
||||
variant: z.enum(['data', 'review']).optional(),
|
||||
variant: z.enum(['data', 'review', 'accept']).optional(),
|
||||
title: autoExprSchema,
|
||||
ask: autoExprSchema.optional(),
|
||||
guide: z.array(z.string().min(1)).optional(),
|
||||
|
||||
@@ -344,8 +344,14 @@ export const executionWorkOrderSchema = z.object({
|
||||
* 区别只在**它要人办的是「把一张主数据表建齐」**(件上的表就是要建的记录,确认即入库),
|
||||
* 所以对话区要长成自己的样子(色/图标/「数据工单」四字/「确认写入」),不能再顶着「执行工单」的牌子。
|
||||
* 活动在卡骨架上写 `"variant":"data"`,归一层原样带下来;不写就是普通执行工单。
|
||||
*
|
||||
* **`accept` = 验收工单**(2026-08-31 用户定:「就算数据是足的也进入这个数据工单,就派发一个
|
||||
* 验收工单…把芯片卡片上的编辑按钮去掉,只展示不能编辑」)—— 同样是执行工单的变体:件上没有
|
||||
* 要填的格子,人只核对、确认无误。**与 `mode: 'acceptance'` 不是一回事**:那个是 `submit`
|
||||
* 抬起来的**收口验收**(签下去就 releaseWrite、发口、落终态,带打回重做那一路);
|
||||
* 这个只是「这一步的活干完了,请你过目」,回传即办结,一步都不放行。
|
||||
*/
|
||||
variant: z.enum(['data']).optional(),
|
||||
variant: z.enum(['data', 'accept']).optional(),
|
||||
ask: z.string(),
|
||||
standard: z.string().optional(),
|
||||
steps: z.array(z.string()).optional(),
|
||||
|
||||
Reference in New Issue
Block a user