archify · v2.17 · 2026-09-19 · sha256 bfe70f9a2f550aca

archify v2.17A

Immutable. This exact content is served forever at /api/v1/blob/bfe70f9a2f550aca.

---
name: archify
description: 把 WebUI 插件结构、项目结构、工作链路(工作流 / API 调用时序 / 数据流 / 状态生命周期)渲染成可交互的自包含 HTML 图表(内联 SVG,支持缩放、深浅主题、导出 PNG/JPEG/WebP/SVG/WebM)。支持 5 种图:architecture(组件/服务/边界/基础设施)、workflow(流程/审批/工具调用/CI-CD)、sequence(API 调用链/请求生命周期/异步时序)、dataflow(管道/ETL/血缘/消费者)、lifecycle(状态机/重试/等待与终止态)。当用户要求"看懂/画出来/可视化 插件结构、项目结构、工作链路",或要把 Mermaid flowchart/sequenceDiagram/stateDiagram 转成更美观的图表时使用。本技能内置在 WebUI 智能体扩展中,通过 generate_diagram / validate_diagram 工具完成渲染,无需 shell 访问。
license: MIT
metadata:
  version: "2.17"
  author: tt-a1i
  based_on: Cocoon-AI/architecture-diagram-generator (MIT, v1.0)
  distribution: webui-agent-builtin
---

# Archify(内置技能)

把一段小的、带类型的 JSON 规格渲染成自包含、可交互的 HTML 图表。
静态输出是默认行为;仅当用户明确要求演示/汇报时才启用动效。

运行时位置(扩展内置,**无需安装任何依赖**):

```
<EXT>/runtime/archify/
  schemas/<type>.schema.json + common.schema.json   字段契约
  examples/<type>-*.json                            字段形状参考(不是事实来源)
  references/authoring-contract.md                  字段枚举/间距/几何修复规则(按需读)
  references/delivery-contract.md                   交付回执字段(按需读)
```

其中 `<EXT>` 是 sd-webui-agent-dev-2.4 扩展根目录。
用 `read_workspace_file` 读取相对路径即可(如 `webui/extensions/sd-webui-agent-dev-2.4/runtime/archify/schemas/workflow.schema.json`)。
渲染一律通过智能体工具 `validate_diagram` / `generate_diagram` 完成,**不要**让用户去 shell 里手动跑 node。

## 快速创作路径(Fast authoring path)

1. **选类型**:从 5 种中挑一个最贴合问题的(见下方 Type router)。
2. **读契约**:用 `read_workspace_file` 读取三样东西——
   对应类型的 `runtime/archify/schemas/<type>.schema.json`、
   `runtime/archify/schemas/common.schema.json`、
   以及 `runtime/archify/examples/` 下同类型的一个 JSON 示例。
   只读这三个文件。示例只用来学习字段形状,不要照抄其中的事实;新图用新的稳定 ID 和贴合本项目的措辞。
   新建 workflow 用 `schema_version: 2`;只有要保留已有 workflow 的固定几何时才用 `schema_version: 1`。
3. **先写规格**:下一个动作必须写出候选 JSON 规格(用 `repair_workspace_file` 写入
   `webui/extensions/sd-webui-agent-dev-2.4/outputs/diagrams/<名字>.json`,或交给 `generate_diagram` 的 `spec` 字段内联)。
   不要先用文字规划精确坐标。从一条清晰的主路径、短小的旁支、稀疏的标签开始,主节点**最多 12 个**。
   `meta.quality_profile` 设为 `"showcase"`(除非用户明确要高密度的 `standard`)。
   先走自动布线;在诊断明确要求前,不要添加 `via` / `channelX` / `channelY` / `labelAt`。
   每轮修复最多应用 1 个被诊断出的几何控制项。
4. **每次编辑后 validate**:调用 `validate_diagram(type, spec)`。
   showcase 通过要求:9 项 artifact check 全部报告、0 个 composition error、0 个 warning。
   如果规格漏写或拼错 `meta.quality_profile`,先修这个字段再动几何。
   workflow v2 的几何诊断看 validate 返回的编译回执;solver 内部不是创作控制项。
   最终一次 validate 通过后,规格即冻结:之后不要再改它。
5. **交付**:调用 `generate_diagram(type, spec)` 产出 HTML。
   工具内部会做交付校验(deliver);非零退出绝不能描述成成功。
   交付失败会保留上一次的旧产物,所以不要在失败路径上基于旧 HTML 下结论。
   验证失败时:只改被诊断出的 `subject`,依据 `evidence`,从 `supportedFixes` 里选修复,然后重跑。
   当连续两轮都无法把错误数降到新的最小值时,停止并如实报告未解决的诊断。

