flutter-engineering について
flutter-engineeringは、HeyEddiアプリ開発向けのエンジニアリングスキルです。Flutter、FastAPI、Firebaseのプロジェクトを監査して不足する構成を補い、レイヤー監査、テスト、ビルド、計画・変更チェックに沿って開発を進めます。
主な機能
- 01Flutter、FastAPI、Firebaseの判定
- 02プロジェクト構成の監査と補完
- 03ローカル開発サーバーの手順
- 04フロントエンド・バックエンドのテストとビルド確認
- 05計画・変更レビューのゲート
活用シーン
- 01モバイルまたはWeb向けFlutterの構築
- 02FastAPI REST APIバックエンドの設定
- 03FirestoreまたはAuth向けFirebaseの設定
- 04所定のチェックによる機能変更の検証
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ heyeddi-com/ heyeddi-skills --skill flutter-engineeringインストール後、Claude Code で/flutter-engineeringを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
manifest.jsoncontext/ANTI_PATTERNS.mdEXAMPLES.mdPROSE_ANTI_SLOP.mdVOCABULARY.mdreference/design-handoff.mddev-server.mdfastapi-client.mdfirebase-client.mdsubagents.mdscaffold/stack-flutter-fastapi.jsonstack-flutter-full.jsonstack-flutter.jsonscaffold/flutter/analysis_options.yamlpubspec.yamlscaffold/flutter/lib/app.dartmain.dartscaffold/flutter/lib/config/env.dartscaffold/flutter/lib/router/app_router.dartscaffold/flutter/lib/screens/home_screen.dartsettings_screen.dartscaffold/flutter/lib/services/api_client.dartscaffold/flutter/lib/theme/app_theme.dartscaffold/flutter/lib/widgets/app_shell.dartscaffold/flutter/test/widget_test.dartscripts/_heyeddi_paths.py_project_detect.py_skill_cli.pyaudit_scaffold.pydev_server_info.py詳細
Flutter エンジニアリング
HeyEddi アプリ向けの基本的な Flutter エンジニアリングです。該当するスタックを検出して適切なツールを追加します。Vue プロジェクトでは代わりに @project-engineering を使用してください。
サブエージェント(デフォルト)
スキャフォールド/監査/テストスクリプトは Task shell に委任し、リポジトリの調査は explore に委任します。メインチャットで監査 JSON からスタックを選択します。reference/subagents.md を参照してください。
スタック
| スタック | 対象 | 追加されるツール |
|---|---|---|
| Flutter | モバイル/Web フロントエンド | pubspec.yaml、Riverpod、go_router、Material 3、ウィジェットテスト |
| FastAPI | REST API バックエンド | backend/、pytest、openapi.json、8090 での uvicorn |
| Firebase | Firestore/Auth | firebase.json、ルール、エミュレーター |
.heyeddi/stack.json で意図を宣言します。
{
"frontend": "flutter",
"backends": ["fastapi"],
"web_port": 8085,
"api_port": 8090
}
または "backends": ["firebase"] もしくは ["fastapi", "firebase"] を指定します。
ワークフロー
- 設定のゲート(常時有効、必須): Git/CI/コミットに関する前提を置く前に、
@heyeddi-setupのverify_setup --checkを実行します。不完全な場合は、合格するまでセットアップを実行します。 audit_scaffold:レイヤーごとの JSON(flutter / fastapi / firebase)。scaffold_stack --stack auto:不足分を補います(flutter、fastapi、firebase、またはfull)。- 必要に応じて
ensure_flutterとensure_pythonを(@project-engineering経由で)実行します。 dev_server_info:Flutter Web は:8085、API は:8090、Firebase エミュレーターは:4000です。- 計画のゲート(常時有効): 機能コードを書く前に、
@engineering-excellenceのcheck_engineering_plan --checkを実行します。 - 機能を実装します(
@design-handoff-flutter、@flutter-patterns、@dart-type-bridger)。 run_testsとrun_backend_tests、およびverify_buildを実行します。- 変更のゲート(常時有効):
audit_engineering --checkを実行します(エラーがある場合は失敗、警告は参考情報)。
ローカル開発サーバー
| スタック | コマンド | URL |
|---|---|---|
| Flutter Web | flutter run -d web-server --web-port=8085 --web-hostname=127.0.0.1 | http://127.0.0.1:8085 |
| Flutter モバイル | flutter run | デバイス/エミュレーター |
| FastAPI | cd backend && poetry run uvicorn app.main:app --reload --port 8090 | http://127.0.0.1:8090/docs |
| Firebase | firebase emulators:start | http://localhost:4000 |
Flutter Web の監査時に @visual-auditor が使用する URL として、FLUTTER_WEB_URL(または DEV_SERVER_URL)を設定します。
参考資料
reference/dev-server.md:Flutter Web + モバイルreference/fastapi-client.md:Dio + OpenAPI 型reference/firebase-client.md:firebase_core + Firestorereference/heyeddi-handoff.md:@design-handoff-flutterへの連携
関連スキル
@dart-type-bridger:OpenAPI/Firestore → Dart モデル@flutter-patterns:リポジトリ、Riverpod プロバイダー、認証@design-handoff-flutter:スクリーンショット → Material ウィジェット@project-engineering:FastAPI/Firebase 共通スキャフォールド(scaffold_stackから呼び出されます)
タスク完了時:次のスキルを提案する
このスキルに対するユーザーの依頼を完了したとき(各ツール呼び出しやサブエージェントのフェーズの後ではありません)に、次に実行する内容を提案します。
-
次を実行します。
python .agents/skills/heyeddi/scripts/suggest_next_skill.py --current-skill flutter-engineering --project-root .特定のルートを作業した場合は、
--route /pathを追加します。 -
スクリプトの
### Next stepブロックを最終返信に含めます。ユーザーは Prompt の行をチャットにコピーして実行します(例:@heyeddi-design craft /settings)。
直前に完了したサブコマンドが分かっている場合は、--mode shape(または craft、audit など)を渡します。
@heyeddi → reference/next-skill-handoff.md を参照してください。