一键导入
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 を参照。