PostgreSQL + pgvector + PGroonga で GraphRAG を構築。自然言語でプロジェクトを説明すると、最適なEntity/Edge型、スキーマ、クエリパターンを設計・生成。Use when the user mentions "GraphRAG", "knowledge graph", or wants to build RAG with relationships.
Scanned 2/12/2026
Install via CLI
openskills install majiayu000/claude-skill-registry---
name: graphrag
description: PostgreSQL + pgvector + PGroonga で GraphRAG を構築。自然言語でプロジェクトを説明すると、最適なEntity/Edge型、スキーマ、クエリパターンを設計・生成。Use when the user mentions "GraphRAG", "knowledge graph", or wants to build RAG with relationships.
---
# GraphRAG PostgreSQL Skill
PostgreSQL単体(pgvector + PGroonga拡張)でGraphRAGを構築するためのスキル。
**自然言語でプロジェクトを説明すると、最適なGraphRAGスキーマを設計・生成する。**
## How It Works
```
/graphrag 小説のキャラクター関係を管理したい。時系列で関係が変化する
```
↓ Claude が分析
```
Entity型: Character, Location, Organization, Event, Item
Edge型: friend_of, enemy_of, ally_of, family_of, participates_in
追加機能: 時系列サポート(events テーブル)
```
↓ ユーザー確認後、生成
```
sql/schema.sql, sql/indexes.sql, sql/queries/*.sql, docs/
```
## Output Location
```
{project}/
├── sql/
│ ├── schema.sql # カスタマイズされたスキーマ
│ ├── indexes.sql # インデックス定義
│ └── queries/
│ ├── local_search.sql # Entity中心検索
│ ├── global_search.sql # 全体俯瞰検索
│ ├── hybrid_search.sql # Hybrid Search
│ └── custom_*.sql # 要件固有のクエリ
└── docs/
├── graphrag-guide.md # 運用ガイド
└── prompts/
├── entity_extraction.md
└── edge_extraction.md
```
## Execution Flow
### Phase 1: Analyze User Requirements
**ユーザーの自然言語の説明を分析**:
1. **データの種類**: 何を管理したいか(小説、技術文書、FAQ、障害報告...)
2. **追跡したい関係**: どんな関係が重要か(人間関係、依存関係、因果関係...)
3. **検索・分析の要件**: どんなクエリが必要か(関連検索、パス検索、影響分析...)
4. **特別な要件**: 時系列、ネタバレ制御、承認フロー、重要度など
### Phase 2: Read Reference Documents
以下のリファレンスを参照して設計:
- [references/use-cases.md](references/use-cases.md) - 既存パターンを参考に
- [references/architecture.md](references/architecture.md) - アーキテクチャ基本
- [references/schema-design.md](references/schema-design.md) - スキーマ設計
- [references/entity-extraction.md](references/entity-extraction.md) - Entity/Edge抽出
### Phase 3: Design Entity/Edge Types
**ユーザー要件に最適なEntity型とEdge型を設計**:
参考パターン(use-cases.md より):
| パターン | Entity型例 | Edge型例 |
|----------|-----------|----------|
| 物語・コンテンツ | Character, Location, Item | friend_of, enemy_of, possesses |
| 技術文書 | Technology, API, Component | depends_on, implements, extends |
| ナレッジベース | Concept, Process, Document | defines, precedes, references |
| 障害・トラブル | Symptom, Cause, Solution | causes, solved_by, affects |
| 法務・規約 | Clause, Requirement, Exception | refers_to, overrides, exception_of |
**これらを参考に、ユーザー要件に合わせてカスタム設計する。**
### Phase 4: Confirm Design with User
AskUserQuestionで設計を確認:
1. **プロジェクト名**
2. **Entity型の確認**: 「以下のEntity型を提案します。追加/削除があれば教えてください」
3. **Edge型の確認**: 「以下のEdge型を提案します」
4. **オプション**:
- Embedding dimension: 1536 / 768 / Custom
- Primary language: Japanese / English
- 時系列サポート: Yes / No
- Global Search (Community): Yes / No
### Phase 5: Generate Schema
1. Read `templates/schema-core.sql`
2. **設計したEntity/Edge型をスキーマに反映**:
- コメントとして型定義を追加
- 必要な拡張テーブルを追加
3. Write to `sql/schema.sql`
### Phase 6: Generate Indexes
参照: [references/indexing-strategies.md](references/indexing-strategies.md)
- pgvector: HNSW(推奨)
- PGroonga: Japanese → TokenMecab / English → TokenBigram
### Phase 7: Generate Custom Queries
参照: [references/query-patterns.md](references/query-patterns.md)
**ユーザーの検索要件に基づいてクエリを生成**:
- `local_search.sql` - Entity中心のn-hop展開
- `global_search.sql` - Community reports検索
- `hybrid_search.sql` - PGroonga + pgvector (RRF)
- `custom_*.sql` - 要件固有(依存ツリー、因果パス、類似検索等)
### Phase 8: Generate Entity Extraction Prompts
参照: [references/entity-extraction.md](references/entity-extraction.md)
**設計したEntity/Edge型に基づいてLLM抽出プロンプトを生成**:
- `docs/prompts/entity_extraction.md` - Entity抽出用
- `docs/prompts/edge_extraction.md` - Edge抽出用
### Phase 9: Generate Documentation
参照: [references/chunking-strategies.md](references/chunking-strategies.md)
- `docs/graphrag-guide.md`:
- Entity/Edge型の定義と説明
- Chunking戦略
- クエリの使い方
- パフォーマンスチューニング
### Phase 10: Completion Report
生成完了を報告:
1. 設計したEntity/Edge型のサマリー
2. 生成されたファイル一覧
3. 次のステップ
## Reference Files
共通:
- [references/architecture.md](references/architecture.md) - 全体アーキテクチャ
- [references/schema-design.md](references/schema-design.md) - テーブル設計詳細
- [references/indexing-strategies.md](references/indexing-strategies.md) - インデックス戦略
- [references/query-patterns.md](references/query-patterns.md) - 検索パターン
ユースケース固有:
- [references/use-cases.md](references/use-cases.md) - **ユースケース別Entity/Edge型定義**
- [references/chunking-strategies.md](references/chunking-strategies.md) - ユースケース別Chunking
- [references/entity-extraction.md](references/entity-extraction.md) - 抽出プロンプト
オプション:
- [references/community-detection.md](references/community-detection.md) - コミュニティ検出
## Template Files
- [templates/schema-core.sql](templates/schema-core.sql) - コアテーブル
- [templates/schema-extensions.sql](templates/schema-extensions.sql) - 拡張テーブル
- [templates/indexes.sql](templates/indexes.sql) - インデックス
- [templates/query-local.sql](templates/query-local.sql) - Local Search
- [templates/query-global.sql](templates/query-global.sql) - Global Search
- [templates/query-hybrid.sql](templates/query-hybrid.sql) - Hybrid Search
No comments yet. Be the first to comment!