smithery/sk8metalme

mermaid-validator

Mermaid図の構文検証と修正を行うスキル。architecture.md生成時のパースエラーを防止。C4モデル、シーケンス図、グラフ構文をサポート。

Installation

$ npx skills add smithery/sk8metalme --skill mermaid-validator

Similar popular skills

Related neighbors and high-traction skills in the same topics — useful to compare before installing.

Also in this package

Other skills from smithery/sk8metalme · top by installs.

npx skills add smithery/sk8metalme

Browse all from smithery/sk8metalme

More details

Agent compatibility

Declared targets from SKILL.md / docs. Unmarked agents are not listed — the skill may still install via the CLI.

Claude Code Not declared
Cursor Not declared
Codex Not declared
GitHub Copilot Not declared
Windsurf Not declared
Gemini CLI Not declared
Cline Not declared
OpenCode Not declared

Skill metadata

Parsed from SKILL.md frontmatter.

Allowed toolsBash, Read, Grep, Glob, WebFetch, Edit, Write

Package contents

Files included with this skill beyond the listing page.

  • skill md SKILL.md 5,730 B
  • docs SUMMARY.md 205 B

History

  1. First recorded snapshot · 0 installs

SKILL.md

Mermaid Validator スキル

目的

Mermaid図の構文エラーを検出し、自動修正を行うことで、ドキュメント生成時のパースエラーを防止する。

対象ファイル

自動検証対象

  • docs/**/architecture.md
  • docs/**/design.md
  • docs/**/sequence.md
  • *.md (Mermaid図を含むすべてのMarkdownファイル)

主な検証ポイント

  1. 構文エラー検出

- 未閉じの括弧、引用符 - 無効なキーワード - インデントの問題

  1. C4モデル構文検証

- C4Context, C4Container, C4Component の正しい使用 - Person(), System(), Rel() の引数チェック

  1. シーケンス図検証

- participant 宣言の確認 - 矢印記法(->>, -->>, ->>)の正しい使用

  1. グラフ構文検証

- ノード定義の正しい記法 - サブグラフの構文チェック

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
            }
          ' _ {} \;

参考資料