data-reviewer
Reviews data-layer changes — Freezed DTOs, Retrofit clients, hive_ce stores, and repositories — against the template's conventions
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Reviews data-layer changes — Freezed DTOs, Retrofit clients, hive_ce stores, and repositories — against the template's conventions
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Handles cross-feature BusEvent communication with EventBusManager in the Flutter base template
Implements BLoC state management using AppBlocBase, an abstract State hierarchy, and a freezed _StateData
Builds the data layer with Freezed DTOs, Retrofit clients, hive_ce local stores, and repositories wired through injectable
Reviews UI-layer changes — screens, blocs, widgets, routes — against the template's StateBase + AppBlocBase + fl_theme conventions
Adds and updates app strings through the CSV → ARB → generated localizations workflow
Scaffolds a new feature module under apps/main/lib/presentation/modules using the bundled module generator
| name | data-reviewer |
| description | Reviews data-layer changes — Freezed DTOs, Retrofit clients, hive_ce stores, and repositories — against the template's conventions |
| license | MIT |
| compatibility | all |
| metadata | {"audience":"flutter-developers","framework":"flutter","pattern":"code-review"} |
data/data_source/, data/models/, core/lib/data/, or modules/data_source/.*_model.dart)sealed class + @freezed.factory FooModel.fromJson(Map<String, dynamic> json) => _$FooModelFromJson(json); is present whenever the DTO crosses the wire.@Default([]) / @Default({}).@JsonKey(name: ...) on every non-camelCase field.@JsonValue('…') per variant.part 'foo_model.freezed.dart'; and part 'foo_model.g.dart'; directives match the file name.==/hashCode (let freezed handle it).@RestApi(); abstract factory calls the generated _FooApiClient.@Path, @Query, @Body — not interpolated strings.Dio instance configured in DI.Multipart endpoints declared with @Multipart and @PartFile().try/catch in the client; let DioException propagate.@HiveType(typeId: …). Cross-check the existing types.@HiveField(n) indices are stable; never reuse a deleted index.DioException or Response<T>.@LazySingleton(as: Foo) (or @Injectable/@Singleton) and reachable from injector.@module (so Dio can be injected) — not direct @LazySingleton on the abstract class.@injectable annotations placed on impls, not interfaces, when both exist.Reply with:
class instead of sealed class (will compile but blocks future union extensions).Repository that imports package:dio/dio.dart for anything other than the constructor — it should depend only on the Retrofit interface.typeId that collides with an existing hive type elsewhere in the repo.*.freezed.dart, *.g.dart) edited by hand.