Communitygithub.com

molveau/anti-slop

UIからAIが生成したような見た目を取り除き、独自の方向性を与えます。画面やランディングページ、ダッシュボードが「バイブスでコーディング」されたように見えたり、汎用的に見える場合(紫のグラデーション、グラデーションテキスト、絵文字ラベル、グロー、「眉毛ピル」、Interフォント、バズワードコピー、不均一なスペーシングなど)に使用します。ユーザーが「スロップ除去」「脱AI化」を依頼した時、または出荷前にUIの20の兆候をチェックしたい時に最適です。依存関係ゼロの検出スクリプトと、ラチェットテストのレシピが含まれています。

anti-slop とは?

このスキルは、AIが生成したような「スロップ」なUIを取り除き、洗練された独自のデザインに変えるための包括的なワークフローを提供します。具体的には、unslopの段階的な手法、taste-skillのアートディレクション手法、そして20の時代遅れな兆候(テル)を組み合わせて、UIの問題を体系的に特定・修正します。このスキルは、Purpleのグラデーション、Interフォントの濫用、絵文字ラベル、バズワードコピーなど、AIが生成したUIに共通する20の兆候を検出する依存関係ゼロのスクリプト(detect-tells.mjs)を含み、Node.js 20以降で動作します。また、プロジェクト内でテルの数を監視し、増加を防ぐためのラチェットテスト(段階的改善テスト)のレシピも提供しています。ワークフローは、方向性の設定(5行の定義)、9つのパス(スペーシング、カラー、アイコン、コピー、タイポグラフィ、レイアウト、詳細、ビジュアル、モーション)による修正、そして最終チェックで構成されます。このスキルは、Claude Code、Cursor、CodexなどのAIエージェントで動作するよう設計されており、出荷前の品質チェックや、既存の「バイブスコード」されたUIのリファクタリングに特に有効です。

対応✓Claude Code~Codex CLI✓Cursor
npx skills add https://github.com/molveau/skills/tree/main/skills/anti-slop

お気に入りのAIに質問する

このエージェントスキルを事前に読み込んだ状態で新しいチャットを開きます。

ドキュメント

アンチスロップ(Anti-slop)

バイブスコーディングされたUIは、予測可能な同じ失敗パターンを示します。このスキルは、unslopの段階的手法、taste-skillのアートディレクション手法、そして機械的に検出可能な20の時代遅れの兆候を検出するスクリプトを、一つのワークフローに統合します。

クレジットとライセンス

ここから始める

最初にreferences/playbook.mdを読んでください。特に「最初に行うこと」ブロックから始めてください。ベンダーファイルは、詳細や実例が必要な場合のみ開いてください。 このプレイブックは、統合されたドクトリン(方向性、パス、コピー、スペーシング、カラー、タイポグラフィ、アイコン、詳細、データ、アプリ画面、イメージ、モーション、チェック)であり、ソースタグと、ソース間で矛盾がある場合の判断が記載されています。下の「何をいつ読むか」の表が、深掘りインデックスです。

重複について:これはAIルックパスです。uiスキルの批評行はより軽い一般的なデザインレビューであり、design-grillは深いマルチレンズ監査です。テルを超えたデザイン品質についてはそれらを使用してください。

方向性ゲート(Direction gate)

