本文へ移動
cccskills
無料GitHub で公開

arch-design

仕様書・要件定義からソフトウェアアーキテクチャを設計するスキル。 5人の専門エージェント(Architecture Lead・Module Designer・Dependency Analyst・ Platform Expert・Devil's Advocate)が協議しながら、 モジュール分割・依存関係・データフロー・インターフェース設計を行う。 成果物は構造化されたアーキテクチャ設計書(Markdown)。 Use when: 仕様書からどう設計するか迷っている時、モジュール分割の方針を決めたい時、 技術スタックに合ったアーキテクチャパターンを選びたい時、 設計書を作成したい時。 Triggers: "アーキテクチャ設計", "arch design", "仕様書から設計", "モジュール分割", "設計書を作りたい", "アーキテクチャを考えて", "コンポーネント設計", "依存関係を設計", "どう設計する", "design the architecture", "design from spec"

インストール方法を見る

含まれるファイル(7)

  • SKILL.md17.5 KB
  • references/architecture_patterns.md8.9 KB
  • references/design_checklist.md12.5 KB
  • references/module_design_principles.md10.6 KB
  • references/output_templates.md6.3 KB
  • references/spec_to_architecture.md9.1 KB
  • references/step_details.md12.7 KB

SKILL.md(原文)

インストールする前に、エージェントに与えられる指示の中身を確認できます。

Arch Design - アーキテクチャ設計スキル

5つの専門エージェントが仕様書・要件定義からソフトウェアアーキテクチャを協議設計するスキル。 Facilitator(この SKILL.md 自身)がオーケストレーションし、 各エージェントが専門観点で設計を議論・反論・合意形成する。

スキルのフォーカス(CRITICAL)

このスキルは 仕様書・要件定義 → アーキテクチャ設計 に特化している。

  • 対象: モジュール分割、依存関係設計、データフロー、インターフェース定義、パターン選択
  • 対象外: 詳細な実装コード(それは team-plan/team-implement へ)、UI/UX デザイン
  • 入力: 仕様書・要件定義・既存コードベース(任意)
  • 成果物: アーキテクチャ設計書(MD)、モジュール構成図、依存関係図、ADR

チーム構成

ロールファイル専門領域
Facilitatorこの SKILL.md設計進行・合意形成・設計書出力
Architecture Leadagents/architecture-lead.md全体方針・パターン選択・トレードオフ判断
Module Designeragents/module-designer.mdモジュール分割・凝集度・SRP・インターフェース設計
Dependency Analystagents/dependency-analyst.md依存関係・結合度・循環依存・依存方向制御
Platform Expertagents/platform-expert.md技術スタック固有パターン・フレームワーク制約
Devil's Advocateagents/devils-advocate.md過剰設計・YAGNI違反・将来負債の指摘

コア原則

  1. 仕様ドリブン - 設計は常に仕様・要件に根ざす。推測で設計しない
  2. トレードオフを明示 - 「最善」はない。利点・欠点を等価に扱う
  3. YAGNI/KISS 優先 - 今必要なものだけを設計する。将来への対応は慎重に
  4. ユーザー主導の進行 - ステップ完了時に自動で次のステップに進まない。必ずユーザーが成果物をレビュー・承認してから次へ進む。特に Step 2(パターン選定)は比較結果のレビューとパターン選択がなければ Step 3 に進めない
  5. 依存方向を制御 - 循環依存・意図しない結合は設計段階で排除
  6. プラットフォーム現実 - 理想論より、採用スタックの慣習・制約に従う
  7. AskUserQuestion 必須 - ユーザーに判断・選択・確認を求める際は、必ず AskUserQuestion ツールを使用する。テキストで「どうしますか?」と聞かない。選択肢を構造化して提示し、preview 付きで比較できるようにする

ワークフロー概要

Step 1: 仕様・コンテキストの把握
  担当: Facilitator + Architecture Lead
  目的: 要件・制約・既存コードを理解し、設計の範囲を確定

    ↓

Step 2: アーキテクチャ案の網羅的列挙・比較・選定
  担当: Architecture Lead + Platform Expert + Devil's Advocate
  フロー:
    2a. 10個の候補案を網羅的に列挙(マイナーな案も含む)
    2b. 全案を多軸スコアリングで比較表を作成
    2c. Top 2-3 案に絞り込み・詳細議論
    2d. AskUserQuestion でユーザーにパターン選択を確認 → 1案確定
    ※ ユーザーが Step 2 の成果物をレビュー・承認するまで Step 3 に進まない

    ↓ ユーザー承認後

Step 3: モジュール設計・依存関係定義
  担当: Module Designer + Dependency Analyst + Devil's Advocate
  目的: モジュール境界・インターフェース・依存方向を確定

    ↓

Step 4: 設計書出力・ユーザー承認
  担当: Architecture Lead + Facilitator(ユーザー承認)
  目的: 最終設計書を生成し、ADR とともにユーザーに提示

各ステップの詳細は references/step_details.md を参照。

セッション開始

設計セッション開始時、以下を実行:

  1. 仕様書・ドキュメントを読み込み(docs/, spec/, .claude/ 配下の MD を Glob で検索)
  2. 既存コードの構造を把握(コードベースがあれば Glob/Read でプロジェクト構造を確認)
  3. Phase A: 事前ヒアリング(下記参照)— AskUserQuestion で大枠の設計方針を確認
  4. セッション名(design-slug)を生成:
    • 設計テーマを英語の kebab-case スラッグに変換
    • 日本語の場合は英訳してからスラッグ化
  5. セッションディレクトリを Bash スクリプトで一括作成:
    SESSION_DIR=".claude/arch-design/sessions/<design-slug>"
    mkdir -p "$SESSION_DIR/step1-context"
    
    • step1-context/ のみサブディレクトリとして作成(複数エージェントのフィードバックを格納)
    • Step 2〜4 の成果物はサブディレクトリを作成せず、セッションルートに step2-*.md, step3-*.md, step4-*.md として配置する
  6. session.json を作成(下記テンプレート)— Phase A の回答を designPolicy に記録
  7. design_log.md を作成(インデックス兼進捗管理)
  8. 設計深さモードを自動判定:
    • Light: 単一モジュール・明確な要件・小規模変更
    • Standard: 複数モジュール・新機能追加(デフォルト)
    • Deep: システム全体設計・アーキテクチャ変更・複数チーム横断
  9. Agent Team を作成(TeamCreate — CRITICAL):
    TeamCreate:
      team_name: "arch-design-<design-slug>"
      description: "<設計テーマ>のアーキテクチャ設計チーム"
    
    • 必ず TeamCreate を先に実行してからエージェントを起動する
    • TeamCreate なしで Agent を起動すると SendMessage(broadcast)が機能しない
  10. エージェントを Agent ツールで起動(team_name パラメータ必須):
Agent:
  name: "architecture-lead"
  team_name: "arch-design-<design-slug>"
  subagent_type: "general-purpose"
  prompt: "<タスク指示 + Phase A の回答 + 設計方針>"
  run_in_background: true
  • 5エージェント全てに team_name を指定して起動する
  • run_in_background: true で並列起動
  • 各エージェントのプロンプトには Phase A の回答を含める
  • エージェント定義(agents/*.md)の内容をプロンプトに含めるか、参照パスを指示する
  1. Step 1 を開始

Phase A: 事前ヒアリング(Step 1 開始前・CRITICAL)

エージェント起動前に、AskUserQuestion でアプリの性質から推測できる大枠の設計方針を確認する。 エージェントが議論を始めてから方針転換すると手戻りが大きいため、事前に確定させる。

仕様書・技術スタックの情報を読み込んだ上で、以下の観点から質問を構成する。

必ず聞く質問(プラットフォーム問わず)

アプリの「本質」に関わる質問。フレームワーク選定は Step 2 で行うため、ここでは聞かない。

観点質問例なぜ事前に聞くか
アプリの核心的価値このアプリで一番大事にしたい体験は? 何を「絶対に守りたい」か?設計判断の優先順位(速度 vs 安全性 vs 柔軟性)に直結
ユーザーとの関係自分専用? 少数に配布? 不特定多数にリリース?抽象化レベル・エラーハンドリング・セキュリティの粒度に影響
設計哲学シンプル最優先(動くものを最速で)? 堅牢性重視(テスト・型安全)? 拡張性重視(将来の機能追加に備える)?全モジュール設計・依存方向・ファイル数に影響
変化の予測将来追加しそうな機能は? 変わらない部分は?モジュール境界の置き方(変化する部分を隔離する設計)に影響

状況に応じて聞く質問(自動判断)

仕様書を読んだ上で、アーキテクチャ判断に影響する「プロダクトレベルの意思決定」を追加質問する。 フレームワーク固有の質問(状態管理ライブラリ、CSS手法等)は Step 2 で決めるためここでは聞かない。

観点条件(いつ聞くか)質問例なぜ事前に聞くか
データの性質データ永続化が必要な場合データはローカルだけ? サーバーと同期? オフラインでも使える必要がある?オフライン対応の有無でアーキテクチャが根本的に変わる
リアルタイム性複数デバイス・ユーザーがある場合リアルタイム同期は必要? 遅延はどこまで許容?イベント駆動設計の要否に影響
パフォーマンス制約重い処理がある場合大量データ処理がある? 60fps 維持が必要?非同期設計・キャッシュ戦略に影響
セキュリティ要件ユーザーデータを扱う場合認証は必要? 個人情報を扱う?認証層・暗号化・アクセス制御の設計に影響
スケール見通し成長する可能性がある場合ユーザー数 100人? 10万人? データ量は?マイクロサービス vs モノリスの判断に影響
リリース頻度チーム開発の場合週1リリース? 月1? CI/CD は?モジュール独立性・テスト戦略に影響

質問しない項目

  • 仕様書・ADR に既に明記されている項目
  • 技術スタックから一意に決まる項目(例: Flutter なら Dart)
  • 「どちらでもアーキテクチャに影響しない」項目

質問の構成ルール:

  • AskUserQuestion で 2〜4 問にまとめる(多すぎると回答コストが高い)
  • 各質問に推奨オプションを含める(ユーザーが迷わないように)
  • 「必ず聞く」3問 + 「技術スタックに応じて」0〜1問 = 計 3〜4 問が目安

Phase A の回答は session.json に記録し、全エージェントのプロンプトに含める。

Phase B: 議論中の随時確認(各 Step 内)

エージェントが議論中に「ユーザーの判断が必要」と判断した場合:

  1. エージェント → Facilitator に [ASK_USER_REQUEST] を送信
  2. Facilitator が AskUserQuestion でユーザーに確認
  3. 回答を全エージェントに broadcast で共有

初期 JSON テンプレート

{
  "sessionId": "<design-slug>",
  "topic": "<設計テーマ>",
  "status": "in_progress",
  "mode": "<light|standard|deep>",
  "currentStep": 1,
  "createdAt": "<ISO8601>",
  "updatedAt": "<ISO8601>",
  "techStack": null,
  "designPolicy": {
    "uiFramework": null,
    "dataStorage": null,
    "settingsManagement": null,
    "testingPolicy": null,
    "teamSize": null,
    "minTarget": null
  },
  "steps": {
    "1_context": false,
    "2_pattern": false,
    "3_modules": false,
    "4_output": false
  },
  "selectedPattern": null,
  "modules": []
}

セッション管理コマンド

発言アクション
「アーキテクチャ設計:〇〇」新規セッション作成、Step 1 開始
「次のステップ」「進めて」現在のステップを完了し次へ
「戻って」「前のステップ」前のステップに戻る
「今どこ?」「進捗は?」現在のステップと完了状況を表示
「もっと議論して」現在のステップで追加の議論ラウンドを実行
「悪魔の代弁者を呼んで」Devil's Advocate による追加批判セッション
「設計書を出して」現在の設計状態から設計書ドラフトを生成
「ADR を出して」Architecture Decision Record を生成
「一覧」「セッション一覧」過去のセッション一覧を表示
「再開:〇〇」指定セッションを再開

進行時の表示フォーマット

各ステップ開始時:

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
[アーキテクチャ設計] <設計テーマ>
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
現在: Step <N>/4 - <ステップ名>
進捗: [████░░░░░░] 40%
モード: <Light|Standard|Deep>
担当: <リードエージェント> + <サブエージェント>

エージェントチームが議論中...

議論結果提示時:

━━━━ チーム議論結果 ━━━━

合意: [全員が同意した設計方針]
対立: [論点と各エージェントの立場]
懸念: [Devil's Advocate が指摘したリスク]

どう判断しますか?

ステップ完了時:

Step <N> 完了: <ステップ名>
   → <簡潔なサマリー>
   → 議論ラウンド: <N>回
   → 確定事項: <N>件

次へ進みますか?(「次へ」で続行)

セッション完了条件

全ステップが true の場合:

{
  "status": "completed",
  "completedAt": "<ISO8601>",
  "selectedPattern": "<採用パターン名>",
  "steps": {
    "1_context": true,
    "2_pattern": true,
    "3_modules": true,
    "4_output": true
  }
}

生成物(ファイル構成):

.claude/arch-design/sessions/<design-slug>/
├── session.json                    # セッション進捗管理
├── design_log.md                   # インデックス(進捗管理)
│
├── step1-context/                  # Step 1 成果物(唯一のサブディレクトリ)
│   ├── README.md                   # 機能要件・非機能要件・制約・設計キーポイント
│   ├── module-designer-feedback.md
│   ├── dependency-analyst-feedback.md
│   ├── devils-advocate-feedback.md
│   └── platform-expert-feedback.md
│
├── step2-patterns.md               # Step 2: 10案列挙・比較表・スコアリング
├── step2-scoring-rationale.md      # Step 2: スコア根拠・エージェント間合意
├── step2-selected-pattern.md       # Step 2: 確定パターン・ADR・棄却理由
│
├── step3-module-design.md          # Step 3: モジュール一覧・依存グラフ・インターフェース
├── step3-devils-advocate-review.md # Step 3: YAGNI 批判・過剰分割チェック
│
└── step4-architecture.md           # Step 4: 最終アーキテクチャ設計書(ADR 含む)

ファイル出力ルール(CRITICAL):

  • Step 1 のみ step1-context/ サブディレクトリを使用(複数エージェントのフィードバックを格納するため)
  • Step 2〜4 はサブディレクトリを一切作成しない。セッションルートに step2-*.md, step3-*.md, step4-*.md として配置
  • patterns/, diagrams/ 等のサブディレクトリも作成禁止。パターン詳細は step2-patterns.md 内のセクションとして記述
  • エージェントが成果物を書き出す際は、必ず上記のファイルパスに従う。独自のディレクトリやファイルを追加しない

既存スキルとの連携

[仕様策定] user-journey / feature-discussion
    ↓
[アーキテクチャ設計] arch-design ← このスキル
    ↓
[技術的意思決定] design-discussion(実装アプローチの比較)
    ↓
[実装計画] team-plan
    ↓
[実装] team-implement

リファレンスインデックス

ファイル内容
references/step_details.mdStep 1-4 の詳細フロー(担当・目的・完了条件)
references/architecture_patterns.mdアーキテクチャパターン集(MVVM/Clean/Hexagonal/TCA 等)
references/module_design_principles.mdモジュール設計原則(凝集度・結合度・SOLID・パッケージ原則)
references/output_templates.md設計書テンプレート(モジュール図・ADR・依存関係図)
references/spec_to_architecture.md仕様書→設計の変換手法(C4 Model・DDD・Event Storming・Contract-First)
references/design_checklist.md設計チェックリスト(SOLID・状態管理・YAGNI・プラットフォーム別QR)

レビュー

まだレビューはありません。使ってみた感想をお寄せください。

同じリポジトリのスキル

概要と使いどころ

This skill should be used when the user asks to "create a team", "spawn agents", "parallel execution", "delegate tasks to agents", "use a swarm", "team workflow", "split work across agents", "run tasks in parallel", or mentions wanting multiple agents to collaborate on a complex task.

日本語の概要は準備中です。原文の説明を表示しています。

sean-sunagaku/claude-code-plugin382026年7月30日 更新

agent-team-guide

無料日本語概要

Agent Teams スキルを設計・構築するためのベストプラクティスガイド。 サブエージェント定義、SendMessage 通信プロトコル、タスク依存管理、 PostToolUse Hook によるログ、MCP ツール統合、コンテキストファイル設計を網羅。 7つの実績あるチームスキル(app-naming, ui-review, logo-design, persona-creation, skill-creator-team, ui-variations, aso-optimize)から抽出したパターン集。 Use when: Agent Teams を使ったスキルを新規作成したい、 既存のチームスキルの品質を改善したい、エージェント間通信のデバッグ、 チームスキルの設計パターンを知りたい。 Triggers: "agent team", "チームスキル", "エージェントチーム", "サブエージェント定義", "SendMessage パターン", "チーム設計", "エージェント間通信", "team skill", "swarm pattern"

sean-sunagaku/claude-code-plugin382026年7月30日 更新

app-naming

無料日本語概要

アプリ名・サービス名の命名を、5つの専門エージェントチームで多角的に評価・決定するスキル。 ブランディング、商標/法的リスク、デジタルプレゼンス(SEO/ASO/SNS)、国際展開(多言語/発音)の 4観点から候補を提案・調査・議論し、コンテキストファイルと議事録で次回セッションへ引き継ぐ。 Use when: アプリ名を決めたい、サービス名を変更したい、プロダクト名を検討したい、 ネーミングブレスト、名前の商標チェック、アプリ名のリネーム。 Triggers: "アプリ名", "サービス名", "プロダクト名", "ネーミング", "名前を決め", "リネーム", "rename", "app name", "naming", "ブランド名", "商標チェック"

sean-sunagaku/claude-code-plugin382026年7月30日 更新

app-store-preview-movie

無料日本語概要

App Store プレビュー動画を Remotion (React) で生成する Agent Team スキル。 video-director が構成を設計し、script-writer がナレーション台本を作成し、 motion-designer が Remotion コードを実装し、preview-reviewer がコードレビューし、 frame-inspector がレンダリング結果を目視検証する。 Use when: App Store プレビュー動画を作りたい、アプリのプロモーション動画を作りたい、 Remotion で動画を生成したい。 Triggers: "プレビュー動画", "App Store 動画", "アプリ動画", "preview movie", "Remotion", "動画作成", "app preview"

sean-sunagaku/claude-code-plugin382026年7月30日 更新

app-tone-manner

無料日本語概要

アプリのトーン&マナー(トンマナ)を8名のエージェントチームで設計するスキル。 ブランドアーキタイプ・パーソナリティ定義から、カラー・タイポグラフィ・ビジュアルスタイル・ トーン・オブ・ボイスまでを一貫設計し、Pencil (.pen) + Markdown で成果物を出力する。 「デザインテンション」(矛盾ペア)を核に、AIっぽくない独自のブランドアイデンティティを生成する。

sean-sunagaku/claude-code-plugin382026年7月30日 更新

arch-review

無料日本語概要

コードベースのアーキテクチャを 6 つの専門エージェントチーム(Claude 5体 + Codex 1体)で 多角的に分析し、リスク・デグレしやすい箇所・改善ポイントを洗い出すスキル。 パフォーマンス、スケーラビリティ、信頼性、セキュリティ、運用、DX、データ整合性、依存関係の 8 観点を 5 グループに分担し、さらに Codex がクロスカットレビュアーとして横断分析する。 エージェント同士が反論・補足・自由な議論を行い、合意形成した結果をレポートとして出力する。 どのプロジェクトでも使える汎用スキル。 Use when: アーキテクチャを分析したい、リファクタリング前にリスクを把握したい、 デグレしやすい箇所を知りたい、コードの健全性を確認したい、大きめの実装前に注意点を洗い出したい、 技術的負債を可視化したい、コードベースの品質を監査したい。 Triggers: "arch review", "アーキテクチャ分析", "アーキテクチャレビュー", "リスク分析", "コード監査", "codebase audit", "技術的負債", "デグレしやすい", "architecture analysis", "risk analysis", "コードの健全性", "品質チェック", "実装前の確認"

sean-sunagaku/claude-code-plugin382026年7月30日 更新

sean-sunagaku のスキルをすべて見る

このスキルの問題を報告する