android-clean-architecture
作成者 affaan-mandroid-clean-architecture は、明確なモジュール境界、依存関係のルール、UseCases、Repositories、データレイヤーパターンを通じて、Android アプリや Kotlin Multiplatform アプリを整理して設計するためのスキルです。
このスキルは 78/100 の評価で、ディレクトリ掲載候補として十分に有力です。Android / Kotlin Multiplatform のアーキテクチャ設計作業で起動条件が明確で、SKILL.md には汎用的なプロンプト任せにしないための具体的な構成指針や依存関係のガイドがしっかり含まれています。一方で、内容はドキュメント中心で、導入をさらに実務へ落とし込むためのスクリプトや参照アセットは用意されていない点が主な制約です。
- Android / KMP のアーキテクチャ作業に向けた起動条件が明確で、モジュール分割、UseCases、Repositories、データフロー設計まで対象がはっきりしています。
- 本文の実務ガイドが充実しており、推奨モジュール構成と、app・presentation・data・domain・core 間の明示的な依存ルールが示されています。
- Room、SQLDelight、Ktor、Koin、Hilt など、一般的な Android スタックを幅広くカバーしています。
- サポート用ファイル、スクリプト、参照実装は含まれていないため、利用時は markdown のガイドに全面的に依存することになります。
- エンドツーエンドの実装フローというよりアーキテクチャパターンに重心があるため、初学者や要件がかなり特殊なプロジェクトでは使いどころが限られる可能性があります。
android-clean-architecture スキルの概要
android-clean-architecture スキルは、Android と Kotlin Multiplatform アプリを、その場しのぎの機能実装ではなく、明確な境界を持つ構成へと整理するのに役立ちます。モジュール構成、依存ルール、UseCases、Repositories、データ層の設計について、実践的な出発点が必要なエンジニアに最適です。抽象的な理論講義ではなく、実装判断に使えるガイドとして機能します。
このスキルの用途
android-clean-architecture は、ロジックをどこに置くべきか、モジュール同士をどう依存させるべきか、UI・domain・data の責務が 1 層に混ざり込まないようにするにはどうすればよいかを判断したいときに使います。新規コードベースの標準化や、成長して複雑になったアプリのリファクタリングに特に向いています。
どんな人に向いているか
この android-clean-architecture スキルは、Android アプリ、KMP の共有コード、または Compose ベースのプロダクトを作っていて、すでに結合が強くなりすぎているチームに適しています。feature モジュール、レイヤード構成のモジュール、あるいは境界を保ちながらもシンプルな単一モジュール構成のどれを選ぶか迷っている場合にも役立ちます。
主な違い
曖昧なアーキテクチャ用プロンプトと違い、android-clean-architecture はモジュール配置、許可される依存関係、Repository の置き場所、Room・SQLDelight・Ktor・Koin・Hilt の統合ポイントといった具体的な構造に焦点を当てます。そのため、過剰設計や意図しないレイヤーの漏れを避けたいときに、より意思決定向けのガイドになります。
android-clean-architecture スキルの使い方
インストールして有効化する
スキルマネージャーから android-clean-architecture のインストール手順を使って有効化し、アーキテクチャを検討・編集している間はスキルファイルを参照可能な状態にしておきます。環境がパス指定での読み込みに対応しているなら、skills/android-clean-architecture/SKILL.md を指定すると、タスク中にアーキテクチャルールをモデルに反映させやすくなります。
具体的なアーキテクチャ課題を与える
android-clean-architecture の活用は、モジュール分割、依存マッピング、レイヤー配置など、具体的な成果物を求めるときに最も効果を発揮します。良い入力には、プラットフォーム、現状のスタック、制約条件を明示します。
プロンプト例:
- “Compose + Hilt app with offline sync のための android-clean-architecture モジュール構成を設計して”
- “Android では Room、共有コードでは SQLDelight を使う KMP feature を android-clean-architecture のレイヤーでリファクタリングして”
- “これらのモジュールをレビューして、依存ルール違反を指摘して”
まず読むべき箇所を見極める
まず SKILL.md を読み、その後は「いつ有効化するか」「推奨レイアウト」「依存ルール」を定義しているセクションに集中してください。実装判断に直接影響するのは、まさにその部分です。リポジトリにこの 1 ファイルしかない場合は、それらのセクションを唯一の正解として扱い、自分のパッケージ名やビルド設定に合わせて適用してください。
出力品質を上げる入力を渡す
すでに存在しているものを簡潔に伝えると、スキルの出力は安定します。たとえば、モジュール、永続化ツール、DI フレームワーク、ネットワークスタック、そしてアプリが Android 専用か KMP かを共有してください。さらに、既存の feature 境界や public API のように「残したいもの」も明示します。現在の状態が具体的であるほど、android-clean-architecture のガイドが不要なレイヤーを勝手に増やしにくくなります。
android-clean-architecture スキル FAQ
android-clean-architecture は新規プロジェクト専用ですか?
いいえ。android-clean-architecture スキルは、新規開発にもリファクタリングにも有効です。特に、既存アプリが複雑化して境界が崩れている場合に強く、全体を一度に書き直さずに何を移すべきかを判断する助けになります。
通常のプロンプトと何が違いますか?
通常のプロンプトでもレイヤードアーキテクチャは依頼できますが、android-clean-architecture は Android と KMP の判断に特化した構造を提供します。その結果、依存方向、モジュール命名、Data Source と Repository の配置について、より具体的な指針が得られます。
初心者にも向いていますか?
はい、具体的なモジュールマップに沿って作業する意思があるなら向いています。実装の細部がない、抽象的な Clean Architecture の説明を求める場合にはあまり向きません。初心者が最も恩恵を受けるのは、広く曖昧な構成ではなく、シンプルで明確な構成を検証するときです。
使わないほうがよいのはどんなときですか?
アプリが小さい、チームが意図的にレイヤードアーキテクチャを避けている、あるいはモジュール設計なしで素早く機能を実装したいだけなら、android-clean-architecture は使わないほうがよいです。そのような場合、このスキルは不要な構造を増やしてしまうことがあります。
android-clean-architecture スキルを改善する方法
必要なアーキテクチャ判断を 1 つに絞って伝える
android-clean-architecture の出力を最も改善しやすいのは、1 回に 1 つの判断だけを依頼することです。モジュール境界、依存グラフ、データフロー、DI 配線のどれかに絞って聞いてください。best architecture のような曖昧な依頼よりも、この KMP リポジトリ構成ではキャッシュをどこに置くべきか のような依頼のほうが、はるかに実用的な結果になります。
実際の制約を伝える
重要なスタックと制約を明記してください。Android のみか KMP か、Compose か XML か、Room か SQLDelight か、Ktor か Retrofit か、Hilt か Koin か、そして offline-first が必須かどうかです。こうした条件によって推奨構成は変わりますし、android-clean-architecture のガイドが誤ったバックエンドやストレージモデルに最適化してしまうのを防げます。
よくある失敗パターンに注意する
最も多い失敗は、各 feature がそれぞれ独自のミニアーキテクチャを持ち、共通ルールがなくなることです。もう 1 つは、目先の実装速度を優先して、ビジネスロジックを presentation code に置いてしまうことです。早い段階でこのスキルを使って境界を確認し、その後で実際のパッケージツリーや build files に合わせて修正してください。
リポジトリに合わせた追加入力で反復する
最初の出力を得たら、依存監査や、現在のツリーに対するファイル単位の配置計画を依頼してください。たとえば、「これらの既存パッケージを android-clean-architecture のレイアウトに対応付けて、domain か data に移すべきものを指摘して」といった形です。こうした追加入力によって、このスキルは概念ガイドから移行ツールへと変わります。
