en un clic
test-flutter
Flutter App のテスト実行・静的解析・フォーマット・テスト記述ガイド
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Menu
Flutter App のテスト実行・静的解析・フォーマット・テスト記述ガイド
Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Basé sur la classification professionnelle SOC
アプリのリリース(バージョン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 — ツール使用タイル表示