返回 Skills 目錄
來源:Scientific Agent Skills
🧜

Markdown & Mermaid Writing

📝學術寫作與文獻

以 Markdown 與 Mermaid 撰寫科學文件與圖表的完整風格指南,含 24 種圖表參考與 9 種文件模板。

安裝教學

選擇你使用的 AI coding agent,複製指令到終端機執行

一鍵安裝(需要 Node.js)
npx skills add K-Dense-AI/scientific-agent-skills --skill markdown-mermaid-writing -g -a claude-code -y
手動安裝(不使用 npx)
clone 後複製到 skills 目錄
git clone --depth 1 https://github.com/K-Dense-AI/scientific-agent-skills.git
mkdir -p ~/.claude/skills
cp -r scientific-agent-skills/skills/markdown-mermaid-writing ~/.claude/skills/markdown-mermaid-writing

Skills 會以 agent 的完整權限執行,安裝前請先閱讀原始 SKILL.md。安裝後重新啟動 agent 即可使用。

使用教學

Markdown and Mermaid Writing

概述

This skill teaches you — and enforces a standard for — creating scientific documentation using markdown with embedded Mermaid diagrams as the default and canonical format.

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 where the host has Mermaid support; plain Markdown viewers may show only code, and platforms/extensions ship different Mermaid versions. 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

使用時機

適用於以下情境:

  • Creating any scientific document — reports, analyses, manuscripts, methods sections
  • Writing any documentation — READMEs, how-tos, decision records, project docs
  • Producing any diagram — workflows, data pipelines, architectures, timelines, relationships
  • Generating any output that will be version-controlled — if it's going into git, it should be markdown
  • Working with any other skill — this skill defines the documentation layer that wraps every other output
  • Someone asks you to "add a diagram" or "visualize the relationship" — Mermaid first, always

Do NOT start with Python matplotlib, seaborn, or AI image generation for structural or relational diagrams. Those are Phase 2 and Phase 3 — only used when Mermaid cannot express what's needed (e.g., scatter plots with real data, photorealistic images).

🎨 The Source Format Philosophy

Why text-based diagrams win

What mattersMermaid in MarkdownPython / 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

The three-phase workflow

flowchart LR
    accTitle: Three-Phase Documentation Workflow
    accDescr: Phase 1 Mermaid in markdown is always required and is the source of truth. Phases 2 and 3 are optional downstream conversions for polished output.

    p1["📄 Phase 1<br/>Mermaid in Markdown<br/>(ALWAYS — source of truth)"]
    p2["🐍 Phase 2<br/>Python Generated<br/>(optional — data charts)"]
    p3["🎨 Phase 3<br/>AI Generated Visuals<br/>(optional — polish)"]
    out["📊 Final Deliverable"]

    p1 --> out
    p1 -.->|"when needed"| p2
    p1 -.->|"when needed"| p3
    p2 --> out
    p3 --> 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,p3 optional
    class out output

Phase 1 is mandatory. Even if you proceed to Phase 2 or 3, the Mermaid source stays committed.

What Mermaid can express

Mermaid covers 24 diagram types. Almost every scientific relationship fits one:

Use caseDiagram typeFile
Experimental workflow / decision logicFlowchartreferences/diagrams/flowchart.md
Service interactions / API calls / messagingSequencereferences/diagrams/sequence.md
Data model / schemaER diagramreferences/diagrams/er.md
State machine / lifecycleStatereferences/diagrams/state.md
Project timeline / roadmapGanttreferences/diagrams/gantt.md
Proportions / compositionPiereferences/diagrams/pie.md
System architecture (zoom levels)C4references/diagrams/c4.md
Concept hierarchy / brainstormMindmapreferences/diagrams/mindmap.md
Chronological events / historyTimelinereferences/diagrams/timeline.md
Class hierarchy / type relationshipsClassreferences/diagrams/class.md
User journey / satisfaction mapUser Journeyreferences/diagrams/user_journey.md
Two-axis comparison / prioritizationQuadrantreferences/diagrams/quadrant.md
Requirements traceabilityRequirementreferences/diagrams/requirement.md
Flow magnitude / resource distributionSankeyreferences/diagrams/sankey.md
Numeric trends / bar + line chartsXY Chartreferences/diagrams/xy_chart.md
Component layout / spatial arrangementBlockreferences/diagrams/block.md
Work item status / task columnsKanbanreferences/diagrams/kanban.md
Cloud infrastructure / service topologyArchitecturereferences/diagrams/architecture.md
Multi-dimensional comparison / skills radarRadarreferences/diagrams/radar.md
Hierarchical proportions / budgetTreemapreferences/diagrams/treemap.md
Binary protocol / data formatPacketreferences/diagrams/packet.md
Git branching / merge strategyGit Graphreferences/diagrams/git_graph.md
Code-style sequence (programming syntax)ZenUMLreferences/diagrams/zenuml.md
Multi-diagram composition patternsComplex Examplesreferences/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: Identify the document type

