Auto review
Autonomous software delivery for AI agents. 18 skills that turn the lifecycle into bounded, self-correcting, checkpoint-resumable phases with deterministic enforcement hooks and a self-improving learn/map loop. For Claude Code and Codex.
npx -y skills add ulpi-io/autonomous-engineering --skill auto-reviewAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
2 things to look at
- no licenseNo license file was found in the repository. Code published without one is not open source by default, so using it at work is a question for whoever answers licensing questions where you are.
- 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Review a change across every dimension at once, then keep only the findings that survive an adversarial check — autonomously. It fans out independent reviewers over the diff (correctness, security, performance, maintainability/readability, test adequacy, API/contract & compatibility), dedups their findings, and puts each through a majority-refute verification so false positives never reach you or drive a fix. Survivors come back severity-labeled and actionable (file:line, why, suggested fix), and — if you ask — a bounded fix loop resolves the confirmed blockers. It fails closed: a dimension that didn't actually run is reported as a gap, never as "clean". This is the REVIEW phase. Composes fan-out-work (dimensions), adversarial-verify (confirm findings), converge-loop (optional fix), and checkpoint-resume.
SKILL.md
9.8 KB, as published. Nobody here has run it
Auto Review
Overview
Get a staff-engineer-grade review that's both broad (every dimension in parallel) and trustworthy (every finding survived a refutation attempt). The parallelism gives coverage; the adversarial gate gives signal — you get a short list of verified, severity-labeled, actionable findings instead of a long list you have to triage for hallucinations.
Inputs
$scope: the diff/branch/PR or path to review (default: the current branch diff). Append the literal--fixto authorize resolving CONFIRMED blockers in place after the review.
Phase 0: Scope and baseline
- Resolve scope (
$scope— the branch/PR diff by default; a path/module otherwise). Get the actual diff (git diff <base>...HEAD) and the changed files. - Note the change size — an oversized diff (≫ a few hundred lines) is itself a finding (hard to review, should be split); say so.
- Open a
checkpoint-resumerun.
Success criteria: the exact diff + changed files are known; change-size noted.
Phase 1: Fan out the review dimensions
Launch one reviewer per dimension over the diff (fan-out-work), each an independent lens with the actual
code in hand. (On Claude Code the dimensions run truly in parallel only at the ultracode effort
level; with it off they run sequentially — same dimensions, same findings, just slower. If speed matters
and it's off, mention /effort ultracode once, then proceed — never block the review on it.)
- correctness — logic errors, edge/error paths, off-by-one, null/empty, concurrency/races, wrong assumptions;
- security — trust boundaries, injection, authz, secrets, unsafe deserialization, untrusted input;
- performance — obvious hotspots, N+1s, needless allocations, blocking calls (measurement-gated claims — flag, don't assert a speedup);
- maintainability/readability — naming, structure, duplication, complexity, intent clarity;
- test adequacy — are the new behaviors covered by meaningful, non-vacuous tests? gaps?
- API/contract & compatibility — public interface changes, backward compatibility, error semantics, Hyrum's-Law surface.
Each reviewer returns structured findings (file:line, issue, severity, suggested fix, a concrete failure scenario).
Success criteria: every dimension ran (or its failure is recorded as a gap); raw findings collected.
Phase 2: Dedup + adversarially verify (the signal gate)
- Dedup the raw findings across dimensions (same file:line + same issue → one), keeping the highest severity and merging rationale.
- Verify each with
adversarial-verify: skeptics get the real code and try to REFUTE the finding (does the bug actually occur? build the input; is the "vulnerability" reachable?). Scale skeptics to severity (a blocker gets a stronger panel). Only survivors are kept; refuted findings go to a rejection ledger (reported, so you see what was filtered).
Success criteria: a deduped list of VERIFIED findings, each severity-labeled; unverified (dead-panel) findings kept open; rejected findings logged.
Phase 3: Report — or, if asked, fix the blockers (bounded)
- Report (default): the verified findings by severity, each with file:line, why, and a suggested fix; plus coverage (which dimensions ran) and the rejection ledger. Fail closed — name any dimension that didn't run.
- Fix (only on
--fixintent): runconverge-loopover the CONFIRMED blockers/concerns — one minimal fix per finding, re-verify the finding is resolved and no regression introduced, until the confirmed set is clear or the loop bounds out. Nits/FYIs are not auto-fixed. Update the checkpoint per finding.
Success criteria: the user gets verified findings (and, if requested, the confirmed blockers resolved in place with no regressions); coverage and rejections are honest.
Common Rationalizations
| Rationalization | Reality |
|---|---|
| "The model listed 30 findings, report them all." | Many are false positives. Unverified findings waste attention and drive bad edits. Verify first; report survivors. |
| "One reviewer pass covers everything." | A single lens misses the axes it isn't looking through. Fan out the dimensions; each catches what the others can't. |
| "This dimension's agent came back empty — no issues there." | Empty may mean it didn't run. Fail closed: an empty/dead dimension is a gap, not a clean bill. |
| "It's probably exploitable, mark it a blocker." | "Probably" isn't a finding. Have skeptics build the actual reachable path, or downgrade it. |
| "While fixing, I'll also refactor this nearby code." | A review-fix touches only the confirmed finding. Unrelated refactors belong in their own change. |
| "Found real issues but the code mostly looks good — call it approved." | A change with surviving blockers is not approved. Report the blockers; don't round up. |
Red Flags
- Findings reported without any verification step.
- A "clean" verdict where one or more dimensions silently didn't run.
- Severity inflation (nits as blockers) or burial (blockers as nits).
- Fixes applied for unconfirmed or nit-level findings, or bundled with unrelated refactors.
- A huge diff reviewed without noting it should be split.
- The rejection ledger hidden (you can't see what was filtered and why).
Guardrails
- Never report or fix an unverified finding — adversarial-verify first.
- Never treat a non-running dimension as clean; fail closed and name the gap.
- Never inflate/bury severity; label honestly.
- Never auto-fix beyond confirmed blockers/concerns; keep fixes minimal and re-verified.
- Never fabricate an approving verdict over surviving findings.
When To Load References
references/review-workflow.js— the RUNNABLE Workflow for Phases 1–2: one reviewer per dimension → dedup (a genuine barrier) → majority-refute skeptic panel per finding → returns{ clean, confirmed, unverified, rejected, coverage }— fail-closed on any dimension that didn't run AND on any skeptic panel that died below quorum (those findings come backunverified, kept open, never dropped). Launch via the Workflow tool with{ root, diffCmd }; prefer it over hand-orchestrating the fan-out.fan-out-work(skill) — parallel per-dimension review over the diff.adversarial-verify(skill) — the per-finding refutation gate (Phase 2) — the core signal mechanism.converge-loop(skill) — the optional bounded fix loop for confirmed blockers.checkpoint-resume(skill) — durable review/fix state.
Output Contract
Report:
- scope + diff size (flag if it should be split); dimensions that ran (coverage — fail closed on gaps)
- verified findings by severity (Blocker / Concern / Nit / FYI): file:line, issue, failure scenario, suggested fix
- unverified findings — where the skeptic panel died below quorum (fail closed: kept OPEN as
needing re-verification or hand review, never dropped or counted clean) — matches the workflow's
unverifiedreturn - rejection ledger — findings refuted by verification (so filtering is visible)
- if
--fix: confirmed blockers resolved (each re-verified, no regressions) vs. left for the user