## Type router

| 类型 | 用于 |
|---|---|
| `architecture` | 组件、服务、云/安全边界、基础设施、插件模块关系 |
| `workflow` | 流程、审批门、工具调用链、runbook、CI/CD、智能体工作链路 |
| `sequence` | API 调用链、请求生命周期、异步 trace、返回路径 |
| `dataflow` | 管道、ETL/ELT、数据血缘、治理、消费者 |
| `lifecycle` | 状态/状态转移、重试、等待与终止态 |

拿不准时,优先读该类型 schema + 示例再判断;场景示例是结构参考,不是要抄的事实。

## Mermaid 输入

用户贴 Mermaid 时:读 Mermaid 拿拓扑与语义,然后**新写** Archify JSON;不要机械搬 Mermaid 样式。

- `flowchart` / `graph` → `workflow`;组件图 → `architecture`。
- `sequenceDiagram` → `sequence`;参与者变成语义参与者,箭头变成消息。
- `stateDiagram` → `lifecycle`;保留状态与转移的语义,不保留 Mermaid 样式。

## 创作不变量(Authoring invariants,摘要)

- 一条显而易见的主路径;旁支从最近的主路径节点分出。低价值边先删,再谈路由控制。
- 默认省略 `meta.visual_preset`(经典风格);只有用户明确要 `signal-flow` / `blueprint` / `editorial` 才设置。
- 默认省略 `meta.subtitle`;绝不编造复述标题/节点的副标题。
- 把桌面查看器当首屏产物;为笔记本与外接显示器生成一份响应式产物,不要为特定设备另做 HTML。
  不要靠 `overflow: hidden`、裁切内容、图内滚动条、拉高 SVG、缩小字体来"假装"通过。
- 默认省略 `meta.legend`(自动);需要时用 `mode: auto|all|hidden`,标签不改语义。
- `meta.locale` 只控制查看器 UI:`"en"` 或 `"zh-CN"`;其他语言省略并明确告知用户查看器 UI 回退为英文。
  渲染器从不翻译你写的内容。
- 精确保留产品名、代码标识符、命令、协议、API 路径、环境变量名(可保留英文)。
- 组件类型:`frontend`、`backend`、`database`、`cloud`、`security`、`messagebus`、`external`;
  变体:`default`、`emphasis`、`security`、`dashed`。
- 关系标签是语义数据。标签冲突时:移动标签 → 调整路由/间距 → 在保住语义的前提下缩短措辞。
  删除标签不是几何修复;只有当两端点完全蕴含该信息且不含协议/动作/方向/同步异步/跨边界机制时才可省略。
- 默认省略 `meta.engineering_profile`;仅当用户明确要生产部署拓扑/所有权移交/失效封闭评审且事实已知时,
  才启用 `deployment-ownership`。启用后不能为了过验证而删掉它。
- 间距指"清晰空隙"而非中心距离:关系标签的空隙必须大于其测量掩码宽度。
- 自动路由拥有端点侧:首末段必须垂直于该侧进出。
- 绝不接受:边穿过无关的不透明节点、歧义的共享走廊、关系标签遮住另一条路由。

需要字段枚举、间距计算、几何修复规则、模式特定布局时,再读
`runtime/archify/references/authoring-contract.md`。

## 交付(Delivery)

- 修复期用 `validate_diagram`,最终一次用 `generate_diagram`。
- `generate_diagram` 会冻结规格字节、渲染并检查、原子提交 HTML,并回执 SHA-256 与字节数。
  这是确定性产物证据,不等于在浏览器里跑过查看器。
- 感知层面的"好不好看"需要真实的人或具备图像能力的评审,不要声称你做了没做的视觉审查。
- `generate_diagram` 返回 HTML 的绝对路径。Gradio 聊天界面不能内嵌渲染 HTML,
  所以把该路径告诉用户,请用户在浏览器中打开查看。

## 回退(Fallback)

- 不要运行联网的更新检查或品牌抓取;本技能是离线内置副本。
- 若 `generate_diagram` 报错提示 Node 运行时不可用,如实报告,并建议检查整合包内是否包含 Node(archify 需要 `node` 在 PATH 中)。
- 极少数情况(工具链不可用且用户仍要产物):把架构 SVG 手工放进 `runtime/archify/assets/template.html`,
  用 CSS 语义类而非内联颜色,遵循 `references/delivery-contract.md` 的视觉审查契约。

## 输出(Output)

返回:受检 HTML 路径、图表类型、验证摘要、规格/产物回执、浏览器证据状态、真实的视觉审查状态。
非零命令不能声称成功;没做的视觉检查不能声称已做。