mcpField
C
cloudkit-code-review

cloudkit-code-review

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

cloudkit-code-review について

Apple CloudKit コードを対象とするレビュー用スキルです。コンテナ、レコード、サブスクリプション、共有のチェック項目を備え、指摘前に証拠と周辺コードの確認を求めます。

主な機能

  1. 01アカウント状態、ゾーン、権限の確認
  2. 02エラー処理と競合マージの点検
  3. 03バッチ操作とアセット保存の評価
  4. 04サブスクリプションと共有設定の確認
  5. 05ファイルと行番号付きの指摘
  6. 06段階的なレビューゲートで証拠を検証

活用シーン

  1. 01CloudKit データベースとゾーン設定のレビュー
  2. 02レコード同期、エラー、競合の確認
  3. 03プッシュ通知と共有機能の検証

インストール

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

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

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

同梱ファイル

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

references/
container-setup.md
records.md
sharing.md
subscriptions.md

詳細

CloudKit コードレビュー

クイックリファレンス

問題の種類リファレンス
CKContainer、データベース、ゾーン、エンタイトルメントreferences/container-setup.md
CKRecord、参照、アセット、一括操作references/records.md
CKSubscription、プッシュ通知、サイレント同期references/subscriptions.md
CKShare、参加者、権限、受け入れreferences/sharing.md

レビューチェックリスト

  • プライベート/共有データベースの操作前にアカウントの状態を確認している
  • 本番データにはデフォルトゾーンではなくカスタムゾーンを使用している
  • retryAfterSeconds を尊重して、すべての CloudKit エラーを処理している
  • serverRecordChanged の競合を適切なマージロジックで処理している
  • CKErrorPartialFailure を解析し、個々のレコードエラーを処理している
  • 個別の保存ではなく、一括操作(CKModifyRecordsOperation)を使用している
  • 大きなバイナリデータは CKAsset に保存している(レコードの上限は1 MB)
  • レコードキーは文字列リテラルではなく、型安全な形式(列挙型)になっている
  • コールバックからの UI 更新をメインスレッドにディスパッチしている
  • アカウントの切り替えに備えて CKAccountChangedNotification を監視している
  • 重複を防ぐため、サブスクリプションに一意の ID を設定している
  • CKShare でカスタムゾーンを使用している(共有にはカスタムゾーンが必須)

リファレンスを読み込むタイミング

  • コンテナ/データベースの設定またはゾーンをレビューする場合 -> container-setup.md
  • レコードの CRUD または関連付けをレビューする場合 -> records.md
  • プッシュ通知または同期トリガーをレビューする場合 -> subscriptions.md
  • 共有機能またはコラボレーション機能をレビューする場合 -> sharing.md

出力形式

次の形式で問題を報告します:[FILE:LINE] ISSUE_TITLE

例:

  • [AppDelegate.swift:24] CKContainer not in custom zone
  • [SyncManager.swift:156] Unhandled CKErrorPartialFailure
  • [DataStore.swift:89] Missing retryAfterSeconds backoff

レビューの質問

  1. ユーザーが iCloud からサインアウトした場合、どうなりますか?
  2. エラー処理ではレート制限(retryAfterSeconds)を尊重していますか?
  3. 競合は解決されますか、それともデータが気付かないうちに上書きされますか?
  4. App Store リリース前にスキーマは本番環境へデプロイされていますか?
  5. 共有レコードはカスタムゾーンにありますか(CKShare には必須)?

ハードゲート(報告前)

報告する各指摘について、順番どおりに完了してください。合格条件を満たすまで、次へ進まないでください。

  1. 位置情報 — 指摘には、現在のファイル内容から転記した [FILE:LINE](または行の範囲)が含まれ、パスがこのリポジトリ内で解決できること。
  2. 対象範囲の確認 — 差分の一部や独立した断片だけでなく、CloudKit の処理を担う型または関数全体(たとえば CKOperation サブクラスの使用箇所、完了ハンドラーの連鎖、CKRecord のライフサイクル)を読み通していること。
  3. CloudKit またはデプロイに関する主張(コンテナ識別子、パブリック/プライベートデータベースの選択、カスタムゾーンの要件、iCloud アカウントの状態、エンタイトルメント、本番スキーマに指摘が依存する場合のみ) — 調査した具体的な成果物を1つ明示すること(たとえば com.apple.developer.icloud-container-environment、エンタイトルメントファイル内のコンテナ ID、ソース内の CKContainer.default() とカスタム識別子の比較、Info.plist/ターゲットの機能、スキーマがデプロイ済みであることを示す証拠)。またはその項目を レビューの質問 の未解決の質問に格下げすること。
  4. プロトコル — この項目について、review-verification-protocol の事前報告手順を満たしていること(満たしていない場合は指摘を行わないこと)。

報告する指摘ごとに、問題形式 [FILE:LINE] ISSUE_TITLE を使用してください。ハードゲート4は、このスキルのレビュー種別における事前報告チェックリスト全体です。

コメント