bundled-skills/diagram-generator/SKILL.md
Generate, refine, validate, and render diagrams from natural language, notes, code, schemas, or existing diagram sources: flowcharts, swimlanes, attack-path graphs, data-flow diagrams, architecture, and state machines.
npx skillsauth add FrancoStino/opencode-skills-antigravity diagram-generatorInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Create clear, editable diagrams from messy or structured inputs. Prefer text-based diagram source first so the result can be reviewed, versioned, and refined. Render to files only when the user asks for an image/PDF or when a downloadable artifact would materially help.
scripts/render_diagram.py.Do not over-ask for clarification. If the request is underspecified, make reasonable assumptions and label them briefly.
Use Mermaid unless another language is clearly better.
| User wants | Prefer | Why | |---|---|---| | process flow, decision tree, simple swimlane | Mermaid flowchart | readable and easy to paste into Markdown | | sequence of system/user interactions | Mermaid sequenceDiagram or PlantUML sequence | Mermaid for docs; PlantUML for UML formality | | lifecycle, state machine, transitions | Mermaid stateDiagram-v2 or PlantUML state | compact transition syntax | | database schema, entities, relationships | Mermaid erDiagram | portable ER notation | | class/interface/object model | Mermaid classDiagram or PlantUML class | Mermaid for docs; PlantUML for detailed UML | | project schedule | Mermaid gantt | concise timeline syntax | | hierarchy, ideas, notes | Mermaid mindmap | good default for idea maps | | customer/product journey | Mermaid journey | built-in journey notation | | git history | Mermaid gitGraph | built-in git notation | | dependency graph, package graph, large network | Graphviz DOT | better layout engines for dense graphs | | architecture with layers, clusters, boundaries | Mermaid flowchart with subgraphs, Graphviz clusters, or PlantUML C4-style | choose based on requested fidelity | | weighted flow/sankey-like relationship | Mermaid sankey-beta when supported, otherwise SVG or Graphviz | Mermaid support may vary by renderer | | custom visual where source languages fit poorly | SVG | precise control over layout and styling |
Assumptions section after the code.Consult references/diagram-patterns.md for compact templates.
General Mermaid rules:
flowchart TD, sequenceDiagram, erDiagram, gantt, mindmap, or journey.flowchart TD unless the user asks for left-to-right; use flowchart LR for architecture and pipelines.ingest_service[Ingest Service].decision{Condition?}.-- yes -->, -- no -->, -. async .->, or == critical ==> only when meaningful.actor for humans and participant for systems.alt/else/end, opt/end, loop/end, and par/and/end blocks for conditional, optional, repeated, and parallel flows.Use Graphviz for large, dense, or layout-sensitive relationship diagrams.
digraph G for directed relationships and graph G for undirected networks.rankdir=LR, nodesep, ranksep, and splines=true when helpful.subgraph cluster_name for boundaries and subsystems.Use PlantUML when the user asks for UML or needs formal UML notation.
@startuml and @enduml.actor, participant, database, queue, collections, or component stereotypes when useful.package, rectangle, or node for architecture boundaries.Use SVG only when text diagram languages cannot express the requested visual reliably.
<title> and meaningful text labels.When the user asks for PNG/SVG/PDF, create a source file and run:
python "<SKILL_ROOT>/diagram-generator/scripts/render_diagram.py" input.mmd --format svg --out output.svg
python "<SKILL_ROOT>/diagram-generator/scripts/render_diagram.py" input.dot --format png --out output.png
python "<SKILL_ROOT>/diagram-generator/scripts/render_diagram.py" input.puml --format svg --out output.svg
<SKILL_ROOT>是本包skills/目录的实际路径,AI 应自动检测。
The renderer is intentionally dependency-tolerant. It tries common local tools and reports actionable installation hints if a renderer is unavailable. Do not claim an image was rendered unless the script completed successfully and the output file exists.
Before finalizing:
Use this structure for most diagram answers:
下面是可编辑的 [language] 版本:
```[language]
[source]
Assumptions:
Rendered file: [link] [only if generated]
For English user requests, respond in English. For Chinese user requests, respond in Chinese unless they ask otherwise.
---
## 按需自举(On-Demand Bootstrap)
### 自动化能力边界
| 工具 | 可自动安装 | 安装方式 | 说明 |
|------|-----------|---------|------|
| Mermaid CLI (mmdc) | ✓ | npm install -g @mermaid-js/mermaid-cli | 渲染 Mermaid 为 PNG/SVG |
| Graphviz (dot) | ✗ | 手动安装 | https://graphviz.org/download/ |
| PlantUML | ✗ | 需要 Java + plantuml.jar | https://plantuml.com/download |
| Python (render script) | ✓ | 已在 bootstrap 中 | `scripts/render_diagram.py` 依赖 |
### 说明
本 skill 主要输出文本格式的图表源码(Mermaid/DOT/PlantUML),不一定需要本地渲染工具。只有当用户明确要求生成 PNG/SVG/PDF 文件时才需要对应的渲染器。
如果渲染器不可用,`scripts/render_diagram.py` 会输出安装提示而不是报错。
---
## 路由上下文
**上游入口**: `skills/SKILL.md`(总控)、`routing.md`
**触发条件**: 用户说"画图"、"流程图"、"架构图"、"攻击路径图"、"时序图"、"Mermaid"、"Graphviz"、"PlantUML"
**下游出口**:
- 生成的图表可嵌入 `docs-generator/` 的报告中
- 攻击路径图可配合 `pentest-tools/` 的渗透报告
**同级关联模块**: `docs-generator/`(报告中嵌入图表)
## 任务完成自检(声称完成前 MUST 通过)
- [ ] 我是否执行了工作流中的每一步(而不是只阅读)?
- [ ] 我是否基于 `tool-index` 使用了真实工具路径?
- [ ] 我是否产出了可复现证据(命令/脚本/截图/报告)?
- [ ] 我是否完成并回写了 RULES 要求的 Checklist 项?
## Limitations
- Complex auto-layouts may need manual adjustment in the target tool.
- Rendering fidelity depends on the available diagram CLI/renderer.
> Adapted from [zhaoxuya520/reverse-skill](https://github.com/zhaoxuya520/reverse-skill) (MIT).
tools
Authorized security assessment of LLM applications and AI agents: prompt injection, tool abuse, RAG exposure, memory poisoning, system-prompt extraction, and agent-compliance engineering per OWASP LLM/ASI Top 10.
development
Builds two parameterized UI modes—流光溢彩白 (iridescent white) and 五彩斑斓黑 (colorful black)—with OKLCH, WebGL/CSS fallback, vision gating, screenshot QA, and total/per-color intensity reports. Use when a UI request names either mode or needs measured color parameters.
tools
Delegate coding tasks to the Kimi Code CLI (`kimi`) only when the user explicitly requests it, while the orchestrator retains review and landing responsibility.
development
Front-end JavaScript reverse engineering: locate signature chains, analyze encrypted request parameters, sample runtime behavior, and reproduce logic locally in Node for evidence-based output.