| name | review-ultra |
| description | Full review pass on a change or directory, routed by stack. Detects Go vs TypeScript and delegates to go-review-ultra / ts-review-ultra; reviews any other language directly. Also runs a PR-scope check. Use when you want the complete pre-commit/pre-PR review, e.g. "ultra-review this", "full review before I push", "review everything". Intentional and expensive, invoke on purpose. Does not write code. |
Top-level review router. Detect the target's stack, dispatch to the language-specific ultra pass, and add a PR-scope check. This is the single "review everything" entry; the -ultra name gates the expensive fan-out behind a deliberate call, so it never auto-runs.
Input
The user gives a target: a directory, a set of files, or "the current diff". If nothing is given, default to the working diff (git diff plus staged changes). If they have a claim to scrutinize, capture it and pass it through to the language pass.
Steps
- Detect the stack from the file extensions in the target (or the diff):
- Predominantly Go (
.go) → invoke the go-review-ultra skill.
- Predominantly TypeScript/JavaScript (
.ts, .tsx, .js, .jsx) → invoke the ts-review-ultra skill.
- Mixed → invoke both, each scoped to its own files.
- Anything else (Python, Rust, shell, SQL, config, docs) → review it directly (see Generic review). Do NOT fall back to another tool; this convention is the contract.
- PR-scope check. In the same message as the language pass, spawn the
pr-scope-analyzer agent (subagent_type: pr-scope-analyzer) on the target to assess size and suggest splits.
- Merge. Language findings first (as the sub-skill returned them), then the PR-scope assessment as its own final section.
Generic review (no language-specific ultra)
Review the target yourself across three labelled lenses, one pass each:
- Correctness: bugs, edge cases, error handling, concurrency, resource leaks.
- Simplification: dead code, needless abstraction, single-use helpers, whatever could be deleted.
- Security: injection, unsafe input handling, secrets, unsafe defaults.
Per finding: a file:line, a one-line "why it bites in practice", and a severity. End with the top 1-3 to fix first.
Rules
- Intentional only. This is the expensive pass; don't wire it into an auto-trigger.
- Does not write code. Output is findings; the user picks what to fix.
- Paths and ticket keys stay exactly as the user wrote them.