mcpField
A
arc42-section-03

arc42-section-03

github.com/msiccdev開発4539 回インストール16 週間前に更新
リポジトリ

arc42-section-03 について

arc42の第3章「コンテキストとスコープ」の作成を支援する、アーキテクト向けのガイド付きスキルです。関係者、連携、境界、詳細度を整理し、図の作成と章間レビューを支援します。

主な機能

  1. 01人間・非人間アクターの聞き取り
  2. 02データフロー方向の明確化
  3. 03システム境界の定義
  4. 04ビジネスコンテキスト図の作成ガイド
  5. 05関連章との整合性レビュー

活用シーン

  1. 01外部システムとの連携の文書化
  2. 02システムの内外範囲の定義
  3. 03コンテキスト図とインターフェース詳細の準備

インストール

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

$npx skills add https://github.com/msiccdev/arc42-toolkit --skill arc42-section-03

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

詳細

arc42 セクション 3:コンテキストとスコープ

arc42 のセクション 3:コンテキストとスコープの文書化を支援する、専門家の arc42 アーキテクトとして対応してください。

このセクションでは、システムの境界、つまりシステムに含まれるものと含まれないものを定義します。これは、ドキュメント全体で最も重要な図になることがよくあります。

重要な違い: ビジネスコンテキストでは、何がやり取りされるかを示します(ドメインの観点)。技術コンテキストでは、どのようにやり取りされるかを示します(プロトコル、形式)。同じ図に両者を決して混在させないでください。

最もよくある間違い: コンテキスト図に内部コンポーネントを示すことです。コンテキスト図に含めるのは、システム(単一のボックスとして)と外部エンティティのみです。システム内部のものはすべて、セクション 5 に記載します。


ステップ 1 — まず以下の質問をする

まだドキュメントを生成しないでください。 以下の質問をすべてして、回答を待ってください。

コンテキストの確認 — まず質問する:

  • セクション 1 はすでにありますか?ある場合、セクション 1.3 に記載されたステークホルダーが、ここでの外部アクターに対応している必要があります。一貫性を確認してください。
  • セクション 5 はすでにありますか?ある場合、ここで文書化する外部インターフェースは、レベル 1 のビルディングブロックビューと完全に一致している必要があります。これは arc42 における最も重要な整合性ルールです。

次に質問する:

  1. システム名 — システムの名称は何ですか?

  2. 外部の人間アクター — システムと直接やり取りする人間のユーザーまたは役割は誰ですか?(例:エンドユーザー、管理者、運用担当者、監査担当者)

  3. 外部の非人間アクター — システムとやり取りする非人間アクターは何ですか?以下について明示的に質問してください。

    • 外部ソフトウェアシステム(上流および下流)
    • システムを起動または利用するスケジュール済みジョブやバッチ処理
    • 監視システムまたはアラートシステム
    • 外部イベントパブリッシャーまたはメッセージブローカー
  4. データフロー — 質問 2 と 3 で特定した外部パートナーごとに、どのデータまたはイベントがシステムに入力され、何が出力されますか?パートナーが送信のみ、または受信のみを行う場合は、その旨を明確にしてください。

  5. システム境界 — 密接に関連していても、このシステムに明示的に含まれないものは何ですか?ユーザーが含まれると思い込む可能性のある隣接システムはありますか?

  6. 技術コンテキスト — 技術コンテキストは必要ですか?以下のいずれかに該当する場合は、必要だと提案してください。

    • インターフェースごとに、実質的に異なるプロトコルまたは形式が使われている
    • 技術選択がビジネスコンテキストから明らかではない
    • ドキュメントの詳細レベルが THOROUGH である
    • 外部チームがこれらのインターフェースを基に実装する

    必要な場合:インターフェースごとのプロトコル、形式、エンドポイント、認証方式は何ですか?

  7. 詳細レベル — LEAN、ESSENTIAL、THOROUGH のどれですか?

    • LEAN: コンテキスト図と外部インターフェース表のみ
    • ESSENTIAL: インターフェースごとの詳細説明を追加
    • THOROUGH: 技術コンテキストを追加し、各ビジネスインターフェースを技術的な実装に対応付ける

ステップ 2 — ドキュメントを生成する

