본문으로 건너뛰기
cccskills
무료GitHub에 공개

build-graph

GraphDB構築エージェント - ユビキタス言語とコード解析結果からRyuGraphデータベースを構築。/build-graph [対象パス] で呼び出し。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

설치 방법 보기

포함된 파일(1)

  • SKILL.md7.4 KB

SKILL.md(원문)

설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.

GraphDB構築エージェント

既存のシステム分析結果とソースコードを解析し、RyuGraph GraphDBにユビキタス言語ベースのナレッジグラフを構築するエージェントです。

目的

このエージェントは以下を実行します:

  1. 分析結果の収集 - /analyze-system の出力(ユビキタス言語、ドメイン-コード対応表等)を収集
  2. コード解析 - Serenaツールでソースコードの構造を解析
  3. グラフ構築 - RyuGraphにノードとリレーションシップを登録
  4. メタデータ保存 - グラフのスキーマ情報と統計を保存

前提条件

  • Python 3.9+
  • ryugraph パッケージ (pip install ryugraph)
  • /analyze-system が実行済み(推奨、なくてもコードから構築可能)

グラフスキーマ

ノードテーブル

テーブル説明プロパティ
UbiquitousTermユビキタス言語の用語name (PK), name_ja, definition, domain
Domainビジネスドメインname (PK), type, description
Entityクラス/インターフェースname (PK), file_path, type, line_number
Methodメソッド/関数name (PK), signature, file_path, line_number
Fileソースファイルpath (PK), language, module
Actorアクター(人/システム)name (PK), type, description
Roleロール/権限name (PK), permissions

リレーションテーブル

テーブルFROM → TO説明
BELONGS_TOEntity → Domainドメインへの所属
DEFINED_INEntity → Fileエンティティのファイル定義
METHOD_DEFINED_INMethod → Fileメソッドのファイル定義
REFERENCESEntity/Method → Entity参照関係
CALLSMethod → Method呼び出し関係
IMPLEMENTSEntity → Entity実装/継承関係
HAS_TERMEntity → UbiquitousTermエンティティの用語関連
METHOD_HAS_TERMMethod → UbiquitousTermメソッドの用語関連
HAS_ROLEActor → Roleロールの保持

実行プロンプト

あなたはGraphDBを構築する専門家エージェントです。以下の手順でRyuGraphデータベースを構築してください。

Step 1: 入力情報の確認

まず、対象ディレクトリと分析結果の有無を確認します。

# 引数から対象パスを取得
TARGET_PATH=$1  # 例: ./src

# 分析結果の存在確認
ls ${TARGET_PATH}/reports/01_analysis/

Step 2: 分析結果の読み込み

分析結果が存在する場合、以下のファイルを読み込みます:

reports/01_analysis/
├── ubiquitous-language.md     # ユビキタス言語
├── domain-code-mapping.md     # ドメイン-コード対応
├── actors-roles-permissions.md # アクター・ロール
└── system-overview.md  # システム概要

重要: Markdownのテーブルをパースして構造化データに変換します。

Step 3: コードベースの解析

Serenaツールを使用してコード構造を取得:

# シンボル概要を取得
mcp__serena__get_symbols_overview で主要ファイルを解析

# クラス/メソッドの詳細を取得
mcp__serena__find_symbol で重要なシンボルを検索

# 参照関係を取得
mcp__serena__find_referencing_symbols で依存関係を分析

Step 4: グラフデータの生成

収集した情報からグラフデータを生成します。

ノードデータ(CSVファイル):

# terms.csv
name,name_ja,definition,domain
Order,注文,顧客が商品を購入する単位,コアドメイン
Customer,顧客,システムの利用者,コアドメイン

# entities.csv
name,file_path,type,line_number
Order,src/domain/order.ts,class,10
Customer,src/domain/customer.ts,class,5

# methods.csv
name,signature,file_path,line_number
createOrder,createOrder(items: Item[]): Order,src/service/order.ts,25

リレーションデータ(CSVファイル):

# belongs_to.csv
entity,domain
Order,OrderManagement
Customer,CustomerManagement

# has_term.csv
entity,term
Order,Order
CustomerService,Customer

Step 5: RyuGraphデータベースの構築

Pythonスクリプトを実行してグラフを構築:

python scripts/build_graph.py \
  --data-dir ${TARGET_PATH}/reports/graph/data \
  --db-path ${TARGET_PATH}/knowledge.ryugraph \
  --stats-output ${TARGET_PATH}/reports/graph/statistics.md

Step 6: 検証クエリの実行

構築したグラフの整合性を確認:

# ノード数の確認
MATCH (n) RETURN labels(n), count(*);

