بنقرة واحدة
ios-clean-architecture
iOSアプリのSPMパッケージ構成・レイヤー依存関係・設計原則を定義。iOS機能実装・コードレビュー時に参照。no problem製SPMパッケージの使用指針を含む。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
القائمة
iOSアプリのSPMパッケージ構成・レイヤー依存関係・設計原則を定義。iOS機能実装・コードレビュー時に参照。no problem製SPMパッケージの使用指針を含む。
التثبيت باستخدام Codex أو Claude انسخ هذا Prompt والصقه في Codex أو Claude أو مساعد آخر ليراجع صفحة Skill ويثبّتها لك.
استنادا إلى تصنيف SOC المهني
AI QA Agent のメインオーケストレーター。テストスイートまたは個別テストケースの QA を段階的に実行する。フェーズスキルに委譲して段階的開示を行い、サブエージェントでコンテキスト隔離を実現する。「QA」「動作確認」「テストケース実行」「smoke test」「E2E」「手動テスト」「結合テスト」などのキーワードで自動適用。
QA テストスイートの解析・前提条件解決・実行計画策定を行うフェーズスキル。ios-qa-workflow から参照される。「テスト計画」「QA 準備」「テストスイート解析」などのキーワードで自動適用。
QA テスト結果を集約し、構造化レポートを生成するフェーズスキル。失敗テストの分析と次のアクション提案を含む。「QA レポート」「テスト結果」「QA 結果」などのキーワードで自動適用。
テストケースの作成を対話的に支援するユーティリティスキル。アプリの画面を観察しながらテストケースを生成できる。「テストケース作成」「QA ケース作成」「テスト項目作成」などのキーワードで自動適用。
テストケースの実行制御を行うフェーズスキル。各テストケースを qa-runner → qa-judge のパイプラインで実行し、アプリ状態管理と結果収集を担当する。ios-qa-workflow から参照される。
iOS 開発ワークフローのオーケストレーター。XcodeBuildMCP ベースのフォアグラウンドサブエージェントを使い分け、ビルド・テスト・実行・UI 検証をコンテキスト隔離で実行する。「iOS」「Xcode」「Swift」「build」「test」「compile」「simulator」「xcodebuild」「preview」「SwiftUI」「ビルド」「テスト」「コンパイル」などのキーワードで自動適用。
| name | ios-clean-architecture |
| description | iOSアプリのSPMパッケージ構成・レイヤー依存関係・設計原則を定義。iOS機能実装・コードレビュー時に参照。no problem製SPMパッケージの使用指針を含む。 |
iOSアプリのクリーンアーキテクチャに基づくパッケージ構成と設計原則。
┌─────────────────┐
│ Presentation │ SwiftUI Views, Components
└────────┬────────┘
│
┌───────────┬────────────┼────────────┬───────────┐
▼ ▼ ▼ ▼ ▼
┌────────┐ ┌────────┐ ┌──────────┐ ┌──────────┐ ┌──────────────┐
│ State │ │UseCases│ │Repository│ │ Services │ │ External │
│ │ │ │ │ │ │ │ │ SPM (4) │
└────┬───┘ └────┬───┘ └────┬─────┘ └────┬─────┘ └──────────────┘
│ │ ↘ │ ↙ │
│ └─────┬────┴──────┬─────┘
│ ▼ │
│ ┌──────────────┐ │
└──────►│ Domain │◄────┘
└──────────────┘
注: UseCasesはRepository・Servicesの両方に依存可能。ServicesはDomainのみに依存。
| パッケージ | 責務 | 依存先 |
|---|---|---|
| Domain | ドメインモデル・値オブジェクト・列挙型 | なし |
| Services | 再利用可能なアプリケーションサービス(外部SDK連携等) | Domain のみ |
| Repository | API通信・データ永続化 | Domain, APIClient |
| State | @Observable状態管理 | Domain, Authentication |
| UseCases | ビジネスロジック(Protocol定義) | Domain, Repository, Services |
| Presentation | SwiftUI View・コンポーネント | 全て |
| パッケージ | モジュール名 | 用途 | 使用レイヤー |
|---|---|---|---|
swift-design-system | DesignSystem | テーマ・色・スペーシング・UIコンポーネント | Presentation |
swift-authentication | Authentication | Firebase Auth統合(Google/Apple Sign-In) | State, Presentation |
swift-ui-routing | UIRouting | 型安全ナビゲーション(Router, TabPresenter) | Presentation |
swift-api-client | APIClient | HTTP通信クライアント | Repository |
// ✅ Presentation → 全て(最上層)
import Domain
import State
import UseCases
import Repository
import DesignSystem
import UIRouting
import Authentication
// ✅ UseCases → Domain + Repository + Services
import Domain
import Repository
import Services
// ✅ State → Domain + Authentication
import Domain
import Authentication
// ✅ Repository → Domain + APIClient
import Domain
import APIClient
// ✅ Services → Domain(外部サービス連携)
import Domain
// ✅ Domain → なし(最下層)
// 外部依存ゼロ(Foundationのみ許可)
// ❌ Domain層での外部import
import Foundation // ✅ OK(標準ライブラリ)
import UIKit // ❌ 禁止
import SwiftUI // ❌ 禁止
import DesignSystem // ❌ 禁止
// ❌ 下位レイヤーから上位への参照
import Presentation // ❌ 循環依存
// ❌ UseCases → State
import State // ❌ 状態管理は上位レイヤーの責務
// ❌ Services → Repository(Servicesは独立性を保つ)
import Repository // ❌ ServicesはDomainのみに依存
実装前に確認:
詳細は REFERENCE.md を参照。