pythia-explore
Original:🇺🇸 English
Translated
Use when you need to understand anything in an Oracle schema - finding objects, reading PL/SQL source, signatures, table columns, DDL, searching code, or asking who uses what. ALSO use when a .sql file, dump, export, migration script or repo copy of an object appears to answer the question already, including one the developer points you at - because those files drift from the database and are wrong in ways that read as correct. The database is the only source of truth.
5installs
Sourcethaildhe172591/pythia
Added on
NPX Install
npx skill4agent add thaildhe172591/pythia pythia-exploreTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →Exploring the Schema
Announce at start: "Using pythia-explore — asking the database directly."
The principle: ask the database, never the dump
Repositories of exported files go stale the day after export. A real
mid-size system, audited in 2026, compared its repo dump against the live
database:
.sql| Object type | In the dump | In the database | Verdict |
|---|---|---|---|
| Procedures | 3,827 | 3,827 | matched |
| Tables | 952 | 952 | matched |
| Types | 0 | 115 | all missing |
| Packages | 0 | 9 | all missing |
| Indexes | 116 | 1,016 | ~89% missing |
Code that "reads fine" against the dump can reference types and packages the
dump never heard of.
When the developer hands you a file — "explain this procedure",
"here is the export, what does it do" — the file is a claim, not the truth.
Read it, then run and answer from the database. If the
two differ, say so first: which is newer is exactly what the developer needs
to know, and it is invisible from the file alone. Never answer about a
database object from a file alone while the database is reachable.
.sqlpythia src <NAME>Read files as the answer only when the database is unreachable — and say
that is what you are doing.
What you need → what you run
| Need | Command |
|---|---|
| Is the connection alive, what schema | |
| Find objects by name | |
| Read source, with the compiler's line numbers | |
| A procedure/function signature | |
| Columns and real data types | |
| Full DDL | |
| Search all PL/SQL text | |
| What an object depends on | |
| What depends on an object | |
| Exact identifier usages (beats grep) | |
| Programs named like this one | |
| Everything currently broken | |
| A free-form question | |
Rules that keep answers honest
- Truncation is always announced. Outputs end with or set
-- truncated ...in"truncated": true. If you do not see the marker, you saw everything; if you do, say so or fetch more (--json,--limit,--offset) — never present a truncated list as complete.--max-lines - before
plscopefor "where is X used": PL/Scope is recorded by the compiler and exact; grep matches comments and look-alike names. If PL/Scope has no data, the command says so and grep is the fallback.grep - line numbers are the compiler's own — an error at
srcmeans line 47 inline 47output. No offset arithmetic.src - Default output caps exist to protect your context window; raise them only for the object you are actually working on.
Deeper reference — which dictionary views back these commands, PL/Scope
enablement, licensing boundaries: .
reference/data-dictionary.md