c4-component について
C4 コンポーネントレベルのソフトウェア文書を作成するためのスキルテンプレートです。コンポーネントの境界、インターフェース、依存関係、Mermaid 図を整理でき、プレースホルダーはプロジェクトに合わせて記入します。
主な機能
- 01コンポーネント境界の指針
- 02インターフェースと依存関係の文書化
- 03Mermaid コンポーネント図
- 04コンポーネント一覧テンプレート
活用シーン
- 01コードファイルをコンポーネントに分類
- 02API 層のコンポーネント境界の定義
- 03コンポーネントインターフェースの文書化
- 04コンポーネント関係図の作成
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill c4-componentインストール後、Claude Code で/c4-componentを入力して読み込まれたか確認します。
詳細
C4 コンポーネントレベル:[Component Name]
このスキルを使用する場合
- c4 コンポーネントレベル:[component name] に関するタスクやワークフローに取り組む場合
- c4 コンポーネントレベル:[component name] に関するガイダンス、ベストプラクティス、チェックリストが必要な場合
このスキルを使用しない場合
- タスクが c4 コンポーネントレベル:[component name] と無関係な場合
- この範囲外の別のドメインやツールが必要な場合
手順
- 目標、制約、必要な入力を明確にします。
- 関連するベストプラクティスを適用し、結果を検証します。
- 実行可能な手順と検証方法を提示します。
概要
- 名前:[Component name]
- 説明:[コンポーネントの目的の簡単な説明]
- 種類:[コンポーネントの種類:アプリケーション、サービス、ライブラリなど]
- 技術:[主に使用する技術]
目的
[このコンポーネントの機能と、解決する問題の詳細な説明]
ソフトウェア機能
- [機能 1]:[説明]
- [機能 2]:[説明]
- [機能 3]:[説明]
コード要素
このコンポーネントには、次のコードレベルの要素が含まれます。
- c4-code-file-1.md - [説明]
- c4-code-file-2.md - [説明]
インターフェース
[インターフェース名]
- プロトコル:[REST/GraphQL/gRPC/イベントなど]
- 説明:[このインターフェースが提供するもの]
- 操作:
operationName(params): ReturnType- [説明]
依存関係
使用するコンポーネント
- [コンポーネント名]:[使用方法]
外部システム
- [外部システム]:[使用方法]
コンポーネント図
適切な Mermaid C4Component 構文を使用してください。コンポーネント図では、単一のコンテナー内のコンポーネントを示します。
C4Component
title Component Diagram for [Container Name]
Container_Boundary(container, "Container Name") {
Component(component1, "Component 1", "Type", "Description")
Component(component2, "Component 2", "Type", "Description")
ComponentDb(component3, "Component 3", "Database", "Description")
}
Container_Ext(externalContainer, "External Container", "Description")
System_Ext(externalSystem, "External System", "Description")
Rel(component1, component2, "Uses")
Rel(component2, component3, "Reads from and writes to")
Rel(component1, externalContainer, "Uses", "API")
Rel(component2, externalSystem, "Uses", "API")
主な原則(c4model.comより):
- 単一のコンテナー内のコンポーネントを示す(1つのコンテナーにズームインする)
- 論理コンポーネントとその責務に焦点を当てる
- コンポーネントインターフェース(コンポーネントが公開するもの)を示す
- コンポーネント間の相互作用を示す
- 外部依存関係(他のコンテナー、外部システム)を含める
マスターコンポーネントインデックスのテンプレート
# C4 Component Level: System Overview
## System Components
### [Component 1]
- **Name**: [Component name]
- **Description**: [Short description]
- **Documentation**: c4-component-name-1.md
### [Component 2]
- **Name**: [Component name]
- **Description**: [Short description]
- **Documentation**: c4-component-name-2.md
## Component Relationships
[Mermaid diagram showing all components and their relationships]
やり取りの例
- 「すべての c4-code-*.md ファイルを論理コンポーネントに統合する」
- 「認証および認可コードのコンポーネント境界を定義する」
- 「API レイヤーのコンポーネントレベルのドキュメントを作成する」
- 「コンポーネントインターフェースを特定し、コンポーネント図を作成する」
- 「データベースアクセスコードをコンポーネントにまとめ、その関係を文書化する」
主な違い
- C4-Code エージェントとの違い:複数のコードファイルをコンポーネントに統合します。Code エージェントは個々のコード要素を文書化します
- C4-Container エージェントとの違い:論理的なグループ化に焦点を当てます。Container エージェントはコンポーネントをデプロイ単位に対応付けます
- C4-Context エージェントとの違い:コンポーネントレベルの詳細を提供します。Context エージェントは高レベルのシステム図を作成します
出力例
コンポーネントを統合する際は、次の内容を提示してください。
- 根拠を添えた明確なコンポーネント境界
- 説明的なコンポーネント名と目的
- 各コンポーネントの包括的な機能一覧
- プロトコルと操作を含む完全なインターフェースドキュメント
- 含まれるすべての c4-code-*.md ファイルへのリンク
- 関係性を示す Mermaid コンポーネント図
- すべてのコンポーネントを含むマスターコンポーネントインデックス
- すべてのコンポーネントで統一されたドキュメント形式
制限事項
- タスクが上記の説明された範囲に明確に当てはまる場合にのみ、このスキルを使用してください。
- 出力を、環境固有の検証、テスト、または専門家によるレビューの代わりとして扱わないでください。
- 必要な入力、権限、安全上の境界、または成功基準が不足している場合は、作業を中断して確認を求めてください。
コメント
Markdown 対応