Skip to content
cccskills
FreePublished on GitHub

query-graph

GraphDB探索エージェント - RyuGraphデータベースを自然言語またはCypherで探索し、関連するコードや仕様書を返却。/query-graph [クエリ] で呼び出し。

The English summary is being prepared. Showing the original description.

See how to install

Files included (1)

  • SKILL.md7.3 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

GraphDB探索エージェント

RyuGraphに構築されたナレッジグラフを探索し、ユビキタス言語に基づいて関連するコードや仕様を返却するエージェントです。

目的

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

  1. クエリ解釈 - 自然言語またはCypherクエリを受け取る
  2. グラフ探索 - RyuGraphデータベースを検索
  3. 結果拡張 - 関連するソースコードや仕様書を取得
  4. レスポンス生成 - 構造化された回答を返却

前提条件

  • /build-graph が実行済みで knowledge.ryugraph が存在すること
  • Python 3.9+ と ryugraph パッケージ

クエリモード

1. 自然言語モード

日本語で質問すると、Cypherクエリに変換して実行します。

例:

/query-graph 「注文」に関連するクラスを教えて
/query-graph 認証フローに関わるメソッドは?
/query-graph CustomerServiceが依存しているエンティティを探して

2. Cypherモード

直接Cypherクエリを入力して実行します。

例:

/query-graph MATCH (e:Entity)-[:HAS_TERM]->(t:UbiquitousTerm {name_ja: '注文'}) RETURN e
/query-graph MATCH (m:Method)-[:CALLS*1..3]->(target:Method) WHERE m.name = 'processOrder' RETURN target

実行プロンプト

あなたはGraphDBを探索する専門家エージェントです。以下の手順でクエリを処理してください。

Step 1: クエリの解析

ユーザーのクエリを分析し、以下を判定:

  1. クエリタイプ

    • 自然言語 → Cypherに変換が必要
    • Cypher → そのまま実行
  2. 探索パターン

    • 用語検索: ユビキタス言語からの逆引き
    • エンティティ検索: クラス/メソッドの検索
    • 関係検索: 依存関係や呼び出し関係の探索
    • パス検索: 2つのノード間の経路探索

Step 2: 自然言語からCypherへの変換

自然言語クエリの場合、以下のパターンでCypherに変換:

用語検索パターン

「Xに関連するクラス」
↓
MATCH (e:Entity)-[:HAS_TERM]->(t:UbiquitousTerm)
WHERE t.name_ja = 'X' OR t.name = 'X'
RETURN e.name, e.file_path, e.type

エンティティ検索パターン

「Xクラスの詳細」
↓
MATCH (e:Entity {name: 'X'})
OPTIONAL MATCH (e)-[:DEFINED_IN]->(f:File)
OPTIONAL MATCH (e)-[:BELONGS_TO]->(d:Domain)
RETURN e, f, d

依存関係パターン

「Xが依存しているもの」
↓
MATCH (source:Entity {name: 'X'})-[:REFERENCES]->(target)
RETURN target.name, labels(target)[0] AS type

呼び出し関係パターン

「Xを呼び出しているメソッド」
↓
MATCH (caller:Method)-[:CALLS]->(target:Method {name: 'X'})
RETURN caller.name, caller.file_path

パス検索パターン

「XとYの関係」
↓
MATCH path = shortestPath((a)-[*..5]-(b))
WHERE a.name = 'X' AND b.name = 'Y'
RETURN path

Step 3: クエリ実行

Pythonスクリプトでクエリを実行:

python scripts/query_graph.py \
  --db-path ./knowledge.ryugraph \
  --query "MATCH ..."

または Python コードを直接実行:

import ryugraph

db = ryugraph.Database("./knowledge.ryugraph")
conn = ryugraph.Connection(db)

result = conn.execute("""
    MATCH (e:Entity)-[:HAS_TERM]->(t:UbiquitousTerm)
    WHERE t.name_ja = '注文'
    RETURN e.name AS entity, e.file_path AS file, e.line_number AS line
""")

for row in result:
    print(row)

Step 4: 結果の拡張

グラフクエリの結果に基づいて、追加情報を取得:

ソースコードの取得

# クエリ結果のファイルパスと行番号を使用
mcp__serena__find_symbol で該当シンボルの詳細を取得
# または
Read ツールで該当ファイルを表示

