Grade a file's responsibility hygiene
Read-only. The user gives a file (default: the open one) and its purpose in one line. That purpose is the SRP ruler: anything that changes for a different reason is a finding. Do not edit; fixing is simplify-code's job.
- Read the file. Restate its purpose in one sentence; hold it as the ruler.
- Survey the neighbors:
lsthe folder, grep for the same idea. A finding lands harder as "extract to this existing seam" or "duplicates that file" than in the abstract. - Name each deviation with a Fowler smell +
file:line: Divergent Change (many reasons to change, the main hunt), Bloaters (Large Module, Long Method, Data Clumps), Dispensables (Dead Code, dead/stale comments, Duplication, Speculative Generality), Couplers (Feature Envy, Inappropriate Intimacy). Frame by cohesion (parts belong together?) + coupling (entangled with neighbors?). - Separate dead (remove) from misplaced (relocate). Accurate-but-wordy comments are not rot; say so if nothing is dead.
Output (prose): **Score: N/10** + the paradigm judged against · one line on what it gets right · findings grouped by smell with refs and the seam to extract to · an explicit dead-code/dead-docs line even if "none" · close with what would raise the score and to what.