mcpField
S
swiftui-code-review

swiftui-code-review

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

swiftui-code-review について

swiftui-code-reviewは、チェックリストに沿ってSwiftUIコードをレビューするスキルです。指摘にはファイルと行番号の根拠を求め、ビュー構成、状態、性能、アクセシビリティの資料を参照します。

主な機能

  1. 01順序に沿ったレビュー手順
  2. 02ファイルと行番号付きの指摘
  3. 03ビュー構成の確認
  4. 04状態と性能の確認
  5. 05アクセシビリティのチェックリスト

活用シーン

  1. 01リポジトリ内のSwiftUI変更のレビュー
  2. 02状態所有権やビューIDの問題発見
  3. 03アクセシビリティとDynamic Typeの確認

インストール

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

$npx skills add https://github.com/existential-birds/beagle --skill swiftui-code-review

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

同梱ファイル

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

references/
accessibility.md
performance.md
state-management.md
view-composition.md

詳細

SwiftUI コードレビュー

クイックリファレンス

問題の種類参照先
View の抽出、モディファイア、body の複雑さreferences/view-composition.md
@State、@Binding、@Observable、@Bindablereferences/state-management.md
LazyStacks、AnyView、ForEach、識別性references/performance.md
VoiceOver、Dynamic Type、ラベル、特性references/accessibility.md

ゲート(レビューのワークフロー)

順番に完了してください。先に進んではいけません。

  1. 対象範囲を明確にする — 合格条件:レビュー対象のすべてのファイルが、リポジトリ相対の .swift パスとして列挙されていること(または、理由とともに「開いたファイルなし/該当なし」と明記されていること)。
  2. 指摘の前に参照する — 合格条件:複雑な body、モディファイアチェーン、またはラッパーの所有権に関する質問について、上記の表にある該当する references/*.md を開いていること。または、理由を1行で添えて「不要」と明記していること。
  3. 根拠に基づく指摘 — 合格条件:実質的な問題には、推奨事項より前に [FILE:LINE](または限定された行範囲)を含めること。シンボルやスニペットは補足として使用できますが、場所の明示に代えることはできません。このコードを示さず、「一般的な SwiftUI の慣習」だけに基づく指摘はしないでください。

レビューチェックリスト

  • View の body が10個未満の構成要素である(サブビューを抽出する)
  • モディファイアの順序が正しい(background の前に padding)
  • View が所有するオブジェクトには @StateObject、渡されたオブジェクトには @ObservedObject を使用する
  • @Observable への双方向バインディングには @Bindable を使用する(iOS 17 以降)
  • 50個以上の項目を含むスクロールリストには LazyVStack/LazyHStack を使用する
  • AnyView を使用していない(代わりに @ViewBuilder またはジェネリクスを使用する)
  • ForEach で安定した Identifiable ID を使用している(配列のインデックスは使用しない)
  • すべての画像/アイコンに accessibilityLabel がある
  • カスタムコントロールに accessibilityAddTraits(.isButton) がある
  • Dynamic Type に対応している(固定のフォントサイズを使用しない)
  • 非同期処理には .task モディファイアを使用する(onAppear + Task は使用しない)

参照先を読み込むタイミング

  • 複雑な View の body またはモディファイアチェーン -> view-composition.md
  • プロパティラッパーの使用(@State、@Observable) -> state-management.md
  • リストのパフォーマンスまたは View の識別性に関する問題 -> performance.md
  • VoiceOver またはアクセシビリティの実装 -> accessibility.md

レビュー時の質問

  1. この大きな View の body を、より小さく再利用可能な View に分割できますか?
  2. モディファイアの順序は意図したものですか?(padding -> background -> frame)
  3. 所有権に対する @StateObject/@ObservedObject の使い方は正しいですか?
  4. この ScrollView のパフォーマンスは LazyVStack で改善できますか?
  5. VoiceOver のユーザーにこのインターフェースは理解できますか?

コメント