← ClaudeAtlas

design-system-component-reuse-guardlisted

既存デザインシステムコンポーネント(Button / Input / Modal / Card 等)を再実装していないかを検出する。Figma→コード実装時に既存コンポーネントを無視した実装を防ぐ。
s977043/river-review · ★ 3 · Web & Frontend · score 75
Install: claude install-skill s977043/river-review
## Goal / 目的 - 差分が UI プリミティブ(Button / Input / Modal / Card / Badge / Tag / Avatar / Tabs / Dropdown / Tooltip 等)をゼロから再実装していないかを検出する。 - Figma → コード実装時に「既存のデザインシステムコンポーネントを無視してインラインスタイル付き素の HTML 要素を使う」パターンを防ぐ。 - 出力は再実装の疑いと既存コンポーネントのインポート提案を示す。 ## Non-goals / 扱わないこと - デザインシステムの実装品質・API 設計の評価。 - Tailwind / CSS Modules など特定のスタイル技術の是非の判断。 - フレームワーク選定や状態管理ライブラリの議論。 - デザインシステム自体の拡張提案(新コンポーネント追加の是非)。 ## False-positive guards / 抑制条件 - 差分ファイルのパスが `src/components/ui/`、`src/components/base/`、`components/ui/`、`components/base/` 配下である場合 — これはデザインシステム本体の定義であり指摘しない。 - ファイル名がプリミティブ名そのものの場合(例: `Button.tsx`, `Input.tsx`, `Modal.tsx`)— 定義ファイル自体は指摘しない。 - `children` を受け取り内部で別のコンポーネントへ委譲するラッパーコンポーネント — 指摘しない。 - テストファイル(`*.test.tsx`, `*.spec.tsx`)および Storybook ストーリー(`*.stories.tsx`)— 指摘しない。 - 差分が既存ファイルへの小修正(props 追加 / バグ修正 / スタイル微調整)であり、新たなプリミティブ再実装を含まない場合 — 指摘しない。 ## Rule / ルール ### 対象プリミティブと検出ヒューリスティック 差分が以下のパターンに該当し、かつ抑制条件に当てはまらない場合に指摘する: | プリミティブ | 検出シグナル | | ----------------- | -------------------------------------------------------------------------------------------------------------------------------- | | Button | `<button` + 3 つ以上の className トークン or `style=` + クリックハンドラ、かつ `Button` / `Btn` コンポーネントが存在しそうな文脈 | | Input / TextField | `<input` + カスタムスタイリング(className または `style=`)、かつ `Input` / `TextField` コンポーネントが存在しそうな文脈 | | Modal / Dialog | `positio