c4-context について
システムとその周辺を記述する、C4システムコンテキスト向けのドキュメント作成スキルです。ペルソナ、機能、ユーザージャーニー、依存関係を整理し、関係者向けのMermaidコンテキスト図を案内します。
主な機能
- 01システム概要テンプレート
- 02ペルソナと機能の記述
- 03ユーザージャーニーの整理
- 04外部システム一覧
- 05Mermaidコンテキスト図のガイド
活用シーン
- 01システムコンテキストの文書化
- 02ユーザーと行動経路の整理
- 03外部依存関係の記録
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ sickn33/ agentic-awesome-skills --skill c4-contextインストール後、Claude Code で/c4-contextを入力して読み込まれたか確認します。
詳細
C4 コンテキストレベル:システムコンテキスト
このスキルを使用する場面
- C4 コンテキストレベル:システムコンテキストに関するタスクやワークフローに取り組む場合
- C4 コンテキストレベル:システムコンテキストに関するガイダンス、ベストプラクティス、チェックリストが必要な場合
このスキルを使用しない場面
- タスクが C4 コンテキストレベル:システムコンテキストに関係しない場合
- この範囲外の別のドメインやツールが必要な場合
指示
- 目標、制約、必要な入力を明確にします。
- 関連するベストプラクティスを適用し、成果を検証します。
- 実行可能な手順と検証方法を提示します。
システム概要
簡単な説明
[システムが何をするかを1文で説明]
詳細な説明
[システムの目的、機能、解決する問題の詳細な説明]
ペルソナ
[ペルソナ名]
- 種類:[人間のユーザー/プログラムによるユーザー/外部システム]
- 説明:[このペルソナが誰で、何を必要としているか]
- 目標:[このペルソナが達成したいこと]
- 使用する主な機能:[このペルソナが使用する機能の一覧]
システム機能
[機能名]
- 説明:[この機能の内容]
- ユーザー:[この機能を使用するペルソナ]
- ユーザージャーニー:[ユーザージャーニーマップへのリンク]
ユーザージャーニー
[機能名] - [ペルソナ名]のジャーニー
- [手順1]:[説明]
- [手順2]:[説明]
- [手順3]:[説明] ...
[外部システム]との連携ジャーニー
- [手順1]:[説明]
- [手順2]:[説明] ...
外部システムと依存関係
[外部システム名]
- 種類:[データベース、API、サービス、メッセージキューなど]
- 説明:[この外部システムが提供するもの]
- 連携方法:[API、イベント、ファイル転送など]
- 目的:[システムがこれに依存する理由]
システムコンテキスト図
[システム、ユーザー、外部システムを示すMermaid図]
関連ドキュメント
- コンテナドキュメント
- コンポーネントドキュメント
コンテキスト図テンプレート
C4モデルによると、システムコンテキスト図では、中央にシステムをボックスとして配置し、その周囲にユーザーとシステムが連携する他のシステムを示します。焦点を当てるのは、技術、プロトコル、その他の低レベルな詳細ではなく、人(アクター、役割、ペルソナ)とソフトウェアシステムです。
適切なMermaid C4構文を使用してください。
C4Context
title System Context Diagram
Person(user, "User", "Uses the system to accomplish their goals")
System(system, "System Name", "Provides features X, Y, and Z")
System_Ext(external1, "External System 1", "Provides service A")
System_Ext(external2, "External System 2", "Provides service B")
SystemDb(externalDb, "External Database", "Stores data")
Rel(user, system, "Uses")
Rel(system, external1, "Uses", "API")
Rel(system, external2, "Sends events to")
Rel(system, externalDb, "Reads from and writes to")
主な原則(c4model.comより):
- 技術ではなく、人とソフトウェアシステムに焦点を当てる
- システム境界を明確に示す
- すべてのユーザー(人間およびプログラムによるユーザー)を含める
- システムが連携するすべての外部システムを含める
- ステークホルダーにとって分かりやすくする。技術者以外にも理解できる内容にする
- 技術、プロトコル、低レベルな詳細を示すのは避ける
やり取りの例
- 「システムのC4コンテキストレベルのドキュメントを作成する」
- 「すべてのペルソナを特定し、主要機能のユーザージャーニーマップを作成する」
- 「外部システムを文書化し、システムコンテキスト図を作成する」
- 「システムドキュメントを分析し、包括的なコンテキストドキュメントを作成する」
- 「プログラムによるユーザーを含む、すべての主要機能のユーザージャーニーをマッピングする」
主な違い
- C4-Containerエージェントとの違い:システムの概要を示します。Containerエージェントはデプロイアーキテクチャに焦点を当てます
- C4-Componentエージェントとの違い:システムコンテキストに焦点を当てます。Componentエージェントは論理的なコンポーネント構造に焦点を当てます
- C4-Codeエージェントとの違い:ステークホルダーに分かりやすい概要を示します。Codeエージェントは技術的なコードの詳細を示します
出力例
コンテキストドキュメントを作成する際は、以下を提供してください。
- 明確なシステムの説明(短いものと詳しいもの)
- 包括的なペルソナドキュメント(人間向けとプログラム向け)
- 説明付きの完全な機能一覧
- すべての主要機能を対象とした詳細なユーザージャーニーマップ
- 外部システムと依存関係に関する完全なドキュメント
- システム、ユーザー、外部システムを示す Mermaid コンテキスト図
- コンテナおよびコンポーネントのドキュメントへのリンク
- 技術的な知識がない読者にも理解できる、ステークホルダー向けのドキュメント
- 一貫したドキュメント形式
制限事項
- タスクが上記の範囲に明確に一致する場合にのみ、このスキルを使用してください。
- 環境固有の検証、テスト、専門家によるレビューの代わりとして、この出力を扱わないでください。
- 必要な入力、権限、安全上の境界、または成功基準が不足している場合は、作業を中断して確認を求めてください。
コメント
Markdown 対応