mcpField
C
c4-container

c4-container

github.com/sickn33開発48.7k232 回インストール今日更新
リポジトリ

c4-container について

C4 コンテナレベルでアプリケーションやデータストアを記述するスキルテンプレートです。デプロイ境界、インターフェース、依存関係、図を扱い、構成は実際のコードや設定に基づいて確認するよう促します。

主な機能

  1. 01コンテナ境界の文書化
  2. 02インターフェースと API 仕様の指針
  3. 03デプロイと依存関係の整理
  4. 04Mermaid コンテナ図
  5. 05インフラとスケーリングのチェック項目

活用シーン

  1. 01コンポーネントをデプロイ単位に対応付け
  2. 02マイクロサービスのコンテナ文書作成
  3. 03API 仕様の作成
  4. 04Kubernetes マニフェストの分析

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/sickn33/agentic-awesome-skills --skill c4-container

インストール後、Claude Code で/c4-containerを入力して読み込まれたか確認します。

詳細

C4 コンテナレベル:アプリケーションとデータストア

このスキルを使用する場面

  • C4 コンテナレベルのシステムデプロイタスクやワークフローに取り組む場合
  • C4 コンテナレベルのシステムデプロイに関するガイダンス、ベストプラクティス、チェックリストが必要な場合

このスキルを使用しない場面

  • タスクが C4 コンテナレベルのシステムデプロイに関係しない場合
  • この範囲外の別の分野やツールが必要な場合

手順

  • 目標、制約、必要な入力を明確にします。
  • 関連するベストプラクティスを適用し、結果を検証します。
  • 実行可能な手順と検証方法を提示します。

C4 のコンテナはアプリケーションまたはデータストアであり、必ずしも Docker コンテナや実行時ノードを指すものではありません。物理的なインスタンスやリージョンは、デプロイ図で個別にモデル化してください。各境界や関係性は、確認できたコードや設定に基づいて定義し、不明な点は明示してください。以下のテンプレートはプレースホルダーであり、発見済みのアーキテクチャを示すものではありません。

コンテナ

[Container Name]
  • 名前: [コンテナ名]
  • 説明: [コンテナの目的とデプロイ方法の簡単な説明]
  • 種類: [Web Application、API、Database、Message Queue など]
  • テクノロジー: [主要なテクノロジー:Node.js、Python、PostgreSQL、Redis など]
  • デプロイ: [Docker、Kubernetes、Cloud Service など]

目的

[このコンテナの役割とデプロイ方法の詳細な説明]

コンポーネント

このコンテナには、以下のコンポーネントをデプロイします。

  • [Component Name]:[説明]
    • ドキュメント:c4-component-name.md

インターフェース

[API/Interface Name]
  • プロトコル: [REST/GraphQL/gRPC/Events など]
  • 説明: [このインターフェースが提供するもの]
  • 仕様: [OpenAPI/Swagger/API 仕様ファイルへのリンク]
  • エンドポイント:
    • GET /api/resource - [説明]
    • POST /api/resource - [説明]

依存関係

#C4 のコンテナはアプリケーションまたはデータストアであり、必ずしも Docker コンテナや実行時ノードを指すものではありません。物理的なインスタンスやリージョンは、デプロイ図で個別にモデル化してください。各境界や関係性は、確認できたコードや設定に基づいて定義し、不明な点は明示してください。以下のテンプレートはプレースホルダーであり、発見済みのアーキテクチャを示すものではありません。

使用するコンテナ

  • [Container Name]:[使用方法、通信プロトコル]
外部システム
  • [External System]:[使用方法、統合の種類]

インフラストラクチャ

  • デプロイ設定:[Dockerfile、K8s マニフェストなどへのリンク]
  • スケーリング:[水平/垂直スケーリング戦略]
  • リソース:[CPU、メモリ、ストレージの要件]

コンテナ図

適切な Mermaid C4Container 構文を使用します。

C4Container
    title Container Diagram for [System Name]

    Person(user, "User", "Uses the system")
    System_Boundary(system, "System Name") {
        Container(webApp, "Web Application", "Spring Boot, Java", "Provides web interface")
        Container(api, "API Application", "Node.js, Express", "Provides REST API")
        ContainerDb(database, "Database", "PostgreSQL", "Stores data")
        ContainerQueue(messageQueue, "Message Queue", "RabbitMQ", "Handles async messaging")
    }
    System_Ext(external, "External System", "Third-party service")

    Rel(user, webApp, "Uses", "HTTPS")
    Rel(webApp, api, "Makes API calls to", "JSON/HTTPS")
    Rel(api, database, "Reads from and writes to", "SQL")
    Rel(api, messageQueue, "Publishes messages to")
    Rel(api, external, "Uses", "API")

主な原則(c4model.comより):

  • 概要レベルのテクノロジーの選択を示します(テクノロジーの詳細を記載するのはここです)
  • コンテナ間で責任がどのように分担されているかを示します
  • コンテナの種類を含めます:アプリケーション、データベース、メッセージキュー、ファイルシステムなど
  • コンテナ間の通信プロトコルを示します
  • コンテナが連携する外部システムを含めます

API 仕様テンプレート

各コンテナ API について、OpenAPI/Swagger 仕様を作成します。

openapi: 3.1.0
info:
  title: [Container Name] API
  description: [API description]
  version: 1.0.0
servers:
  - url: https://api.example.com
    description: Production server
paths:
  /api/resource:
    get:
      summary: [Operation summary]
      description: [Operation description]
      parameters:
        - name: param1
          in: query
          schema:
            type: string
      responses:
        '200':
          description: [Response description]
          content:
            application/json:
              schema:
                type: object

インタラクション例

  • 「デプロイ定義に基づいてすべてのコンポーネントをコンテナにまとめる」
  • 「API コンポーネントをコンテナに割り当て、その API を OpenAPI 仕様として文書化する」
  • 「マイクロサービスアーキテクチャのコンテナレベルのドキュメントを作成する」
  • 「コンテナのインターフェースを Swagger/OpenAPI 仕様として文書化する」
  • 「Kubernetes マニフェストを分析し、コンテナのドキュメントを作成する」

主な違い

  • C4-Component エージェントとの違い:コンポーネントをデプロイ単位に対応付けます。Component エージェントは論理的なグループ化に重点を置きます
  • C4-Context エージェントとの違い:コンテナレベルの詳細を提供します。Context エージェントは概要レベルのシステム図を作成します
  • C4-Code エージェントとの違い:デプロイアーキテクチャに重点を置きます。Code エージェントは個々のコード要素を文書化します

出力例

コンテナーを合成する際は、以下を提供してください。

  • デプロイの根拠を示した明確なコンテナー境界
  • 説明的なコンテナー名とデプロイ特性
  • OpenAPI/Swagger 仕様を含む完全な API ドキュメント
  • 含まれるすべてのコンポーネントへのリンク
  • デプロイアーキテクチャを示す Mermaid コンテナー図
  • デプロイ設定(Dockerfile、K8s マニフェストなど)へのリンク
  • インフラストラクチャの要件とスケーリングに関する考慮事項
  • すべてのコンテナーで統一されたドキュメント形式

制限事項

  • タスクが上記の範囲に明確に該当する場合にのみ、このスキルを使用してください。
  • 出力を、環境固有の検証、テスト、または専門家によるレビューの代わりとして扱わないでください。
  • 必要な入力、権限、安全上の境界、または成功基準が不足している場合は、作業を中断して確認を求めてください。

コメント