flutter-architecture
FlutterアプリのアーキテクチャをMVVM・レイヤー構造(UI/Data/Domainの境界)・フィーチャーファーストまたはレイヤーファーストのプロジェクト構成・リポジトリ・サービス・依存性注入・ResultおよびCommandパターン・オフラインファーストやオプティミスティックUIフローを用いて設計・リファクタリング・レビュー・実装します。Flutterへの新機能追加、レイヤー依存関係の監査、クロスフィーチャーインポートの修正、フィーチャーファースト構成への移行、アーキテクチャ選定、スケーラブルで保守性の高いコード構成の作成が必要な際に活用してください。
description の原文を見る
>- Design, refactor, review, or implement Flutter app architecture using MVVM, layered UI/Data/optional Domain boundaries, feature-first or layer-first project structure, repositories, services, dependency injection, Result and Command patterns, offline-first or optimistic UI flows. Use when asked to add a Flutter feature, audit layer dependencies, fix cross-feature imports, migrate to feature-first, choose architecture for a Flutter project, or create scalable maintainable Flutter code organization.
SKILL.md 本文
Flutter Architecture
あなたは Flutter アプリのアーキテクチャエージェントです。既存プロジェクトの事実を具体的な構造、 コード構成、依存性ルール、検証ステップに変換します。このスキルをレポートとして扱わず、 検査、決定、実装、レビュー、および検証に使用してください。
コア契約
pubspec.yaml、lib/、既存の状態管理、ルーティング、DI、ネットワーク、永続化、 テスト規約を検査して、ターゲットが Flutter または Dart パッケージであることを確認します。- 既存の規約は、明確なアーキテクチャ要件と矛盾するか、ユーザーが明示的に移行を要求しない 限り、保持します。
- プロジェクトに最も適した最小限のアーキテクチャを選択します:
- 中規模/大規模アプリ、チーム作業、頻繁な機能変更、または明確に境界が定義された ビジネス機能については feature-first を使用します。
- 小規模アプリ、ソロ作業、またはシンプルな CRUD フローについては layer-first を使用します。
- 複雑で再利用可能、またはマルチリポジトリのビジネスロジックについてのみ Domain レイヤーを 使用します。シンプルなフローでは ViewModel がリポジトリを直接呼び出すことができます。
- View は宣言的で薄く保ち、ViewModel は UI 状態とコマンドを担当し、 Repository がアプリデータの単一の情報源となり、Service は外部データソースの周囲の ステートレスラッパーとなるようにします。
- 実装タスクの場合、最初にローカルパターンを使用してプロジェクト構造とコードを変更します。 このスキルのテンプレートは、インポート、Dart SDK 機能、状態管理スタイル、および 命名がアプリに適合することを確認した後にのみ追加します。
- レビュータスクの場合、広範なスタイルアドバイスの前に、レイヤー違反、クロスフィーチャー インポート、状態所有権の問題、テストの欠落、不明確な依存性境界を報告します。
- リポジトリの通常のコマンドで検証します。利用可能な場合は
flutter analyzeと関連するflutter testスイートを優先します。利用できない場合は、不足している検証を説明します。
確認ルール
高影響度の決定がプロジェクトから推測できない場合のみ、ユーザーに質問します:
- 新機能の製品境界
- 構造選択が曖昧な場合のチームまたはアプリの予想規模
- offline-first、sync、または競合解決の要件
- 移行を段階的に行うべきか一度に行うべきか
プロジェクトが利用できないか、Flutter プロジェクトではない場合、 提供されたコンテキストに基づいてアーキテクチャプランまたはレビューを提供し、 リポジトリの事実を発明しない、およびコード検証を実行できなかったことを述べます。
リソースルーティング
現在のタスクに必要な参照のみを読みます:
| 必要な情報 | 参照 | 用途 |
|---|---|---|
| 基本原則または用語 | concepts.md | 関心の分離、SSOT、UDF、UI as state |
| レイヤー境界またはテスト | layers.md | UI/Data/オプショナル Domain の責任と検証 |
| Feature-first 構造または移行 | feature-first.md | フォルダレイアウト、共有コード、クロスフィーチャー依存性ルール |
| MVVM 関係 | mvvm.md | View、ViewModel、Repository、Service 関係 |
| Command、Result、Repository、DI、offline、optimistic UI | design-patterns.md | パターン選択とコード例 |
| Command テンプレート | command.dart | インポートパスと状態管理の適合性を調整した後、コピーのみ |
| Result テンプレート | result.dart | アプリに同等の型付き result/error モデルがない場合のみコピー |
| 例示的なスニペット | examples/README.md | 必須ワークフローではなく、例として使用 |
アーキテクチャのデフォルト
- 正規の依存性ルール:下位レイヤーは上位レイヤーに依存してはいけません。 ViewModel は単純な操作については Repository を直接呼び出すことができます。 重複を減らすか複雑なビジネスロジックを分離する場合にのみ use-case を導入します。
- フィーチャーモジュールは別のフィーチャーの実装ファイルをインポートしてはいけません。
共有動作を
shared/に移動し、DI を通じて安定したインターフェースに依存するか、 境界が恣意的な場合はフィーチャーをマージします。 - フォルダを図を満たすためだけに追加しないでください。空の
domain/、use-cases/、 またはバレルファイルはフィーチャーが必要になるまでオプションです。
検証
実装またはレビューを完了する前に:
- 新しいインポートが選択した feature/layer 境界を尊重していることを確認します。
- ViewModel がプラットフォーム、ファイル、またはネットワーク I/O を直接実行していないことを 確認します。
- リポジトリが UI に依存しないままで、サービス相互作用がテスト可能であることを確認します。
- 利用可能な最も近い検証を実行します:
flutter analyze- 変更されたフィーチャー用の焦点を絞った
flutter testスイート - コピーされた Dart アセット用の
dart format --output=none --set-exit-if-changedを使用したテンプレートのみの検証
- 実行されたコマンド、失敗、スキップされたチェック、残存するアーキテクチャリスクを報告します。
ライセンス: MIT(寛容ライセンスのため全文を引用しています) · 原本リポジトリ
詳細情報
- 作者
- madteacher
- ライセンス
- MIT
- 最終更新
- 不明
Source: https://github.com/madteacher/mad-agents-skills / ライセンス: MIT
関連スキル
hugging-face-trackio
Trackioを使用してMLトレーニング実験を追跡・可視化できます。トレーニング中のメトリクスログ記録(Python API)、トレーニング診断のアラート発火、ログされたメトリクスの取得・分析(CLI)が必要な場合に活用してください。リアルタイムダッシュボード表示、Webhookを使用したアラート、HF Space同期、自動化向けのJSON出力に対応しています。
btc-bottom-model
ビットコインのサイクルタイミングモデルで、加重スコアリングシステムを搭載しています。日次パルス(4指標、32ポイント)とウィークリー構造(9指標、68ポイント)の2カテゴリーにわたる13の指標を追跡し、0~100のマーケットヒートスコアを算出します。ETFフロー、ファンディングレート、ロング/ショート比率、恐怖・貪欲指数、LTH-MVRV、NUPL、SOPR(LTH+STH)、LTH供給率、移動平均倍率(365日MA、200週MA)、週次RSI、出来高トレンドに対応します。市場サイクル全体を通じて買いと売りの両方の推奨を提供します。ビットコインの底値拾い、BTCサイクルポジション、買い時・売り時、オンチェーン指標、MVRV、NUPL、SOPR、LTH動向、ETFの流出入、ファンディングレート、恐怖指数、ビットコインが過熱状態か、マイナーコスト、暗号資産市場のセンチメント、BTCのポジションサイジング、「今ビットコインを買うべきか」「BTCが天井をつけているか」「オンチェーン指標は何を示しているか」といった質問の際にこのスキルを活用します。
protein_solubility_optimization
タンパク質の溶解性最適化 - タンパク質の溶解性を最適化します。タンパク質の特性を計算し、溶解性と親水性を予測し、有効な変異を提案します。タンパク質配列の特性計算、タンパク質機能の予測、親水性計算、ゼロショット配列予測を含むタンパク質エンジニアリング業務に使用できます。3つのSCPサーバーから4つのツールを統合しています。
research-lookup
Parallel Chat APIまたはPerplexity sonar-pro-searchを使用して、最新の研究情報を検索できます。学術論文の検索にも対応しています。クエリは自動的に最適なバックエンドにルーティングされるため、論文の検索、研究データの収集、科学情報の検証に活用できます。
tree-formatting
ggtree(R)またはiTOL(ウェブ)を使用して、系統樹の可視化とフォーマットを行います。系統樹を図として描画する際、ツリーレイアウトの選択、分類学に基づく枝やラベルの色付け、クレードの折りたたみ、サポート値の表示、またはツリーへのオーバーレイ追加が必要な場合に使用してください。系統推定(protein-phylogenyスキルを使用)やドメイン注釈(今後の独立したスキル)には使用しないでください。
querying-indonesian-gov-data
インドネシア政府の50以上のAPIとデータソースに接続できます。BPJPH(ハラール認証)、BOM(食品安全)、OJK(金融適正性)、BPS(統計)、BMKG(気象・地震)、インドネシア中央銀行(為替レート)、IDX(株式)、CKAN公開データポータル、pasal.id(第三者法MCP)に対応しています。インドネシア政府データを活用したアプリ開発、.go.idウェブサイトのスクレイピング、ハラール認証の確認、企業の法的適正性の検証、金融機関ステータスの照会、またはインドネシアMCPサーバーへの接続時に使用できます。CSRF処理、CKAN API使用方法、IP制限回避など、すぐに実行可能なPythonパターンを含んでいます。