ワンクリックで
flowchart
「流程图 / 泳道图 / 审批流 / 状态机」触发。引擎自动选(mermaid / drawio),输出 .svg + .png 供 PRD / IMAP / PPT / 架构图 `<img>` 引用。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
「流程图 / 泳道图 / 审批流 / 状态机」触发。引擎自动选(mermaid / drawio),输出 .svg + .png 供 PRD / IMAP / PPT / 架构图 `<img>` 引用。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
| name | flowchart |
| description | 「流程图 / 泳道图 / 审批流 / 状态机」触发。引擎自动选(mermaid / drawio),输出 .svg + .png 供 PRD / IMAP / PPT / 架构图 `<img>` 引用。 |
| argument-hint | ["主题 或 data 文件"] |
| type | standalone |
| output_format | .svg + .png |
| output_prefix | flow- |
| depends_on | [] |
| optional_inputs | ["baseline"] |
| consumed_by | [] |
| scripts | {"gen_flow_base.py":"双引擎统一生成器 — from gen_flow_base import render_flowchart"} |
独立产出型 Skill。把业务流程 / 审批流 / 状态机 / 因果链路可视化,输出矢量 SVG + 位图 PNG。
双引擎自动 dispatch(按 chart type 字段):
| 引擎 | 触发 type | 适用场景 | 输出文件 |
|---|---|---|---|
| drawio CLI | branch / swimlane | DAG 流程、泳道、决策分支、因果矩阵 | .drawio 多 page 源 + -N.drawio.svg + -N.drawio.png |
| mermaid (mmdc) | state | 状态机(含回路)、生命周期 | -N.mmd 源 + -N.mmd.svg + -N.mmd.png |
不在范围:时序图(用 IMAP 跨端时序)/ 系统架构(用 architecture-diagrams skill)/ UI 跳转图(用 interaction-map skill)。
hook
pre-skill-load-gate守的是「Read 过本文件」不看读了多少行。 改本 skillscripts/gen_flow_base.py:Read 此文件 limit=80即可。 改产出.drawio/.mmd源:脚本生成的,改项目侧gen_flow_v{N}.py重跑而非手改源。
Public API(不可改签名 · 改前看调用方):
render_flowchart(output_path, title, subtitle, charts) — 唯一入口;调用方位置 projects/{产品线}/{项目}/scripts/gen_flow_v{N}.py{type, title, nodes/states, edges/transitions, lanes?} —— 改字段必同步本文件 §核心输出规范会拦你的 hook:
post-script-syntax-check — pyflakes(写 .py 自动跑).drawio / .mmd 自动跑,详见 §自检清单)改完跑啥:
python3 projects/{产品线}/{项目}/scripts/gen_flow_v1.py
# 看 PNG 文字 / 边无重叠
深入读什么:
grep -A 30 "^## 核心输出规范" SKILL.mdgrep -A 15 "^### Step 5" SKILL.mdstate → mermaid(不管有无回路);多角色 / 因果矩阵就用 swimlane;单角色 DAG 流程才用 branchfail,成功终态用 success——不可混用 process 蓝色掩盖语义:(mermaid 语法分隔符),用全角 :,引擎自动转.drawio 提 <mxCell value="..."> 内容、.mmd 提 state label + 边 label 扫M-1 / A-2 / 决策 N 等内部锚点(hook check_plain_language 拦截)flow-,存 projects/{项目}/deliverables/flow-xxx-v1-1.mmd.png / flow-xxx-v1-2.drawio.png每个 chart 产 2 个图像 + 1 个源文件:
flow-xxx-v1-N.{engine}.svg — 矢量,<img> 嵌 HTML / PRD md / Confluenceflow-xxx-v1-N.{engine}.png — 位图,docx 嵌入 + 预览flow-xxx-v1.drawio(drawio 合并多 page)/ flow-xxx-v1-N.mmd(mermaid 各自一文件)— 可编辑源| type | 形状 | fillColor | strokeColor | 用途 |
|---|---|---|---|---|
terminal | 圆角矩形 arcSize=40(胶囊) | #E8E5FF 紫 | #1F2329 黑 | 起点 / 终点 |
process | 圆角矩形 arcSize=18 | #E7EFFE 蓝 | #1F2329 黑 | 处理 / 操作 |
decision | 菱形 rhombus | #FDF3D5 黄 | #1F2329 黑 | 判定(Yes/No 分支) |
success | 圆角矩形 arcSize=18 | #D9F5E5 绿 | #0ECB81 绿描边 | 成功终态 |
fail | 圆角矩形 arcSize=18 | #FEE3E6 红 | #F6465D 红描边 | 失败 / 拦截 |
字体 PingFang SC / Noto Sans SC。决策菱形 180×80,其他节点 160×60(whiteSpace=wrap 自动撑高)。
设计前问一遍:节点之间有没有回路?多角色还是单角色?需不需要状态语义?
| 数据特征 | 选 type | 引擎 |
|---|---|---|
| 节点 = 状态,边 = 触发事件,有回路 | state | mermaid |
| 节点 = 状态,纯单向无回路 | state | mermaid |
| 单角色 DAG 流程 ≤ 15 节点 | branch | drawio |
| 多角色泳道(≥ 2 lane) | swimlane | drawio |
| 因果矩阵(多列动作 × 多层响应) | swimlane | drawio |
{
"type": "state",
"title": "活动生命周期状态机",
"states": [
{"id": "s1", "label": "待补全"},
{"id": "s3", "label": "已上线", "kind": "active"}, # 强调态
{"id": "s5", "label": "已结束", "kind": "terminal"}, # 普通终态
{"id": "s6", "label": "已删除", "kind": "rejected"}, # 异常终态
],
"transitions": [
{"from": "[*]", "to": "s1", "label": "业务系统同步入库"},
{"from": "s2", "to": "s1", "label": "退回字段不达标"}, # 回路天然支持
],
}
字段:id 禁空格 / 特殊字符;kind ∈ {active 绿 / terminal 紫 / rejected 红};[*] 表起点 / 终点。布局自动(dagre / ELK),回路 / 多源汇聚 / 扇出无需 col/row。
{
"type": "branch",
"nodes": [
{"id": "Q1", "type": "decision", "label": "QI 已认证?"},
{"id": "AUTH", "type": "fail", "label": "拦截 + 引导"},
{"id": "DONE", "type": "success", "label": "进入认购"},
],
"edges": [
{"s": "Q1", "t": "AUTH", "label": "否"},
{"s": "Q1", "t": "DONE", "label": "是"},
],
}
布局:base topo BFS 自动算 col/row,decision 向左右展开。精确控制给 col row 字段覆盖。
{
"type": "swimlane",
"lanes": ["投资人", "运营", "风控", "基金经理"],
"nodes": [
{"id": "I1", "lane": "投资人", "col": 0, "type": "terminal", "label": "发起赎回"},
{"id": "R1", "lane": "风控", "col": 2, "type": "decision", "label": "合规?"},
],
"edges": [
{"s": "I1", "t": "O1"},
{"s": "R1", "t": "M1", "label": "是", "sp": "top", "tp": "bottom"},
],
}
字段:lane 必出现在 lanes 列表;col 0-indexed;跨 lane 长跳建议显式 sp/tp 引导路由。
必读:本 SKILL.md + scripts/gen_flow_base.py(API)。
按需:用户原始流程描述(baseline / 会议纪要 / 截图)。
把流程整理成 nodes + edges(branch)或 lanes + nodes + edges(swimlane)。检查清单:
fail,成功终态用 successprojects/{产品线}/{项目}/scripts/gen_flow_v{N}.py:
import sys
from pathlib import Path
BASE = Path(__file__).resolve().parents[4] # 两级产品线 + 项目
sys.path.insert(0, str(BASE / ".claude/skills/flowchart/scripts"))
from gen_flow_base import render_flowchart
CHARTS = [
{"type": "branch", "title": "...", "nodes": [...], "edges": [...]},
]
render_flowchart(
output_path=str(Path(__file__).parents[1] / "deliverables/flow-xxx-v1"),
title="流程图 · XXX",
subtitle="...",
charts=CHARTS,
)
python3 projects/{产品线}/{项目}/scripts/gen_flow_v1.py
输出按 chart type 引擎自动选。打开 PNG 自检。
drawio CLI 不跑 ELK auto-layout。如出现跨 lane 长跳 / 同源多边 label 重叠:
flow-xxx-v1.drawio(drawio desktop 打开)Ctrl+A → Arrange → Layout → Vertical / Horizontal Flow,desktop 内置 ELK 重排File → Export As → SVG / PNG,覆盖原文件回路图直接选 state 走 mermaid,不要硬塞 branch / swimlane。
projects/{项目}/scripts/gen_flow_v{N}.pyprojects/{项目}/deliverables/,前缀 flow-python3 scripts/check_cjk_punct.py projects/{项目}/deliverables/flow-*.{drawio,mmd} --strict 通过python3 scripts/check_plain_language.py projects/{项目}/deliverables/flow-*.{drawio,mmd} --strict 通过(防裸编号)<img src="flow-xxx-v1-N.{mmd,drawio}.svg">(矢量缩放无损).drawio 源文件可视化微调| 现象 | 原因 | 处理 |
|---|---|---|
| 跨 lane 长边 label 重叠 | drawio CLI 不跑 ELK | desktop Ctrl+L 重排 |
| 同源 ≥ 3 带 label 边出口挤 | 同上 | 拆数据 / 手动调端口 sp/tp |
| 中文 lane title 竖排 | drawio horizontal=0 swimlane 对 CJK 默认 | 接受(标准 BPMN 中文风格) |
| 边箭头超出节点 | 节点宽度不够装 label | 拆 label 多行(用 \n) |
当需求涉及多系统对接 / 资金流转,或用户提到「架构图」「技术架构」时触发。超复杂链路中场景清单后、IMAP 前自动接续;也适用于系统设计文档、技术方案评审、风险分析、Phase 路线图等。
「竞品分析 / 调研 / 抓情报 / 采集 XX」触发,丢竞品截图或链接亦触发。「截图 / 截一下」单独不触发。
当 PRD 完成后最终交付前验收,或用户说「拉通检查」「校验一下」「检查一致性」「reader test」时触发。 7 维结构性校验已脚本化(PRD 写入自动跑),本 skill 保留两件脚本替代不了的事:① 多 ❌ 项的修复优先级编排 ② Reader Testing 评审实践。
当用户提到「交互大图」「交互流程图」「IMAP」时触发。 场景清单确认后进入视觉化阶段自动接续触发。
MRD 评审 / 价值评审 / 该不该做触发。判断市场窗口 + UE 模型,输出投票表 + 评审意见。已有报告迭代修改直接编辑 deliverables/mrd-review-*.md,不走此 skill。
当用户提到「PPT」「宣讲材料」「SOP 手册」「多 Tab 信息文档」时触发,产物为 HTML 多 Tab 信息文档。「方案文档」走 prd skill(方案型项目)。