新しいページや画面のコーディングを始める前、およびヘビースロップ実行のステップ3として、たとえリクエストが1行だったり「とにかくやってくれ」と言われた場合でも、これを必ず行ってください。このスキルの残りの部分はミスを取り除くものであり、画面にキャラクターを与えるものではありません。これをスキップすると、結果はどのモデルも作る平均的なページになります。詳細は正しいけれど、誰のものでもないページです。

  1. 5行の定義。 プロダクト:何をするものか、誰のためのものか。キャラクター:具体的な言葉2〜3つ(落ち着いた、正確で、少し温かみのある)。 クリーン、モダン、スタイリッシュ、ミニマル、プレミアムは絶対に使わないでください。世界観:プロダクトが属する場所や素材。ニュートラルカラーに色合いを与え、アクセントカラーを決定します。モーメント:豊かな色とディテールを施す1〜2か所。シグネチャー:このプロダクトだけが持つ、一貫して使われる小さなディテール。 モーメントは注意深く描かれ、単にきれいにするだけではありません。伝えるべきことを再描画したチャート(滑らかな線、ミラー比較、実スケール)、またはプロダクト自体のオブジェクトを重みと光でレンダリングしたものです。
  2. インベントリ(棚卸し)、そしてアイデア。 競合他社と共有していない8〜12のものをリストアップします(名前、通り、ブリーフ内の数字、素材、ツール、儀式、その業界で印刷される書類など)。そして、「この画面では、[一つのアイテム]が[デバイス]になる」と書きます。そのデバイスがモーメントです。
  3. 二次的なデフォルトを拒否する(ブランドがすでにそれらを所有している場合を除く)。これらは、明白なテルが禁止された後にモデルが手を伸ばすものです。
    • クリーム、ストーン、または温かみのあるオフホワイトのページに、バーントオレンジ、テラコッタ、セージ、フォレストグリーンのアクセント。セリフ体の見出しがある場合もない場合も(「ペーパー&インク」ルックは新しいデフォルトであり、方向性ではありません)。
    • Fraunces、Instrument Serif、Playfair、Georgiaを見出しフォントとして反射的に使う。system-uiだけをフォントとして使う。
    • 白地にInterまたはGeist、インジゴまたはブルーのアクセント一つ。
    • ヒーロー、3つの特徴、お客様の声、コールトゥアクション、この順番で、それに対する根拠なし。アプリ画面の場合、棒グラフの上に4つの等しい統計カード。
    • 中央揃えのアイブロウ(小さなラベル)、見出し、2つのボタンだけで構成される最初の画面全体。
  4. 交換テスト。 名前と業界を競合他社のものに置き換えます。画面がまだ合うなら、主張、モーメント、シグネチャーを変更し、再度テストします。
  5. 表示して待つ。 5行の定義とアイデアを表示し、オーナーを待ちます。もし尋ねられない場合(ユーザーが「とにかく作れ」と言った場合、または人がいない状態で実行する場合)、メインファイルの先頭にコメントとしてそれらを書き、その通りに構築します。

深掘り:anti-slopプレイブック§2(方向性)と§12(アプリ画面)。実際のリファレンスについてはdesign-inspiration-indexスキル。

コアアイデア

スロップは色とエフェクトをクローム(背景、ボタン、境界線、ラベル)全体にまき散らします。クラフトはクロームを静かに保ち、豊かさを人々が覚えている1〜2のコンテンツのモーメントに集中させます。スロップを取り除くことは仕事の半分です。どのプロダクトにも属し得るクリーンな画面は、次のテンプレートです。すべての実行は、このプロダクトだけが持つ画面で終わります。

作業の順序

  1. ゼロからのページ、または大規模なリデザイン? taste-skillの実行(references/vendor/taste/taste-skill.md)に従い、プレイブックのオーバーライドを適用します。アプリ画面:プレイブック§12。
  2. 画面を見る(可能であればレンダリングして)。コードだけでなく。
  3. 監査する。兆候リスト(references/vendor/unslop/unslop/references/signs.md)と20のテル(references/tells.md)に対して。兆候ごとに1行で、それがどこにあるかを記録。
  4. 作業規模を見積もる(ヘビー、ライト、スロップなし)、方向性を書く。そしてオーナーを待つ(プレイブック§1と§2)。
  5. 9つのパスで修正する。それぞれ画面全体に適用:スペーシング、カラー、アイコン、コピー、タイポグラフィ、レイアウト、詳細、ビジュアル、モーション(プレイブック§3〜§14)。
  6. チェックする。プレイブックのチェックリストを使って、検出器を実行し、監査結果と比較する(プレイブック§15)。
  7. 報告する。方向性、各パスの数行、そして削除した、または検証できなかったすべての主張を報告する。

20のテル(Tell)

置き換えを含む完全な表:references/tells.md。スクリプトでキャッチするものの概要:

#テルスクリプト
1バイオレット/フクシア/インジゴのグラデーションはい
2グラデーションテキストはい
3コピー内の絵文字はい
4どこでもInterまたはSpace Groteskいいえ
5色付きサイドストライプの境界線はい
6装飾的なガラスモーフィズムはい
7低コントラストのダークモードいいえ
83つのアイコンボックスが一列に並んでいるいいえ
9見出しの上のアイブロウピルいいえ
10デフォルトでLucideはい
11そのままのshadcn/uiいいえ
12スクロールでのフェードインはい
13カーソル追従グローいいえ
14ボタンのホバーフェードはい
15不均一なスペーシングいいえ
16コピー内のemダッシュはい
17バズワードコピーはい
18セリフ体イタリックのアクセント単語いいえ
19Space Groteskとよく使われるディスプレイセリフ体のペア(ペアはreferences/tells.mdにあります)はい
20グラデーション上のグレインいいえ

