jpskill.com
🛠️ 開発・MCP コミュニティ

arch-view

This skill should be used when the user asks to "generate architecture view", "show service dependency graph", "map request flows", "show event topology", "group services by domain", "visualize architecture", or mentions cross-repository architecture analysis, service mapping, or architectural visualization.

⚡ おすすめ: コマンド1行でインストール(60秒)

下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。

🍎 Mac / 🐧 Linux
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o arch-view.zip https://jpskill.com/download/17323.zip && unzip -o arch-view.zip && rm arch-view.zip
🪟 Windows (PowerShell)
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/17323.zip -OutFile "$d\arch-view.zip"; Expand-Archive "$d\arch-view.zip" -DestinationPath $d -Force; ri "$d\arch-view.zip"

完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。

💾 手動でダウンロードしたい(コマンドが難しい人向け)
  1. 1. 下の青いボタンを押して arch-view.zip をダウンロード
  2. 2. ZIPファイルをダブルクリックで解凍 → arch-view フォルダができる
  3. 3. そのフォルダを C:\Users\あなたの名前\.claude\skills\(Win)または ~/.claude/skills/(Mac)へ移動
  4. 4. Claude Code を再起動

⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。

🎯 このSkillでできること

下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。

📦 インストール方法 (3ステップ)

  1. 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
  2. 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
  3. 3. 展開してできたフォルダを、ホームフォルダの .claude/skills/ に置く
    • · macOS / Linux: ~/.claude/skills/
    • · Windows: %USERPROFILE%\.claude\skills\

Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。

詳しい使い方ガイドを見る →
最終更新
2026-05-18
取得日時
2026-05-18
同梱ファイル
4

📖 Skill本文(日本語訳)

※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。

アーキテクチャビュー

並列サブエージェントを使用して、すべてのリポジトリから catalog-info.yaml メタデータを集約し、リポジトリを横断したアーキテクチャビューを生成します。

目的

サービスがどのように連携するか、リクエストがゲートウェイをどのように通過するか、イベントがどのように伝播するか、サービスがドメイン/チームごとにどのようにグループ化されるかを示す、視覚的なアーキテクチャ表現(Mermaidダイアグラム、Markdownテーブル)を作成します。

使用するタイミング

以下の場合にこの Skill をトリガーします。

  • ユーザーが「サービス依存関係グラフを表示」または「アーキテクチャをマッピング」するように依頼した場合
  • ユーザーが「サービスがどのように接続されているか」を理解したい場合
  • ユーザーが「リクエストフロー」または「イベントトポロジ」について質問した場合
  • ユーザーが「サービスをドメイン/チームごとにグループ化」したい場合
  • ユーザーが「クロスリポジトリアーキテクチャ」または「システムアーキテクチャ」について言及した場合

ワークフロー

フェーズ 1: リポジトリの発見

分析するすべてのリポジトリを見つけます。

  1. repos/ ディレクトリを確認 - ローカルにクローンされたリポジトリ
  2. オプションで GitHub から取得 - 完全なリストについては gh repo list Astrabit-CPT を使用
  3. アクティブなリポジトリをフィルタリング - アーカイブされたリポジトリまたはテンプレートリポジトリをスキップ

フェーズ 2: 並列メタデータ収集

サブエージェントを並列で使用して、各リポジトリの catalog-info.yaml を読み取ります。

各リポジトリに対して:
  「[repo_path] から catalog-info.yaml を読み取り、解析されたコンテンツを返す」というサブエージェントを起動します。

並列処理戦略:

  • 5〜10個のサブエージェントを同時に起動
  • すべての結果を収集
  • メタデータが見つからない場合は、適切に処理(スキップまたは欠落として記録)

フェーズ 3: 集約とモデルの構築

すべてのメタデータを統合モデルに結合します。

