ponytail-review

作成者: dietrichgebert

コードレビューは過剰エンジニアリングにのみ焦点を当てます。削除すべきものを見つけます:再発明された標準ライブラリ、不要な依存関係、推測による抽象化、無駄な柔軟性。発見ごとに1行:場所、削除対象、代替手段。ユーザーが「過剰エンジニアリングをレビューして」「何を削除できる?」「これは過剰エンジニアリング?」「簡略化レビュー」と言った場合、または/ponytail-reviewを呼び出した場合に使用します。正確性重視のレビューを補完し、こちらは複雑さのみを追跡します。

npx skills add https://github.com/dietrichgebert/ponytail --skill ponytail-review

Review diffs for unnecessary complexity. One line per finding: location, what to cut, what replaces it. The diff's best outcome is getting shorter.

Format

L<line>: <tag> <what>. <replacement>., or <file>:L<line>: ... for multi-file diffs.

Tags:

  • delete: dead code, unused flexibility, speculative feature. Replacement: nothing.
  • stdlib: hand-rolled thing the standard library ships. Name the function.
  • native: dependency or code doing what the platform already does. Name the feature.
  • yagni: abstraction with one implementation, config nobody sets, layer with one caller.
  • shrink: same logic, fewer lines. Show the shorter form.

Examples

❌ "This EmailValidator class might be more complex than necessary, have you considered whether all these validation rules are needed at this stage?"

L12-38: stdlib: 27-line validator class. "@" in email, 1 line, real validation is the confirmation mail.

L4: native: moment.js imported for one format call. Intl.DateTimeFormat, 0 deps.

repo.py:L88: yagni: AbstractRepository with one implementation. Inline it until a second one exists.

L52-71: delete: retry wrapper around an idempotent local call. Nothing replaces it.

L30-44: shrink: manual loop builds dict. dict(zip(keys, values)), 1 line.

Scoring

End with the only metric that matters: net: -<N> lines possible.

If there is nothing to cut, say Lean already. Ship. and stop.

Boundaries

Scope: over-engineering and complexity only. Correctness bugs, security holes, and performance are explicitly out of scope. Route them to a normal review pass, not this one. A single smoke test or assert-based self-check is the ponytail minimum, not bloat, never flag it for deletion. Does not apply the fixes, only lists them. "stop ponytail-review" or "normal mode": revert to verbose review style.

dietrichgebertのその他のスキル

ponytail
dietrichgebert
動作する最も怠惰な解決策を強制し、最もシンプルで最短、最小限のものを選びます。すべてを見てきたシニア開発者のように振る舞います。タスク自体が本当に必要かどうか疑問視し(YAGNI)、カスタムコードより標準ライブラリを、依存関係よりネイティブプラットフォーム機能を、50行より1行を優先します。強度レベルをサポート:ライト、フル(デフォルト)、ウルトラ。ユーザーが「ponytail」「be lazy」「lazy mode」「simplest solution」「minimal solution」「yagni」「do less」などと言ったときに使用します。
developmentcode-review
ponytail-audit
dietrichgebert
リポジトリ全体を対象に、過剰設計を監査します。ponytail-reviewと同様ですが、差分ではなくコードベース全体をスキャンし、削除・簡略化・標準ライブラリやネイティブ相当品への置き換えを優先順位付きでリストアップします。ユーザーが「このコードベースを監査して」「過剰設計を監査して」「このリポジトリから削除できるものは」「ブロートを見つけて」「ponytail-audit」「/ponytail-audit」と言ったときに使用します。一回限りのレポートを生成し、修正は適用しません。
code-reviewdevelopment
ponytail-help
dietrichgebert
ポニーテールの全モード、スキル、コマンドのクイックリファレンスカード。一度だけ表示され、持続モードではありません。トリガー: /ponytail-help、「ponytail help」、「what ponytail commands」、「how do I use ponytail」。
ponytail-debt
dietrichgebert
Harvest every `ponytail:` comment in the codebase into a debt ledger, so the deliberate shortcuts and deferrals ponytail leaves behind get tracked instead of rotting into "later means never". Use when the user says "ponytail debt", "/ponytail-debt", "what did ponytail defer", "list the shortcuts", "ponytail ledger", or "what did we mark to do later". One-shot report, changes nothing.
developmentcode-reviewproject-management