hacksurvivor/claude-mods/tree/main/mods/grudge

A Claude Code mod that turns every rejected UI look into a project rule, storing the screenshot with it, and warns when Claude edits UI files without an approved preview.
hacksurvivor/claude-mods/tree/main/mods/grudge

Grudge lets you reject a UI look with a screenshot or a comment, then asks Claude to turn that into a single project rule kept alongside the screenshot. Rules are shown under Claude's reply with an Undo option. Before any UI edit, Claude is handed the project's rules plus two habits: find real references before inventing UI, and show a preview before a new look. It also flags UI changes made without a preview approved in the session. Approvals such as "looks right" or picking a preview variant become rules too. Commands: /grudge lists rules, /grudge forget N drops one, /grudge add <rule> writes one, /grudge off and /grudge on pause and resume. Requires Claude Code 2.1.286+ and Python 3 on PATH to copy screenshots from the session transcript. Install via /plugin marketplace add hacksurvivor/claude-mods, then /plugin install grudge@hacksurvivor and /reload-plugins. Reads your typed messages, the paths of files Claude edits, and copies screenshot images from ~/.claude/projects into ~/.claude/grudge/<project>/; sends nothing on its own. Licensed Apache-2.0.
Check the author's README for the marketplace and plugin name first. Commands may change as the repository evolves.
claude plugin marketplace add hacksurvivor/claude-mods claude plugin install grudge
A Claude Code mod that holds a grudge against every look you reject, so Claude never brings it back.
You reply "this is slop" with a screenshot, or "again the old top bar". Grudge asks Claude to turn that into one rule for the project, written after it has looked at your screenshot, and keeps the screenshot with it. A line under Claude's reply shows what was noted, with Undo:
Noted for shop-app: keep the R4 top bar in every theme · Undo
The next time Claude edits a UI file in that project, it is handed every rule first, along with two habits: look for real references before inventing UI, and show a preview before a new look. When Claude changes UI files without a preview you approved in the session, the reply says so:
Changed SettingsView.swift without a preview you approved
Approvals count too. "Looks right" or picking variant "A" after a preview keeps that look as a rule, so later changes don't quietly undo it.

/grudge lists the project's rules, numbered./grudge forget 2 drops one; /grudge add <rule> writes one yourself./grudge off pauses it for the session, /grudge on resumes it.PATH, to copy a screenshot out of the session's transcript.In Claude Code:
/plugin marketplace add hacksurvivor/claude-mods
/plugin install grudge@hacksurvivor
/reload-plugins
bin/shot.py with Python when you reject a look with a screenshot. It reads this session's transcript in ~/.claude/projects and copies that message's images into ~/.claude/grudge/<project>/. Nothing else.~/.claude/grudge/.See PRIVACY.md.
Apache-2.0