# リレーション数の確認
MATCH ()-[r]->() RETURN type(r), count(*);

# サンプルクエリ
MATCH (e:Entity)-[:HAS_TERM]->(t:UbiquitousTerm)
RETURN e.name, t.name_ja LIMIT 10;

出力

ファイル構成

<対象プロジェクト>/
├── knowledge.ryugraph/          # RyuGraphデータベース
└── reports/
    └── graph/
        ├── data/                # 中間CSVファイル
        │   ├── terms.csv
        │   ├── domains.csv
        │   ├── entities.csv
        │   ├── methods.csv
        │   ├── files.csv
        │   ├── actors.csv
        │   ├── roles.csv
        │   ├── belongs_to.csv
        │   ├── defined_in.csv
        │   ├── references.csv
        │   ├── calls.csv
        │   ├── implements.csv
        │   ├── has_term.csv
        │   └── has_role.csv
        ├── schema.md            # グラフスキーマ説明
        └── statistics.md        # グラフ統計情報

statistics.md の形式

# GraphDB統計情報

## 生成日時
2024-XX-XX HH:MM:SS

## ノード統計

| ノードタイプ | 件数 |
|------------|------|
| UbiquitousTerm | 45 |
| Domain | 6 |
| Entity | 120 |
| Method | 350 |
| File | 80 |
| Actor | 5 |
| Role | 8 |

## リレーション統計

| リレーションタイプ | 件数 |
|------------------|------|
| BELONGS_TO | 120 |
| DEFINED_IN | 470 |
| REFERENCES | 890 |
| CALLS | 1200 |
| IMPLEMENTS | 45 |
| HAS_TERM | 280 |
| HAS_ROLE | 12 |

## データソース

- 分析結果: あり
- コード解析: あり
- 対象ファイル数: 80

ツール使用ガイドライン

優先順位

  1. 分析結果の読み込み - Readツールでマークダウンを解析
  2. Serenaツール - コードのシンボリック解析
  3. Bashツール - Pythonスクリプトの実行

注意事項

  • 大規模プロジェクトでは、主要なディレクトリのみを解析対象にする
  • 外部ライブラリ(node_modules, vendor等)は除外する
  • メソッド/関数の呼び出し関係は、静的解析の限界があることを警告する

エラーハンドリング

  • ryugraphがインストールされていない → pip install ryugraph を提案
  • 分析結果がない → コードのみから構築(精度低下を警告)
  • 対象言語非対応 → 手動でCSVを作成するよう案内

리뷰

아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.

댓글

로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.

아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.

보내면 바로 공개됩니다. 이메일 주소나 전화번호 같은 개인 정보는 쓰지 마세요. URL은 2개까지입니다.

0 / 1,000자

이 양식은 reCAPTCHA로 보호되며 Google 개인정보처리방침 및 서비스 약관이 적용됩니다.

같은 저장소의 스킬

システム分析エージェント - ユビキタス言語、アクター、ロール、権限、ドメイン-コード対応表を抽出。/analyze-system [対象パス] で呼び出し。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

wfukatsu/refactoring-agent-for-claude-code82026년 2월 24일 업데이트

レポートコンパイルエージェント - 分析結果のMarkdownファイルを統合HTMLレポートに変換。/compile-report [出力パス] で呼び出し。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

wfukatsu/refactoring-agent-for-claude-code82026년 2월 24일 업데이트

ドメインストーリーテリングエージェント - ドメインストーリーの作成、ビジネスプロセスの可視化。/create-domain-story --domain=[ドメイン名] で呼び出し。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

wfukatsu/refactoring-agent-for-claude-code82026년 2월 24일 업데이트

API設計エージェント - リファクタリング後のマイクロサービスAPI設計。REST/GraphQL/gRPC/AsyncAPIの仕様書、API Gateway設計、認証・認可設計を策定。/design-api [対象パス] で呼び出し。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

wfukatsu/refactoring-agent-for-claude-code82026년 2월 24일 업데이트

マイクロサービス設計エージェント - ターゲットアーキテクチャ、変換計画、運用計画の策定。/design-microservices [対象パス] で呼び出し。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

wfukatsu/refactoring-agent-for-claude-code82026년 2월 24일 업데이트

ScalarDB Analytics設計エージェント - ScalarDB Analyticsを使用した分析基盤の設計。Apache Sparkベースの分析クエリ、マルチDB横断分析を策定。/design-scalardb-analytics [対象パス] で呼び出し。

한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.

wfukatsu/refactoring-agent-for-claude-code82026년 2월 24일 업데이트

wfukatsu의 스킬 모두 보기

이 스킬의 문제 신고