Check if a template exists before writing from scratch:

Document typeTemplate
Pull request recordtemplates/pull_request.md
Issue / bug / feature requesttemplates/issue.md
Sprint / project boardtemplates/kanban.md
Architecture decision (ADR)templates/decision_record.md
Presentation / briefingtemplates/presentation.md
Research paper / analysistemplates/research_paper.md
Project documentationtemplates/project_documentation.md
How-to / tutorialtemplates/how_to_guide.md
Status reporttemplates/status_report.md

Step 2: 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 3: 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 — use classDef only
  • One emoji per node max — at the start of the label
  • snake_case node IDs — match the label

Step 4: Write the document

Start from the template. Apply the markdown style guide. Place diagrams inline with related text — not in a separate "Figures" section.

Render in the actual destination before delivery. Check its Mermaid version and plugin requirements before choosing newer diagram types; GitHub documents an info diagram for this check. A successful latest-version local preview does not establish GitHub or another host will render it. Where Mermaid is unsupported, supply a rendered SVG/PNG with a text description alongside the retained .md source.

Step 5: Commit as text

The .md file with embedded Mermaid is what gets committed. If you also generated a PNG or AI image, those are supplementary — the markdown is the source.


⚠️ 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-beta not radar (the bare keyword doesn't exist)
  • Use axis to define dimensions, not x-axis
  • Use curve to 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

DiagramKeywordAxis syntaxData syntax
XY Chart (bars/lines)xychart-betax-axis ["Label1", "Label2"]bar [10, 20] or line [10, 20]
Radar (spider/web)radar-betaaxis 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 scientific-schematics

scientific-schematics generates AI-powered publication-quality images (PNG). Use the Mermaid diagram as the brief for the schematic:

Workflow:
1. Create the concept as Mermaid in .md (this skill — Phase 1)
2. Describe the same concept to scientific-schematics for a polished PNG (Phase 3)
3. Commit both — the .md as source, the PNG as a supplementary figure

With scientific-writing

When scientific-writing produces a manuscript, all diagrams and structural figures should use this skill's standards. The writing skill handles prose and citations; this skill handles visual structure.

Workflow:
1. Use scientific-writing to draft the manuscript
2. For every figure that shows a workflow, architecture, or relationship:
   - Replace placeholder with a Mermaid diagram following this skill's guide
3. Use scientific-schematics only for figures that truly need photorealistic/complex rendering

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:

  • Does the document use a template? If so, did I start from the right one?
  • Are all diagrams in Mermaid with accTitle + accDescr?
  • No %%{init}, no inline style, only classDef?
  • Are all external claims cited with [^N]?
  • One H1, emoji on H2 only?
  • Horizontal rules after every </details>?

📚 Reference index

Style guides

GuidePathLinesWhat it covers
Markdown Style Guidereferences/markdown_style_guide.md~733Headings, formatting, citations, tables, Mermaid integration, templates, quality checklist
Mermaid Style Guidereferences/mermaid_style_guide.md~458Accessibility, 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

Document templates (9 types)

templates/ — decision_record, how_to_guide, issue, kanban, presentation, project_documentation, pull_request, research_paper, status_report

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

All style guides, diagram type guides, and document templates in this skill are ported from the SuperiorByteWorks-LLC/agent-project repository under the Apache-2.0 License.

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.