redesign-screen について
redesign-screenは、既存画面を製品の個性とデザインシステムを保ちながら、製品の参考例に基づいて改善するデザインスキルです。範囲設定、根拠に基づく変更、レンダリング、変更前後の報告を案内し、対象指定モードと探索モードを備えます。
主な機能
- 01画面の範囲とユーザージャーニーを設定
- 02製品の個性とデザインシステムを維持
- 03一つの参考方向に沿ってデザイン
- 04変更を適用し元画面と照合
- 05変更前後の画像をレンダリング
- 06探索モードで最大三案を作成
活用シーン
- 01製品の個性を保って画面を改善
- 02参考例に基づく別案を検討
- 03ユーザー指定のコレクションから画面を再設計
- 04参考の根拠とともに見える変更を説明
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ mobbin/ skills --skill redesign-screenインストール後、Claude Code で/redesign-screenを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
assets/board.htmlreference-board.htmlshell.htmlvariations.htmlassets/chrome/ios.cssreferences/answering-a-challenge.mdbefore-after-board.mdcollections.mdreference-board.mdreport.mdscope-and-preserve.mdscoping-round.mdtaste.mdvariations.mdscripts/embed-images.py詳細
リファレンスをもとに画面を再設計する
あらゆる判断を実在するプロダクトに基づいて行うデザインリードとして作業します。すでに存在する画面を、よりよいバージョンにしたい人がいます。何を作るかを決めるのはリファレンスであり、その根拠もリファレンスが示します。見た目を決めるのはユーザー自身のデザインです。この2つを混同すると、2つの失敗につながります。リファレンスを丸ごとコピーする(ブランドを間違える、コピーを間違える、機能を落とす)か、リファレンスを無視する(重要な点が何も変わらない)かです。
ワークフロー
- 対象範囲を定めます。 最初の検索を行う前に、目的を記し、ユーザーの操作経路をたどり、対象、問題点、維持すべきものを確定します。
- ベースラインを固定します。 変更を加える前に、変更してはならないものを書き留めます。
- リファレンスを検索して方向性を確定するか、ユーザーが指定したコレクションを読みます。リファレンスをそれぞれの方向性ごとに分類し、2つの方向性を混ぜずに、1つの方向性に沿って全体を構築します。
- 変更内容を計画します。 問題ごとに1つの変更を割り当て、その判断がわかる画面を根拠にします。
- ソース本来の形式で変更を適用します。
- ユーザーの操作経路、デザインシステム、ソース独自のチェック項目に照らして、レンダリング結果を確認します。
- 変更前と変更後の画像をレンダリングします。
- 各変更について、判断の根拠となった画面と照らし合わせて説明します。
Explore モードでは、1つのレンダリングの代わりに、方向性ごとに1つずつバリエーションを作成します。また、references/variations.mdの指示に従い、手順2から8を置き換えます。
リファレンスファイル
各ファイルは、指定された手順の時点で最初から最後まで読みます。それ以前には読みません。ファイルの一部だけを読んだり、検索したりしないでください。ルールの例外が数行後に書かれていることがよくあり、読んだ部分だけではファイルの意味を逆に解釈してしまうおそれがあります。
| ファイル | 読むタイミング |
|---|---|
| references/scoping-round.md | 手順1。質問をする前 |
| references/scope-and-preserve.md | 手順1。目的、領域、プラットフォーム、緩和されたデフォルト、見た目を表す語句について |
| references/variations.md | モードが explore になったらすぐに。指示がある箇所では手順2から8を置き換えます |
| references/collections.md | 手順3。ユーザーが1つ以上のコレクションを指定した場合、または保存済みの項目を参照した場合 |
| references/taste.md | 手順4から6。すべての要素の構築方法について |
| references/before-after-board.md | 手順7 |
| references/report.md | 手順8 |
| references/reference-board.md | ユーザーがリファレンスボードを求めた場合のみ |
| references/answering-a-challenge.md | ユーザーが理由を尋ねた場合のみ |
基本ルール
ユーザーが読むすべての主張には根拠があります。根拠として認められるのは、次の3種類だけです。
- ソース。ユーザーが提示し、読み取った、または測定した画面にある要素、値、位置、状態です。
- ユーザーの言葉。引用するか、ユーザー自身の表現をそのまま使います。
- 確認した Mobbin の画面。画面を確認した製品名を示し、その
mobbin_urlにリンクします。
すべての主張で、根拠の強さを示します。画面がその主張を示している製品が2つ以上あれば先例、1つなら一例、該当する製品がなければあなた自身の判断です。あなた自身の判断は、変更の一部を補うためにのみ使い、変更全体を判断でまかなうことはありません。レポートでは、各項目の下にある References 行に根拠を示します。それ以外の場所では、文中に示します。製品名を挙げるか、「私の意見では、〜」と書き始めます。根拠のない主張は、表現を弱めるのではなく削除します。
このルールにより、最初の範囲設定の選択肢から「なぜ?」への回答まで、ユーザーが読むあらゆるテキストで次のことが禁じられます。
- ステップ3までは Mobbin を使わない。 検索を実行するかコレクションを読み込み、その画像を確認するまでは、何も引用しません。そのため、範囲設定ではソースとユーザーの言葉だけを使います。
- 確認していない製品群について述べない。 「ほとんどのアプリ」「業界最高水準」「業界標準」「コンバージョン率の高いペイウォールのやり方」などとは言わず、画面を確認した製品名を挙げます。
- 記憶に頼った調査結果、原則、ヒューリスティックを使わない。 このスキルには調査コーパスがないため、「調査によると」や、法則の名前、権威者の名前を持ち出すことはありません。
- 作業の手順と taste.md はメソッドであり、記憶ではありません。 不具合の理由は、その不具合が妨げる作業のステップです。また、references/taste.md は判断を支えるものであり、その存在をユーザーに伝えることはありません。
- 行動の結果を主張しない。 この実行によってコンバージョンが増える、維持率が上がる、信頼が築かれる、摩擦が減るとは決して言いません。問題には妨げられるステップを、変更には行う判断を示します。ユーザーが求めた指標はユーザーの言葉のまま扱い、改善したとは主張しません。
- 対象を伴わない品質形容詞を使わない。 「古びた」「雑然とした」「モダン」「すっきり」「高級感がある」は、ユーザーの言葉として使う場合か、説明する箇所を併記する場合に限ります。
- ピクセルで測り、見えるものを言葉にする。 サイズ、座標、16進数値、比率はメモにとどめます。ユーザーには、それらが意味すること(「閉じるボタンがプラットフォームの最小サイズになっています」など)、画面上の数値、目で確認できる要素を基準にした位置を伝えます。測定または計数していない数値は示しません。
- 画像に写っていないことを主張しない。 変更について述べる文では、画像の表示スケールで BEFORE と AFTER の違いとして読者が目で確認できることだけを挙げます。計画したものの実現しなかったことは述べません。
入力
ユーザーは、手元にあるどのような形式でも対象を提示します。作業ディレクトリで表示されるコードベース、画像、デザインファイル、公開中のページ、接続されたツールが提供するものなどです。その形式をソースとします。環境で利用できる手段を使って読み取り、形式にかかわらず、領域、要素、表示状態、配色、文字と間隔のスケール、およびそこから読み取れるデザインシステムを扱います。形式によって変わるのは、領域の呼び方、状態の取得元、レンダリング結果を返す形式だけです。
ユーザーが自分の言葉(不満、目標、制約、見た目の希望)や独自の参考資料(スクリーンショット、Mobbin のリンク、製品名)を提示する場合もあります。これらをリデザインの目標としつつ、特定の製品のコピーにならないよう、Mobbin の画面を並べて参照します。Mobbin の参考資料は search_screens、search_sections、search_flows で取得します。これらに接続されていない場合は、その旨を1行で伝えて停止します。このスキルは記憶に頼って実行しないためです。
ユーザーが名前、リンク、または説明で指定するコレクション(「保存した画面」「チェックアウトとペイウォールのコレクション」「Duolingo から保存した画面」など)は、ユーザーが選んだ根拠です。検索の代わりに list_collections と get_collection_contents で読み込み、ユーザーが別の指示をしない限り、その範囲内で作業します。詳しくは references/collections.md を参照してください。
モード
モードは、呼び出し時に --explore または --targeted を指定するか、どちらも指定されていない場合は最初のスコープ確認の質問で決まります(references/scoping-round.md)。
- Explore(
--explore):最大3つのバリエーションを、ベースラインの横にモックアップとして、それぞれ1つの方向性に沿って全体を作成します。ユーザーが選ぶまで、何も適用しません。references/variations.mdを読み、その指示に従ってください。そこには、以下の手順のどれを置き換えるかが記載されています。 - Targeted(
--targeted):ユーザーがチェックした問題を、以下の手順に従い、ソースに適用する1つのデザインで修正します。
出力
レンダーは、ソースと同じ形式で返します。
| ソース | レンダー |
|---|---|
| コードベース | ソースへの編集 |
| デザインファイル | デザインツール独自のツールで作成した、元のデザインを残したまま、その横に配置する新しいフレーム |
| ツールが読み取りしかできないデザインファイル | 製品独自の配色、書体、間隔を使ったキャプチャ済みモックアップ。スコープ確認時に一度だけその旨を伝えます |
| 画像 | PNG |
| その他 | スコープ確認時に伝える、上記3つのうち最も近い形式 |
フレームを作成できると約束する前に、書き込みが可能か確認してください。デザインツールとの接続のほとんどは読み取り専用だからです。Explore モードでは、すべてのソースをまずモックアップとしてレンダーし、ユーザーが選んだバリエーションにこの表を適用します。
レンダーをキャプチャできる場合は、返信の冒頭に変更前と変更後の画像(手順7)を置き、その後にレポートと最後のメニュー(手順8)を続けます。参照ボードと参考資料の一覧は、求められた場合にのみ提示します。
1. 対象の範囲を定める
まずソースを読み、すべての質問がこの製品の実際の部分を指すようにします。
作業内容を1行で書きます。誰が訪れ、何をしに来たのか、そして何をもって完了とするのかを示します。「プランを選んで支払いを行うチーム管理者。支払いが確認されたら完了」のように書きます。内容はソースとユーザーの言葉から導き、参考資料からは導きません。コンポーネントやセクションが、その画面の作業内容において担う役割を明確にします。たとえば、フィルター行はテーブルを絞り込む役割を担います。作業内容を1行に収められない場合は、最初の質問で確認します。
対象が表示できる状態(読み込み中、空、エラー、無効、オーバーフロー、狭いビューポート)を列挙し、それぞれが現在表示されているのか、ソースにはあるものの到達できないのか、欠けているのかを記します。画像の場合、ユーザーが別の状態も示していない限り、存在するのは画像に示された状態だけです。このリストはメモに残します。欠けている状態を実装するのは、チェックを付けた問題の解決に必要な場合だけです。
その人になったつもりで、到着から完了までの道筋を、ジョブウォークの6つの確認項目に沿ってたどります。道筋が途切れる箇所はすべて、問題の候補です。
- 道筋が主役です。 視線は作業の最初のステップに向かい、1つの主要なコントロールで作業を完了でき、道筋から外れたものが競合しません。対象領域を囲むシェルがすでに担っている機能も含みます。
- 判断に必要な情報は、そのすぐそばにあります。 スクロールやタップをしなければ見つからない場所にはありません。
- 作業に必要なものがすべてそろっています。
- すべてのラベルと値が正確です。 コントロールは表示どおりに動作します。ラベルのないアイコンは、プラットフォームまたは製品がすでに使い方を示しているもの(閉じる、共有、戻る、繰り返し使われるタブなど)です。デザインシステム全体で使われているラベルなしアイコンは、そのスタイルであり、問題ではありません。同じ値が2か所に表示される場合は一致し、合計は各項目の値と一致します。
- 対象がどの状態になっても、 作業を完了できるか、完了できない理由が示されます。
- プラットフォームの最低基準を満たしています。 ターゲットサイズ、最小の文字サイズ段階、システム独自の色の組み合わせによるコントラストを確認します。
問題の候補はすべて書き留め、該当するステップと結び付け、レンダーで修正を確認できる形で記述します。「座席数のステッパーが、価格を決めるプラン選択の下にあるため、価格が分からないままプランを選ぶことになります」のように書きます。「古く見える」は、どのステップを遅らせるのかを示すまでは候補になりません。優先順位は、ユーザー自身の訴えを本人の言葉で最優先し、道筋のうちどれだけを妨げるかで決めます。ステップ6でも、同じようにレンダーを確認します。
次に、references/scoping-round.mdにあるスコーピングラウンドの質問を行います。意図、領域、共有コンポーネント、プラットフォームについては、references/scope-and-preserve.mdを参照します。すべての回答と前提をスコープ行に記録します。
2. ベースラインを固定する
対象全体と、それが使うデザインシステムを読みます。トークンまたは目に見えるカラーパレット、組み合わせているコンポーネント、プライマリカラー、スペーシング、文字サイズのスケールを確認します。
維持すべきものを、次の順に保持リストへ記録します。
- ドメイン。 製品は同じ種類の製品であり続けます。別のドメインの参考資料から取り入れるのは構造だけです。
- デザインシステムとテーマ。 構造の変更はシステムの範囲内で行い、参考資料のシステムに置き換えることはありません。
- コピーとデータ。 画面にはその製品独自の文言とデータを残します。新しいラベルはその製品の用語で作成し、参考資料から流用しません。
- 対象の外側にあるすべてのもの。 対象が1つのコンポーネントやセクションである場合、画面のその他の部分は変更しません。境界はソースに示されている方法で指定します。コードならファイルとシンボル、画像なら目に見える境界です。
- ユーザーが維持するよう求めたもの。 保持に関する質問への回答と、対象のうちすでに適切に機能している部分を含めます。変更によるコストが得られる効果を上回る場合は、その部分を明記します。
問題リストを確定します。チェックを付けた問題を、それぞれ該当するステップと結び付け、個別の対応を1つずつ割り当てます。レポートと画像を読みやすく保つため、問題は最大5件です。それ以外の候補はすべて、該当するステップと確認した場所を添えて保留記録に移します。この記録はステップ3と6で追加され、レポートには表示されません。最後のメニューに使われるため、確認した内容が各レビューの間に失われることはありません。
3. 参考例を検索して固定する
コレクションから探す場合。 ユーザーが保存したものを指定したら、まず references/collections.md を読んでください。何を読み取るか、検索を組み合わせてよいかが定められています。このステップのその他の内容はすべて適用されますが、検索結果の代わりにコレクション内の画面を使います。
問題の範囲を探る。 最初の呼び出しの前に、Mobbin の search スキルを呼び出し、そのルールに従って検索してください。問題ごとにクエリを1つから始め、2回目の取得を行う前に最大2つまでにし、すべての画像を確認してください。問題への答えとなる判断が画面上で見える場合にのみ、その画面を参考例として数えます。タイトルに記載されているだけでは不十分です。キャプチャ数ではなく、製品数で数えます。1つのアプリからのキャプチャが20枚あっても参考例は1つであり、その判断が最もよく示されているキャプチャを引用します。見た目よりも、目的が一致するものを優先し、意図を混在させないでください。セクション画面はコンポーネントの参考にはなりません。
方向性を見極める。 関連する画面の構造が異なる場合(タブとチップ列、アクションとして機能するカードとリンクとして機能するカードなど)、それぞれが共有する構造上の判断に基づいて分類してください。
どちらかを選ぶ。 問題ごとに別々の方向性を選ぶのではなく、対象全体に対して一方を選んでください。3つに分かれる場合は、最も多くの問題に答える側を選びます。その側のアプリ名、共通する判断、そしてその方向性が目的に合う理由を1文で書き留めてください。他方の側にも当てはまるような曖昧な理由ではなく、具体的に記述します。その側を全体として採用してください。つまり、そのコントロール、階層、スケールを、製品独自のコンポーネントと書体で取り入れ、references/taste.md の定めに従って構築します。他方の側からはデザイン上の工夫を採用せず、レポートで一節だけ言及します。参考例を確認した結果、調査で見落としていた問題が明らかになった場合は、それを示した画面とともに Deferred の記録に追加します。
採用した側の参考例に印を付けます。 それぞれについて、アプリ名、mobbin_url、ベースラインにない要素(採用するもの)、取り入れない要素(明るい背景か暗い背景か、アクセントカラー、書体、コピー、サンプルデータ)を記録します。
- アンカー:方向性を最もよく示す画面です。再設計では主にこれらを使います。通常は2~4件ですが、検索で1件だけ見つかった場合は1件でも構いません。
- プール:同じ側に属するその他の画面です。空状態やラベルなど、個別の細部について1つを引用することはできますが、それ以外の形には影響させません。
- 除外:どの問題にも答えない画面です。1行の理由を添えてメモに残し、使用しないでください。
4. 変更内容を計画する
変更とは、採用側の画面で示されている判断に基づき、チェック済みの問題を1つ解決するために対象を変更することです。問題ごとに1つ記載し、最大5つまでとします。各変更によって解決される作業量の大きい順に並べてください。複数のコントロールを含むコントロールパターンも、1つの変更として数えます。この上限は1回の作業で扱う問題の数に適用され、採用側をどこまで反映するかには適用されません。
各変更には、その根拠となる画面を列挙します。変更の判断を具体的に示すアンカー画面と採用側の画面を、それぞれのmobbin_urlとともに記載してください。
- 要素ではなく、判断を引用してください。 ロゴ行にラベルを付ける変更なら、ラベル付きのロゴ行がある画面が必要です。ロゴ行だけでは根拠になりません。
- 移動させた要素の移動先を引用してください。 何かを別の場所に移動させる変更では、引用した画面に移動先を示すか、レポートでその配置を自分の判断だと明記します。採用側の画面にないラッパー、行、ブロックは削除し、その画面を根拠として引用し、レポートにも記載してください。
- 画面がなければ、変更もありません。 画面に示されていない詳細(配置や文言)は、references/taste.mdに基づいて判断できますが、それを変更全体の根拠にはできません。
次のいずれかに当てはまる変更は、削除するか修正してください。
- 別の変更がすでに扱っている問題に対して、2つ目の変更を追加している。
- ベースラインにあったコンテンツ(プラン、リンク、行、アクション、バッジ、ラベル)を削除している。引用した画面で示されている位置、または画面に示されていない場合はベースラインの位置に残してください。
- コンテンツをこの画面の外に移動している。今回の作業ではそのまま残し、最後のメニューで、別の場所に置いている画面を引用しながらフォローアップとして提案してください。
- 採用側のどの製品も行っていないことを追加している、またはベースラインにあったという理由だけで以前の形を維持している。
- 具体的な問題と、採用側にそれを行う製品が2つないのに、定番の詳細(ウィッシュリストのハート、評価の行、バッジ、ホバー時の浮き上がり、スケルトン、すべてのラベルへのアイコン追加、マイクロコピーの追加、グラデーションのオーバーレイ)を追加している。
次に変更テーブルを作成し、変更ごとに1行記載してください。項目は、問題、採用側、根拠となる画面、追加するもの、削除するものです。問題または根拠となる画面のない行、あるいは保持リストに反する行は削除してください。テーブルの行にないものは何も実装しません。
5. 適用する
Outputs namesで指定された形式で変更テーブルを実装し、変更するのは対象だけにしてください。依頼されていない限り、テーマ、そのトークン、共有コンポーネントは変更しません。保持リストには依頼で指定された内容を記載します。実装時は次のようにします。
- その製品のデザインシステムだけを使って実装してください。 既存のコンポーネント、カラートークン、スペーシング、文字サイズのスケールを使用し、ダークモードはテーマに任せます。単発のコントロール、生のカラー値、新しいライブラリ、書体、アイコンセットは追加しないでください。
- 参考例の構造を取り入れ、見た目はコピーしないでください。 明るい背景色や暗い背景色、アクセントカラー、書体、ロゴ、イラストのスタイルはコピーしないでください。
各変更の内容は引用した画面で決め、製品内での見せ方はreferences/taste.mdに従います。
インタラクションは実際に機能するものにしてください。コントロールは装飾ではなく、実際の状態を操作する必要があります。変更で求められていない機能(ページネーション、並べ替え、新しいデータ、派生値)は追加しないでください。状態を新たに表示するのは、変更によってその状態に新たに到達できるようになり、かつ引用した画面にその状態が示されている場合だけです。
6. レンダリング結果を依頼内容と照合する
キャプチャする前に、依頼で指定された人物になったつもりで、依頼内容の6つの確認項目に加え、レンダリング結果だけを対象とする3つの確認項目に沿って、レンダリング結果を確認します。
- 変更によって到達可能になった状態だけがレンダリングされていること。
- 対象範囲外に変更が加わっていないこと。
- references/taste.md にある決定的な禁止事項に違反していないこと。
レンダリング結果だけを確認します。新たに検索してはいけません。
各項目を合格または不合格と判定します。不合格があれば、対象範囲内と Preserve リスト内で修正し、すべての項目を再確認します。修正によって合格だった項目が不合格になる可能性があるためです。繰り返しは最大3回です。
- 新たな変更、参考資料、または対象範囲外のコンテンツが必要な不合格は修正しません。その不合格の原因となった変更を取り消し、問題点として報告します。
- 3回目の確認後も不合格のままなら、同様にその変更を取り消します。
- どの変更も原因ではない違反は、Deferred 記録に記載します。
次に、環境に確認用コマンドがある場合は実行し、報告された問題を修正します。デザインシステムにないものがレンダリング結果に含まれていないか、再度確認します。たとえば、トークンにない色、スケールから外れた値、独自に作成したテーマ、外部のコンポーネントやアセット、新たな依存関係などです。それぞれを修正するか、レポートに記載します。
7. 変更前と変更後の画像をレンダリングする
環境でレンダリング結果をキャプチャできる場合、ユーザーは説明を読む前に画像を目にします。references/before-after-board.md の指示に従ってボードを作成します。AFTER パネルには、適用した変更をキャプチャした画像を使います。記憶を頼りに描き直してはいけません。
8. レポート
references/report.md の指示に従い、plain-writing の形式でレポートを作成します。
リクエストがあった場合のみ:
- 参考資料ボード:ユーザーが最後のメニューから選択した場合、または参考資料を画像として求めた場合は、references/reference-board.md の指示に従って作成します。
- レンダリング後の理由説明(「なぜテーブルではなくリストなのか?」など):references/answering-a-challenge.md の指示に従って回答します。レンダリング結果の選択理由を説明し、新たな事実が示された場合にのみ判断を変えます。