no-ai-sloplisted
Install: claude install-skill simple11337/do-ui
# no-ai-slop
AI-generated UI code reads like AI. The tell is not the logic, it is the noise around it: comments that narrate every line, placeholder stubs that were never filled, leftover `console.log`, JSDoc that restates the function name, banner comments made of equals signs, and `as any` sprinkled to make the types stop complaining.
This skill removes that noise. The goal is code that reads like a developer wrote it on purpose, not code that reads like it was dictated by a model.
It pairs with a flagger script: `scripts/no-ai-slop.mjs`. The script reports, it never edits. You decide what goes. The reason is simple and honest: a regex cannot reliably tell a useful comment from a redundant one, so automatic deletion would remove good comments too.
## The one rule for comments
Comments explain why, not what. The code already says what it does. A comment earns its place only when it adds something the code cannot: a reason, a constraint, a gotcha, a link to context.
Bad, restates the code:
```tsx
// Set the title
setTitle(value);
// Map over the items and render a row for each
{items.map((i) => <Row key={i.id} item={i} />)}
// This component renders the header
export function Header() { ... }
```
Good, explains intent or a non-obvious fact:
```tsx
// Title must update before the animation starts or the measure is stale.
setTitle(value);
// Server sends items unsorted. Sort by rank, not id.
{sorted.map((i) => <Row key={i.id} item={i} />)}
```
If you cannot write a w