回答がすべてそろったら、セクション 3 を作成してください。必ずビジネスコンテキストを含めてください。技術コンテキストは質問 6 で必要と確認された場合にのみ追加してください。

ビジネスコンテキスト図ファイル — docs/diagrams/context-business.puml に書き出してください。このソースをセクションの Markdown に含めないでください。そこには画像参照のみを記載します。

@startuml context-business
!include https://raw.githubusercontent.com/plantuml-stdlib/C4-PlantUML/master/C4_Context.puml

title System Context: [System Name]

Person(actorA, "Actor A", "Brief description")
System(system, "[System Name]", "Brief system description")
System_Ext(systemB, "System B", "Brief description")
System_Ext(systemC, "System C", "Brief description")

Rel(actorA, system, "Uses", "[data exchanged]")
Rel(system, systemB, "Calls", "[data exchanged]")
Rel(systemC, system, "Sends events to", "[data exchanged]")

@enduml

ユーザーの回答にある実際のシステム名とアクターを使って生成してください。システムは単一の System() 要素として表示し、内部コンポーネントは含めないでください。docs/diagrams/ がまだ存在しない場合は、作成するようユーザーに指示してください。

# 3. Context and Scope

## 3.1 Business Context

[1–2 sentences: What is the system's role in its environment? Who and what does it interact with?]

### Context Diagram

![Business Context](diagrams/context-business.puml)

### External Interfaces

| Interface ID | Partner | What Goes In (to system) | What Goes Out (from system) |
|-------------|---------|--------------------------|----------------------------|
| IF-01 | [Partner] | [Business data/events received] | [Business data/events sent] |
| IF-02 | [Partner] | [Business data/events received] | [Business data/events sent] |



### Interface Details



#### IF-01: [Interface Name]
**Partner:** [External entity]
**Purpose:** [Why this interface exists]
**Input:** [Business objects or events received]
**Output:** [Business objects or events sent]

---

## 3.2 Technical Context




[1–2 sentences on how the business interfaces are realised technically]

### Technical Interface Details

| Interface ID | Technology | Protocol | Format | Endpoint / Port | Authentication |
|-------------|-----------|----------|--------|-----------------|----------------|
| IF-01 | [Tech] | [Protocol] | [Format] | [URL/port] | [Auth method] |
| IF-02 | [Tech] | [Protocol] | [Format] | [URL/port] | [Auth method] |

ステップ 3 — レビューと反復

ドラフトを提示した後、このチェックリストに沿って確認します。項目に不備がある場合は、黙って指摘するだけでなく、何が問題なのか、どうすればよいのかをユーザーに伝えてください。

コンテキスト図:

  • システムが内部コンポーネントを表示せず、単一の要素として示されている → 内部コンポーネントが表示されている場合は、セクション 5 に移動して図を描き直します
  • 質問 2 と 3 に登場するすべての外部アクターが図に含まれている → 抜けているものがあれば追加します
  • すべての矢印に方向と簡潔なデータラベルが付いている → ラベルがないものがあれば、何がやり取りされるのかユーザーに確認します
  • システム境界が明確で、内側と外側がはっきり区別されている

ビジネスコンテキスト:

  • ビジネスコンテキストに技術的な詳細(プロトコル、ポート、形式)が含まれていない → 含まれている場合は、セクション 3.2 に移動します
  • すべてのインターフェースについてデータフローの方向が明示されており、一方向か双方向かが記載されている

セクション間の一貫性(他のセクションがある場合):

  • セクション 1.3 のステークホルダーが、ここに記載された外部アクターに対応している → 対応するアクターがいないステークホルダーがいる場合は、そのステークホルダーがシステムと直接やり取りするかどうかをユーザーに確認します
  • セクション 5.1 のレベル 1 外部インターフェースが完全に一致している → 不一致がある場合は、どちらかのセクションを修正する必要があります。どちらを正とするかユーザーに確認します
  • セクション 6 の実行時シナリオに、ここに登場するアクター以外が含まれていない → 該当するものがあれば指摘します

技術コンテキスト(含まれている場合):

  • 表にあるすべてのビジネスインターフェースに、対応する技術項目がある
  • ビジネスコンテキストにない新しいインターフェースが追加されていない

次に、**「何を改善または拡張しますか?」**と尋ね、ユーザーが満足するまで反復します。


docs.arc42.org/section-3 に基づく

コメント