Markdown and Mermaid Writing
Overview
This skill creates structural diagrams as Markdown-native Mermaid source and applies a consistent layout to research artefacts. It owns diagram structure, not general prose drafting or data visualization.
The core bet: a relationship expressed as a Mermaid diagram inside a .md file is more
valuable than any image. It is text, so it diffs cleanly in git. It requires no build step.
It renders natively on GitHub, GitLab, Notion, VS Code, and any markdown viewer. It uses
fewer tokens than a prose description of the same relationship. And it can always be
converted to a polished image later — but the text version remains the source of truth.
"The more you get your reports and files in .md in just regular text, which mermaid is as well as being a simple 'script language'. This just helps with any downstream rendering and especially AI generated images (using mermaid instead of just long form text to describe relationships < tokens). Additionally mermaid can render along with markdown for easy use almost anywhere by humans or AI."
— Clayton Young (@borealBytes), K-Dense Discord, 2026-02-19
When to Use This Skill
Use this skill when:
- Producing structural diagrams such as workflows, screening flows, architectures, timelines, concept maps, or relationships
- Making an existing research artefact consistently structured and versionable in Markdown
- Someone asks to add a text-native diagram that must remain editable in git
Do not use this skill for general prose drafting, manuscript authorship, data-derived charts, or decorative image generation. Route those jobs to writing-skill or scientific-visualization.
🎨 The Source Format Philosophy
Why text-based diagrams win
| What matters | Mermaid in Markdown | Python / AI Image |
|---|---|---|
| Git diff readable | ✅ | ❌ binary blob |
| Editable without regenerating | ✅ | ❌ |
| Token efficient vs. prose | ✅ smaller | ❌ larger |
| Renders without a build step | ✅ | ❌ needs hosting |
| Parseable by AI without vision | ✅ | ❌ |
| Works in GitHub / GitLab / Notion | ✅ | ⚠️ if hosted |
| Accessible (screen readers) | ✅ accTitle/accDescr | ⚠️ needs alt text |
| Convertible to image later | ✅ anytime | — already image |
Diagram routing
flowchart LR
accTitle: Research Figure Routing
accDescr: Structural relationships route to Mermaid while quantitative evidence routes to scientific visualization.
need["Figure needed"]
structure["Structural relationship"]
data["Quantitative evidence"]
p1["Mermaid in Markdown"]
p2["scientific-visualization"]
out["📊 Final Deliverable"]
need --> structure --> p1 --> out
need --> data --> p2 --> out
classDef required fill:#dbeafe,stroke:#2563eb,stroke-width:2px,color:#1e3a5f
classDef optional fill:#fef9c3,stroke:#ca8a04,stroke-width:2px,color:#713f12
classDef output fill:#dcfce7,stroke:#16a34a,stroke-width:2px,color:#14532d
class p1 required
class p2 optional
class out output
Keep Mermaid source with the artefact whenever Mermaid is the selected representation.
What Mermaid can express
Mermaid covers 24 diagram types. Almost every scientific relationship fits one:
| Use case | Diagram type | File |
|---|---|---|
| Experimental workflow / decision logic | Flowchart | references/diagrams/flowchart.md |
| Service interactions / API calls / messaging | Sequence | references/diagrams/sequence.md |
| Data model / schema | ER diagram | references/diagrams/er.md |
| State machine / lifecycle | State | references/diagrams/state.md |
| Project timeline / roadmap | Gantt | references/diagrams/gantt.md |
| Proportions / composition | Pie | references/diagrams/pie.md |
| System architecture (zoom levels) | C4 | references/diagrams/c4.md |
| Concept hierarchy / brainstorm | Mindmap | references/diagrams/mindmap.md |
| Chronological events / history | Timeline | references/diagrams/timeline.md |
| Class hierarchy / type relationships | Class | references/diagrams/class.md |
| User journey / satisfaction map | User Journey | references/diagrams/user_journey.md |
| Two-axis comparison / prioritization | Quadrant | references/diagrams/quadrant.md |
| Requirements traceability | Requirement | references/diagrams/requirement.md |
| Flow magnitude / resource distribution | Sankey | references/diagrams/sankey.md |
| Numeric trends / bar + line charts | XY Chart | references/diagrams/xy_chart.md |
| Component layout / spatial arrangement | Block | references/diagrams/block.md |
| Work item status / task columns | Kanban | references/diagrams/kanban.md |
| Cloud infrastructure / service topology | Architecture | references/diagrams/architecture.md |
| Multi-dimensional comparison / skills radar | Radar | references/diagrams/radar.md |
| Hierarchical proportions / budget | Treemap | references/diagrams/treemap.md |
| Binary protocol / data format | Packet | references/diagrams/packet.md |
| Git branching / merge strategy | Git Graph | references/diagrams/git_graph.md |
| Code-style sequence (programming syntax) | ZenUML | references/diagrams/zenuml.md |
| Multi-diagram composition patterns | Complex Examples | references/diagrams/complex_examples.md |
💡 Pick the right type, not the easy one. Don't default to flowcharts for everything. A timeline beats a flowchart for chronological events. A sequence beats a flowchart for service interactions. Scan the table and match.
🔧 Core workflow
Step 1: Read the style guide
Before writing any .md file: read references/markdown_style_guide.md.
Key rules to internalize:
- One H1 per document — the title. Never more.
- Emoji on H2 headings only — one emoji per H2, none in H3/H4
- Cite everything — every external claim gets a footnote
[^N]with full URL - Bold sparingly — max 2-3 bold terms per paragraph, never full sentences
- Horizontal rule after every
</details>— mandatory - Tables over prose for comparisons, configurations, structured data
- Diagrams over walls of text — if it describes flow, structure, or relationships, add Mermaid
Step 2: Pick the diagram type and read its guide
Before creating any Mermaid diagram: read references/mermaid_style_guide.md.
Then open the specific type file (e.g., references/diagrams/flowchart.md) for the exemplar, tips, and copy-paste template.
Mandatory rules for every diagram:
accTitle: Short Name 3-8 Words
accDescr: One or two sentences explaining what this diagram shows.
- No
%%{init}directives — breaks GitHub dark mode - No inline
style— useclassDefonly - One emoji per node max — at the start of the label
snake_casenode IDs — match the label
Step 3: Place the diagram in context
Apply the Markdown style guide and place the diagram beside the text it explains. Include a short prose interpretation and preserve the underlying evidence boundary.
Step 4: Validate and preserve the source
Check syntax in the target renderer when possible. Commit the .md file with embedded Mermaid as the editable source; any rendered image is supplementary.
⚠️ Common pitfalls
Radar chart syntax (radar-beta)
WRONG:
radar
title Example
x-axis ["A", "B", "C"]
"Series" : [1, 2, 3]
CORRECT:
radar-beta
title Example
axis a["A"], b["B"], c["C"]
curve series["Series"]{1, 2, 3}
max 3
- Use
radar-betanotradar(the bare keyword doesn't exist) - Use
axisto define dimensions, notx-axis - Use
curveto define data series, not quoted labels with colon - No
accTitle/accDescr— radar-beta doesn't support accessibility annotations; always add a descriptive italic paragraph above the diagram
XY Chart vs Radar confusion
| Diagram | Keyword | Axis syntax | Data syntax |
|---|---|---|---|
| XY Chart (bars/lines) | xychart-beta |
x-axis ["Label1", "Label2"] |
bar [10, 20] or line [10, 20] |
| Radar (spider/web) | radar-beta |
axis id["Label"] |
curve id["Label"]{10, 20} |
Forgetting accTitle/accDescr on supported types
Only some diagram types support accTitle/accDescr. For those that don't, always place a descriptive italic paragraph directly above the code block:
Radar chart comparing three methods across five performance dimensions. Note: Radar charts do not support accTitle/accDescr.
radar-beta
...
Integration with other skills
With writing-skill
When writing-skill produces a report or manuscript, use this skill for diagrams that show workflows, architectures, relationships, or screening logic. Keep the Mermaid source with the prose so both can be reviewed and versioned.
For data-derived charts or publication export requirements, use scientific-visualization instead.
With literature-review
Literature review produces summaries with lots of relationship data. Use this skill to:
- Create concept maps (Mindmap) of the literature landscape
- Show publication timelines (Timeline or Gantt)
- Compare methodologies (Quadrant or Radar)
- Diagram data flows described in papers (Sequence or Flowchart)
With any skill that produces output documents
Before finalizing any document from any skill, apply this skill's checklist:
- Are all diagrams in Mermaid with
accTitle+accDescr? - No
%%{init}, no inlinestyle, onlyclassDef? - Are all external claims cited with
[^N]? - One H1, emoji on H2 only?
- Horizontal rules after every
</details>?
📚 Reference index
Style guides
| Guide | Path | Lines | What it covers |
|---|---|---|---|
| Markdown Style Guide | references/markdown_style_guide.md |
~733 | Headings, formatting, citations, tables, Mermaid integration, templates, quality checklist |
| Mermaid Style Guide | references/mermaid_style_guide.md |
~458 | Accessibility, emoji set, color classes, theme neutrality, type selection, complexity tiers |
Diagram type guides (24 types)
Each file contains: production-quality exemplar, tips specific to that type, and a copy-paste template.
references/diagrams/ — architecture, block, c4, class, complex_examples, er, flowchart, gantt, git_graph, kanban, mindmap, packet, pie, quadrant, radar, requirement, sankey, sequence, state, timeline, treemap, user_journey, xy_chart, zenuml
Examples
assets/examples/example-research-report.md — a complete scientific research report demonstrating proper heading hierarchy, multiple diagram types (flowchart, sequence, gantt), tables, footnote citations, collapsible sections, and all style guide rules applied.
📝 Attribution
The style guides, diagram type guides, and example in this skill are adapted from the SuperiorByteWorks-LLC/agent-project repository under the Apache-2.0 License.
- Source: https://github.com/SuperiorByteWorks-LLC/agent-project
- Author: Clayton Young / Superior Byte Works, LLC (@borealBytes)
- License: Apache-2.0
This skill (as part of scientific-agent-skills) is distributed under the MIT License. The included Apache-2.0 content is compatible for downstream use with attribution retained, as preserved in the file headers throughout this skill.
[^1]: GitHub Blog. (2022). "Include diagrams in your Markdown files with Mermaid." https://github.blog/2022-02-14-include-diagrams-markdown-files-mermaid/
[^2]: Mermaid. "Mermaid Diagramming and Charting Tool." https://mermaid.js.org/