ponytail-review

ponytail-review

熱門

專注於找出「過度設計(over-engineering)」的 Code review 工具。專門抓出可以刪除的冗餘:重複造輪子的標準庫功能、不必要的套件依賴(dependencies)、過度前瞻的抽象化(speculative abstractions)、用不到的彈性設計。每筆審查結果僅佔一行:包含位置、刪除對象、替換方案。當使用者提到 "review for over-engineering"、"what can we delete"、"is this over-engineered"、"simplify review" 或觸發 /ponytail-review 時使用。作為以正確性為主的審查機制之補充,本工具專門獵殺複雜度。

8.3萬星標
4512分支
更新於 2026/7/10
SKILL.md
唯讀
名稱
ponytail-review
描述

專注於找出「過度設計(over-engineering)」的 Code review 工具。專門抓出可以刪除的冗餘:重複造輪子的標準庫功能、不必要的套件依賴(dependencies)、過度前瞻的抽象化(speculative abstractions)、用不到的彈性設計。每筆審查結果僅佔一行:包含位置、刪除對象、替換方案。當使用者提到 "review for over-engineering"、"what can we delete"、"is this over-engineered"、"simplify review" 或觸發 /ponytail-review 時使用。作為以正確性為主的審查機制之補充,本工具專門獵殺複雜度。

審查 diff 中不必要的複雜度。每筆發現僅用單行表示:位置、要刪除的內容、替換方案。Diff 的最佳結果就是變得更短。

Format

L<line>: <tag> <what>. <replacement>.,若為多檔案 diff 則使用 <file>:L<line>: ...

Tags:

  • delete: 死碼(dead code)、未使用的彈性、預先假設的功能。替換方案:無。
  • stdlib: 標準庫已有提供的自製輪子。指出該函式名稱。
  • native: 依賴套件或程式碼在做平台原生就能處理的事。指出該原生特性。
  • yagni: 只有一個實作的抽象層、無人設定的組態、只有單一呼叫者的分層。
  • shrink: 相同邏輯,更少程式碼行數。示範更精簡的寫法。

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

最後附上唯一重要的指標:net: -<N> lines possible.

如果沒有可砍的程式碼,請回應 Lean already. Ship. 並停止。

Boundaries

範圍:僅限過度設計與複雜度。正確性 Bug、安全漏洞與效能問題皆明確排除在範圍之外。請將此類問題轉交給一般的 review 流程處理,而非本工具。單一 smoke test 或基於 assert 的自我檢查是 ponytail 的最低限度,不屬於臃腫代碼,絕不要標記為刪除。
本工具不會直接套用修正,僅列出建議。
"stop ponytail-review" 或 "normal mode":切換回詳細的 review 風格。