pythia-explore について
pythia-explore は、ライブデータベースのスキーマや PL/SQL オブジェクトを調べる開発者向けスキルです。古くなる可能性のある SQL エクスポートよりデータベースへの問い合わせを優先し、ソース、依存関係、参照箇所、エラーを確認できます。
主な機能
- 01ライブスキーマと接続の確認
- 02オブジェクトのソースとシグネチャの取得
- 03列と DDL の確認
- 04依存関係と影響範囲の追跡
- 05識別子の正確な参照箇所の検索
- 06無効なオブジェクトとエラーの確認
活用シーン
- 01SQL エクスポートとライブ DB の照合
- 02プロシージャや関数の把握
- 03データベースオブジェクトの使用箇所の特定
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ thaildhe172591/ pythia --skill pythia-exploreインストール後、Claude Code で/pythia-exploreを入力して読み込まれたか確認します。
同梱ファイルreference/data-dictionary.md
詳細
スキーマを調べる
開始時に宣言: 「pythia-explore を使用します — データベースに直接問い合わせます。」
フェーズ: 学習
原則:ダンプではなく、データベースに問い合わせる
エクスポートした .sql ファイルのリポジトリは、エクスポートした翌日には古くなります。2026 年に監査された実際の中規模システムで、リポジトリのダンプと稼働中のデータベースを比較しました。
| オブジェクトの種類 | ダンプ内 | データベース内 | 判定 |
|---|---|---|---|
| プロシージャ | 3,827 | 3,827 | 一致 |
| テーブル | 952 | 952 | 一致 |
| 型 | 0 | 115 | すべて欠落 |
| パッケージ | 0 | 9 | すべて欠落 |
| インデックス | 116 | 1,016 | 約89%欠落 |
ダンプに対して「問題なく読める」コードでも、ダンプには存在しない型やパッケージを参照していることがあります。
開発者から .sql ファイルを渡されたとき — 「このプロシージャを説明して」「これがエクスポートです。何をするのですか」など — ファイルは主張であって、真実ではありません。ファイルを読んだら、次に pythia src <NAME> を実行して、データベースに基づいて回答してください。両者が異なる場合は、まずその点を伝えてください。どちらが新しいかは開発者がまさに知る必要がある情報であり、ファイルだけではわかりません。データベースに接続できる状態で、ファイルだけを根拠にデータベースオブジェクトについて回答してはいけません。
データベースに接続できない場合に限り、ファイルを回答の根拠にしてください。その場合は、その旨を伝えてください。
必要なこと → 実行するコマンド
| 必要なこと | コマンド |
|---|---|
| 接続が生きているか、スキーマは何かを確認する | pythia check |
| 名前でオブジェクトを検索する | pythia ls "PKG_%" |
| コンパイラーの行番号付きでソースを読む | pythia src NAME(--body、--spec) |
| プロシージャ/関数のシグネチャを確認する | pythia args NAME |
| 列と実際のデータ型を確認する | pythia cols TABLE_NAME |
| DDL 全体を取得する | pythia ddl TABLE NAME |
| すべての PL/SQL テキストを検索する | pythia grep "text" |
| オブジェクトが依存する対象を確認する | pythia deps NAME |
| オブジェクトに依存する対象を確認する | pythia impact NAME |
| 識別子の正確な使用箇所を確認する(grep より確実) | pythia plscope NAME |
| これと似た名前のプログラムを探す | pythia similar NAME |
| 現在壊れているものをすべて確認する | pythia invalid、pythia errors |
| 自由形式の質問をする | pythia sql "select ..."(SELECT/WITH のみ) |
回答の正確さを保つルール
- 切り捨ては必ず通知されます。 出力の末尾には
-- truncated ...が表示されるか、--jsonでは"truncated": trueが設定されます。マーカーが表示されなければすべてを確認できています。表示された場合は、その旨を伝えるか、追加取得してください(--limit、--offset、--max-lines)。切り捨てられた一覧を完全なものとして提示してはいけません。 - 「X はどこで使われているか」を調べる場合は、
grepより先にplscopeを使ってください。 PL/Scope はコンパイラーによって記録されるため正確です。grep はコメントや似た名前にも一致します。PL/Scope にデータがない場合はコマンドがその旨を伝え、grep が代替手段となります。 srcの行番号はコンパイラー独自のものです。line 47のエラーは、srcの出力の 47 行目を意味します。オフセットの計算は不要です。- デフォルトの出力上限はコンテキストウィンドウを保護するために設定されています。上限を引き上げるのは、実際に作業しているオブジェクトに限ってください。
詳細なリファレンス — 各コマンドの基盤となるディクショナリビュー、PL/Scope の有効化、ライセンスの境界については、reference/data-dictionary.md を参照してください。