关于 markdown-mermaid-writing
markdown-mermaid-writing 是一项用于科学文档和技术写作的技能,规范以 Markdown 编写文档并嵌入 Mermaid 图表。它将文本图表作为可版本控制的源格式,并提供文档模板、风格指南和图表规范。
主要功能
- 01以 Markdown 和 Mermaid 作为文档及图表源格式
- 02按图表用途选择 Mermaid 类型
- 03提供文档模板和 Markdown 风格指南
- 04规范图表标注、语法和可访问性
- 05涵盖科学报告、项目文档和工作流图
适用场景
- 01编写含流程图的科学报告
- 02为版本控制的项目文档添加图表
- 03绘制系统架构、时间线或数据流
- 04将研究关系整理为概念图
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ leonchaox/ qinyan-academic-skills --skill markdown-mermaid-writing安装后在 Claude Code 中输入/markdown-mermaid-writing确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
assets/examples/example-research-report.mdreferences/markdown_style_guide.mdmermaid_style_guide.mdreferences/diagrams/architecture.mdblock.mdc4.mdclass.mdcomplex_examples.mder.mdflowchart.mdgantt.mdgit_graph.mdkanban.mdmindmap.mdpacket.mdpie.mdquadrant.mdradar.mdrequirement.mdsankey.mdsequence.mdstate.mdtimeline.mdtreemap.mduser_journey.mdxy_chart.mdzenuml.mdtemplates/decision_record.mdhow_to_guide.mdissue.md详细介绍
Markdown 与 Mermaid 写作
概述
这项技能将教会你如何使用 包含内嵌 Mermaid 图表的 Markdown 作为默认且规范的格式 来编写科学文档,并为此确立标准。
核心理念:在 .md 文件中用 Mermaid 图表表达的关系比任何图像都更有价值。它是文本,因此在 git 中可以清晰地查看差异。它不需要构建步骤。它可以在 GitHub、GitLab、Notion、VS Code 以及任何 Markdown 查看器中原生呈现。与对同一关系的文字描述相比,它占用的令牌更少。之后也始终可以将它转换为精美的图像,但文本版本仍然是唯一可信来源。
“如果你的报告和文件都使用
.md格式的普通文本,Mermaid 也是如此,它还是一种简单的‘脚本语言’。这有助于后续进行各种渲染,尤其是生成 AI 图像(使用 Mermaid 而非长篇文字来描述关系,能节省令牌)。此外,Mermaid 可以与 Markdown 一起渲染,因此人类或 AI 几乎在任何地方都能轻松使用。”— Clayton Young (@borealBytes),K-Dense Discord,2026-02-19
何时使用这项技能
在以下情况下使用这项技能:
- 创建任何科学文档——报告、分析、论文、方法章节
- 编写任何文档——README、操作指南、决策记录、项目文档
- 制作任何图表——工作流、数据管道、架构、时间线、关系
- 生成任何将纳入版本控制的内容——如果要放进 git,就应该使用 Markdown
- 配合任何其他技能使用——这项技能定义了包装其他所有输出的文档层
- 有人要求你“添加图表”或“可视化关系”时——始终优先使用 Mermaid
对于结构或关系图,不要一开始就使用 Python matplotlib、seaborn 或 AI 图像生成。 这些属于第二阶段和第三阶段——仅在 Mermaid 无法表达所需内容时使用(例如,使用真实数据的散点图、照片级真实感图像)。
🎨 源格式理念
为什么文本图表更胜一筹
| 重要事项 | Markdown 中的 Mermaid | Python / AI 图像 |
|---|---|---|
| Git 差异可读 | ✅ | ❌ 二进制文件 |
| 无需重新生成即可编辑 | ✅ | ❌ |
| 相比文字描述更省令牌 | ✅ 更少 | ❌ 更多 |
| 无需构建步骤即可呈现 | ✅ | ❌ 需要托管 |
| 无需视觉识别即可由 AI 解析 | ✅ | ❌ |
| 可在 GitHub / GitLab / Notion 中使用 | ✅ | ⚠️ 需托管 |
| 无障碍(屏幕阅读器) | ✅ accTitle/accDescr | ⚠️ 需要替代文本 |
| 之后可转换为图像 | ✅ 随时 | — 已经是图像 |
三阶段工作流
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
第一阶段是必须的。 即使你继续进入第二或第三阶段,也要提交 Mermaid 源文件。
Mermaid 能表达的内容
Mermaid 支持 24 种图表类型。几乎所有科学关系都能用其中一种来表达:
| 使用场景 | 图表类型 | 文件 |
|---|---|---|
| 实验工作流 / 决策逻辑 | 流程图 | references/diagrams/flowchart.md |
| 服务交互 / API 调用 / 消息传递 | 时序图 | references/diagrams/sequence.md |
| 数据模型 / 架构 | ER 图 | references/diagrams/er.md |
| 状态机 / 生命周期 | 状态图 | references/diagrams/state.md |
| 项目时间线 / 路线图 | 甘特图 | references/diagrams/gantt.md |
| 占比 / 构成 | 饼图 | references/diagrams/pie.md |
| 系统架构(缩放层级) | C4 | references/diagrams/c4.md |
| 概念层级 / 头脑风暴 | 思维导图 | references/diagrams/mindmap.md |
| 按时间顺序排列的事件 / 历史 | 时间线 | references/diagrams/timeline.md |
| 类层级 / 类型关系 | 类图 | references/diagrams/class.md |
| 用户旅程 / 满意度地图 | 用户旅程 | references/diagrams/user_journey.md |
| 双轴比较 / 优先级排序 | 象限图 | references/diagrams/quadrant.md |
| 需求可追溯性 | 需求图 | references/diagrams/requirement.md |
| 流量大小 / 资源分布 | 桑基图 | references/diagrams/sankey.md |
| 数值趋势 / 柱状图 + 折线图 | XY 图表 | references/diagrams/xy_chart.md |
| 组件布局 / 空间排列 | 块图 | references/diagrams/block.md |
| 工作项状态 / 任务列 | 看板 | references/diagrams/kanban.md |
| 云基础设施 / 服务拓扑 | 架构图 | references/diagrams/architecture.md |
| 多维比较 / 技能雷达图 | 雷达图 | references/diagrams/radar.md |
| 层级占比 / 预算 | 矩形式树图 | references/diagrams/treemap.md |
| 二进制协议 / 数据格式 | 数据包图 | references/diagrams/packet.md |
| Git 分支 / 合并策略 | Git 图 | references/diagrams/git_graph.md |
| 代码风格的时序图(编程语法) | ZenUML | references/diagrams/zenuml.md |
| 多图组合模式 | 复杂示例 | references/diagrams/complex_examples.md |
💡 选择合适的类型,而不是最容易的类型。 不要事事都默认使用流程图。 时间线比流程图更适合表示按时间顺序排列的事件;时序图比流程图更适合表示 服务交互。浏览表格并选择匹配的类型。
🔧 核心工作流
步骤 1:确定文档类型
从头开始编写前,先检查是否存在模板:
| 文档类型 | 模板 |
|---|---|
| Pull request 记录 | templates/pull_request.md |
| Issue / bug / 功能请求 | templates/issue.md |
| Sprint / 项目看板 | templates/kanban.md |
| 架构决策(ADR) | templates/decision_record.md |
| 演示 / 简报 | templates/presentation.md |
| 研究论文 / 分析 | templates/research_paper.md |
| 项目文档 | templates/project_documentation.md |
| 操作指南 / 教程 | templates/how_to_guide.md |
| 状态报告 | templates/status_report.md |
步骤 2:阅读风格指南
编写任何 .md 文件前:阅读 references/markdown_style_guide.md。
需要牢记的关键规则:
- 每份文档只能有一个 H1 —— 即标题。绝不能多于一个。
- 仅在 H2 标题中使用表情符号 —— 每个 H2 使用一个表情符号,H3/H4 中不使用
- 所有内容都要引用 —— 每项外部论述都要添加带完整 URL 的脚注
[^N] - 谨慎使用粗体 —— 每段最多 2-3 个加粗术语,绝不加粗完整句子
- 每个
</details>后都要加水平分隔线 —— 必须遵守 - 比较、配置和结构化数据优先使用表格,而非散文
- 优先使用图表,而非大段文字 —— 如果内容描述流程、结构或关系,就添加 Mermaid
步骤 3:选择图表类型并阅读指南
创建任何 Mermaid 图表之前:先阅读 references/mermaid_style_guide.md。
然后打开对应类型的文件(例如 references/diagrams/flowchart.md),查看示例、提示和可复制粘贴的模板。
每张图表都必须遵守以下规则:
accTitle: Short Name 3-8 Words
accDescr: One or two sentences explaining what this diagram shows.
- 不要使用
%%{init}指令——这会破坏 GitHub 深色模式 - 不要使用内联
style——仅使用classDef - 每个节点最多使用一个表情符号——放在标签开头
- 节点 ID 使用
snake_case——与标签相匹配
步骤 4:编写文档
从模板开始。应用 Markdown 风格指南。将图表放在相关文本旁边,不要放在单独的“Figures”章节中。
步骤 5:以文本形式提交
提交的内容是嵌入 Mermaid 的 .md 文件。如果还生成了 PNG 或 AI 图像,它们都只是补充内容——Markdown 才是源文件。
⚠️ 常见问题
雷达图语法(radar-beta)
错误:
radar
title Example
x-axis ["A", "B", "C"]
"Series" : [1, 2, 3]
正确:
radar-beta
title Example
axis a["A"], b["B"], c["C"]
curve series["Series"]{1, 2, 3}
max 3
- 使用
radar-beta,不要使用radar(不存在这个单独的关键字) - 使用
axis定义维度,不要使用x-axis - 使用
curve定义数据系列,不要使用带冒号的引号标签 - 不要使用
accTitle/accDescr——radar-beta不支持无障碍注释;请始终在图表上方添加描述性斜体段落
XY 图表与雷达图的区别
| 图表 | 关键字 | 轴语法 | 数据语法 |
|---|---|---|---|
| XY 图表(柱形/折线) | xychart-beta | x-axis ["Label1", "Label2"] | bar [10, 20] 或 line [10, 20] |
| 雷达图(蜘蛛网/网状) | radar-beta | axis id["Label"] | curve id["Label"]{10, 20} |
忘记在支持的类型中使用 accTitle/accDescr
只有部分图表类型支持 accTitle/accDescr。对于不支持的类型,请始终在代码块正上方放置描述性斜体段落:
雷达图对比了三种方法在五个性能维度上的表现。注意:雷达图不支持 accTitle/accDescr。
radar-beta
...
🔗 与其他技能集成
与 scientific-schematics 配合
scientific-schematics 可生成 AI 驱动的出版级图像(PNG)。将 Mermaid 图表用作示意图的设计说明:
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
与 scientific-writing 配合
scientific-writing 生成稿件时,所有图表和结构图都应遵循本技能的标准。写作技能负责正文和引用;本技能负责视觉结构。
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
与 literature-review 配合
文献综述会生成包含大量关系数据的摘要。使用本技能来:
- 创建文献领域的概念图(思维导图)
- 展示发表时间线(时间线或甘特图)
- 比较研究方法(象限图或雷达图)
- 绘制论文中描述的数据流图(时序图或流程图)
与任何会生成输出文档的技能配合
在完成任何技能生成的文档之前,请应用本技能的检查清单:
- 文档是否使用了模板?如果使用了,我是否从正确的模板开始?
- 所有图表是否都使用 Mermaid,并包含
accTitle+accDescr? - 是否没有
%%{init}、没有内联style,且只使用classDef? - 所有外部论断是否都使用
[^N]标注了引用? - 是否只有一个 H1,且表情符号只出现在 H2 上?
- 每个
</details>后是否都有水平分隔线?
📚 参考索引
风格指南
| 指南 | 路径 | 行数 | 内容 |
|---|---|---|---|
| Markdown 风格指南 | references/markdown_style_guide.md | ~733 | 标题、格式、引用、表格、Mermaid 集成、模板、质量检查清单 |
| Mermaid 风格指南 | references/mermaid_style_guide.md | ~458 | 无障碍性、表情符号集、颜色类、主题中立性、类型选择、复杂度等级 |
图表类型指南(24 种)
每个文件都包含:生产级示例、针对该类型的技巧,以及可复制粘贴的模板。
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
文档模板(9 种)
templates/ — decision_record、how_to_guide、issue、kanban、presentation、project_documentation、pull_request、research_paper、status_report
示例
assets/examples/example-research-report.md — 一份完整的科学研究报告,展示了规范的标题层级、多种图表类型(流程图、时序图、甘特图)、表格、脚注引用、可折叠章节,以及所有已应用的风格指南规则。
📝 署名
本技能中的所有风格指南、图表类型指南和文档模板均移植自 SuperiorByteWorks-LLC/agent-project 仓库,遵循 Apache-2.0 许可证。
- 来源:https://github.com/SuperiorByteWorks-LLC/agent-project
- 作者:Clayton Young / Superior Byte Works, LLC(@borealBytes)
- 许可证:Apache-2.0
本技能(作为 claude-scientific-skills 的一部分)遵循 MIT 许可证分发。所包含的 Apache-2.0 内容可兼容用于下游用途,但须保留署名;整个技能的文件头中均已保留该信息。