Skip to content
Agentmart
Submit a tool

room-antislop

Filters generic AI output out of Project Room UI, copy, and code comments.

Skill by Uuriko

IndexedApache-2.0★ 2
Write a review

Install

Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.

npx agentmarket install skill/uuriko-room-antislop

Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.

Get the weekly diff

The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.

We use your email only for this newsletter. Privacy

About

Filters generic AI output out of Project Room UI, copy, and code comments. Use when building or reviewing anything a person sees (pages, controls, empty states, message templates, emails, UI strings) or when writing code comments. Read DESIGN.md first for direction.

Use cases: design, writing

No reviews yet. Installed it? Reviews come from verified installers only. How reviews work

Permissions

What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.

Tools
No tools found
Secrets
None asked for
Install scripts
None found

Network hosts it talks to 1

  • codeload.github.com · found in install command

Files it touches

  • ~/.claude/skills/room-antislop

What's inside

Skill name
room-antislop
Description
Filters generic AI output out of Project Room UI, copy, and code comments. Use when building or reviewing anything a person sees (pages, controls, empty states, message templates, emails, UI strings) or when writing code comments. Read DESIGN.md first for direction.
License
Apache-2.0
Instructions
147 lines in SKILL.md · view on GitHub

Before installing

  • Instructions read files in your home folder (~/.ssh, ~/.aws…)

Agent Skills spec issues

  • files: referenced but missing: scripts/sync-design-tokens-css.mjs, scripts/build-ui-strings.mjs

Files (2)

  • LICENSE
  • SKILL.md

SKILL.md (first lines)

# Room anti-slop filter

This is an on-demand reference for UI and copy work. It's not a CI gate,
and nothing force-loads it. It's a filter, not a style guide. [DESIGN.md](../../../DESIGN.md) supplies
Room's direction. This file rejects the generic defaults that make work look
generated. When they disagree, DESIGN.md wins, and AGENTS.md plus the
`npm run lint` gates outrank both.

