GPT 5.1 Proに13分間考えさせ、この投稿をAGENTS.mdファイル用のトークン密度の高い説明文に変換する方法を教えてあげました。結果は以下の通りです。 ## AI生成のSwift/SwiftUIクリーンアップルール このリポジトリの Swift/SwiftUI を編集または生成するときは、変更を返す前に、次のチェックリストを使用してコードを積極的に正規化します。 - 最新の API: `NavigationView` を `NavigationStack` に置き換え、`navigationBarTitle`/`navigationBarItems` を `navigationTitle`/`toolbar` に置き換え、非推奨の修飾子よりも新しい修飾子を優先し、可能な場合はコールバック スタイルの API よりも Swift の同時実行性 (`async`/`await`、`Task`) を優先します。 - 状態の正確性: ローカル値の状態には `@State` を、親所有の状態には `@Binding` を、ビューで作成された長期参照型には `@StateObject` を、注入された参照型には `@ObservedObject` を使用します。`body` 内に `ObservableObject` インスタンスを作成しないでください。 - オプションとエラー: 本当に回復不可能な状況を除いて、`!` と `try!` を削除します。`if let` / `guard let` / `??` と `do/try/catch` を使用します。サイレントな失敗ではなく、明示的なエラー パス (結果の型、エラー ビュー、アラート) によって失敗を明らかにします。 - コレクションと ID: `List`/`ForEach` では、参照型の `0..<count` および `\.self` よりも安定した ID (`id: \.id` または専用の `id` プロパティ) を優先します。保存されたプロパティで十分な場合は、`body` でコレクションを再作成しないでください。 - ビュー構造: ネストされた `VStack`/`HStack`/`ZStack` をフラット化し、多数の `Spacer()` から構築されたレイアウトを、配置、パディング、適切なコンテナーに置き換え、レイアウトを複製するのではなく、繰り返しのサブツリーを再利用可能なビューに抽出します。 - 型の消去: 異種のビュー型が本当に必要な場合を除き、`AnyView` やその他の不要な型の消去は避け、具体的なビュー型と構成を優先します。 - 並行性とスレッド: UI に影響するエントリ ポイントを `@MainActor` としてマークし、メイン スレッドのブロックを回避し、非同期タスクを使用して負荷の高い作業をメイン アクターから移動し、完了ハンドラーとタスクが不必要に強力な `self` をキャプチャしないようにします。 - 副作用: ネットワーク呼び出し、ディスク I/O、タイマー、その他の副作用を `body` から削除し、それらをビュー モデル、サービス、またはライフサイクル修飾子 (`task`、`onAppear` など) からトリガーされる明示的なタスクに移動します。 - パフォーマンスの落とし穴: `DateFormatter`、`NumberFormatter`、ランダム値、および負荷の高い計算を `body` 内で直接作成することは避け、静的プロパティまたは専用ヘルパーにキャッシュし、大規模なデータ構造の不必要なコピーを避けます。 - スタイルと衛生: 未使用のインポート、変数、およびパラメーターを削除します。明示的なアクセス制御を使用します。Swift ガイドラインに従った命名を維持します。生成されたコードが既存のスタイルと調和するように、`swift-format`/Xcode のフォーマット期待値に従ってコードを実行します。
スレッドを読み込み中
X から元のツイートを取得し、読みやすいビューを準備しています。
通常は数秒で完了しますので、お待ちください。