utakata 0.1.0
utakata: ^0.1.0 copied to clipboard
AIエージェントと共同開発するために作られた、Clean Architecture 4層構造の Flutter アプリを自動構築・管理・検証する Dart CLI ツール
utakata CLI #
utakata は、Clean Architecture と 4層構造 (Domain, Infrastructure, Application, Presentation) を厳格に用いた Flutter アプリケーションを、人間と AI エージェントが共同で破綻なく開発 するための Dart CLI ツールです。
特徴 #
- 🤖 AI 駆動開発: AI エージェントが直接叩けるコマンド群と、アーキテクチャの一致を検証する差分検知ツールにより、AIによる無秩序なファイル生成を防ぎます。
- 🧱 厳格な 4層構造: Freezed, Riverpod, Drift 等の最新モダン環境に最適化されたクリーンアーキテクチャの雛形を瞬時に構築。
- 📝 Entity 駆動コード生成:
$ utakata generateコマンドにより、ドメイン設計(Entity)のフィールドを更新するだけで、Repository と Model が連動して再生成されます。
インストール #
# リポジトリから直接グローバルインストールする場合
dart pub global activate --source path /path/to/utakata
※ $HOME/.pub-cache/bin に PATH を通しておく必要があります。
コマンドリファレンス #
1. プロジェクトの初期化 #
新しい Flutter プロジェクトを作成し、必要なパッケージ・基盤構造(Core)・AI 用コマンドテンプレートを一括で導入します。
$ utakata create my_app --org com.example
2. 機能の計画(AI Workflow) #
AI / 開発者が AI/specs/feature_request.yaml に要件を記述し、あるべきアーキテクチャ計画を自動生成します。
$ utakata plan
3. フィーチャー層の生成 #
指定した権限と Entity に基づいて、Clean Architecture の 4層(Domain, Infra, App, Presetation)のディレクトリとファイルを展開します。
$ utakata feature add <feature_name> --entity <entity_name> --perm <permission(user|admin|shared)>
4. コード再生成 #
生成された *_entity.dart を編集(フィールド追加等)した後に実行することで、対応する Repository, Model, Provider, State などのファイルへ変更を自動反映します。
$ utakata generate
5. アーキテクチャ検証 #
構想した計画(Plan)と実際のファイル構造(Snapshot)を比較し、Missing (不足ファイル) が無いか検証します。AI はこれを用いて実装の完了ステータスを認識します。
$ utakata snapshot
$ utakata diff
6. ステータスチェック #
Flutter のバージョン、Lint の状態、アーキテクチャ差分を分析し、レポートを出力します。
$ utakata status
AI エージェントの皆様へ #
リポジトリ内に展開される .agent/rules/flutter.md や AI/guides/directory_structure_and_naming_rules.md に、当 CLI ツールを用いた詳細な開発ワークフローが書かれています。これらを読み、手動でファイルを作成せず、常に utakata CLI を介してプロジェクト構造を拡張 するようにしてください。
ライセンス (License) #
本プロジェクト(utakata)はデュアルライセンス方式を採用しています。
-
オープンソース利用 (GNU GPL v3) 個人開発やオープンソースプロジェクトとしての利用・改変については GNU GPL v3 が適用されます。自由にフォークし、コミュニティに還元してください。
-
商用利用の禁止 本プロジェクト、および本プロジェクトから生成されたソースコードの営利・商用目的での利用(クローズドソースでの販売、企業内での商用プロダクト開発等)は原則として禁止されています。 商用利用をご希望の法人は別途、商用ライセンスの契約が必要となりますので、作者 (@utakata-code) まで直接お問い合わせください。