Skip to content
cccskills
FreePublished on GitHubEnglish overview

ponytail-review

Review code changes and connected code for bugs, security risks, load problems, missing tests, slowdowns, and unnecessary complexity. Get prioritized findings with concrete failure scenarios, small fixes, and the consequences of leaving each issue unresolved.

OriginalShow the original description

Quality review of a change: is the logic right, is it safe, does it hold under real load, is risky code tested, is it fast enough, and is every line needed. Reads the connected code, not only the diff. Each finding is explained in plain English. Use for "review this", "code review", "review the last commit", "review my PR", "is this over-engineered", /ponytail-review.

AI rating100/ 100See how to install

Good for

  • Review a pull request or the latest commit
  • Check for security and data loss risks
  • Find failures under expected load and gaps in tests
  • Identify duplication and unnecessary complexity

Overview

What it does

ponytail-review examines code changes and produces a prioritized review. It reads the diff together with callers, related functions, tests, and the README to trace how data moves through the code. It checks correctness, security, expected load, tests, speed, and implementation simplicity. Each finding explains a concrete failure scenario, the smallest proposed fix, and the consequences of leaving the issue unresolved.

When it helps

Use it to review a PR or the latest commit, or to check whether a change breaks another part of the code. It also helps you examine whether duplication or unnecessary mechanisms have accumulated and whether the design suits the expected scale of use.

Example requests

  • “Review this PR and list the required fixes in priority order.”
  • “Check the last commit for security issues and data loss risks.”
  • “Look for unnecessary implementation and duplication in this change.”

Notes

This skill reports findings without changing code. If you do not specify a target, it reviews uncommitted changes, or the last commit if there are none. Reports use plain English and state the assumed load and anything relevant that could not be checked.

This overview was written by AI (OpenAI Codex) from the public SKILL.md. Check the original below for the exact behavior.

Objective evaluation

AI rated this skill on four points using only the contents of its SKILL.md. Stars and popularity are not taken into account.

Clear instructionsIs it clear when to use it and what it does?
AGoodIt specifies how to select the review target and what to check, from correctness to simplicity.
Concrete stepsAre steps, inputs, outputs, and examples spelled out?
AGoodIt provides investigation, finding verification, and reporting steps, with examples grouped by priority.
SafetyAre sending data, deleting files, and running commands disclosed?
AGoodThe final instruction explicitly limits the skill to listing findings without changing code.
Easy setupDoes it need few tools or API keys, and are they documented?
AGoodThe workflow centers on reading code and diffs; no additional tools or API keys are specified.

The total counts each point as A = 25, B = 15, C = 5. Rated by AI (OpenAI Codex) as of Oct 20, 2026. Treat it as a guide and read the original before installing.

Disagree? Request a re-evaluation

Tell us which point is wrong and why. No login needed. We will check it against the SKILL.md, redo the evaluation, and show the result here.

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

Files included (1)

  • SKILL.md5.0 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Review a change like the senior developer who will be paged when it breaks. Order of importance: correct, safe, holds under load, tested, fast, lean. Lean still matters: every extra line must be read, tested and fixed later. This is a report the user asked for, so give it in full.

1. Understand first

  • Review what the user names: uncommitted or staged changes, a branch, a PR link, or files. Nothing named: the uncommitted changes, or the last commit if there are none.
  • Read the diff, then the code it touches: callers of every changed function, the functions it calls, the tests, the README.
  • Trace the real flow: where data comes in, what is stored, what goes out.
  • A change can break code it does not touch. When a signature, return value or behavior changes, grep every caller.
  • Find the expected load in the repo (README, deploy config): one person running a script, or many users and processes at once. Judge scale against that, and say which load you assumed.

2. Look for

  1. Bug: wrong result, crash, missed edge case (empty, zero, last item, rounding, time zones), a caller broken by the change, a fix applied in one caller while the shared function stays broken.
  2. Risk: security holes (injection, weak randomness, secrets, missing checks on input from users), data loss (errors swallowed, writes in the wrong order, no transaction).
  3. Scale: fine for one user, wrong for many: check-then-write races, the same work done by every process, memory or lists that only grow, a query per item, O(n^2) on big input, per-process state that must be shared.
  4. Missing test: risky new logic (a branch, a parser, money, security, data writes, a bug fix) with no test that fails when it breaks. One good test, not coverage.
  5. Speed: big slowdowns are problems. Small wins (work repeated in a hot loop) are suggestions; some software counts every millisecond.
  6. Lean: code that should not exist or should be smaller.
    • delete: dead code, unused options, speculative features
    • reuse: the repo already has this helper (name the path)
    • stdlib / native: the standard library or platform already does it; a new dependency for a few lines
    • yagni: abstraction with one implementation, config nobody sets
    • merge: near-copies that must change together
    • split: one function doing several unrelated jobs, so it is hard to read or test. Split by job, never by line count, and never into helpers that exist only to make a function shorter.