仕様書の参照

分析結果から該当する仕様を検索:

reports/01_analysis/domain-code-mapping.md
reports/01_analysis/ubiquitous-language.md

Step 5: レスポンス生成

以下の形式で結果を返却:

## 検索結果

### 実行クエリ
```cypher
MATCH (e:Entity)-[:HAS_TERM]->(t:UbiquitousTerm {name_ja: '注文'})
RETURN e.name, e.file_path

検索結果(N件)

エンティティファイル行番号
Ordersrc/domain/order.ts10
OrderServicesrc/service/orderService.ts5

関連ソースコード

Order (src/domain/order.ts:10)

export class Order {
  private id: string;
  private items: OrderItem[];
  // ...
}

関連用語

用語定義
注文顧客が商品を購入する単位
注文アイテム注文に含まれる個別の商品

## よく使うクエリテンプレート

### 1. ドメイン内のすべてのエンティティ

```cypher
MATCH (e:Entity)-[:BELONGS_TO]->(d:Domain {name: 'OrderManagement'})
RETURN e.name, e.type
ORDER BY e.name

2. 特定クラスの全メソッド

MATCH (m:Method)-[:METHOD_DEFINED_IN]->(f:File)
WHERE f.path CONTAINS 'OrderService'
RETURN m.name, m.signature

3. 循環依存の検出

MATCH (a:Entity)-[:REFERENCES]->(b:Entity)-[:REFERENCES]->(a)
RETURN a.name, b.name

4. 最も参照されているエンティティ

MATCH (e:Entity)<-[:REFERENCES]-(other)
RETURN e.name, count(other) AS references
ORDER BY references DESC
LIMIT 10

5. アクターが使用する機能

MATCH (a:Actor {name: '管理者'})-[:HAS_ROLE]->(r:Role)
RETURN a.name, r.name, r.permissions

6. 用語間の関連(同じエンティティを共有)

MATCH (t1:UbiquitousTerm)<-[:HAS_TERM]-(e:Entity)-[:HAS_TERM]->(t2:UbiquitousTerm)
WHERE t1 <> t2
RETURN t1.name_ja, t2.name_ja, collect(e.name) AS shared_entities

7. ファイル間の依存関係

MATCH (f1:File)<-[:DEFINED_IN]-(e1:Entity)-[:REFERENCES]->(e2:Entity)-[:DEFINED_IN]->(f2:File)
WHERE f1 <> f2
RETURN f1.path, f2.path, count(*) AS dependencies
ORDER BY dependencies DESC

対話的探索

ユーザーとの対話を通じて、段階的に探索を深めることができます:

User: 注文に関連するものを教えて
Agent: [用語「注文」に関連するエンティティを表示]

User: その中でOrderServiceの詳細を見せて
Agent: [OrderServiceのソースコードと依存関係を表示]

User: このサービスを呼び出しているのは?
Agent: [OrderServiceを呼び出しているメソッドを表示]

エラーハンドリング

  • データベースが存在しない → /build-graph の実行を提案
  • クエリ構文エラー → 正しいCypher構文を提案
  • 結果が空 → 類似の用語やエンティティを提案
  • 結果が多すぎる → フィルタ条件の追加を提案

ツール使用ガイドライン

  1. Bashツール - Pythonスクリプトでのクエリ実行
  2. Readツール - 該当ソースコードの表示
  3. Serenaツール - シンボルの詳細取得
  4. Grepツール - 追加のテキスト検索

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

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

The English summary is being prepared. Showing the original description.

wfukatsu/refactoring-agent-for-claude-code8Updated Feb 24, 2026

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

The English summary is being prepared. Showing the original description.

wfukatsu/refactoring-agent-for-claude-code8Updated Feb 24, 2026

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

The English summary is being prepared. Showing the original description.

wfukatsu/refactoring-agent-for-claude-code8Updated Feb 24, 2026

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

The English summary is being prepared. Showing the original description.

wfukatsu/refactoring-agent-for-claude-code8Updated Feb 24, 2026

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

The English summary is being prepared. Showing the original description.

wfukatsu/refactoring-agent-for-claude-code8Updated Feb 24, 2026

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

The English summary is being prepared. Showing the original description.

wfukatsu/refactoring-agent-for-claude-code8Updated Feb 24, 2026

See all skills by wfukatsu

Report a problem with this skill