name: mermaid-validator description: | Mermaid図の構文検証と修正を行うスキル。 architecture.md生成時のパースエラーを防止。 allowed-tools: Bash, Read, Grep, Glob, WebFetch, Edit, Write
Mermaid Validator スキル
目的
Mermaid図の構文エラーを検出し、自動修正を行うことで、ドキュメント生成時のパースエラーを防止する。
対象ファイル
自動検証対象
docs/**/architecture.mddocs/**/design.mddocs/**/sequence.md*.md(Mermaid図を含むすべてのMarkdownファイル)
主な検証ポイント
-
構文エラー検出
- 未閉じの括弧、引用符
- 無効なキーワード
- インデントの問題
-
C4モデル構文検証
C4Context,C4Container,C4Componentの正しい使用Person(),System(),Rel()の引数チェック
-
シーケンス図検証
participant宣言の確認- 矢印記法(
->>,-->>,->>)の正しい使用
-
グラフ構文検証
- ノード定義の正しい記法
- サブグラフの構文チェック
Mermaid構文クイックリファレンス
C4モデル
C4Context
title System Context Diagram
Person(user, "User", "エンドユーザー")
System(system, "System Name", "システム説明")
System_Ext(external, "External System", "外部システム")
Rel(user, system, "Uses", "HTTPS")
Rel(system, external, "Integrates", "REST/HTTPS")
注意点:
C4Contextの後に改行が必要titleは必須ではないが推奨Rel()の引数は必ず4つ(from, to, label, technology)
シーケンス図
sequenceDiagram
participant User
participant Frontend
participant Backend
User->>Frontend: リクエスト
Frontend->>Backend: API呼び出し
Backend-->>Frontend: レスポンス
Frontend-->>User: 表示
注意点:
participant宣言は必須ではないが推奨->>(同期)、-->>(非同期)、-x(破棄)を区別- ラベルに日本語を含む場合、引用符は不要
グラフ(フローチャート)
graph TB
A[クライアント] --> B[APIゲートウェイ]
B --> C[バックエンドサービス]
C --> D[データベース]
C --> E[外部API]
注意点:
graph TB(上から下)、graph LR(左から右)- ノードラベルに日本語を含む場合、
[]で囲む subgraphはインデント必須
ER図
erDiagram
USER ||--o{ ORDER : places
USER {
string id
string name
string email
}
ORDER {
string id
string userId
date createdAt
}
注意点:
- リレーションシップ記法:
||--o{(1対多)、}o--o{(多対多) - フィールド定義は
type nameの順
検証方法
オンライン検証(推奨)
# Mermaid Live Editorで検証
# https://mermaid.live/
# または、mermaid-cliを使用
npx @mermaid-js/mermaid-cli mmdc -i diagram.mmd -o diagram.svg
手動検証
# Markdownファイル内のMermaid図を抽出
grep -A 50 '```mermaid' architecture.md > extracted-diagrams.txt
# 構文エラーを目視確認
cat extracted-diagrams.txt
よくある構文エラーと修正方法
エラー1: C4モデルでタイトルが不正
誤り:
C4Context
title: System Context Diagram
修正:
C4Context
title System Context Diagram
エラー2: シーケンス図で矢印記法が不正
誤り:
sequenceDiagram
User->Frontend: リクエスト
修正:
sequenceDiagram
User->>Frontend: リクエスト
エラー3: グラフでサブグラフのインデント不足
誤り:
graph TB
subgraph "Production"
A[Pod 1]
end
修正:
graph TB
subgraph "Production"
A[Pod 1]
end
エラー4: ER図でリレーションシップ記法が不正
誤り:
erDiagram
USER -> ORDER : places
修正:
erDiagram
USER ||--o{ ORDER : places
自動修正ルール
ルール1: インデント正規化
- C4モデルの要素をインデント
- サブグラフをインデント
- ERDのフィールド定義をインデント
ルール2: 引用符の補完
- 特殊文字を含むラベルに引用符を追加
- ただし、日本語のみの場合は不要
ルール3: 矢印記法の統一
- シーケンス図で
->>に統一(同期呼び出し) - 非同期の場合は
-->>を使用
CI/CDへの組み込み
GitHub Actions 例
name: Mermaid Validation
on:
pull_request:
paths:
- 'docs/**/*.md'
- '**/*.md'
jobs:
validate-mermaid:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- name: Setup Node.js
uses: actions/setup-node@v2
with:
node-version: '20'
- name: Validate Mermaid Diagrams
run: |
npm install -g @mermaid-js/mermaid-cli
find . -name "*.md" -exec sh -c '
grep -l "```mermaid" "$1" && {
echo "Validating $1"
mmdc -i "$1" -o /tmp/test.svg || exit 1
}
' _ {} \;
参考資料
Related skills
API Documentation Generator
Documentation
Automatically generates OpenAPI/Swagger API documentation.
Claude CodeCursorCopilotbeginner
340
98
1,137
Technical Writer
Documentation
Writes clear technical documentation following top style guides.
claudeCursorWindsurf+1intermediate
167
48
421
User Stories Writing
Documentation
Generates user stories with clear acceptance criteria from product requirements. Essential for sprint planning, ticket creation, and communicating requirements to engineering teams.
intermediate
0
0
21