3. Check before you report

  • Every finding needs a concrete case: "this input or situation leads to this wrong result". No case, no finding.
  • Re-read the lines and confirm: the caller exists, the value can really be empty, the code really is unused.
  • A shortcut marked with a shortcut: (or older ponytail:) comment that names its limit is a decision, not a finding, unless the expected load already crosses it.
  • Propose the smallest fix that works. Prefer fixes that delete code. Never add layers, frameworks or config the problem does not need.
  • No style taste, no "consider", no vague worries.

4. Output

Very simple English: short sentences, everyday words. Explain a technical term the first time you use it. The reader may never have seen this code.

Start with What this change does: in two or three sentences.

Then the findings in three groups, skip empty groups:

  • Must fix: bug, security, data loss, breaks at the expected load.
  • Should fix: risky code without a test, real slowness, duplication, a function that mixes jobs, code that should not exist.
  • Nice to have: small speed-ups, shorter forms.

Number findings across all groups, so the user can say "fix 2 and 5". Every finding has all four parts, each one or two short sentences:

  1. Orders land on the wrong day (billing/close_day.py:L40-52)
    • What this is: At midnight this job closes the day and bills all orders of that day.
    • Problem: It takes "today" from the server clock, which runs in UTC. An order placed at 00:30 in Berlin is billed on the day before.
    • Fix: Compute the day once in the shop's time zone: datetime.now(ZoneInfo("Europe/Berlin")).date(). One line, nothing else changes.
    • If we skip it: Late orders show the wrong date, and accounting fixes them by hand.

End with:

  • Verdict: Ship. or Verdict: fix 1 and 3 first.
  • Lean: -<N> lines possible. when lean findings exist.
  • Not checked: one line, if something mattered and you could not check it.

Nothing found: What this change does:, then Looks good. Ship. and one line on what you checked.

Lists findings, changes no code.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

ponytail

FreeSummaryAI rating 100

Guide coding tasks toward the smallest complete change by checking affected code, reusing existing features, and avoiding unnecessary additions. It also calls for relevant checks and concise explanations of what changed, what remains unchecked, and any risks.

  • Build the smallest version that meets a request
  • Fix a shared bug across affected callers
  • Avoid unnecessary dependencies and abstractions
DietrichGebert/ponytail174KUpdated Oct 18, 2026

ponytail

FreeSummaryAI rating 90

Guide coding tasks toward the smallest complete change by reusing existing code, platform features, and installed dependencies. Address affected callers and necessary checks, then explain skipped work, unchecked areas, and risks in a brief reply.

  • Build a minimal version that meets the request
  • Fix a root cause in shared code
  • Refactor while limiting unnecessary additions
DietrichGebert/ponytail174KUpdated Oct 18, 2026

ponytail-audit

FreeSummaryAI rating 100

Audit an entire code repository or a selected folder for bugs, security risks, load problems, missing tests, slow paths, and excess code. Get up to 20 prioritized findings explaining concrete problems, minimal fixes, and consequences.

  • Assess the quality of an inherited codebase
  • Find security and load risks across a project
  • Identify code to delete, merge, or split
DietrichGebert/ponytail174KUpdated Oct 18, 2026

ponytail-audit

FreeSummaryAI rating 100

Review a codebase for bugs, security risks, failures under expected load, missing tests, slow paths, and unnecessary code. Receive prioritized findings with concrete failure cases, small proposed fixes, and the consequences of leaving each issue unresolved.

  • Assess the quality of an inherited codebase
  • Find risks under expected concurrent usage
  • Identify unnecessary code and dependencies
DietrichGebert/ponytail174KUpdated Oct 18, 2026

ponytail-debt

FreeSummaryAI rating 100

Collect comments marking deliberate coding shortcuts into a file-by-file debt ledger. The report shows each shortcut’s stated limit and revisit trigger, flags missing triggers, and leaves the code unchanged.

  • Reviewing deferred implementation work
  • Finding shortcuts without revisit triggers
  • Creating a file-by-file technical debt ledger
DietrichGebert/ponytail174KUpdated Oct 18, 2026

ponytail-debt

FreeSummaryAI rating 90

Collect comments marking deferred improvements into a ledger grouped by file. Record what was simplified, its stated limit, and when to revisit it, while flagging entries that lack a trigger for future action.

  • Collect deferred improvements across a repository
  • Find shortcuts with no stated review trigger
  • Gather TODO comments using a custom marker
DietrichGebert/ponytail174KUpdated Oct 18, 2026

See all skills by DietrichGebert

Report a problem with this skill