検出器(Detector)

node <スキルフォルダ>/scripts/detect-tells.mjs [--json] [--include-tests] <パス...>

依存関係はゼロ、Node 20以降が必要です。このスキルフォルダの外からのインポートはありません。したがって、スキルが単独でインストールされた場合でも動作します。Exit 0はクリーン、1は発見あり、2は使用方法エラーです。node_modules .git .next dist build .open-next coverageとテストファイルはスキップします。path:line #tell label matchの形式で報告します。制限はreferences/tells.mdの最後にリストされています。ヒットは「ここを見よ」として扱ってください。

プロジェクトでのラチェットテスト(Ratchet test)

ラチェットは今日のカウントを固定し、それが増加した場合に失敗させるため、テルは減少する一方になります。node:testを使用したスケッチ(パスとベースラインを適応させてください):

import { test } from 'node:test';
import assert from 'node:assert/strict';
import { readFileSync, globSync } from 'node:fs'; // globSyncはNode 22が必要です。20の場合は自分でフォルダをウォークしてください。
import { detectTells } from './.agents/skills/anti-slop/scripts/detect-tells.mjs';

const BASELINE = { 10: 8, 5: 1 }; // テル番号 -> 今日許可される発見数
test('新しいバイブスコードのテルがないこと', () => {
  const files = globSync('{app,components}/**/*.{ts,tsx,css}').map((path) => ({ path, text: readFileSync(path, 'utf8') }));
  const now = {};
  for (const f of detectTells(files)) now[f.tell] = (now[f.tell] ?? 0) + 1;
  for (const [tell, n] of Object.entries(now)) assert.ok(n <= (BASELINE[tell] ?? 0), `tell ${tell}: ${n} findings, baseline ${BASELINE[tell] ?? 0}`);
});

テルを修正するたびにベースラインを下げてください。決して上げないでください。

ストーリービデオ(Story video)

約10秒の正方形クリップで、画面が赤線とともに段階的にスロップ解除される様子を示します。依頼された場合のみ作成してください。unslopの「ストーリービデオ」セクション(references/vendor/unslop/unslop.md:1つのstory.html、先頭に.s1から.s5のCSS、data-gap、data-radius、data-slop、スワップ)に正確に従ってストーリーファイルを構築し、このスキルの適応版レンダラーでレンダリングします:

node <スキルフォルダ>/scripts/story.mjs unslop-story/story.html unslop-story.mp4   # --wideで16:9、--playで視聴

unslopのレンダラーに追加されたもの:

  • アクセシビリティステップ。 名前がAccessibilityを含むステップは、ライブ測定値を表示します。data-contrastを、コントラストが変化する2〜4つのテキスト要素に設定します。それぞれがWCAG比率を表示します。4.5:1(大きなテキストの場合は3:1)未満は赤、合格すると白でAA、色が読み取れない場合(lab()やcolor(display-p3 ...)など)は灰色で?を表示します。それらの要素にはsRGB、16進数、またはoklch()カラーを使用してください。data-targetを1〜2つのコントロールに設定します。それぞれがサイズを表示します。24 x 24 px未満は赤です。ビフォーの状態で失敗する要素を選んでください。アフターの状態でもまだ失敗する要素をマークしないでください。
  • キャプション、<meta name="story-caption" content="...">、左下に配置します。実行について真実であることだけを述べてください。例:モデル名、画面が手で編集されていないこと。
  • クレジット molveau/skills · unslop method by @heydamir がすべてのフレームに描画されます。これはunslopのCC BY 4.0ライセンスが要求しているためです。削除しないでください。

ストーリーは実際のファイルのプレゼンテーションです。ステップ0は元のビフォーの状態であり、最後のステップは出荷するクリーンなファイルと同一です。出荷する画面を超えてストーリーを磨かないでください。

何をいつ読むか

