Communitygithub.com

nedeadinside/likec4-skill

説明やコードベースからC4図をLikeC4 DSLで記述し、LikeC4 CLIで検証してから提供するエージェントスキルです。Claude Code、Codex、Cursor、OpenCodeで動作します。

likec4-skill とは?

このスキルは、AIエージェント(Claude Code、Codex、Cursor、OpenCode)向けに、C4図をLikeC4 DSLで生成・検証するための包括的なガイドラインを提供します。ユーザーが口頭で説明したり、既存のコードベースを解析したりして、システムアーキテクチャ図を正確かつ一貫性のある形式で作成することを可能にします。スキルは「検証してから提供する」というルールと「DSL構文を推測しない」というルールの2つを厳守します。セットアップ手順、テンプレート(最小構成/フル構成)、参照資料(レベル別、構文、スタイリング、コード変換など)が整備されており、規模に応じた適切な構造選択が可能です。ワークフローはスコープ設定→セットアップ→モデル記述→ビュー作成→検証→フォーマット→提供、の順で進み、品質チェックリストによって出力の正確性と見やすさが担保されます。

対応✓Claude Code✓Codex CLI✓Cursor✓OpenCode
npx skills add nedeadinside/likec4-skill

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

LikeC4 C4 図

口頭での説明またはコードベースからLikeC4 DSLで有効なC4図を作成し、提供前にCLIで検証します。参照資料は関心事ごとに分割されています。各パートを書く前に、タスクに必要なものだけを読み、構文を推測しないでください。

ここに記載されている内容はすべて likec4 1.59.2 に対して検証済みです(バージョン固定とアップグレード手順については references/setup-and-validation.md を参照)。

厳格なルール(2つのみ)

  1. 提供前に検証する。 プロジェクトに対して likec4 validate を実行し、終了コード0の場合のみ提供します。CLIが全く利用できない場合 → 文書化された自己チェックを実施し、その旨を開示します。手順: references/setup-and-validation.md。
  2. DSL構文を決して推測しない。 不明な場合は関連する参照資料を開き、それでも不明な場合は https://likec4.dev/dsl/ を参照します。

セットアップ(最初の作業、セッションごとに1回)

LC4="npx -y [email protected]"
v="$(likec4 --version 2>/dev/null | grep -oE '^[0-9]+\.[0-9]+\.[0-9]+' | tail -1)"
[ -n "$v" ] && [ "$(printf '%s\n1.53.0\n' "$v" | sort -V | head -1)" = "1.53.0" ] && LC4=likec4

インストール済みのCLIは >= 1.53.0 の場合のみ使用します。それより古いバージョンには format コマンドがなく、1.52.0は無効なモデルでも終了コード0を返すため、以下の2つのゲートが黙って通過してしまいます。グローバルインストールは不要です。npx -y [email protected] はNode 22以上とネットワーク環境があれば動作します(初回はダウンロードし、その後キャッシュされます)。ユーザーが保持するプロジェクトには npm install --save-dev [email protected] を推奨します。詳細、バージョン下限、オフラインフォールバック、エラー一覧については: references/setup-and-validation.md。

タスク → 読むべきもの

直面するタスク読むもの
システムコンテキスト / ランドスケープ(「誰が使うか、何と通信するか」)references/levels/l1-context.md
コンテナ(「内部で何が動くか」、技術選択)references/levels/l2-container.md
コンポーネント(1つのコンテナ内部)references/levels/l3-component.md
コードレベル(1つのコンポーネントのクラス/インターフェース)references/levels/l4-code.md
データフロー / シナリオ / シーケンス(ログイン、チェックアウト、パイプライン)references/levels/flows-dynamic.md
インフラストラクチャ / 「どこで動作するか」references/levels/deployment.md
クロスカッティングなDSLの質問(spec、model、FQN、extend、述語)references/syntax-core.md
色、形状、アイコン、凡例、レイアウトreferences/styling.md
リポジトリ / ソースコードが与えられた場合references/code-to-diagram.md
インストール、検証、フォーマット、エラー、プレビュー/エクスポート/CIreferences/setup-and-validation.md

構造をタスクに合わせて拡大縮小する

  • 小規模な依頼(1システム、簡単なコンテキスト/コンテナ図): templates/minimal/ から始めます。3ファイル(spec.c4、model.c4、views.c4)。マルチフォルダプロジェクトは構築しません。
  • 本格的なシステム(2レベル以上、複数システム、デプロイメント、フロー): templates/full/ レイアウトを使用します。ファイルをコピーして内容をリネームします:
architecture/
├── spec.c4                 # 唯一の仕様ブロック: すべての種類
├── model/
│   ├── landscape.c4        # トップレベルのシステム + アクター
│   ├── <system>.c4         # システムごとに1ファイル、extend <system> { … } を使用
│   └── externals.c4        # externalSystem 要素
├── deployment/prod.c4      # ノード + instanceOf(種類は spec.c4 に残す)
└── views/
    ├── context.c4          # レベル1(ビューインデックス)
    ├── <system>-views.c4   # レベル2/3のビュー、ドリルダウンあり
    └── dynamic-flows.c4    # 動的ビュー + デプロイメントビュー

ファイルを追加することで拡張し(新しいシステム → 新しい model/<s>.c4)、モデルとビューを分離し、仕様は1つのファイルに保持します。フォルダ内のすべての .c4 ファイルは自動的に1つのモデルにマージされます。

テンプレートは組み込みテーマカラーのみを使用します(スコープ内 = primary、外部 = externalSystem 種類による gray、人物 = indigo)。カスタムカラーやタグは使用しません。これによりC4の慣習を維持し、ライト/ダークテーマに適応します。

ワークフロー

  1. スコープ設定 — システム、アクター、外部システムを特定し、レベルを選択します。デフォルト: コンテキスト + コンテナ。コンポーネントは重要なコンテナにのみ使用。主要なシナリオごとに1つの動的ビュー(推奨)。インフラが重要な場合にデプロイメント。レベル4は明示的なリクエストまたは明確な正当性がある場合のみ(references/levels/l4-code.md — デフォルトの代わりはソースリンク)。リポジトリが入力の場合 → references/code-to-diagram.md。本当に曖昧なスコープ → 1つ質問します。それ以外は進め、前提条件を明記します。
  2. セットアップ — 該当するテンプレートをコピーし、上記の LC4 行を実行します。
  3. モデル、次にビュー — モデルファイルを作成し、次にドリルダウン(view of、navigateTo)のあるビューを作成します。各図を作成する際には該当するレベルファイルを読みます。
  4. 検証、次にフォーマット — $LC4 validate <dir>。終了コード0になるまで Line N: のエラー(エラーカタログは setup-and-validation.md 内)を修正します。次に $LC4 format <dir> を実行し、再検証します。これによりファイルがユーザーのツールが生成する標準スタイルと一致します。
  5. 提供 — ファイルツリー、検証結果、図の表示方法($LC4 start <dir>; エクスポート/CIのオプションは setup-and-validation.md 内)を示します。

品質基準(提供前に確認)

  • likec4 validate が終了コード0(または開示された自己チェック)、stderrはクリーン。
  • likec4 format <dir> --check が終了コード0 — ファイルが正規形式であること。
  • すべての要素に説明があり、すべてのコンテナ/コンポーネントに technology があり、すべての関連に方向性のあるラベル(内容+方法)があること。
  • すべてのビューに title があり、ビューごとに約20要素以内 — 混雑したビューは分割すること。
  • レベルが接続されている: コンテキスト → コンテナ → コンポーネント(view of / navigateTo 経由)。

関連スキル