架构图IE(技术路线图 / 架构图绘制)
概述
本技能将用户的技术方案、项目规划或系统组成描述转化为可编辑的 PPTX 框图(技术路线图、架构图、框架图、流程图等)。核心约束:
- 字体:全文统一使用微软雅黑(含中文 East Asian 字体设置,不能只设 Latin 字体)。
- 对齐:同一区域(同一层/ 同一栏 / 同一分组)内的框必须等宽、同类框等高、间距相等;跨层节点中心线对齐。脚本按全局网格统一尺寸,不依赖手工微调。
- 箭头指向清晰:端点落在形状边界外侧间隙处,线体与箭头全部位于框外;每条连线末段必须有可落脚线体(不得出现"只见箭头不见线");双向连线必须写关系词说明两个方向各是什么关系,否则改为单向。
- 边界清晰:分层 / 分栏 / 分区 / 泳道之间各有边框区分范围;最外层有一个整体框包住全部内容(
outer_frame),使整图边界一目了然。 - 无重叠:任何文字、箭头、边框之间不得重叠。
- 框内饱满:框体尺寸与文字量匹配,不留过多空白;文字过多时优先加大框体或精简文案,而非缩小字号到不可读。
- 不体现参考来源:图中任何位置(图题、节点、标签、边标注、页脚)都不得出现"参考来源/ 资料来源 / 数据来源 / 编制依据 / 依据文件 / 摘自 / 引自 / 参见文献"等文字,脚本会拦截并报警。
- 可编辑:输出 PPTX(形状、文字、箭头均可在 PowerPoint/WPS 中直接编辑),仅在用户另行要求时才输出 PNG/SVG 静态图。
工作流程
第 1 步:选布局、定内容
先选 layout(布局引擎),再组织 JSON。六大布局与场景的对应关系:
| layout | 模式 | 适用场景 | 参考图 |
|---|---|---|---|
layered |
分层带式(默认) | 系统组成、技术架构、技术路线图 | 技术路线图1~2、架构图2 |
columns |
左中右三栏式 | 研究框架图(阶段/内容/方法),课题申报最常用 | 架构图11、12、14、15 |
cycle |
环形/三角循环式 | 闭环协同、多要素相互作用、机理阐释 | 架构图1、3~6、8 |
mirror |
对称对照式 | 两状态/两路径对照 + 中央共性机理 | 架构图9、10、13、16 |
flow |
流程链式(含判断分支、泳道) | 业务流程、实施路径、融合机制 | 技术路线图3、架构图7 |
functional |
功能架构式(顶端应用带 + 左中右功能区 + 区内分组模块矩阵 + 区间关系箭头) | 平台功能架构、数字化系统功能架构(单页 40~60 模块) | 架构图17 |
完整选型决策树见 references/style-guide.md 第三节。
reference-gallery选型:确定 layout 后,查 references/style-guide.md 第一节速查表,从 assets/reference-gallery/(33 张样图,按五类子目录归档:研究内容或课题任务内容 6 张、技术路线图 6 张、架构图 18 张、总体思路图 1 张、创新点 2 张)中选出 1~2 张最贴近的参考图,用 Read 工具打开 assets/reference-gallery/<分类>/<文件名> 观察其分组方式、箭头走向、配色细节,作为本次绘图的版式基准。⛔ 图库使用铁律(固化):参考图仅作为版式基准(仅参考风格,不参考内容),节点文案必须来自用户当次输入;参考图的图号、来源、图注、水印文字一律不得写进产出图。后期所有输出图片均按此要求执行。
若用户给出的材料不足以确定节点,先向用户确认层级划分与节点文案,再进入下一步。节点文案必须忠实于用户提供的原始内容,禁止擅自补充或改动语义。
第 2 步:规划层级与节点
先用文字或表格向用户列出图的分层结构和每个框内的文案(框 ID、文字内容、连接关系),确认后再绘制。规划时遵循:
- 每层(或每栏、每环、每泳道)节点数量尽量均衡,单页框数建议不超过 12 个,超出则分页或精简(
functional例外,见下)。 - 文案按"标题词 + 简短说明"组织,单个框内文字控制在 2~3 行。
- 预先确定连接关系(edges),避免绘制后大量交叉线;连线交叉时调整节点位置或
route,而非让线穿过框体。单向关系就用单向箭头;确需双向时写清关系词。
规划功能架构图(layout: functional)时的三条硬规则:
- 先分区、再分组、后排模块:自上而下依次确定
top.bands(应用层)→zones(功能区,用weight分宽度)→groups(能力域)→boxes(叶子模块,用cols排矩阵)。核心区下方多个能力域用grid_cols(3~4)并排,顶部核心分组用span: grid_cols占满整行。 - 关系用
links表达,不用edges硬连:功能架构图单页常有 40~60 个模块,模块级连线必然穿框。区与区之间的关系(逻辑、支撑、交互、数据流)一律用顶层links,引用"zone:N"(功能区,从 0 起)或"__band_N"(应用带,从 0 起),脚本在两框相向边缘之间画短双向箭头(落在区间空档,绝不穿框)。style选语义:call调用/交互、support支撑、data数据流、feed反馈。 - 关系词必须写全:每条
links都要有label,明确"谁对谁、是什么关系"(如"数据接入""服务支撑""能力输出""应用支撑""结果反馈"),这是功能架构图的信息重点,不可只画箭头不写文字。
跨区等高(functional 默认开启):各功能区的分组行数不同,若各区各自撑满,会出现"左区模块比右区高"的错位。脚本先用 _global_row_h 算出每个区能容纳的最大行高,取全局最小值作为统一行高,全图叶子模块因此等高、横向对齐成行。确需各区独立撑满时置"uniform_row_h": false。
第 3 步:编写 JSON 描述文件
按 references/spec-format.md 编写 JSON。字段组织方式随 layout 而异:顶层通用字段(title/font_size/legend/footer/outer_frame)通用,但节点数组的容器不同——layered 用 layers[].boxes,columns 用 columns[].boxes 或 columns[].groups[].boxes,cycle 用 center + ring,mirror 用 left/right/center,flow 用 nodes(+lanes),functional 用 top.bands + zones[].groups[].boxes(+links)。切勿混用。
分层边框与整体框由脚本自动生成,通常无需在 JSON 里手写:layered/columns/mirror/flow/functional 会自动为每一层、每一栏、每条泳道、每个功能区画出边框,并自动在最外层加一个整体框(outer_frame 默认开启,且绘图区已自动扣除其留白,故不会压住图题)。需要微调时用 outer_frame(label 写整体名称、enabled:false 关闭、pad 调留白、line/line_w 调样式)与各层/栏的 band_line/band_dash。
⛔ 不要在图里写来源:不要把"参考架构图 17""编制依据××标准""资料来源:××"写进 title、footer、节点或边标注。来源信息写在图外的正文/图注里。
第 4 步:生成 PPTX
使用托管运行环境执行生成脚本(不要使用系统全局 Python):
PY="$HOME/.workbuddy/binaries/python/envs/default/Scripts/python.exe"
"$PY" "$HOME/.workbuddy/skills/architecture-diagram-ie/scripts/build_diagram.py" 描述文件.json 输出文件.pptx --strict
--strict 表示有任何自检警告即以退出码 1 结束,可用于脚本化校验。脚本依赖 python-pptx(已安装于上述隔离 venv)。若迁移到其他机器导致依赖缺失,执行:
"$HOME/.workbuddy/binaries/python/versions/3.13.12/python.exe" -m venv "$HOME/.workbuddy/binaries/python/envs/default"
"$HOME/.workbuddy/binaries/python/envs/default/Scripts/python.exe" -m pip install python-pptx
环境自检(生成六类布局的最小示例,确认脚本与依赖正常):
"$PY" "$HOME/.workbuddy/skills/architecture-diagram-ie/scripts/build_diagram.py" --demo ./out
脚本自动完成布局计算、绘制和自检,问题输出到 stderr,须根据警告调整 JSON 后重新生成,警告清零后再交付。自检项包括:
| 类别 | 检查内容 |
|---|---|
| 重叠 | 框与框重叠、标签压住节点 |
| 穿框 | 连线穿过非端点节点、箭头端点落在框内(未外置) |
| 溢出 | 文字宽度/高度超出框体、形状越出画布 |
| 对齐 | 同区域同行框宽不一致、同类框高不一致、框间距不等;同列框宽不一致 |
| 箭头 | 连线无有效线段、总长过短不可见、末段过短(箭头有线无)、双向连线缺关系词 |
| 边界 | 节点越出最外层整体框 |
| 来源文字 | 图中任何位置出现"参考来源/编制依据/资料来源/摘自/引自"等字样 |
第 5 步:自检与交付
交付前逐项核对(脚本检查之外的人工核对项):
- [ ] 全文微软雅黑(含数字与英文,未回退为宋体/等线)
- [ ] 同一层/同一栏内各块上下左右边界齐平,宽高一致,间距均匀
- [ ] 箭头端点位于框外,线体不穿过任何框;每条箭头都能看清"从哪来、到哪去"
- [ ] 双向箭头均写有关系词;无"只见箭头不见线"
- [ ] 分层/分栏之间有边框区分边界,最外层有整体框包住全图
- [ ] 无文字溢出框体、无框体重叠、无线条压字
- [ ] 框内留白适度(文字垂直居中,四周留白不超过框高的 1/4)
- [ ] 图题、分层/栏目/泳道标签完整
- [ ] 图中无任何参考来源/编制依据类文字
核对通过后调用 present_files 交付 PPTX,并附一段简要说明图中结构与所采用的 layout。
版式基线(默认值)
- 幻灯片:16:9(13.333 × 7.5 英寸)
- 框体:圆角矩形,白/浅色底 + 深色边框 + 深色文字(主题浅色模式下不得使用深色底);
functional另用虚线框表示分组、细实线框表示功能区 - 配色:按层/栏/环序自动取浅色底 + 深色边框 + 深色字;可按节点或
layer{N}_fill系列字段覆盖。电力/能源类常用蓝(技术层)、绿(目标/能源层)、灰(保障层) - 线条:深灰
#595959,支线 1.75pt、主干 2.0~3.0pt,实心三角箭头,端点自动外移 GAP=0.07in;箭头尺寸按可用线长自动降级(lg→med→sm),保证"线 + 箭头"都可见 - 字号:图题 18pt 加粗;框内标题 11pt(首行加粗)、说明 10pt;层/栏标签 12pt 白字;边标注 9pt 白底;页脚 9pt
- 对齐:同区域同排框统一等宽(
uniform_sizes按全局网格取该排最大值),间距由even_gap均分;flow泳道内同列等宽、同类形状等高;mirror左右两侧取同一宽度 - 边框:分层/分栏/分区边框灰
#A6A6A6、1.0pt(可用band_line/band_dash覆盖);最外层整体框#7F7F7F、1.5pt,内缩留白OUTER_PAD=0.14in,可加outer_frame.label写整体名称
详细的 JSON 字段说明、六种布局的完整示例与故障排查见 references/spec-format.md;配色方案、版式共性规范与 layout 选型指引见 references/style-guide.md(基于 assets/reference-gallery/ 33 张样图提炼)。
资源
scripts/build_diagram.py— JSON 描述 → PPTX 生成器,内置 layered/columns/cycle/mirror/flow/functional 六种布局引擎、微软雅黑字体设置、框外箭头绘制、网格对齐、分层边框与整体框、弧线/折线/汇聚线路由,以及含对齐/箭头/边界/来源文字的完整自检;--demo生成示例,--layouts列出布局。references/spec-format.md— JSON 描述格式规范:通用字段、六种布局各自的 schema 与完整示例、edges 路由表、自检项与故障排查。references/style-guide.md— 风格指南:33 张参考样图(五分类)的 layout 键速查表、版式共性规范、六大布局选型决策树。assets/reference-gallery/— 33 张参考样图,按五类子目录归档:research-content/(6 张)、roadmap/(6 张)、architecture/(18 张)、overview/(1 张)、innovation/(2 张)。绘图的风格与模式参考标准。⛔ 仅作版式基准(仅作风格参考,节点文案仍须来自用户当次输入);不得把图号、来源、图注写进产出图。