mcpField
E
expo-ios-hig-verify

expo-ios-hig-verify

github.com/pproencaテスト・品質218126 回インストール11 週間前に更新
リポジトリ

expo-ios-hig-verify について

Expo(React Native)プロジェクト向けの読み取り専用静的チェッカーで、expo-ios-higルールへの違反候補を検出します。重大度、ファイルと行の位置を報告し、ルールの説明へリンクするため、iOS UI変更のレビューに利用できます。

主な機能

  1. 01Expoプロジェクトの静的チェック
  2. 02重大度別の問題分類
  3. 03ファイルと行番号の表示
  4. 04ルール説明へのリンク
  5. 05テキストとJSONのレポート
  6. 06警告も失敗扱いにする厳格モード

活用シーン

  1. 01マージ前のiOS UI変更の確認
  2. 02新規生成した画面の監査
  3. 03Expoアプリのネイティブらしさの問題確認

インストール

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

$npx skills add https://github.com/pproenca/dot-skills --skill expo-ios-hig-verify

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

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

config.json
gotchas.md
metadata.json
references/
workflow.md
scripts/
verify-hig.sh

詳細

Expo iOS HIG 検証ツール

Expo(React Native)プロジェクトを読み取り専用で静的チェックし、expo-ios-hig のルール違反を検出します。検出結果は重大度別にまとめられ、file:line 形式の場所と、修正方法を説明するルールへのリンクが表示されます。expo-ios-hig のリファレンススキルに対する自動チェックツールです。このスキルがルールを解説し、このツールがルールへの準拠状況を確認します。

使用するタイミング

次のような場合に、このスキルを実行してください。

  • ユーザーが HIG 準拠やネイティブらしさについて、Expo アプリのチェック、lint、監査、レビューを求めたとき
  • Expo の iOS UI 変更をマージまたはリリースする前に、品質ゲートとして使用するとき
  • 新しい画面をひな形から作成した後、ネイティブな状態を保てているか確認するとき
  • Expo アプリが「Web のラッパーのように感じる」または「Android のように感じる」理由を調査するとき

読み取り専用のため、対象プロジェクトを変更することはありません。監視なしで実行しても安全です。

ワークフローの概要

verify-hig.sh [project-dir]
  1. Resolve search roots (app/ src/ components/ by default, or config.json)
  2. Run static checks — one per detectable expo-ios-hig rule (rg, or grep fallback)
  3. Aggregate findings: severity, rule, message, file:line
  4. Print grouped report (ERRORS then ADVISORIES) with a link to each rule
  5. Exit 0 if clean, 1 if any ERROR (with --strict, advisories fail too)

実行方法:

bash scripts/verify-hig.sh /path/to/expo-app          # text report
bash scripts/verify-hig.sh /path/to/expo-app --strict # advisories also fail
bash scripts/verify-hig.sh /path/to/expo-app --json   # machine-readable

チェック項目

ERROR は精度の高いチェックです(インポートやリテラル値の一致を検出し、誤検出は少なめです)。ADVISORY は確認を推奨するヒューリスティックです。--strict を指定しない限り、実行結果を失敗にはしません。

重大度ルール検出内容
ERRORnative-avoid-material-uireact-native-paper、@react-native-material/*、@rneui/*、react-native-elements のインポート
ERRORnav-native-stack@react-navigation/stack / createStackNavigator
ERRORtouch-gesture-handler-threadPanResponder
ERRORtouch-pressable-feedbackTouchableWithoutFeedback
ERRORacc-dynamic-typeallowFontScaling={false}
ERRORmotion-ui-thread-animationuseNativeDriver: false
ADVISORYnav-native-tabscreateBottomTabNavigator(JS タブバー)
ADVISORYvisual-semantic-colorscolor:/backgroundColor:/borderColor:/tintColor: に指定されたハードコードの 16 進カラーコード
ADVISORYvisual-system-fontカスタムの fontFamily:
ADVISORYsystem-status-barハードコードされた StatusBar style="dark"/"light"
ADVISORYmotion-virtualized-lists<ScrollView> と .map( の両方を使用しているファイル

各検出項目から、説明と修正方法を記載した expo-ios-hig/references/{rule}.md(パスは config.json で設定可能)にリンクします。

セットアップ

config.json は任意です。適切なデフォルト値が適用されます。プロジェクトに合わせて、初回使用時に上書きしてください。

  • search_roots — スキャンするソースディレクトリ(スペース区切り。デフォルトは app src components)
  • skill_rules_dir — レポート内の expo-ios-hig ルールファイルへのリンクに使用するパス(デフォルトは ../expo-ios-hig/references)

jq がインストールされている場合、スクリプトは config.json から設定を読み込みます。そうでない場合はデフォルト値を使用します。利用可能な場合は rg(ripgrep)を使い、ない場合は grep にフォールバックします。必須の依存関係はありません。

使用方法

  1. Expo プロジェクトのルートディレクトリを対象に scripts/verify-hig.sh を実行します。
  2. 重大度別にまとめられたレポートを確認します。検出項目の修正方法を見るには、リンク先のルールファイルを開きます。
  3. リリース前に ERROR は必ず修正してください。ADVISORY も確認してください(意図的な例外も含まれます)。
  4. チェックを追加するには、run_checks() に check ERROR|ADVISORY <rule> "<message>" "<regex>" の行を追加します。references/workflow.md を参照してください。

関連スキル

  • expo-ios-hig — この検証ツールがチェックするルールです。すべての検出項目からこのスキルにリンクします。
  • expo-ios-screen-scaffolder — これらのチェックに通る画面を、最初から生成します。

コメント