prevent

A command that prints design rules intended to reduce common signs of generic AI-generated interfaces.

In plain words
What is it for?
Creating a copy-pasteable ruleset for a project’s CLAUDE.md or memory file, tailored where possible to the detected web stack and audience.
Why use it?
It gives developers a reusable checklist they can adjust and place in project instructions instead of repeatedly correcting the same visual problems.

Command

Part of the damu plugin — 1 skill, 2 commands shipped together

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add commands/alphabravo-oss/guild/prevent
Clone the repo
git clone --depth 1 https://github.com/alphabravo-oss/guild

Or install damu, the plugin that ships this one along with the rest of its 1 skill, 2 commands.

Per session 36 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 1,316 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00036 $0.01316
Opus 5 $0.00018 $0.00658
Sonnet 5 $0.00007 $0.00263
Haiku 4.5 $0.00004 $0.00132

Measured 2d ago against content hash ef13de9bb3db, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

prevent scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

plugins/damu/commands/prevent.md · 105 lines

How it starts

The opening of the file, as written. The whole thing — 105 lines — stays where its author put it; the contents beside it link to each section on GitHub.

damu — prevent (emit the anti-slop ruleset)

The user wants a ruleset they can adjust and paste into their project CLAUDE.md, global instructions, or a memory file — so Claude stops generating AI-slop UI in the first place. You do not write any file. You print one clean, copy-pasteable block, lightly tailored to the stack you detect.

The catalog of tells and their fixes lives in ${CLAUDE_PLUGIN_ROOT}/skills/slop-catalog/SKILL.md. Read it — the ruleset is its Fix lines turned into imperatives. Do not invent rules beyond it.

Extra context

$ARGUMENTS

If the user gave audience/brand/vibe context (e.g. "kids' app," "fintech dashboard," "neon music brand"), weave it into the caveats so the rules don't forbid something the product legitimately wants (a kids' app should be rounded and emoji-rich; a dashboard is card-based; a music brand may earn neon). If empty, keep the caveats generic.

PHASE 0 — detect the stack (cheap, best-effort)

Glance at the project to tailor the ruleset. Don't over-invest — a few greps:

  • package.json for tailwindcss, shadcn/@radix-ui, a component lib, the CSS approach.
  • Presence of components.json (shadcn), tailwind.config.*, a global CSS with --background/ --foreground tokens.
  • Any obvious framework (Next, Vite, etc.).

This only decides which stack-specific rules to foreground (e.g. surface the shadcn-theming and Tailwind-default rules prominently if those are present). If you can't tell, print the full generic set.

PHASE 1 — print the ruleset

Print exactly this structure as a fenced ```markdown block so the user can copy it whole. Fill the rules from the catalog's Fix lines. Keep it tight — imperatives, not essays. Foreground the stack-specific section only if you detected that stack; otherwise omit it.

## Design rules — no AI slop

**Governing rule:** every item below is *sometimes* the right call. The slop is the default applied
without a reason to everything. Have a reason, then it's allowed. The goal is evidence a human made a
choice here — one deliberate accent, type with a job, whitespace that breathes — not "more design."

**Type**
- One or two typefaces, max. A type system: size/weight/spacing for hierarchy, not more fonts.
- Don't reach for the high-contrast AI-startup display serif by default; pick type for *this* product.

**Color**
- Don't default to purple/indigo accents on near-black or deep-blue. If you land on purple, earn it.
- No forced monochrome — restraint still needs one deliberate accent that carries meaning.
- Choose a palette with a reason (brand, content, mood), not the median tech wash.

**Surfaces, shape, depth**
- Not everything is a card. Vary containers; let content breathe with no box; use whitespace and
  alignment over universal `p-6`/24px cards.
- A deliberate, mostly-modest radius scale. Don't round everything heavily.
- Subtle, purposeful shadows only where hierarchy needs them. No giant blur under everything.

**Gradients & borders**
- Prefer solid color. A gradient must earn its place: subtle, same-family. No muddy purple→blue default.
- No neon gradients. No neon gradient borders — the glowing card ring is the AI signature; use a plain
  border or none.

**Motion**
- No parallax unless it tells a story the content needs.
- One restrained hover convention (~120–160ms, subtle). No broad scale/tilt/glow on every element.

**Icons & emoji**
- Icons must depict the actual thing and earn their place — not garnish on every heading and bullet.
- Never an icon/emoji that doesn't match its label. If none fits, use none.
- Don't recycle the same rocket/bolt/shield across every feature.

**Copy**
- Say the specific true thing — concrete nouns, real numbers, the actual benefit. Cut any sentence
  that survives being deleted. No "seamless, cutting-edge, empower" filler.

<!-- stack-specific — include only when detected -->
**Tailwind / shadcn**
- Default Tailwind is the tell. Tune the tokens — bespoke spacing, radius, type, and color scale.
- shadcn is a base, not a finish. Theme it: change the radius and color tokens, type, and density so
  components are yours, not the default scaffold.

Read the full file on GitHub · 105 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 105 lines · 36 tokens per session scan A ef13de9bb3db

Subscribe to this mod's changes

prevent is a command published in the GitHub repository alphabravo-oss/guild (2 stars, last pushed 3d ago), licensed MIT. It adds 36 tokens to every session and 1,316 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-31.