設計書を、図と処理概要を並べて読む

Markdown で書いた設計書のビューアです。mermaid のシーケンス図やフローチャートを処理概要と横並びにし、図の矢印(フローチャートではノード)と見出しを紐付けます。

サンプルは設計書を HTML にエクスポートしたものです。矢印や見出しにマウスを載せて、ハイライトを試せます。

シーケンス図の矢印にマウスを載せると右の処理概要がハイライトされ、クリックするとそこまでスクロールし、見出しにマウスを載せると矢印がハイライトされる

標準の Markdown のまま

紐付けの記法は mermaid のコメントと HTML コメントだけなので、同じファイルが GitHub やほかの Markdown プレビューでもそのまま正しく表示されます。

```mermaid
%% @link-headings
sequenceDiagram
    Auth->>DB: ユーザー情報を取得
    %% @ref トークン発行
    Auth-->>API: アクセストークンを返却
```

### ユーザー情報を取得

ID をキーにユーザーを 1 件取得する。

### トークン発行

有効期限 1 時間の JWT を発行する。
  1. 図に印を付ける

    シーケンス図・フローチャート・ER 図・状態遷移図に %% @link-headings と書くと、その後ろの見出しと横並びで表示されます。

  2. 処理概要を見出しで書く

    矢印やノードは、同じ文言の見出しと紐付きます。### 3. ユーザー情報を取得 のような番号付きの見出しにも紐付きます。

  3. 文言が違うときは @ref

    %% @ref 見出し で、次の矢印を別の文言の見出しに紐付けます。紐付かないものは警告で知らせます。

設計書のための機能

矢印にマウスを載せる・クリックすると対応する処理概要がハイライトされ、見出しをクリックすると図の該当箇所へスクロールします。処理概要をスクロールしても図は固定されます。

フローチャートも

フローチャートも、矢印の代わりにノードを使って同じように紐付けます。ER 図のエンティティや状態遷移図の状態も同じように紐付くので、テーブルごとの定義や状態ごとの説明を図の横に並べられます。横向き(LR / RL)の図は、見出しを横ではなく下に表示します。

左にフローチャート、右に紐付いた処理概要

書き漏れが分かる

見出しのない矢印は薄く表示し、矢印のない見出しには印を付けます。VS Code では問題パネルにも表示し、クイックフィックスで直せます。

見出しのない矢印は薄く表示され、矢印のない見出しには「矢印なし」の印が付く

front matter から設計書のヘッダ

YAML front matter に type: design_doc を書くと、タイトル・版数・製品・ステータス・更新日を設計書のヘッダとして表示します。

ヘッダに表示したタイトル・版数・製品・ステータス・更新日

設計書でよく使う記法

GitHub のアラート、タスクリスト、脚注、折りたたみ、シンタックスハイライトしたコードブロックを表示します。長い表はヘッダ行を固定します。

プレビューに表示したタスクリスト、GitHub のアラート、折りたたみ

項目の表

電文・ファイル・画面の項目の表で、表の直前にコメントを書くと、物理名を項目名の下にまとめ、入れ子の項目をツリーで表示します。子の行を折りたたみ、マウスを乗せた行の親と子をハイライトします。ボタンで一時的にふつうの表に戻して見ることもできます。GitHub などではふつうの表のままです。

リクエスト本文の項目の表。物理名を項目名の下にまとめ、入れ子の項目をツリーで表示

画面のワイヤーフレーム

HTML で書いた画面のモックを画像のように設計書に取り込み、data-item でパーツに番号を振ります。動いているアプリの画面をコマンドラインで撮って取り込み、CSS セレクタで番号を振ることもできます。パーツは、同じ番号の項目の表の行や見出しと、図の矢印と同じように紐付きます。GitHub などでは画面の画像を代わりに表示できます。

注文完了画面のワイヤーフレームと各パーツの番号、その横の項目の表
  • エディタとの同期エディタのスクロールとカーソルにプレビューが追従します。ダブルクリックでエディタの該当行へ。
  • HTML エクスポート図を描画し画像を埋め込んだ 1 つの HTML に。ブラウザの印刷で PDF にもできます。
  • 目次右端にマウスを載せると見出しの一覧が開き、クリックで移動します。
  • 図・画像の拡大図を全画面で表示し、ホイールで拡大縮小、ドラッグで移動できます。
  • ライト・ダークVS Code の配色に従うほか、ボタン 1 つでプレビューだけ切り替えられます。
  • AI で書く記法ガイドと Agent Skill で、AI アシスタントにこの形式の設計書を書かせられます。
  • Git の履歴との比較コミットを選ぶと差分をプレビューに表示。変わったブロックに印を付け、変わった語を強調します。差分付きで HTML にもエクスポートできます。
  • 設計書一覧ワークスペースの設計書を版数・ステータス付きで一覧し、絞り込みや並べ替えができます。
  • 幅の調整図と処理概要の境界をドラッグして幅を変えられます。ダブルクリックで元に戻ります。
  • 検索Ctrl+F(macOS では Cmd+F)でプレビュー内を検索できます。

はじめる

MIT ライセンスのオープンソースで、無料で使えます。

VS Code 拡張機能

エディタとプレビューを同期させながら、設計書を書いて確かめられます。

デスクトップアプリ

VS Code がなくても、Windows・macOS・Linux で設計書を読めます。ファイルを保存すると表示を更新し、拡張機能と同じように HTML へのエクスポートや Git の履歴との比較もできます。

コマンドライン

CI やバッチ処理で設計書を HTML に変換します。Node.js 22 以降と Chrome が必要です。

npx markdown-design-doc-viewer export docs -o site

AI 向けの Agent Skill

Claude などの AI アシスタントに、この形式の設計書を依頼の言語で書かせられます。