ponytail-review

작성자: dietrichgebert

코드 리뷰가 과도한 엔지니어링에만 집중합니다. 삭제할 항목을 찾습니다: 재발명된 표준 라이브러리, 불필요한 의존성, 추측성 추상화, 죽은 유연성. 발견 항목당 한 줄: 위치, 삭제할 내용, 대체할 내용. 사용자가 "과도한 엔지니어링 리뷰", "무엇을 삭제할 수 있나요", "이건 과도하게 엔지니어링되었나요", "간소화 리뷰"라고 말하거나 /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줄보다 한 줄을 선택합니다. 강도 수준을 지원합니다: 라이트, 풀(기본값), 울트라. 사용자가 "ponytail", "be lazy", "lazy mode", "simplest solution", "minimal solution", "yagni", "do less" 등을 말할 때마다 사용합니다.
developmentcode-review
ponytail-audit
dietrichgebert
전체 저장소를 대상으로 과도한 엔지니어링을 감사합니다. ponytail-review와 유사하지만, diff 대신 전체 코드베이스를 스캔하여 삭제, 단순화 또는 표준 라이브러리/네이티브 대체가 가능한 항목을 순위별로 제시합니다. 사용자가 "이 코드베이스 감사", "과도한 엔지니어링 감사", "이 저장소에서 삭제할 항목", "블로트 찾기", "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