aggregated = {
    "components": {},  # name -> catalog info
    "dependencies": set(),  # (from, to) tuples
    "gateways": [],
    "services": [],
    "workers": [],
    "domains": {},  # domain -> [components]
    "events": {
        "producers": {},  # topic -> [producers]
        "consumers": {},  # topic -> [consumers]
    },
    "routes": [],  # gateway routes
}

フェーズ 4: 要求されたビューの生成

ユーザーの要求に基づいて、適切なビューを生成します。

ビュー コマンド/トリガー 出力
サービス依存関係グラフ "dependency graph", "show dependencies" Mermaid グラフ
リクエストフローマップ "request flows", "how requests flow" Mermaid フローチャート
イベントトポロジ "event topology", "event map" Mermaid グラフ
サービスグループ "group services", "services by domain" Markdown テーブル
完全なアーキテクチャ "architecture view", "full architecture" すべてのビューを組み合わせる

ビューテンプレート

サービス依存関係グラフ

graph TD
    Gateway[api-gateway<br/>type: gateway] --> Auth[auth-service<br/>type: service]
    Gateway --> Users[user-service<br/>type: service]
    Gateway --> Orders[order-service<br/>type: service]
    Users --> DB[(user-db<br/>type: database)]
    Auth --> Redis[(redis<br/>type: cache)]
    Orders --> OrdersDB[(order-db<br/>type: database)]
    Orders --> Worker[order-processor<br/>type: worker]

生成ロジック:

  • ノード: catalog-info.yaml からのすべてのコンポーネント
  • エッジ: dependsOn 関係から
  • 形状: データベースノードは [(name)] を使用し、その他は [name] を使用
  • ラベル: nametype を含む

リクエストフローマップ

