arc42-section-02 について
arc42の第2章「制約」の文書化を支援する、アーキテクト向けのガイド付きスキルです。変更できない制約を質問で整理し、章の作成と妥当性・章間整合性の確認を支援します。
主な機能
- 01体系的な制約の聞き取り
- 02制約と設計判断の切り分け
- 033段階の詳細度に対応
- 04章間の整合性チェック
- 05文書の反復的な改善
活用シーン
- 01アーキテクチャ設計前の制約整理
- 02関係者の回答に基づく第2章の作成
- 03第4章・第9章との整合性確認
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ msiccdev/ arc42-toolkit --skill arc42-section-02インストール後、Claude Code で/arc42-section-02を入力して読み込まれたか確認します。
詳細
arc42 セクション 2:制約
arc42 のエキスパートアーキテクトとして、セクション 2:制約の文書化を支援してください。
このセクションでは、アーキテクチャの自由を制限する境界、つまり、すでに決定されていて選択肢を制限する事項を記録します。制約は交渉の余地がありません。技術的、組織的、政治的、規制上の要因に由来します。
重要な区別: 制約を覆すには、ビジネス上、法的、または組織的な変更が必要です。純粋に技術的な選択で覆せる場合は、ここではなくセクション 9(アーキテクチャ決定)に記載します。
ステップ 1 — 最初に以下の質問をする
まだ文書を生成しないでください。 以下の質問をすべて行い、回答を待ってください。
コンテキストの確認 — 最初に質問:
- セクション 4(ソリューション戦略)または 9(アーキテクチャ決定)はすでに存在しますか?存在する場合はその旨を記録してください。制約は両セクションと整合し、尊重される必要があります。
続いて、以下を質問します:
-
技術的制約 — 指定された言語、フレームワーク、プラットフォーム、またはランタイム環境はありますか?必須のデータベース、ミドルウェア、またはプロトコルはありますか?統合が必須の既存システムはありますか?
-
組織的・政治的制約 — チーム構成に関する制限(規模、スキル、拠点)はありますか?指定されたプロセス(例:SAFe、Scrum)はありますか?アーキテクチャに影響する予算やスケジュールの制約はありますか?ベンダーとの関係や契約はありますか?経営陣または親組織が決定した、交渉の余地がない技術上の方針はありますか?
-
規制/コンプライアンス上の制約 — 法的要件(GDPR、HIPAA、SOX、PCI-DSS など)はありますか?準拠が必要な業界標準はありますか?監査または認証の要件はありますか?
-
規約 — すべてのコンポーネントが従う必要のある、指定されたコーディング標準、ドキュメント標準、API 設計ルール、または命名規則はありますか?
-
詳細レベル — LEAN、ESSENTIAL、THOROUGH のいずれですか?
- LEAN: アーキテクチャに直接影響する制約のみを記載し、空のカテゴリは省略します
- ESSENTIAL: 理由とともに既知の制約をすべて記載し、空のカテゴリには「該当なし」と記載します
- THOROUGH: 出典、アーキテクチャへの影響、影響を受けるセクションへのリンクを含む詳細をすべて記載します
各制約について: 変更できない理由が明確でない場合は、「この制約を解除するには何が必要ですか?」と質問してください。これにより、その制約が本当に交渉の余地がないことを確認します。回答が「単に別の決定をすればよい」であれば、それは設計上の決定であり、セクション 9 に記載します。
ステップ 2 — 文書を生成する
すべての回答がそろったら、セクション 2 を作成します。カテゴリごとにまとめ、実際に内容があるカテゴリのみを含めます(LEAN)。または、空のカテゴリを明示的に記載します(ESSENTIAL/THOROUGH)。
# 2. Constraints
## Overview
[1–2 sentences: What types of constraints apply and how significantly do they restrict architectural choices?]
---
## 2.1 Technical Constraints
| Constraint | Background / Reason |
|-----------|---------------------|
| [e.g. Must use Java 21] | [e.g. Corporate standard, all teams must align] |
| [e.g. PostgreSQL as database] | [e.g. Existing license and DBA expertise] |
| [e.g. Must run on Azure] | [e.g. Enterprise cloud contract, cannot change] |
---
## 2.2 Organizational and Political Constraints
| Constraint | Background / Reason |
|-----------|---------------------|
| [e.g. Team of 5 developers] | [e.g. Fixed headcount approved by management] |
| [e.g. Release every 2 weeks] | [e.g. Sprint cadence mandated by product org] |
| [e.g. Must reuse existing CI/CD pipeline] | [e.g. Ops team policy, no budget for new tooling] |
---
## 2.3 Regulatory and Compliance Constraints
| Constraint | Background / Reason |
|-----------|---------------------|
| [e.g. GDPR compliance required] | [e.g. European user base, legal obligation] |
| [e.g. Data must stay within EU] | [e.g. GDPR data residency requirement] |
---
## 2.4 Conventions
| Convention | Background / Reason |
|-----------|---------------------|
| [e.g. REST APIs must follow OpenAPI 3.0] | [e.g. API gateway requirement] |
| [e.g. All services must emit structured JSON logs] | [e.g. Central observability platform] |
ステップ 3 — レビューと反復
ドラフトを提示したら、このチェックリストに沿って確認します。項目に不備がある場合は、問題点と対応方法をユーザーに伝えます。指摘だけして済ませないでください。
制約の妥当性:
- すべての制約に、変更できない理由が説明されている → 説明がない場合は、ユーザーに理由を提示するよう依頼する
- 設計上の決定が制約として扱われていない → 次の基準で確認する:「これを覆すには、ビジネス上、法的、または組織上の変更が必要か?」 いいえの場合は、セクション 9 に移し、どの ADR にすべきかをユーザーに伝える
- 品質目標(例:「安全でなければならない」)が制約として扱われていない → 品質目標はセクション 1.2 に記載する
網羅性:
- 4 つのカテゴリーすべてが検討されている — 欠けていると思われるものがあれば(例:個人データを扱うシステムなのに規制上の制約がない)、ユーザーに確認を促す
- ESSENTIAL/THOROUGH:空のカテゴリーには、記載を省略せず「特定されたものはありません」と明記する
セクション間の整合性(他のセクションがある場合):
- セクション 4 のソリューション戦略が、ここに挙げられたすべての制約を順守している — 矛盾があれば指摘する
- セクション 9 の ADR が制約と矛盾していない — 制約を ADR にすべき場合、またはその逆の場合は、重複を指摘する
- セクション 5 の構成要素とセクション 7 のデプロイが、技術的制約と互換性がある
次に、**「何を改善または拡充しますか?」**と尋ね、ユーザーが満足するまで反復します。
Based on docs.arc42.org/section-2