mcpField
P
pythia-explore

pythia-explore

github.com/thaildhe172591データ・データベース4142 回インストール4 日前に更新
リポジトリ

pythia-explore について

pythia-explore は、ライブデータベースのスキーマや PL/SQL オブジェクトを調べる開発者向けスキルです。古くなる可能性のある SQL エクスポートよりデータベースへの問い合わせを優先し、ソース、依存関係、参照箇所、エラーを確認できます。

主な機能

  1. 01ライブスキーマと接続の確認
  2. 02オブジェクトのソースとシグネチャの取得
  3. 03列と DDL の確認
  4. 04依存関係と影響範囲の追跡
  5. 05識別子の正確な参照箇所の検索
  6. 06無効なオブジェクトとエラーの確認

活用シーン

  1. 01SQL エクスポートとライブ DB の照合
  2. 02プロシージャや関数の把握
  3. 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,8273,827一致
テーブル952952一致
型0115すべて欠落
パッケージ09すべて欠落
インデックス1161,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 を参照してください。

コメント