flowchart LR
    Client[Client] --> Gateway[api-gateway]
    Gateway -->|/api/users/*| Users[user-service]
    Gateway -->|/api/auth/*| Auth[auth-service]
    Gateway -->|/api/orders/*| Orders[order-service]
    Users --> DB[(user-db)]
    Auth --> Redis[(redis)]

生成ロジック:

  • ゲートウェイコンポーネント(type: gateway)から開始
  • routes に従ってダウンストリームサービスを見つける
  • ルートパスをエッジラベルとして含める
  • サービス依存関係に従ってデータベースに移動

イベントトポロジ

graph LR
    Orders[order-service] -->|order.placed| Kafka1[Kafka: order-placed]
    Orders -->|order.cancelled| Kafka2[Kafka: order-cancelled]
    Kafka1 --> User[user-service]
    Kafka1 --> Notif[notification-service]
    Kafka2 --> User
    Worker[order-processor] -->|order.processed| Kafka3[Kafka: order-processed]
    Kafka1 --> Worker

生成ロジック:

  • ノード: サービス(eventProducers から)と Kafka トピック(topic フィールドから)
  • エッジ: プロデューサー → トピック、トピック → コンシューマー
  • ラベル: エッジ上のトピック名

サービスグループ

ドメイン別: | ドメイン | サービス | オーナー | |--------|----------|-------| | trading | order-service, trade-service, order-processor | trading-team | | platform | api-gateway, user-service, auth-service | platform-team | | shared | shared-utils, shared-types | platform-team |

タイプ別: | タイプ | サービス | |------|----------| | gateway | api-gateway | | service | user-service, auth-service, order-service | | worker | order-processor, notification-worker | | library | shared-utils, shared-types |

生成ロジック:

  • spec.domain フィールドでグループ化
  • 各ドメインのオーナーを表示
  • グループごとのサービス数をカウント

スクリプト

aggregate-metadata.py

リポジトリからすべての catalog-info.yaml ファイルを収集します。

# repos ディレクトリから集約
python skills/arch-view/scripts/aggregate-metadata.py repos/

# JSON として出力
python skills/arch-view/scripts/aggregate-metadata.py repos/ --format json

# サマリーとして出力
python skills/arch-view/scripts/aggregate-metadata.py repos/ --summary

generate-mermaid.py

集約されたメタデータを Mermaid ダイアグラムに変換します。

# すべてのビューを生成
python skills/arch-view/scripts/generate-mermaid.py aggregated.json

# 特定のビューを生成
python skills/arch-view/scripts/generate-mermaid.py aggregated.json --view dependency
python skills/arch-view/scripts/generate-mermaid.py aggregated.json --view request-flow
python skills/arch-view/scripts/generate-mermaid.py aggregated.json --view events

サブエージェントの使用

サブエージェントを起動して、メタデータを並行して読み取ります。


効率を高めるために、複数のサブエージェントを同時に起動します。

Subagent 1: "repos/api-gateway/catalog-info.yaml を読み取り、解析された YAML を返す"
Subagent 2: "repos/user-service/catalog-info.yaml を読み取り、解析された YAML を返す"
Subagent 3: "repos/order-service/c

(原文はここで切り詰められています)
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開

Architecture View

Generate cross-repository architectural views by aggregating catalog-info.yaml metadata from all repositories using parallel subagents.

Purpose

Create visual architectural representations (Mermaid diagrams, markdown tables) that show how services fit together, how requests flow through gateways, how events propagate, and how services group by domain/team.

When to Use

Trigger this skill when:

  • User asks to "show service dependency graph" or "map the architecture"
  • User wants to understand "how services connect"
  • User asks about "request flows" or "event topology"
  • User wants to "group services by domain/team"
  • User mentions "cross-repo architecture" or "system architecture"

Workflow

Phase 1: Discover Repositories

Find all repositories to analyze:

  1. Check repos/ directory - Local cloned repositories
  2. Optionally fetch from GitHub - Use gh repo list Astrabit-CPT for full list
  3. Filter for active repos - Skip archived or template repos

Phase 2: Parallel Metadata Collection

Use subagents IN PARALLEL to read each repository's catalog-info.yaml:

For each repo:
  Launch subagent with: "Read catalog-info.yaml from [repo_path] and return the parsed content"

Parallel processing strategy:

  • Launch 5-10 subagents simultaneously
  • Collect all results
  • Handle missing metadata gracefully (skip or note as missing)

Phase 3: Aggregate and Build Model

Combine all metadata into a unified model:

aggregated = {
    "components": {},  # name -> catalog info
    "dependencies": set(),  # (from, to) tuples
    "gateways": [],
    "services": [],
    "workers": [],
    "domains": {},  # domain -> [components]
    "events": {
        "producers": {},  # topic -> [producers]
        "consumers": {},  # topic -> [consumers]
    },
    "routes": [],  # gateway routes
}

Phase 4: Generate Requested View

Based on user request, generate the appropriate view:

View Command/Trigger Output
Service Dependency Graph "dependency graph", "show dependencies" Mermaid graph
Request Flow Maps "request flows", "how requests flow" Mermaid flowchart
Event Topology "event topology", "event map" Mermaid graph
Service Groupings "group services", "services by domain" Markdown tables
Full Architecture "architecture view", "full architecture" All views combined

View Templates

Service Dependency Graph

graph TD
    Gateway[api-gateway<br/>type: gateway] --> Auth[auth-service<br/>type: service]
    Gateway --> Users[user-service<br/>type: service]
    Gateway --> Orders[order-service<br/>type: service]
    Users --> DB[(user-db<br/>type: database)]
    Auth --> Redis[(redis<br/>type: cache)]
    Orders --> OrdersDB[(order-db<br/>type: database)]
    Orders --> Worker[order-processor<br/>type: worker]

Generation logic:

  • Nodes: All components from catalog-info.yaml
  • Edges: From dependsOn relationships
  • Shape: Database nodes use [(name)], others use [name]
  • Labels: Include name and type

Request Flow Map

flowchart LR
    Client[Client] --> Gateway[api-gateway]
    Gateway -->|/api/users/*| Users[user-service]
    Gateway -->|/api/auth/*| Auth[auth-service]
    Gateway -->|/api/orders/*| Orders[order-service]
    Users --> DB[(user-db)]
    Auth --> Redis[(redis)]

Generation logic:

  • Start from gateway components (type: gateway)
  • Follow routes to find downstream services
  • Include route paths as edge labels
  • Follow service dependencies to databases

Event Topology

graph LR
    Orders[order-service] -->|order.placed| Kafka1[Kafka: order-placed]
    Orders -->|order.cancelled| Kafka2[Kafka: order-cancelled]
    Kafka1 --> User[user-service]
    Kafka1 --> Notif[notification-service]
    Kafka2 --> User
    Worker[order-processor] -->|order.processed| Kafka3[Kafka: order-processed]
    Kafka1 --> Worker

Generation logic:

  • Nodes: Services (from eventProducers) and Kafka topics (from topic field)
  • Edges: Producer → Topic, Topic → Consumer
  • Labels: Topic names on edges

Service Groupings

By Domain: | Domain | Services | Owner | |--------|----------|-------| | trading | order-service, trade-service, order-processor | trading-team | | platform | api-gateway, user-service, auth-service | platform-team | | shared | shared-utils, shared-types | platform-team |

By Type: | Type | Services | |------|----------| | gateway | api-gateway | | service | user-service, auth-service, order-service | | worker | order-processor, notification-worker | | library | shared-utils, shared-types |

Generation logic:

  • Group by spec.domain field
  • Show owner for each domain
  • Count services per grouping

Scripts

aggregate-metadata.py

Collect all catalog-info.yaml files from repositories:

# Aggregate from repos directory
python skills/arch-view/scripts/aggregate-metadata.py repos/

# Output as JSON
python skills/arch-view/scripts/aggregate-metadata.py repos/ --format json

# Output as summary
python skills/arch-view/scripts/aggregate-metadata.py repos/ --summary

generate-mermaid.py

Convert aggregated metadata to Mermaid diagrams:

# Generate all views
python skills/arch-view/scripts/generate-mermaid.py aggregated.json

# Generate specific view
python skills/arch-view/scripts/generate-mermaid.py aggregated.json --view dependency
python skills/arch-view/scripts/generate-mermaid.py aggregated.json --view request-flow
python skills/arch-view/scripts/generate-mermaid.py aggregated.json --view events

Using Subagents

Launch subagents to read metadata in parallel:

For efficiency, launch multiple subagents simultaneously:

Subagent 1: "Read repos/api-gateway/catalog-info.yaml and return parsed YAML"
Subagent 2: "Read repos/user-service/catalog-info.yaml and return parsed YAML"
Subagent 3: "Read repos/order-service/catalog-info.yaml and return parsed YAML"
... (continue for all repos)

Collect results and aggregate.

Tip: Limit to 5-10 concurrent subagents to avoid overwhelming the system.

Output Format

Present results as:

  1. Summary - Quick overview of what was found
  2. Visual diagrams - Mermaid graphs that render in supported viewers
  3. Tables - Groupings and listings
  4. Missing metadata - List of repos without catalog-info.yaml

Example Output Structure

# Architecture View

## Summary
- Total repositories: 15
- Components with metadata: 12
- Missing metadata: 3
- Gateways: 1
- Services: 8
- Workers: 2
- Libraries: 1

## Service Dependency Graph
[Mermaid diagram]

## Request Flow Map
[Mermaid diagram]

## Event Topology
[Mermaid diagram]

## Service Groupings
[Markdown tables]

## Missing Metadata
The following repositories lack catalog-info.yaml:
- repo-a
- repo-b
- repo-c

Additional Resources

Reference Files

  • references/view-templates.md - Mermaid templates for each view type
  • references/mermaid-guide.md - Mermaid syntax reference

Scripts

  • scripts/aggregate-metadata.py - Collect catalog-info.yaml from all repos
  • scripts/generate-mermaid.py - Convert metadata to Mermaid diagrams

同梱ファイル

※ ZIPに含まれるファイル一覧。`SKILL.md` 本体に加え、参考資料・サンプル・スクリプトが入っている場合があります。