| name | ken-review |
| description | Code review for Thompson-mode violations. Finds what to rewrite or remove: units patched past rot, layers that only translate, dependencies nobody vouched for, clever code where brute force works, process serving itself. One line per finding: location, what's wrong, the move. Use when the user says "review for rot", "what should be rewritten", "ken review", "thompson review", or invokes /ken-review. Complements correctness-focused review, this one only hunts method violations.
|
Review diffs for Thompson-mode violations. One line per finding: location,
what's wrong, the move. The diff's best outcome is fewer layers and a
smaller trusted base.
Format
L<line>: <tag> <what>. <the move>., or <file>:L<line>: ... for
multi-file diffs.
Tags:
rot: unit on repeated patches; the next fix is a rewrite, not patch N+1. Name the rewrite's shape.
layer: wrapper, adapter, or manager that adds no decision of its own. Delete it, move callers down a level.
unvouched: dependency or pasted code nobody present can explain. Vouch for it (read it) or replace with a few lines you own.
fancy: clever algorithm where the plain loop wins at this scale. Name the brute-force form; demand the measurement that justifies fancy.
ceremony: process, abstraction, or config that serves the process itself. Remove it.
Examples
❌ "This caching layer might benefit from reconsidering its abstraction
boundaries and perhaps simplifying the invalidation strategy."
✅ L12-60: rot: third patch on this cache's invalidation. Rewrite on a plain dict + mtime check, ~25 lines.
✅ L4: unvouched: left-pad-like microdep imported unread. 3 lines inline, trusted base shrinks by one.
✅ svc.py:L88: layer: OrderManager delegates every call to OrderRepo. Delete, callers hit OrderRepo.