主题
流程图编排规范
本规范适用于通过 JSON 导入或维护的 Warm-Flow 流程定义。先保证流程语义、条件和网关配对正确,再调整坐标;只调整布局时不得改变节点编码、连线条件、网关类型、表单路径或流程版本的业务语义。
菜单命名和流程分类约定见公共开发约定。
下文维护画布、文案和锚点的目标标准,检查范围按任务类型选择。新建与整图重排执行全图规范;有可核对基线的局部展示修复允许保留未恶化的历史展示问题。版本、在途实例、业务语义及导入检查不因修改范围缩小而豁免。
流程办理界面与选人
- 业务原型用于理解功能、字段和流程,不作为页面布局的复制模板。办理页复用平台审批工作台:上方概况与操作、左侧业务表单、右侧审批时间线;具体视觉遵循界面规范。
- 发起、节点办理、退回重提、转办等流程选人必须复用通用
UserSelect;下一办理人表单字段优先使用基于它的NextHandlerPicker,办理动作使用FlowActionPanel已集成的选择器。业务组件可封装候选范围与校验,不自行用下拉框或另建人员弹窗替代通用选择器。 - 候选人由业务权限、工程数据范围和节点配置共同约束,传入通用组件的范围须保留;加载失败或空候选不得回退为全量人员。切换工程归属后清理失效选择,后端提交时重新校验人员资格。人员 ID 保留原值,不转为数值。
按任务确定核验范围
| 任务类型 | 必要核验 |
|---|---|
| 局部展示修复 | 证明业务语义未变,检查受影响节点、连线、标签及邻近区域;比较修改前后,确认未新增或恶化展示问题 |
| 新建、整图重排或模型迁移 | 完整执行画布、文案、锚点和“版本与核验”第 2~4 条的全图检查 |
| 业务流程变化 | 核对业务基线、条件、办理人、网关配对、状态与运行影响,回归受影响正常及异常路径;核验受影响拓扑和展示,影响无法可靠界定时扩大到整图 |
| 存量原样导入 | 按“版本与核验”第 6 条证明逐字段一致,记录既有展示差异 |
局部展示修复的基线与证据
- 修改前保留可定位的原始 JSON 或 Git 基线;准备导入时,还须核对当前目标环境旧版定义。不能仅以仓库文件名、问题总数或口头判断证明局部范围。
- 按节点编码和连线业务标识逐项比对,忽略 JSON 属性顺序,但不能丢失重复项。只允许坐标(含标签坐标)和已逐项确认不改变含义的展示文案变化;版本与定义 ID 等发布元数据单独记录。节点/边增删、编码、类型、条件、表单、办理人、扩展配置等业务字段须保持一致,未知字段不得自行忽略。连线删除(包括旧
REJECT展示边清理)不套用局部展示例外,按实际影响另行核验。 - 影响范围包含改动对象、其入出边、标签及移动前后占用或穿过的区域;其他节点或边只要与这些对象发生遮挡、交叉、共线或路径关联,也纳入检查,不能只按文件行数或几何邻近裁剪。确认业务语义差异为零,再核对该范围内锚点、文案、路径与标签可读性。
- 可对前后版本运行全图静态扫描,用节点/边标识对照新增、消除、保留的问题,结合逐段阅读区分历史与本次影响;不能用总数不增加掩盖新问题。修复目标应达成,历史问题不得恶化;与本次影响无关的旧问题记录为已知问题,不自动扩为整图整改,也不宣称全图符合新规范。
- 基线无法核实、差异来源不明、语义是否变化无法证明或影响范围无法界定时,不使用局部例外;先补证据,必要时按实际业务变更或整图任务执行。此要求不授权扩大业务修改范围。
局部修复获得用户授权后,导入仍执行下文版本保护、节点和连线一致性及重复行检查;浏览器验证按根 AGENTS.md 由 Agent 判断或按用户显式要求执行。选用后在设计器和业务流程图中查看整图概况及受影响区域,避免遗漏跨区域连线。流程 JSON 修改或升版默认由 Agent 完成 dev、prod 同步及必要发布/启用,不交给用户手动导入;当次限制、prod 不可达即交付及具体步骤见双环境同步,授权以根规则为准。
画布与分组
- 面向横屏按业务阶段从左到右阅读;前置串行链过长时可在阶段交界处折返或分栏,但每个局部分支组内部保持从左到右推进。折返处要有明确留白,避免读者沿线回到已读区域后再寻找下一节点。
- 并行、包容或互斥分支在同一局部区域展开:入口、各分支、汇聚和共同后续应能在一次局部浏览中看清。尽量让分支共享相近的起止列,分别占用上下轨道;不把分叉和汇聚拆到远处,也不在组内放入无关节点。分叉与汇聚的网关类型按引擎语义保持(互斥 ✕、并行 +、包容 ○),不因排版互换类型。
- 分支完成后的共同后续节点放在分支组的出口方向;长路径沿画布留白绕行,禁止穿过节点、与其他线重叠或遮挡节点文案。
- 网关本体不写说明;节点名称只表达“谁办理什么”,判断条件、类别、是否出图等上下文写在网关的出边上。
画布尺寸与屏幕适配
- 以办理节点和条件文字能读清为尺度,不规定整图一屏高度、两屏宽度、固定行数或每行节点数。复杂流程允许横向及必要的纵向滚动;整图适应视口只用于定位,逐段阅读时应能放大到清晰倍率。不得为了满足画布数字把业务顺序压成反复左右蛇形。
- 先按阶段排布,再收紧阶段之间的空白。相邻普通节点通常保留约 50~100px 净空,分支轨道要留出卡片、标签和连线的空间;具体间距以实际渲染为准。纵向堆叠只用于有业务含义的并行、条件分支或明确的阶段折返,不为减少横向滚动任意增加行数。
- 对每个主要入口,从左到右逐段追踪到结束:记录需要反向追线或跨越无关区域的长线、必须同时查看却被拆到远处的入口/汇聚、在常用倍率下读不清的文案。优先通过移动业务块消除这些问题,再调整折点和标签;画布宽高与缩放数值只作为观察结果,不单独判定好坏。
- 长跨阶段连接应沿留白走清楚的独立通道,尽量在相邻阶段边缘落点;同一节点有多条分支时,出线方向和标签顺序应与上下轨道一致。局部连线可短而直;不要让大量折点、外圈回绕或追线距离掩盖了零交叉统计。
节点与边文案
- 节点名称先精简再换行:只保留能唯一区分节点的最短表述,删去说明性括号(如“(是否需要……)”)、与分类重复的类别词和“(如有)”等尾注。
- 设计器不会按宽度自动折行,只能按名称里的
\n分行。每行最多 7 个中文字符,最多 3 行;仍写不下时继续精简措辞,不缩小字号、不加宽节点、不写到 4 行以上。 - 同一流程内不使用只差一两个字的近似名称;类别(I/II/III/IV)、出图/不出图等已经由分流边表达的信息,不重复写入节点名称。
- 普通审批边保持
skip_type=PASS,但skip_name为null,不显示“通过”等冗余文字。 - 仅关键分流边设置简短
skip_name,例如“有总包/无总包”“系统设备/分公司”“仅 I 类”“需出图/无需出图”“I 类/II 类”。 - 新建或整图重排不画退回连线(
skip_type=REJECT);局部展示修复与存量原样导入的历史差异按上文任务范围及第 6 条处理。退回发起节点由办理页动作按传入的目标节点直接跳转,引擎不查退回连线,图上的退回线只会增加交叉、重叠和“退回”冗余标签。子手续完成后回到父节点的 PASS 业务闭环线不属于退回线,必须保留。 coordinate末尾可用|标签坐标固定关键边标签的位置,避免标签压住网关或节点;无标签的普通边不得附加标签坐标。- 新建或整图重排时,连线之间不得交叉、不得穿过节点或压住节点名称与边标签;任意两条连线不得共享难以辨认去向的长线段。确属同一分支起点的短共段可保留,但须能清楚分辨各出线。回到父节点的业务闭环线(子手续完成后回父节点重新判断)使用独立通道,必要时改变锚点和节点位置消除共线;局部展示修复与存量原样导入的旧差异按相应范围记录。
四向锚点与坐标
流程 JSON 的节点坐标是中心点;新建或整图重排的连线坐标必须使用所用设计器模型的四向连接点,不能从节点中心或估算的任意位置出线。下表尺寸按 CLASSICS 设计器模型取值:普通办理节点 100 × 80,网关为 50 × 50 菱形,开始/结束节点半径 25。新建流程时「设计器模型」必须选 CLASSICS;存量定义先核对实际模型。MIMIC 模型是另一套尺寸(办理与开始节点为 220 × 80 卡片、网关 70 × 30、结束节点半径 20),不能套用 CLASSICS 锚点表。
| 节点类型 | 中心坐标 (x, y) 的可用锚点 |
|---|---|
| 普通办理节点 | (x-50,y)、(x+50,y)、(x,y-40)、(x,y+40) |
| 网关 | (x-25,y)、(x+25,y)、(x,y-25)、(x,y+25) |
| 开始/结束节点 | (x-25,y)、(x+25,y)、(x,y-25)、(x,y+25) |
节点坐标除中心点外可再带一段 |文本坐标,写成 x,y|文本x,文本y;设计器保存时会写入,文本坐标默认与中心点重合,手写时可省略。
边坐标格式为 起点;中间折点;终点|标签坐标。起点和终点必须分别是源、目标节点的锚点。
连线优先使用少折点的水平、垂直或正交路径;分支扇出、汇聚及跨阶段连接在斜线更容易辨认、且不会穿节点、交叉或压标签时可使用短直线或斜向过渡。所有端点仍须落在四向锚点,不能为了线形而连接到卡片任意位置。例:网关中心为 (800,200)、目标办理节点中心为 (1000,320) 时,可写为:
json
"coordinate": "825,200;900,200;900,320;950,320|900,260"这条线从网关右侧锚点出发,进入目标节点左侧锚点,标签位于中段,不会出现“飞在空中”的断连视觉。
版本与核验
- 已发布、已启用或可能被在途实例使用的定义不直接改写;复制为
V(n+1)后再导入和发布。 - 所有导入先核对节点数、连线数、节点编码、条件表达式与业务基线一致,确认条件和网关配对正确。新建或整图重排还须在导入前完成静态核验:节点名称每行不超过 7 个中文字符、不超过 3 行;关键边均有边标签,普通边无标签;网关节点的名称为空;不存在
REJECT退回连线。局部展示修复按上文基线与证据要求检查受影响范围;存量原样导入按第 6 条记录既有展示差异。 - 新建或整图重排时,对每条边核验首尾是否落在所用设计器模型的四向锚点;正交线和斜线都检查穿节点、交叉、压节点名称与边标签,并检查局部分支组是否完整、标签是否能对应到出线。
- 新建或整图重排时,核验任意两条连线不得交叉或穿过节点,共用段不得造成去向歧义;回到父节点的业务闭环线走独立通道。局部展示修复和存量原样导入中保留的历史布局差异按相应规则记录,不据此声明全图布局合规。
- 导入后按根规则决定是否执行浏览器验证,用户显式要求时执行。选用后用流程设计器和业务流程图分别查看整图概况,并按任务类型逐段核验受影响范围;新建、整图重排或影响无法界定时逐段覆盖整图,重点检查业务顺序、反向长线、分支汇聚、边标签、节点遮挡和常用倍率下的文字可读性;存量原样导入仍须报告旧布局问题,布局修正仅产生新版本 JSON,不回写旧版本定义。
- 存量原样导入仅指本次目标在当前环境已有可核对的旧版定义,且本次导入内容与该版本逐字段一致;遵守第 1 条所需的定义 ID、版本元数据变动除外。内容发生改动时不再属于原样导入,按上文任务类型判定局部展示修复、整图重排或业务变化;无法核实旧版内容时不得援引原样导入例外。原样导入前逐项记录已存在的锚点偏差、交叉或共线、名称或标签超限、
REJECT等展示差异;这类旧问题不单独阻断本次导入,也不得称为符合新图规范。flow/czw/、flow/sqe/两个目录下的全部定义与engineering_procedure_v1.json沿用历史坐标;其余既有定义此前按旧尺寸表(办理节点100 × 50、开始/结束半径20)出图,上下方向进出办理节点、进出开始/结束节点的端点可能落在节点内部。新建或整图重排时修正全图差异;局部展示修复按实际影响范围处理,不因升级版本自动扩大整改。原样例外不豁免业务语义、条件与网关、版本及在途实例保护、第 7~8 条的 MCP 重复行检查或按根规则选定的验证。 - 导入或再次保存定义后,只核对本次目标
DEFINITION_ID和版本内的节点、连线:同一DEFINITION_ID + NODE_CODE不应重复,同一DEFINITION_ID + NOW_NODE_CODE + NEXT_NODE_CODE + SKIP_TYPE + SKIP_CONDITION不应重复。设计器重复保存会追加历史行;发现重复时先停止发布,核对版本、在途实例和任务引用,只有确认是重复保存产生且不被在途实例依赖时,才通过项目 MCP 受控处理,否则保留并列入待裁决;澄清与暂停边界按根AGENTS.md执行,其余不依赖该项的核验和导入工作继续。 - 用本次目标定义 ID 替换占位符执行自检,例如
SELECT DEFINITION_ID, NODE_CODE, COUNT(*) FROM FLOW_NODE WHERE DEFINITION_ID = <本次定义 ID> GROUP BY DEFINITION_ID, NODE_CODE HAVING COUNT(*) > 1;连线按同一DEFINITION_ID及四个连线字段组合核对。结果只支持本次定义的导入结论,不把其他流程的历史重复行作为本次阻塞条件。