AgentSkillsCN

code-review

针对 homete 项目,掌握 iOS Swift 代码评审技能。通过运行 SwiftLint,及时发现并报告警告与错误,并借助 git diff 审查 Git 中修改过的 Swift 文件。当用户通过 /code-review 命令发起代码评审请求时,或在功能实现、代码重构、Bug 修复、测试更新后使用此技能。重点遵循 DI 设计模式,兼顾 Swift 6 并发特性,避免过度工程化,并着力提升测试代码的质量。

SKILL.md
--- frontmatter
name: code-review
description: hometeプロジェクト用のiOS Swiftコードレビュースキル。SwiftLintを実行し、警告・エラーを報告し、git diffで変更されたSwiftファイルをレビューする。/code-reviewコマンドでユーザーがコードレビューを要求した時、または機能実装、リファクタリング、バグ修正、テスト更新後に使用。DIパターン準拠、Swift 6並行性、過度なエンジニアリングの回避、テストコードの品質に焦点を当てる。

コードレビュー

SwiftLintの自動チェックと包括的なコード品質分析を備えた、homete iOSプロジェクト用のSwiftコードレビュースキル。

ワークフロー

このスキルは以下の手順でコードレビューを実行します:

1. SwiftLintの実行

まず、SwiftLintを実行してコードスタイルと品質をチェックします:

bash
swift run --package-path ProjectTools swiftlint lint --config .swiftlint.yml

SwiftLint結果の報告:

  • 警告やエラーが存在する場合、ファイルパスと行番号を明確にリスト表示
  • 重要度でグループ化(エラーを最初に、次に警告)
  • エラーがある場合はコードレビューに進まず、ユーザーが修正する必要があることを伝える

2. 変更差分の取得

現在のブランチの派生元(分岐点)からの変更差分を取得:

bash
git diff $(git merge-base main HEAD)..HEAD -- '*.swift'

ファイルが見つからない場合は、origin/mainとの差分を試す:

bash
git diff $(git merge-base origin/main HEAD)..HEAD -- '*.swift'

差分取得のポイント:

  • 差分が大きすぎる場合(10000行以上)は、主要な変更箇所を優先してレビュー
  • 差分がない場合は、ユーザーに変更がないことを伝える

3. ios-code-reviewerエージェントを起動

Taskツールを使用してios-code-reviewerエージェントを起動し、取得した差分をレビューさせます:

code
Task tool with:
- subagent_type: "ios-code-reviewer"
- description: "Swiftコードの差分をレビュー"
- prompt: "以下のSwift差分をレビューしてください:\n\n[差分内容を貼り付け]"

重要: エージェントには具体的な差分内容を渡すこと。「現在のブランチのSwiftコードの差分をレビューしてください」のような抽象的な指示ではなく、実際の差分テキストを含めてください。

4. レビュー結果のユーザーへの報告

エージェントから返されたレビュー結果を、以下の形式でユーザーに報告します:

  • SwiftLintの結果(エラー・警告のサマリー)
  • レビューの総合評価
  • 主要なフィードバック(アーキテクチャ、並行性、コード品質)
  • 改善提案と良い点
  • 優先度の高い修正項目

使用タイミング

このスキルを使用する場合

  • ユーザーが /code-review コマンドを実行した時
  • 機能実装、リファクタリング、バグ修正が完了した時
  • ユーザーが「コードレビューをお願いします」と依頼した時

このスキルを使用しない場合

  • コード構造に関する一般的な質問(代わりに探索を使用)
  • Swiftファイルに変更がない場合
  • 初期のコード探索や理解フェーズ中

注意事項

  • このスキルはエントリーポイントとして機能します
  • 実際のレビュー処理は ios-code-reviewer エージェントが実行します
  • スキル自身でSwiftLintやgit diffを直接実行しないでください

リファレンス

プロジェクトの詳細なアーキテクチャと規約については、以下を参照:

  • homete/CLAUDE.md - プロジェクト概要とアーキテクチャパターン
  • .swiftlint.yml - SwiftLint設定とルール
  • homete/Model/AppDependencies.swift - DIコンテナ実装