with one click
requirements-flowchart
// **流程图绘制规范技能** — 在 draw.io 中按照团队标准绘制业务流程图。 USE FOR: 创建任何业务流程图、系统流程图、泳道图;生成符合团队视觉规范的 .drawio XML; 需要色标、节点结构、编码规范时。 DO NOT USE FOR: 非流程类的架构图、UML 类图等。
// **流程图绘制规范技能** — 在 draw.io 中按照团队标准绘制业务流程图。 USE FOR: 创建任何业务流程图、系统流程图、泳道图;生成符合团队视觉规范的 .drawio XML; 需要色标、节点结构、编码规范时。 DO NOT USE FOR: 非流程类的架构图、UML 类图等。
| name | requirements-flowchart |
| description | **流程图绘制规范技能** — 在 draw.io 中按照团队标准绘制业务流程图。 USE FOR: 创建任何业务流程图、系统流程图、泳道图;生成符合团队视觉规范的 .drawio XML; 需要色标、节点结构、编码规范时。 DO NOT USE FOR: 非流程类的架构图、UML 类图等。 |
| tools | ["create_file","read_file","replace_string_in_file"] |
第一步(必须):读取完整规范文件
.github/standards/01-flowchart.md
该文件是唯一权威规范来源,包含:画布设置、泳道结构、三层节点模板、色标体系、连接线规范、编码格式、验证清单(15 项)等。
第二步:读取骨架模板作为 XML 起点
.github/skills/requirements/flowchart/templates/skeleton.drawio
| 最常用模块 | fillColor | strokeColor |
|---|---|---|
| 生产/物流 | #dae8fc | #6c8ebf |
| 质量管理 | #cdeb8b | #36393d |
| 采购管理 | #f8cecc | #b85450 |
| 开始/结束 | #76608a | #432D57 |
| 层 | 高度 | 字号 | 颜色 |
|---|---|---|---|
| ① 编码层 | 12px | 10px | 白底 |
| ② 名称层 | 30px | 14px | 模块色 |
| ③ 岗位层 | 12px | 10px | #eeeeee |
| GROUP 总计 | 54px | — | 宽 76.82px |
[流程编码]-[类型]-[序号] 例:MP-01-E-01
E=金恒平台 C=异质系统 M=人工作业
与 spec 文档联动时,[流程编码] 改用 spec §十.2 的
[子模块代码]-A-[NN](如PMMB-A-02-E-01),并须与 spec 4.x.2 活动说明表逐字一致(FC-01)。
| 任务 | 使用方式 |
|---|---|
| 创建新流程图 | 使用 .github/prompts/create-flowchart.prompt.md |
| 验证已有流程图 | 使用 .github/prompts/validate-flowchart.prompt.md |
| 查阅完整规范 | 读取 .github/standards/01-flowchart.md |
所有流程图生成/修改必须遵循「绘制 → 验证 → 修复 → 复验」循环,不允许跳过验证直接交付。
[阶段1] 绘制(按规范生成 XML)
↓
[阶段2] 验证(执行20项检查清单)
↓ 有失败项?
[阶段3] 修复(按01-flowchart.md §十七修复协议)
↓
[阶段4] 复验(全20项通过)→ ✅ DONE
| 规则 | 说明 |
|---|---|
| 验证范围 | 执行 standards/01-flowchart.md §十五 全 20 项检查(含跨文档 5 项) |
| 修复优先级 | 跨文档一致性(16-20)→ GROUP 结构(4-8)→ 编码格式(14)→ 其他 |
| 与 spec 联动 | 若对应 spec 文档已存在,第 16-20 项(跨文档)为必检;spec 未生成时标记为「暂挂-Pending」 |
流程图绘制完成后,若对应的需求设计说明书已存在,必须额外执行以下联动检查(对应验证清单 16-20 项):
| 检查项 | 流程图端 | spec 文档端 | 一致性要求 |
|---|---|---|---|
| FC-01 | XML 活动节点编码层文字 | 4.x.2 活动说明表「活动编码」列 | 完全相同,双向无遗漏 |
| FC-02 | swimlane value 属性(泳道名) | 2.2 岗位定义表「岗位名称」列 | 字面完全匹配 |
| FC-03 | 非虚线系统活动节点数量 | 4.x.3 对照表非「线下操作」行数 | 数量相等 |
| FC-04 | 流程编码(流程总标题括号内) | 4.x.1 流程清单「流程编码」列 | 格式 [MODULE]-A-[NN] |
| FC-05 | 活动 E-NN 编码序列 | — | 同流程内从 E-01 连续递增 |
冲突处理原则:以 spec 文档为准。若 spec 未生成,流程图使用占位符
[TBD-E-01],待 spec 完成后回填编码并重新执行第 16-20 项验证。
<mxGraphModel
dx="1665" dy="849"
grid="1" gridSize="10" guides="1"
tooltips="1" connect="1" arrows="1" fold="1"
page="1" pageScale="1"
pageWidth="1169" pageHeight="827" <!-- 横版 A4;竖版则 827×1169 -->
math="0" shadow="0">
<mxCell value="<p style="line-height: 130%;"><font style="font-size: 22px;">[流程名称]([流程编码])</font></p>"
style="swimlane;html=1;childLayout=stackLayout;resizeParent=1;resizeParentMax=0;
startSize=30;
gradientColor=#7ea6e0;fillColor=#dae8fc;strokeColor=#6c8ebf;
fontSize=15;spacing=2;"
vertex="1" parent="1">
<mxGeometry x="..." y="..." width="[总宽]" height="[总高]" as="geometry" />
</mxCell>
| 属性 | 值 |
|---|---|
| 填充色 | #dae8fc(浅蓝) |
| 渐变色 | #7ea6e0 |
| 边框色 | #6c8ebf |
| 标题高 | startSize=30 |
| 标题字号 | 22px,line-height: 130% |
<mxCell value="<span style="font-size: 18px;">[部门名称]</span>"
style="swimlane;html=1;startSize=25;
fillColor=#f5f5f5;strokeColor=#666666;gradientColor=#b3b3b3;"
vertex="1" parent="[主容器id]">
<mxGeometry y="30" width="[子宽]" height="[总高-30]" as="geometry" />
</mxCell>
| 属性 | 值 |
|---|---|
| 填充色 | #f5f5f5(浅灰) |
| 渐变色 | #b3b3b3 |
| 边框色 | #666666 |
| 标题高 | startSize=25 |
| 标题字号 | 18px |
| 竖向起始 | y="30"(主容器标题高度) |
子泳道宽度:每个子泳道宽度根据内容决定,一般 200–450px;同一流程各子泳道高度保持一致。
每个操作节点均为 3 层垂直 GROUP,从上到下:
┌──────────────────────────────┐ ← ① 活动编码(12px 高,白底)
│ XXXX-X-XX │
├──────────────────────────────┤ ← ② 活动内容(30px 高,模块色填充)
│ 活动名称 │
├──────────────────────────────┤ ← ③ 操作岗位(12px 高,灰底)
│ 岗位名称 │
└──────────────────────────────┘
标准宽度:76.82px(group 整体),总高:54px
<!-- GROUP 容器 -->
<mxCell id="[id]-g" value="" style="group" connectable="0" vertex="1" parent="[泳道id]">
<mxGeometry x="[x]" y="[y]" width="76.82" height="54" as="geometry" />
</mxCell>
<!-- ① 活动编码 -->
<mxCell id="[id]-a" value="<font style="font-size: 10px;">[活动编码]</font>"
style="rounded=0;whiteSpace=wrap;html=1;"
vertex="1" parent="[id]-g">
<mxGeometry width="76.82" height="12" as="geometry" />
</mxCell>
<!-- ② 活动内容(矩形节点示例,颜色按模块替换) -->
<mxCell id="[id]-b" value="<span style="font-size: 14px;">[活动名称]</span>"
style="rounded=0;whiteSpace=wrap;html=1;
fillColor=[模块填充色];strokeColor=[模块边框色];gradientColor=[模块渐变色];
align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=12;"
vertex="1" parent="[id]-g">
<mxGeometry y="12" width="76.82" height="30" as="geometry" />
</mxCell>
<!-- ③ 操作岗位 -->
<mxCell id="[id]-c" value="<span style="font-size: 10px;">[岗位]</span>"
style="rounded=0;whiteSpace=wrap;html=1;fontSize=15;
fillColor=#eeeeee;strokeColor=#36393d;verticalAlign=middle;"
vertex="1" parent="[id]-g">
<mxGeometry y="42" width="76.82" height="12" as="geometry" />
</mxCell>
线下操作:GROUP 整体加
dashed=1;dashPattern=8 8;,三层子元素也各自加dashed=1;。
| 模块 | fillColor | strokeColor | gradientColor | fontColor |
|---|---|---|---|---|
| 生产管理 / 物流管理 | #dae8fc | #6c8ebf | #7ea6e0 | default |
| 质量管理 | #cdeb8b | #36393d | — | default |
| 销售管理 / 营销 | #ffcc99 | #36393d | — | default |
| 采购管理 | #f8cecc | #b85450 | — | default |
| 成本管理 | #ffe6cc | #d79b00 | — | default |
| 计量管理 | #f5f5f5 | #666666 | — | #333333 |
| 安防管理 | #e1d5e7 | #9673a6 | — | default |
| 安全管理 | #ffff88 | #36393d | — | default |
| IT 开发 / 数据平台 | #fad9d5 | #ae4132 | — | default |
| 设备管理 | #b0e3e6 | #0e8088 | — | default |
| 能源管理 | #fff2cc | #d6b656 | — | default |
| 环保管理 | #d5e8d4 | #82b366 | — | default |
| 炼钢智能化 | #1ba1e2 | #006EAF | — | #ffffff |
| 轧钢智能化 | #60a917 | #2D7600 | — | #ffffff |
| BIP 异质系统 | #e6d0de | #996185 | #d5739d | default |
| 子流程/模型(通用绿) | #d5e8d4 | #82b366 | #97d077 | default |
废钢闭环管理:沿用各参与模块的色标,不单独配色。
| 场景 | shape 属性 | 说明 |
|---|---|---|
| 系统操作(在线) | rounded=0(矩形) | 最常用,色填充 |
| 子流程 / 调用其他流程 | shape=process;backgroundOutline=1 | 两侧有竖线的矩形 |
| 系统表单 / 多文档数据 | shape=mxgraph.flowchart.multi-document | 波浪多页图形 |
| 单份单据 / 报告 | shape=document | 单波浪文档 |
| 逻辑判定 / 决策 | rhombus | 菱形,fillColor=#cdeb8b;strokeColor=#36393d |
| 开始 / 结束节点 | shape=mxgraph.flowchart.terminator;strokeWidth=2 | 圆角矩形,fillColor=#76608a;strokeColor=#432D57;fontColor=#ffffff |
| 移动端操作图标 | shape=mxgraph.office.devices.cell_phone_android_standalone;fillColor=#505050;strokeColor=none | 纯图标,加底部文字标签 |
| 警示 / 提醒图标 | shape=mxgraph.office.concepts.whats_new;fillColor=#505050;strokeColor=none | 纯图标 |
| 检核点图标 | SVG image 节点(见下方模板) | 蓝色勾选图标 |
| 子流程边界框 | rounded=1;dashed=1;dashPattern=8 8;fillColor=[模块色];strokeColor=[模块边框] | 圆角虚线矩形,圈住相关节点 |
<mxCell value="开始"
style="strokeWidth=2;html=1;shape=mxgraph.flowchart.terminator;
whiteSpace=wrap;fillColor=#76608a;strokeColor=#432D57;fontColor=#ffffff;"
vertex="1" parent="[泳道id]">
<mxGeometry x="[x]" y="[y]" width="61" height="20" as="geometry" />
</mxCell>
<mxCell style="edgeStyle=orthogonalEdgeStyle;rounded=0;
orthogonalLoop=1;jettySize=auto;html=1;
exitX=0.5;exitY=1;exitDx=0;exitDy=0;
entryX=0.5;entryY=0;entryDx=0;entryDy=0;"
edge="1"
source="[源节点-name层id]" <!-- ← exit from name层(可视节点体底部/侧面) -->
target="[目标节点-code层id]" <!-- ← entry to code层(整个GROUP顶部) -->
parent="[同泳道时=泳道id;跨泳道时=外层主容器id]">
<mxGeometry relative="1" as="geometry" />
</mxCell>
⚠️ 关键规则(来自真实参考文件验证)
- source 必须指向 name 层(
[id]-name),从 name 层底部/侧面退出- target 必须指向 code 层(
[id]-code),从 code 层顶部/侧面进入- 跨泳道连接:
parent必须设为外层主容器 id,不是子泳道 id
| 规则 | 说明 |
|---|---|
| 只用直角折线 | edgeStyle=orthogonalEdgeStyle |
| 不用圆角 | rounded=0 |
| 优先上→下 | exitY=1 → entryY=0 |
| 水平流 | exitX=1 → entryX=0 |
| source 层级 | name 层(节点可视体,[id]-name) |
| target 层级 | code 层(GROUP 顶部,[id]-code) |
| 跨泳道 parent | 外层主容器 id,非子泳道 id ⚠️ |
<mxCell style="edgeStyle=orthogonalEdgeStyle;rounded=0;
orthogonalLoop=1;jettySize=auto;html=1;
shape=flexArrow;"
edge="1" parent="[父容器id]">
<mxGeometry relative="1" as="geometry">
<mxPoint x="[x1]" y="[y1]" as="sourcePoint" />
<mxPoint x="[x2]" y="[y2]" as="targetPoint" />
</mxGeometry>
</mxCell>
用于强调系统边界之间的大批量数据传递。
<mxCell style="endArrow=classic;html=1;rounded=0;" edge="1" parent="1">
<mxGeometry relative="1" as="geometry">
<mxPoint ... as="sourcePoint" />
<mxPoint ... as="targetPoint" />
</mxGeometry>
</mxCell>
<!-- 标签跟随 -->
<mxCell value="[数据名称]" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];"
connectable="0" vertex="1" parent="[线条id]">
<mxGeometry x="-0.3" relative="1" as="geometry"><mxPoint as="offset" /></mxGeometry>
</mxCell>
在菱形节点出发的线条上,必须标注判定结果,如「是」「否」、「通过」「拒绝」等:
<mxCell value="是" style="edgeLabel;html=1;align=center;verticalAlign=middle;resizable=0;points=[];"
connectable="0" vertex="1" parent="[连接线id]">
<mxGeometry x="-0.2" y="-1" relative="1" as="geometry"><mxPoint as="offset" /></mxGeometry>
</mxCell>
[系统代码] - [流程编号] - [操作类型] - [活动编号]
(2字母) (2位数字) (1字母) (2位数字)
| 部分 | 值 | 含义 |
|---|---|---|
| 系统代码 | MP | 生产管理(Manufacturing Process) |
| 流程编号 | 01 | 该系统第1个流程 |
| 操作类型 | E | 金恒平台操作(E=Electronic Platform) |
| 活动编号 | 01 | 该流程第1个活动 |
| 完整编码 | MP-01-E-01 | — |
| 标识 | 含义 |
|---|---|
E | 金恒平台(系统在线操作) |
C | 异质系统(第三方/外部系统) |
M | 人工作业(线下/手动操作) |
流程(模型)层级编码:
MP-01(系统代码 + 流程编号)
活动层级编码:在流程编码基础上追加操作类型和活动编号
mxPoint 手动折点绕过障碍。(节点数 × 节点宽 + 列间距) 计算。<mxPoint>。| 位置 | 字号 | 字体 | 加粗 |
|---|---|---|---|
| 外层容器标题 | 22px | 默认 | 否(HTML 标签控制) |
| 子泳道标题 | 18px | 默认 | 否 |
| 活动名称(节点中层) | 14px | Helvetica | 否 |
| 活动编码(节点顶层) | 10px | 默认 | 否 |
| 岗位标签(节点底层) | 10px | 默认 | 否 |
| 数据标签(文档图形) | 8–10px | 默认 | 否 |
#76608a 紫色)当多个活动节点属于同一子流程时,用虚线圆角矩形框住:
<mxCell value="" style="rounded=1;whiteSpace=wrap;html=1;
dashed=1;dashPattern=8 8;
fillColor=#dae8fc;strokeColor=#6c8ebf;fillColor=none;"
vertex="1" parent="[泳道id]">
<mxGeometry x="[x]" y="[y]" width="[w]" height="[h]" as="geometry" />
</mxCell>
边界框必须在节点之下(z-order 更低),不遮挡节点文字。填充色用模块透明或极浅色。
数据节点(单据、报表、文档)独立于操作节点,置于产生它的节点旁边,紧邻但不重叠:
<!-- 多份文档(multi-document) -->
<mxCell value="[文档名称]"
style="html=1;shape=mxgraph.flowchart.multi-document;whiteSpace=wrap;
fillColor=[模块色];strokeColor=#36393d;
rounded=0;align=center;verticalAlign=middle;fontSize=8;"
vertex="1" parent="[泳道id]">
<mxGeometry x="[x]" y="[y]" width="50" height="22" as="geometry" />
</mxCell>
数据节点通常置于产生它的操作节点右侧或下方偏右,不加入主流程连接线。
每个 drawio 文件的第一个 tab 必须是「流程标准定义」图例页,包含:
<mxCell id="ex-g" value="" style="group" connectable="0" vertex="1" parent="[泳道id]">
<mxGeometry x="160" y="422" width="76.82" height="54" as="geometry" />
</mxCell>
<mxCell id="ex-a" value="<span style="font-size: 10px;">SMSC-A-01-E</span>"
style="rounded=0;whiteSpace=wrap;html=1;"
vertex="1" parent="ex-g">
<mxGeometry width="76.82" height="12" as="geometry" />
</mxCell>
<mxCell id="ex-b" value="<span style="font-size: 14px;">销售订单</span>"
style="rounded=0;whiteSpace=wrap;html=1;
fillColor=#ffcc99;strokeColor=#36393d;
align=center;verticalAlign=middle;fontFamily=Helvetica;fontSize=12;"
vertex="1" parent="ex-g">
<mxGeometry y="12" width="76.82" height="30" as="geometry" />
</mxCell>
<mxCell id="ex-c" value="<span style="font-size: 10px;">行销部</span>"
style="rounded=0;whiteSpace=wrap;html=1;fontSize=15;
fillColor=#eeeeee;strokeColor=#36393d;verticalAlign=middle;"
vertex="1" parent="ex-g">
<mxGeometry y="42" width="76.82" height="12" as="geometry" />
</mxCell>
绘制完成后逐项核查:
#76608a)[系统]-[流程]-[类型]-[序号] 规范**术语 / 字段词典技能** — 为一个项目/模块建立统一语言(Ubiquitous Language)中央词典: 字段中文名↔英文名↔类型单一映射、枚举/状态码统一取值、领域码/模块码/系统简码全局登记。 作为 spec / 数据库 / 接口字段对齐的中央锚点,把字段对不齐从「评审时发现」提前到「设计时杜绝」。 USE FOR: 建立/维护术语字段词典;登记新字段的标准中英文名与类型;统一枚举状态码取值; 登记领域码/模块码/系统简码;校验 spec/DB/接口字段是否都在词典中(词典外字段告警)。 DO NOT USE FOR: 生成 spec/DB/接口本身(用对应 create skill); 集成评分评审(用 cross/design-review/SKILL.md)。
**设计集成评审技能** — 把需求设计(spec)、数据库设计(DB)、接口设计(IF)三份产物聚合成一份 量化评审报告:综合评分(4 等级)、P0/P1/P2 分级问题清单、spec→接口→表 追溯矩阵、跨文档联动校验、修复任务。 USE FOR: 对一个模块/分册做整体设计评审;检查需求/数据库/接口三份文档是否一致闭环; 生成评审报告 / 评分报告 / 设计质量报告;复评(修复后再评分)。 DO NOT USE FOR: 只评单一文档(DB 用 data/database/sub/04;接口用 api/restful/sub/04); 生成设计本身(用对应的 create skill)。
**需求设计说明书编写技能** — 按照团队标准生成系统需求设计说明书(单模块卷)。 USE FOR: 生成需求设计说明书全文或任意章节;编写系统目标/组织架构/总体设计; 编写子模块流程清单/流程说明/活动说明表;编写功能 IPO 表(处理逻辑); 生成报表设计说明;补全已有说明书的缺失章节。 DO NOT USE FOR: 流程图绘制(用 requirements/flowchart/SKILL.md); 数据库设计、接口设计、代码设计。
**接口设计技能** — 按照团队标准生成接口设计(系统集成报文 + HTTP/RESTful)。 USE FOR: 设计系统集成接口(触发条件五要素 + 主档/明细档报文 + JSON 示例); 设计 HTTP/RESTful 接口(URL/Method/状态码/统一响应包装);从需求说明书(spec)功能编码推导接口清单; 设计错误码、安全方案、幂等重试;审查已有接口设计是否符合规范。 DO NOT USE FOR: 数据库设计(用 data/database/SKILL.md);需求说明书(用 requirements/spec/SKILL.md); 流程图(用 requirements/flowchart/SKILL.md)。
**数据库设计技能** — 按照团队标准生成数据库设计(ER 图 / DB 清单 / 数据字典 / DDL)。 USE FOR: 设计数据库表结构、ER 图、实体关系;从需求说明书(spec)的 IPO 表推导数据表; 编写数据字典(10 列标准表);生成 DDL 建表脚本(含系统字段、索引、注释); 设计变更履历表(_log/_resume);审查已有数据库设计是否符合规范。 DO NOT USE FOR: 接口设计(用 api/restful/SKILL.md);需求说明书(用 requirements/spec/SKILL.md); 流程图(用 requirements/flowchart/SKILL.md)。