Offline Diagram Triplet
Use this skill to turn an English diagram request into four local artifacts:
- Mermaid source (
.mmd) - Editable Excalidraw scene (
.excalidraw) - Rendered SVG (
.svg) - Rendered PNG (
.png)
Also create a Markdown snippet when the user wants the Mermaid source embedded in docs. Keep everything local and offline.
Workflow
- Convert the user's English brief into a small Mermaid
flowchart TDorflowchart LR. - Keep labels short and inspectable. Prefer 4-12 nodes.
- Save the Mermaid source to a
.mmdfile. - Run the bundled renderer:
node plugins/codex-chef-workflows/skills/offline-diagram-triplet/scripts/render-diagram-triplet.mjs --mermaid path/to/diagram.mmd --out-dir artifacts/diagrams --name diagram-name
- Return the created file paths and include the Mermaid block in the response or target Markdown file.
Reference Routing
Read references/diagram-contract.md before extending the renderer, handling
unsupported Mermaid syntax, changing output formats, or validating Excalidraw
compatibility. For ordinary small diagrams, follow the subset below.
Mermaid Subset
Use this subset for predictable offline rendering:
flowchart LR
A[English brief] --> B[Mermaid source]
B --> C[Editable Excalidraw]
B --> D[SVG]
B --> E[PNG]
Supported node forms:
A[Rectangle]B(Rounded)C((Ellipse))D{Decision}A --> BA -->|edge label| BA -.-> BA ==> BA --- B
Avoid unsupported Mermaid features such as subgraphs, HTML labels, icons, classDefs, click handlers, remote images, and sequence diagrams unless you also implement or verify a renderer for them.
Markdown Embedding
When writing docs, embed the source:
```mermaid
flowchart LR
A[Input] --> B[Editable diagram]
```
The starter's /make-pdf style workflows can render Markdown Mermaid blocks
through their own PDF toolchain, while this skill still emits standalone local
assets for review and editing.
Safety
- Do not use network services, CDN renderers, or remote Excalidraw libraries.
- Do not install packages to render diagrams.
- Do not put secrets, private paths, tokens, or credential material into diagram labels or output filenames.
- If the diagram must include private system names, keep artifacts local and do not commit them without explicit approval.