一键导入
create-new-feature
Guide for creating a new feature or subfeature following the project's Clean Architecture + MVI pattern.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Guide for creating a new feature or subfeature following the project's Clean Architecture + MVI pattern.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
Pull Request (PR) Review skill for reviewing code changes following Flutter/Dart best practices, Clean Architecture, and Security standards.
Merges workspace keybindings into IDE user profile configurations (e.g., ~/antigravity-profile-2/User/keybindings.json).
Parse JSON and create freezed object classes following project conventions.
Merges workspace keybindings (.vscode/keybindings.json) into the user's global IDE configuration (VS Code, Cursor, Windsurf, Antigravity, etc.).
Automate the end-to-end process of handling a new API request, from model generation to Data Source integration.
Enforces a checklist to verify that all required secure configuration files (google-services.json, GoogleService-Info.plist, environment-configs.json) are present for all environments (dev, stg, prd).
基于 SOC 职业分类
| name | create_new_feature |
| description | Guide for creating a new feature or subfeature following the project's Clean Architecture + MVI pattern. |
This skill guides the agent through the process of creating a new feature (New Module) or adding a subfeature to an existing module (Subfeature).
[!IMPORTANT] Import Convention: Always use full package paths (e.g.,
import 'package:bloc_digital_wallet/core/network/app_uri.dart';) instead of relative imports (e.g.,import '../../core/network/app_uri.dart';).
Goal: Determine the context and type of feature requested.
lib/features/.forgot_password to authentication).notifications, chat).Goal: Validate the plan with the user before generating code.
Action: Present a plan and ask for confirmation using the following template:
To proceed, I need to confirm:
MODULE INFORMATION:
- Feature Type: [New Module / Subfeature]
- [If Subfeature] Target Module: [existing_module_name]
- [If New Module] Module Name: [suggested_name]
- Feature Functionality: [brief description]
- UI Requirements: [screen/widgets needed]
- API Endpoints: [list key endpoints if known]
CONFIRMATION:
Should I proceed with creating this as a [New Module/Subfeature]?
WAIT for user confirmation before proceeding to Step 3.
Goal: Generate the boilerplate structure.
mason make mvi_feature --feature_name [feature_name]
mason make mvi_subfeature --module_name [module_name] --subfeature_name [subfeature_name]
Goal: Define business logic interfaces.
Entity: Create [feature]_entity.dart with @freezed and @JsonKey annotations.
abstract class with _$ClassName mixin patternfreezed_annotation and foundation.dart@JsonKey(name: 'field_name') for each field@JsonKey annotations.import 'package:freezed_annotation/freezed_annotation.dart';
import 'package:flutter/foundation.dart';
part '[feature]_entity.freezed.dart';
part '[feature]_entity.g.dart';
@freezed
abstract class [Feature]Entity with _$[Feature]Entity {
const factory [Feature]Entity({
@JsonKey(name: 'id') int? id,
@JsonKey(name: 'name') String? name,
}) = _[Feature]Entity;
factory [Feature]Entity.fromJson(Map<String, Object?> json) =>
_$[Feature]EntityFromJson(json);
}
Repository Interface: Define [feature]_repository.dart.
Use Cases: Create use cases for each business action (e.g., get_data_usecase.dart).
Goal: Implement data handling.
[feature]_model.dart with @freezed, @JsonKey, and json_serializable.
abstract class and _$ClassName mixin[feature]_remote_datasource.dart (use SafeCallApiMixin).[feature]_repository_impl.dart.Goal: Build the UI and State Management.
LoadDataAction).Loading, Loaded).ShowDetailsEvent).[feature]_bloc.dart.[feature]_page.dart.
context.appThemes.context.t (i18n).figma-dev-mode-mcp-server to fetch specs.Goal: Wire everything up and verify.
lib/app_router.dart and AppRoutes constants.en.i18n.json and vi.i18n.json.melos genAlls
dart format lib/
fvm flutter analyze --no-fatal-infos