ニーズ読むもの
統合されたルール、値、矛盾の判断references/playbook.md
置き換えと検出器の制限を含む20のテルreferences/tells.md
unslopの完全な手法、方向性、9つのパス、チェックリスト、ストーリービデオreferences/vendor/unslop/unslop.md
正確な値(スペーシング、タイプスケール、ランプ、モーションカーブ)references/vendor/unslop/unslop/references/tokens.md(そのモーション値は上書きされます:uiプレイブック§10とmotion§5が優先、プレイブック矛盾19)
兆候の監査リストreferences/vendor/unslop/unslop/references/signs.md
ヒーロービジュアル、画像プロンプト、有効なスタイルreferences/vendor/unslop/unslop/references/visuals.md
グリフ、ハーフトーン、ディザ、デュオトーンのコードreferences/vendor/unslop/unslop/references/effects.md
完成したリファレンス画面(画像)references/vendor/unslop/unslop/references/refs.md
コピーで作業するためのライブURLのスナップショットreferences/vendor/unslop/unslop/scripts/snapshot.mjs
ゼロからのページまたは大規模なリデザイン:インベントリ、導出された方向性、アイデア、ハウスルール、ゲートreferences/vendor/taste/taste-skill.md
ダッシュボード、管理画面、設定画面の詳細references/vendor/taste/taste-skill/references/app-screens.md
コピーデッキ、2行の算術、発明せずに証明するreferences/vendor/taste/taste-skill/references/copy.md
タイプスケール、ディスプレイ設定、フォントの読み込みreferences/vendor/taste/taste-skill/references/type.md
パレットの役割、フィールド、ダークページ、コントラストreferences/vendor/taste/taste-skill/references/colour.md
マージン、空白、フレーム、セクション、スマートフォンreferences/vendor/taste/taste-skill/references/layout.md
画像とビデオの検索、クレジット、配置、処理references/vendor/taste/taste-skill/references/imagery.md
モーションレシピ(オプトイン:motionプレイブック§9)とスクロールシーンreferences/vendor/taste/taste-skill/references/motion.md、references/vendor/taste/taste-skill/references/scenes.md
ルーブリックで結果を判断するreferences/vendor/taste/taste-skill/references/critique.md
ウェーブごとの時代遅れのテルレジストリreferences/vendor/taste/taste-skill/references/tells.md
tasteの数値の背後にある研究references/vendor/taste/taste-skill/references/research.md

ベンダーファイルはアップストリームのレイアウトを維持しているため、それらの中のいくつかの相対リンクはここでは解決できない場合があります。taste-skillのスクリプトはlibrary/フォルダを読み取ります(全体を読まないでください。draw.mjsを実行してください)。一部のスクリプトはNode 22、ブラウザ、Playwright、ffmpeg、またはネットワークアクセスを必要とします。実行するビジュアルチェックはuiプレイブック、矛盾14で決定されます(このプレイブックの矛盾14はそこを指しています)。

Individual skills in this repo

This repo contains 3 individual skills — each has its own dedicated page.

molveau/design-inspiration-index

Routing index for design inspiration. Use when you need visual references or ideas for a UI (a hero, landing page, SaaS page, navbar, CTA, motion or micro-interaction, brand or rebrand, component, icon) and want to know which curated gallery to pull from. Maps a need to the best source among galleries, component registries and optional MCP servers. Use it before hunting blindly for inspiration.

molveau/ui

Builds, restyles, polishes and reviews user interfaces with taste. Use when building, restyling or improving a UI, page, screen or component, including a hero, navbar, header, cards, a form or a section ("make it better", "make it pop", "add polish"); working on layout, spacing, typography, color, dark mode or design tokens; polishing hover and focus states or details when something "feels off"; responsive or mobile layout; critiquing, auditing or redesigning an interface; doing a design review or UI roast; simplifying or making a design bolder; or writing prompts that get production-grade UI out of an AI tool.

molveau/vitrine

Playbook for a vitrine, a business showcase / brochure site for a local business. Use at the start of a small business website, brochure site, landing page for a local business, service-business site, or when adding pricing, booking, city pages, local SEO, bilingual FR/EN or a Québec privacy setup to one. Says what such a site needs, in which order to apply the ui, ux, anti-slop, motion, french-typography and loi-25-website skills, and gives a done checklist.

関連スキル