Adapted from [miqdadbadjuber/anti-slop](https://github.com/miqdadbadjuber/anti-slop)
v3.2.20, commit `388cbe3b6c37d5175b9f460015bb092ef9e34894` (MIT). Upstream
rule numbers (R-xx) are kept so findings can be traced. See
[LICENSE](LICENSE) and THIRD_PARTY.md.

## How to use it

- **While building:** apply the rules as you write. Before you call the work
  done, run the checklist at the end.
- **When reviewing:** list findings, each with its rule, priority,
  `file:line`, and a one-line reason. Hard rules are HIGH, purpose rules
  MEDIUM, and consistency rules LOW. Fix only what is in your claimed scope,
  and post the rest to the owner or the Board.
- **Before flagging,** check DESIGN.md. An intentional choice recorded there
  (the minimal login, dark default, the "Agent sign in" name) isn't a finding.
- **Look for clusters, not single tells.** One em dash, one eyebrow, or one
  short sentence isn't slop by itself.

## Hard rules (HIGH: honesty, function, access)

- **R-17, R-36, R-38. No invented facts.** No numbers, stats, testimonials,
  customer names, security claims, or "trusted by" without a real source.
  Empty beats fake. A placeholder says it is one.
- **Money agrees with itself.** A price, reward, or payout appears only where
  it can actually be paid, and every surface describes it the same way.
  (Room rule.)
- **R-26, C-2. Every control works or is gone.** No buttons that do nothing,
  no Create that silently fails, and no links to pages that don't exist
  (R-24). "Coming soon" only with a visible label.
- **R-27. Honest states.** Every data view has empty, loading, and error
  states, and each one says why and gives the next step. An empty state
  must be true for this viewer. A guest who can't see history must not be
  told the room is empty. First run, filtered-to-nothing, and permission
  denied are different screens.
- **No machine ids for people.** No `ai_`, `pri_`, member ids, seq numbers, or
  internal state names on a human surface. (Room rule.)
- **R-25. Contrast.** Text meets WCAG AA (4.5:1 normal, 3:1 large). Check
  both themes (R-34), since Room ships dark and light.
- **R-32. Keyboard.** Everything is reachable by Tab and works with Enter
  or Space. Dialogs close on Escape. Keep the visible focus outline.
- **R-03. Phone first-class.** No horizontal overflow, and text stays inside
  its container. Primary controls are at least 44px tall. Inline links and
  disclosures get at least a 24px target.
- **R-35. Verify before you say done.** Run it, click every control you
  touched in both themes and at phone width, and report what each one did.
  If you couldn't run it, say so. Scripted or synthetic proof is "tested",
  never "live-verified".

## Purpose rules (MEDIUM: allowed only with a reason you can name)

Gradients, glass, glow, big shadows, badges, eyebrow labels above headlines,
decorative status dots, arrows on every button, icon-in-a-circle feature
cards, background grids, endless pulses, and stacked entrance animations
(R-01, R-04, R-07 to R-14, R-19). Each one needs a reason: hierarchy,
state, or identity. "It looks modern" isn't a reason. An arrow means "leaves
this page", so `↗` on a same-site link is wrong. Color carries state, and
state always comes with words.

## App-surface tells (MEDIUM)

- A default dashboard shell (sidebar, four stat cards, chart, table) chosen
  before anyone named the screen's job. In Room the chat is the page.
- A filler activity feed or demo rows with made-up people.
- Generic columns (Name, Status, Date, Actions) instead of the field the
  person decides on.
- A bare "No data available", a spinner with no label, or a skeleton shaped
  like a layout the data never fills.

## Copy rules (LOW unless they mislead, then HIGH)

- Plain words, one per action ("Log in" everywhere).
- Cut empty AI vocabulary and inflation: "seamless", "unlock", "supercharge",
  "revolutionize", "effortless", "powerful", "cutting-edge", and "in today's
  fast-paced world".
- No chatbot closers ("Let me know if…"), fake-candid openers, or
  signposting ("Here's the thing").
- Watch for staccato drama, rule-of-three padding, and "not X, but Y"
  formulas. Flag them when they stack.
- No emoji bullets or emoji in headings. No all-caps for emphasis (the
  PROJECT ROOM wordmark is identity, not emphasis).
- No new em dashes in user-facing strings (Room's softer version of R-02).
  Upstream's core makes it a hard fail, but its own copywriting skill says
  an em dash alone isn't evidence (see upstream issue #32). We don't churn
  existing strings for it.
- Internal vocabulary (lane, claim, receipt, seq, ledger, harness) stays off
  public pages unless the page is for agents and says so.
- Strings live in `strings/en.json`, one full sentence per key with named
  placeholders. The i18n harness gates this.

## Code comments (from upstream antislop-code)

Delete comments that add nothing: banner separators, restating the line
below, step-by-step narration, "Handle errors here" placeholders, emoji, and
`// end of function` markers. Keep comments that carry a reason, an
invariant, an incident or QA reference, a `// SAFETY:` line, or a
workaround's cause. Room's comments often cite an incident or QA id. Those
are the valuable kind. Never change code to satisfy a comment rule.

## What we deliberately don't adopt from upstream

- **The mode question, the "antislop active" notice, and the
  `~/.config/antislop/settings.json` preference.** Room agents work
  autonomously under AGENTS.md. Don't stop work to ask a mode question.
- **The install wizard, auto-update, and plugin doors.** Nothing writes to
  AGENTS.md or fetches rules at runtime. A rule file you download at runtime
  is fetching your own next prompt. Update by PR, re-pinning the commit
  above after reading the upstream diff.
- **Audit files under `anti-slop/`.** Put findings in the PR, on the Board,
  or in muse-room.
- **R-23 "ask before creating any asset".** Use an honest placeholder, and
  raise owner calls through the normal channel.

From Uuriko/project-room, Apache-2.0.

More from Uuriko/project-room

Signals

Stars
2
Forks
12
Open issues
213
Last commit (this folder)
Oct 9, 2026 (19 days ago)
Last release
Sep 21, 2026 (1 month ago)

From GitHub (fetched Oct 24, 2026).

Details

License
Apache-2.0
First seen
Oct 24, 2026
Last checked
Oct 24, 2026

More from Uuriko

Cite this page

room-antislop skill. Agent Mart. https://agentmart.dev/skills/uuriko-room-antislop (last updated 2026-10-24)