mcpField
H
harden

harden

github.com/educlopezデザイン・UI407564 回インストール1 週間前に更新
リポジトリ

harden について

harden は ui-craft の本番向け UI 強化サブスキルで、デザインや開発の作業に使います。共通のカバレッジ表と画面種別ごとの確認を行い、リスクを報告して安全に対応できる問題を修正します。

主な機能

  1. 01ローディング、空状態、エラーの確認
  2. 02部分データ、長文、i18n の確認
  3. 03オフライン、権限、初回利用状態の確認
  4. 04画面種別ごとのカバレッジ評価
  5. 05状態の報告と安全な問題の修正

活用シーン

  1. 01リリース前の UI の堅牢性とアクセシビリティ確認
  2. 02次の操作が示されないエラーの検出
  3. 03アクセス制限やデータ欠落時の表示確認

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/educlopez/ui-craft --skill harden

インストール後、Claude Code で/hardenを入力して読み込まれたか確認します。

詳細

コンテキスト: このサブスキルは、より広範な ui-craft スキルを構成する一つの視点です。ui-craft スキルもインストールされている場合は、まずその SKILL.md を読み、Discovery + Anti-Slop + Craft Test を確認してから、以下の特定の視点を適用してください。

$ARGUMENTS の UI を本番環境向けに堅牢化します。ui-craft スキルを読み込んでください。

対象範囲のマトリクス — すべての重要な画面領域を確認してください:

  1. 読み込み中 — スケルトンは最終的なレイアウトに合わせます(読み込み完了時に CLS が発生しないようにします)。高速な応答時のちらつきを避けるため、表示は約 200ms 後にします。スケルトンを表示できる場合、画面中央に汎用スピナーを表示してはいけません。
  2. 空の状態 — 意図的に設計します。空である理由を説明する 1 行のテキストと、明確な主アクションを 1 つ用意します。イラストは任意ですが、CTA は必須です。
  3. エラー — インラインで、次のアクションがわかるようにします。「保存に失敗しました。再試行/エラーをコピー/サポートに問い合わせ」のようにします。「問題が発生しました」だけで済ませてはいけません。何が起きたかと、次に何をすべきかを示します。
  4. 一部のデータのみ — 値が本当に不明な指標には —(em ダッシュ)を使い、N/A、null、0 は使いません。
  5. 長いコンテンツ — title ツールチップと text-overflow: ellipsis で省略し、制約のある領域にはコンテナークエリを使います。120 文字の名前でテストします。
  6. i18n — ハードコードされた文字列を使わず、ドイツ語でテキストが約 1.3 倍に増える余裕を持たせ、CJK の文字幅が狭いことを考慮し、方向に応じて反転するアイコンは RTL を考慮します。
  7. オフライン/低速 — 失敗時に整合性を取り直す楽観的 UI を使います。タイムアウト後もスケルトンを表示し、「まだ読み込み中…」といった案内を提示します。
  8. 権限 — ユーザーにアクセス権がない場合の挙動(無効化するか、非表示にするか)を確認します。無効化する場合は必ず理由(ツールチップ、インラインの補足説明)を示します。
  9. ゼロ状態 → 初回利用 — 5 ステップのツアーより、インラインのヒントを優先します。画面の上に重ねて案内するのではなく、画面内で案内します。

ノブに依存しない項目 — 正しさは調整可能なものではありません。CRAFT_LEVEL/MOTION_INTENSITY/VISUAL_DENSITY にかかわらず、マトリクス全体を確認してください。

続いて、アーキタイプの対象範囲を確認してください。 上記 9 項目は画面全般に関わるもので、この画面がどの種類なのかは考慮しません。アーキタイプ(データテーブル、設定、検索、詳細ビュー、初回利用、請求、料金、ドキュメントページ、チェックアウト、オンボーディング、破壊的操作の確認、招待/共有)を特定し、該当する項目を確認してください。

  • MCP 接続あり → アーキタイプを指定して ux_coverage を呼び出します。該当アーキタイプの項目と報告形式が返されます。
  • MCP なし → references/coverage.md の該当セクションを読みます。
  • 該当するアーキタイプなし → この手順を省略し、その旨を 1 行で記載します。対象範囲は意図的に部分的なものです。リストにない画面は不備ではありません。

各項目には、実装されている状態、構築時に適用する ui-craft のルール、それがない場合にユーザーが失うものが記載されています。不足していることだけでなく、その影響も報告してください。「エクスポート機能なし」は状態の説明です。「ユーザーは画面上の 24 行を期待しているのに、10,000 行を受け取る」は、それが重要な理由です。

読むべき参考資料:references/accessibility.md(キーボード操作とスクリーンリーダーでの操作経路)、references/copy.md(エラーと空の状態で使う文体)、references/motion.md の Rendering Performance セクション(スケルトンの動きと動きを抑える設定)。

出力:2 つのセクションを並べて報告し、決して統合しないでください。

  1. 堅牢化マトリクス — 上記 9 項目それぞれに「あり/一部あり/なし」のいずれかを付けます。
  2. 対象範囲 — アーキタイプの項目それぞれに あり/一部あり/なし/対象外/不明 のいずれかを付けます。「対象外」とする場合は理由を明記してください。ここで適用されない理由を説明できない場合は、「なし」とします。「不明」とする場合は、追加情報によって判断できるかどうかを示します。

どちらのセクションにも、スコア、件数、パーセンテージを記載しないでください。「9 項目中 7 項目」のような表現は、「対象外」を不備のように見せ、堅牢化作業を採点に変えてしまいます。対象範囲の確認はリリースを妨げるものではありません。結果を報告し、ビルドはそのままリリースします。

続いて、不足している箇所を修正するため、コードを編集してください。修正内容を示す Review Format テーブルを出力してください。安全に自動修正できなかった項目(バックエンドが必要、設計上の判断が必要、翻訳ファイルが必要)について、「引き続きリスクあり」のリストで締めくくってください。

次のステップ: /finalize — 出荷前のゲート(第 3 段階)。

コメント