14 SSOTから探して — 個人ナレッジベースへのRAGRetrieval-Augmented Generation(ラグ・検索拡張生成)の略。AIに答えさせる前に、自分の文書から関連箇所を検索して渡し、その内容に基づいて答えさせる仕組み検索
Claude Codeから knowledge-base(個人ナレッジベース)を横断検索するスキルClaude Codeで「特定の作業手順」をパッケージ化したもの。SKILL.mdに手順を書いておくと、対応する場面でAIがその手順を読み込んで従う。経験を再利用する仕組み。ripgrepグレップ。ファイルやテキストの中から、指定したパターンを含む行を抜き出すコマンド。大量のファイルから目的の言葉を探す時の定番 + sentence-transformers のハイブリッドRAG構成。
<a id="overview"></a>概要:これは何か
「SSOTから探して: glm-rate-proxy」と話しかけると、1,900件超のMarkdownファイルを横断検索して関連ドキュメントを5件表示するスキルです。
あなた: SSOTから探して: MiniMaxのフォールバック設定
Claude: 🔍 SSOT検索: 「MiniMax フォールバック 設定」— 5件ヒット
1. 📋 DECISIONS 01_DECISIONS/claude-code/2026-05-11_...
2. 📅 DAILY 10_DAILY/2026-05-11.md
...
RAGとは
Retrieval-Augmented Generation(検索拡張生成)の略。LLMに回答させる前に関連文書を検索してプロンプトAIに渡す指示文のこと。「この機能を作って」「この文を直して」等に渡す仕組みです。専用のベクトルDBなしで、ファイルシステム上で軽量に実現しています。
<a id="architecture"></a>アーキテクチャ
ユーザーの質問
│
▼
① ripgrep 全文検索(~0.5秒)
├─ フェーズ1: フレーズ完全一致
└─ フェーズ2: ヒット不足 → トークンOR検索(日本語対応)
│
▼
② sentence-transformers rerank(~1秒)
all-MiniLM-L6-v2 でコサイン類似度を計算
│
▼
③ 上位5件を層別表示
📋 DECISIONS / 📅 DAILY / 🔧 SYSTEM / 💼 CAREER ...
キーワード検索と意味的検索の違い
| キーワード検索のみ | ハイブリッド(本構成) | |
|---|---|---|
| 「glm-rate-proxy」 | ◎ ヒット | ◎ ヒット |
| 「プロキシ通信の中継役。「クライアント→プロキシ→本来の宛先」の順に通信を一度経由させる仕組みで、仲介者が経路の切替・集計・制限等を担当する レートリミット」 | ◯ 部分ヒット | ◎ ヒット |
| 「429エラーの対処」→「glm-rate-proxy」 | ✗ ミス | ◎ ヒット |
<a id="setup"></a>セットアップ
1. ripgrep インストール
sudo apt-get install -y ripgrep
2. Python venvブイエンブ。Python標準の仮想環境を作るコマンド/仕組み。プロジェクトごとにライブラリを分けてインストールできるようにする 作成
sudo apt-get install -y python3.12-venv
python3 -m venv ~/.claude/venv/ssot-search
~/.claude/venv/ssot-search/bin/pip install sentence-transformers
注意: Python 3.12以降はシステムへの直接 pip install がブロック複数の処理が同時に同じ対象を触って衝突するのを防ぐ「鍵」の仕組み。鍵を持っている間は他の処理は待つか諦めるされます(PEP 668)。必ずvenvを使うこと。
3. スクリプト自動実行できる小さなプログラム。手順を書いたテキストファイルの形をしている配置
~/projects/claude-config/scripts/ssot/search.py が
~/.claude/scripts/ssot/search.py にシンボリックリンクファイルやフォルダの「ショートカット」のようなもの。リンクを辿ると実体の場所として扱える。1つの実体を複数の場所から参照したい時に使うされていることを確認:
ls -la ~/.claude/scripts/ssot/
4. スキル定義確認
cat ~/.claude/skills/ssot-search/SKILL.md
<a id="usage"></a>使い方
基本
SSOTから探して: <キーワード>
SSOT検索: <キーワード>
/ssot-search <キーワード>
例
SSOTから探して: glm-rate-proxy の設定
SSOTから探して: openclaw-stack 設計方針
SSOTから探して: Zenn記事 LLMルーティング
SSOTから探して: MiniMax フォールバック
件数を増やす
ClaudeにBashコマンドターミナルに入力してコンピュータに与える一行の指示。lsやcdのように『プログラム名+補足指定』で構成されるを直接実行させる場合:
~/.claude/venv/ssot-search/bin/python3 ~/.claude/scripts/ssot/search.py "クエリ" --top 10
<a id="japanese"></a>日本語クエリのコツ
スペース区切りでキーワードを並べると精度が上がります:
# よりよい
SSOTから探して: MiniMax フォールバック 設定
# 動くが精度が落ちる場合も
SSOTから探して: MiniMaxのフォールバック設定方法
スペースなしでも内部でトークンAIにとっての「文字数」のようなもの。AIは文章をトークンという小片に区切って処理する。課金や入力上限(コンテキストウィンドウ)はこの単位で数えられる分割(助詞・英数字境界で分割)するため多くの場合動作します。
<a id="internals"></a>内部動作の詳細
search.py の処理フロー
# 1. ripgrep でフレーズ検索
hits = rg_search(query, ssot_dir, max_files=80)
# 2. 不足時はトークンOR検索で補完
if len(hits) < 80:
tokens = _tokenize(query) # 助詞・英数字境界で分割
hits += rg_search("|".join(tokens), ...)
# 3. sentence-transformers でrerank
results = rerank(query, hits, top_n=5)
日本語トークナイザ
DELIMITERS = r"[\s のをがはにでもとからまでよりへ、。・]+"
# さらに英数字↔日本語境界でも分割
# 例: "MiniMaxのAPI" → ["MiniMax", "API"]
使用モデル
| 項目 | 内容 |
|---|---|
| モデル | all-MiniLM-L6-v2 |
| サイズ | ~80MB(初回実行時に自動DL) |
| 速度 | rerank ~1秒(CPU) |
| 依存 | PyTorch 2.12.0 込み |
<a id="troubleshoot"></a>トラブルシューティング
ModuleNotFoundError: No module named 'sentence_transformers'
venvが使われていません:
# 正しい実行方法
~/.claude/venv/ssot-search/bin/python3 ~/.claude/scripts/ssot/search.py "クエリ"
rg: command not found
sudo apt-get install -y ripgrep
検索結果が0件
クエリが長すぎてripgrepが完全一致できない場合。スペース区切りで短いキーワードに分割してください。
apt-get install が数十分ハング
バックグラウンドでのsudoコマンドはaptロック競合複数の処理・人が同時に同じものを触って衝突すること。gitでは同時に同じファイルを編集すると競合(コンフリクト)が起きるで止まることがあります。WSLターミナル文字だけでパソコンと対話する画面。コマンドを打ち込むと結果が文字で返ってくる。Claude Code CLIはここで動くで直接実行してください。
💡 やさしい補足(初心者向け)
- 「SSOT検索」= メモの山を探す機能: ため込んだメモ(SSOT)から、欲しい情報を日本語で探せる
- 日本語で聞ける: 「〇〇について書いたメモある?」と聞くと、該当箇所を探してくれる
- 探す時間を省ける: 手動でフォルダを漁る代わりに、一発で見つけられる
- 内部の仕組み: 詳細は上の章。普段は「検索したい時に使う」とだけ覚えればOK
<a id="files"></a>関連ファイル
| ファイル | 役割 |
|---|---|
~/.claude/scripts/ssot/search.py |
検索スクリプト本体 |
~/.claude/skills/ssot-search/SKILL.md |
スキル定義(トリガーワード等) |
~/.claude/venv/ssot-search/ |
Python仮想環境プロジェクトごとにインストールするライブラリを分ける独立したPython環境。プロジェクト間のバージョン衝突を防ぐ |
~/projects/claude-config/scripts/ssot/ |
スクリプトのソース(シンボリックリンク元) |
~/projects/claude-config/skills/ssot-search/ |
スキルのソース |