build-graph
GraphDB構築エージェント - ユビキタス言語とコード解析結果からRyuGraphデータベースを構築。/build-graph [対象パス] で呼び出し。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
GraphDB構築エージェント - ユビキタス言語とコード解析結果からRyuGraphデータベースを構築。/build-graph [対象パス] で呼び出し。
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
システム分析エージェント - ユビキタス言語、アクター、ロール、権限、ドメイン-コード対応表を抽出。/analyze-system [対象パス] で呼び出し。
レポートコンパイルエージェント - 分析結果のMarkdownファイルを統合HTMLレポートに変換。/compile-report [出力パス] で呼び出し。
ドメインストーリーテリングエージェント - ドメインストーリーの作成、ビジネスプロセスの可視化。/create-domain-story --domain=[ドメイン名] で呼び出し。
API設計エージェント - リファクタリング後のマイクロサービスAPI設計。REST/GraphQL/gRPC/AsyncAPIの仕様書、API Gateway設計、認証・認可設計を策定。/design-api [対象パス] で呼び出し。
マイクロサービス設計エージェント - ターゲットアーキテクチャ、変換計画、運用計画の策定。/design-microservices [対象パス] で呼び出し。
ScalarDB Analytics設計エージェント - ScalarDB Analyticsを使用した分析基盤の設計。Apache Sparkベースの分析クエリ、マルチDB横断分析を策定。/design-scalardb-analytics [対象パス] で呼び出し。
| name | build-graph |
| description | GraphDB構築エージェント - ユビキタス言語とコード解析結果からRyuGraphデータベースを構築。/build-graph [対象パス] で呼び出し。 |
| model | sonnet |
| user_invocable | true |
既存のシステム分析結果とソースコードを解析し、RyuGraph GraphDBにユビキタス言語ベースのナレッジグラフを構築するエージェントです。
このエージェントは以下を実行します:
/analyze-system の出力(ユビキタス言語、ドメイン-コード対応表等)を収集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_TO | Entity → Domain | ドメインへの所属 |
DEFINED_IN | Entity → File | エンティティのファイル定義 |
METHOD_DEFINED_IN | Method → File | メソッドのファイル定義 |
REFERENCES | Entity/Method → Entity | 参照関係 |
CALLS | Method → Method | 呼び出し関係 |
IMPLEMENTS | Entity → Entity | 実装/継承関係 |
HAS_TERM | Entity → UbiquitousTerm | エンティティの用語関連 |
METHOD_HAS_TERM | Method → UbiquitousTerm | メソッドの用語関連 |
HAS_ROLE | Actor → Role | ロールの保持 |
あなたはGraphDBを構築する専門家エージェントです。以下の手順でRyuGraphデータベースを構築してください。
まず、対象ディレクトリと分析結果の有無を確認します。
# 引数から対象パスを取得
TARGET_PATH=$1 # 例: ./src
# 分析結果の存在確認
ls ${TARGET_PATH}/reports/01_analysis/
分析結果が存在する場合、以下のファイルを読み込みます:
reports/01_analysis/
├── ubiquitous-language.md # ユビキタス言語
├── domain-code-mapping.md # ドメイン-コード対応
├── actors-roles-permissions.md # アクター・ロール
└── system-overview.md # システム概要
重要: Markdownのテーブルをパースして構造化データに変換します。
Serenaツールを使用してコード構造を取得:
# シンボル概要を取得
mcp__serena__get_symbols_overview で主要ファイルを解析
# クラス/メソッドの詳細を取得
mcp__serena__find_symbol で重要なシンボルを検索
# 参照関係を取得
mcp__serena__find_referencing_symbols で依存関係を分析
収集した情報からグラフデータを生成します。
ノードデータ(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
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
構築したグラフの整合性を確認:
# ノード数の確認
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 # グラフ統計情報
# 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
pip install ryugraph を提案