Skip to content
Back to skills

Pythia Review

ASecurity

Use when reviewing PL/SQL - a changed procedure or package, a proposed file, or an object suspected of causing trouble. Combines the database's own correctness signals with the antipattern checklist, and reports findings anchored to line numbers.

  • 4 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 14, 2026
ai-agentsgosqldatabaseperformance

Works with

  • cursor

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned October 14, 2026

npx -y skills add thaildhe172591/pythia --skill pythia-review --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Pythia Review?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Pythia Review
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/thaildhe172591-pythia-review/badge)](https://www.skillsdirectory.com/skills/thaildhe172591-pythia-review)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: pythia-review
description: Use when reviewing PL/SQL - a changed procedure or package, a proposed file, or an object suspected of causing trouble. Combines the database's own correctness signals with the antipattern checklist, and reports findings anchored to line numbers.
---

# Reviewing PL/SQL

**Announce at start:** "Using pythia-review — checking the database's signals first."

**Phase:** Learn → Ask — the database's own signals first, findings back to the developer

Review in two passes: what the database *knows* is wrong, then what the
checklist says is *likely* wrong. Machine signals first — they are free and
exact.

## Pass 1 — the machine's verdict

0. `pythia lint <file>` (a proposed file) — the built-in standards and the
   LEAD's rules from `conventions.json`, anchored to line numbers. Report
   its errors as findings; do not re-derive them by hand.
1. `pythia errors NAME` — compile errors and warnings with line:column.
   An object that does not compile needs no style review yet.
2. `pythia src NAME` — read the source with the compiler's line numbers, so
   findings can be anchored (`line 47: ...`).
3. `pythia impact NAME --depth 2` — how exposed is this object; a finding in
   something with 40 dependents outranks the same finding in a leaf.
4. For a proposed file (not yet applied): the compile verdict arrives at
   apply time — say explicitly that compilation is still unverified.

## Pass 2 — the antipattern checklist

Work through `reference/antipatterns.md` — and the project's own
`.pythia/conventions.md` when it exists, which outranks the generic list.
The seven entries, each with
wrong → right → why: row-by-row cursor loops, string-concatenated dynamic
SQL, `WHEN OTHERS THEN NULL`, `COMMIT` inside loops, hand-copied types
instead of `%TYPE`/`%ROWTYPE`, large OUT parameters without `NOCOPY`, and
convention drift against the codebase (`pythia similar` shows the house
style).

## Reporting findings

- Anchor every finding: `line N: <what> — <why it bites> — <the fix>`.
- Severity order: breaks correctness → silently loses data or errors →
  performance at scale → style drift.
- Verify the claim before writing it: read the actual lines with `src`;
  never report from memory of the diff alone.
- A clean review says what was checked, not just "looks good": compiles
  clean, no new INVALID, checklist passed.

## When NOT to use this skill

- Reviewing whether a change is *safe to apply* — that is `pythia-impact`
  plus `pythia-apply`'s preview; this skill judges the code itself.
- Reviewing non-PL/SQL application code — outside this skill's scope.

Files in this skill

  • SKILL.md2.6 KB
  • reference/antipatterns.md3.1 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.