with one click
test-flutter
Flutter App のテスト実行・静的解析・フォーマット・テスト記述ガイド
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Flutter App のテスト実行・静的解析・フォーマット・テスト記述ガイド
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
アプリのリリース(バージョンbump + CHANGELOG + タグ → GH Actions で自動ビルド・配布)。iOS / Android / macOS / Linux / Windows の任意の組み合わせでリリースできる。「リリース」「バージョン上げて」「リリースして」と言われたときに使う。
ccpocket の X 向けリリース告知カード画像を作成・更新する。最新の iOS/Android/macOS リリースタグ、App Store release_notes、既存の scripts/release-card/generate.mjs を使って英語・日本語の告知PNGを生成し、画像を目視確認して不備があれば生成スクリプトを修正する。「リリースカード」「X告知画像」「リリース報告用画像」「release-card」と言われたときに使用する。
ストア情報の更新自動化 — スクリーンショット撮影(シミュレーター × モック画面 × Marionette MCP)とメタデータテキスト更新。ストア更新、スクショ更新、App Store / Google Play のメタデータ更新、リリースノート作成の際に使用すること。
Codex の使い方、CLI/app/IDE、rules・hooks・AGENTS.md・skills・subagents・config などを案内する。Codex や OpenAI 製品の仕様を答える前に必ず公式ドキュメントを確認し、rules/approval は `codex execpolicy check` で実検証すること。
MCP (dart-mcp + Marionette) を使ったFlutterアプリのE2E自動化・UI検証ガイド。シミュレーターでのUI動作確認、モックプレビュー検証、Bridge経由のE2Eテスト、スクリーンショット撮影など、アプリの動作検証が必要なときに使う。「動作確認して」「UIを検証して」「E2Eテスト」「シミュレーターで確認」「モックで確認」と言われたときや、UI変更後の検証フェーズで使用すること。
GitHub Issue・PRのトリアージ。番号を渡すと、要望の要約・実現難易度・既存機能との重複チェック・対応判断を調査してレポートする。Issue/PRの番号が出てきたとき、トリアージ、優先度判断、対応判断と言われたときに使用する。
| name | test-flutter |
| description | Flutter App のテスト実行・静的解析・フォーマット・テスト記述ガイド |
| disable-model-invocation | true |
| allowed-tools | Bash(flutter:*), Bash(dart:*), Read, Glob, Grep |
以下を順番に実行し、全てパスすることを確認する。
dart analyze apps/mobile
warning 以上は修正する。info レベルは必要に応じて対応。
MCP代替: mcp__dart-mcp__analyze_files でも実行可能だが、CLI推奨。
dart format apps/mobile
cd apps/mobile && flutter test
特定ファイルのみ:
cd apps/mobile && flutter test test/<filename>_test.dart
MCP代替: mcp__dart-mcp__run_tests でも実行可能だが、CLI推奨。
MCP版はDTD接続不要な操作のため、CLIの方が効率的。
apps/mobile/test/ に配置<対象の概念>_test.dart
approval_bar_test.dart, chat_input_bar_test.dartchat_message_handler_test.dartimport 'package:flutter_test/flutter_test.dart';
import 'package:ccpocket/...';
void main() {
group('対象クラスまたは機能', () {
test('動作の説明', () {
// ロジックテスト
expect(actual, expected);
});
testWidgets('UI動作の説明', (tester) async {
// ウィジェットテスト
await tester.pumpWidget(MaterialApp(home: TargetWidget()));
expect(find.text('expected'), findsOneWidget);
});
});
}
group で対象機能ごとにグルーピングtest()、UI テストは testWidgets() を使い分けるsetUp() でテスト前の共通初期化を行うpumpWidget でウィジェット構築 → find で要素確認 → tap/enterText で操作approval_bar_test.dart — 承認バーUIask_user_question_widget_test.dart — AskUserQuestion UIchat_input_bar_test.dart — チャット入力バーUIchat_message_handler_test.dart — メッセージハンドラーロジックgallery_screen_test.dart — ギャラリー画面home_screen_test.dart — ホーム画面plan_mode_test.dart — プランモードUIsession_card_test.dart — セッションカードUIslash_command_test.dart — スラッシュコマンドUItool_result_bubble_test.dart — ツール結果表示tool_use_tile_test.dart — ツール使用タイル表示