スキル一覧に戻る
Joldubaev

senior-flutter-protocol-v5

by Joldubaev

0🍴 0📅 2026年1月22日
GitHubで見るManusで実行

SKILL.md


name: senior-flutter-protocol-v5 description: Enterprise-level rules for Melos/Mason project structure (Core, Common, Package)

🛡 Senior Flutter Engineering Protocol (V5 Enterprise)

0. Project Context & Awareness (MANDATORY)

Перед генерацией кода агент ОБЯЗАН просканировать структуру проекта:

  • Core Library (lib/core/):
    • error/ — используй для моделей Failure.
    • router/ — используй для навигации.
    • di/ — используй для инъекции зависимостей.
    • theme/, constants/, extensions/ — используй для UI и стилизации.
  • Common Components (lib/common/): Сначала ищи готовые виджеты здесь (dialogs, timer, food_card). ❌ Запрещено дублировать существующие компоненты.
  • Packages: Проект использует Melos. Изменения в package/rest_client или storage должны быть изолированы.
  • Automation: Проверь mason.yaml и Makefile перед созданием новых модулей.

1. Architecture (HARD RULES)

  • Dependency Flow: Presentation → Domain ← Data. (Strict)
  • Layer Isolation:
    • flutter/*, dio или сторонние SDK внутри domain.
    • BuildContext внутри Cubit/Bloc/Repository/Service.
    • Domain = Pure Dart. Бизнес-логика только в UseCase или Cubit.
  • Contract-First: Репозитории в Domain — это интерфейсы (abstract class). Реализация — в Data.

2. State Management (Bloc/Cubit)

  • Single Source of Truth: Весь стейт хранится ТОЛЬКО в классе State.
  • Immutability: Все State: sealed, final, immutable. Обновление только через copyWith.
  • No Hidden State: Запрещены late переменные и приватные поля внутри Cubit/Bloc.
  • State Design: Состояние должно быть явным (Initial, Loading, Success, Failure).

3. UI & Performance (Custom Kit)

  • UI Kit First: ❌ Запрещено использовать базовые виджеты (ElevatedButton и т.д.), если есть проектные аналоги в common/ или core/.
  • Decomposition: build() > 40 строк → Extract to const StatelessWidget.
  • No Logic in UI: В build() и onPressed запрещены вычисления и условия (if/else).
  • Intent Pattern: onPressed только уведомляет логику: cubit.onAction().

4. Side Effects & Navigation

  • Navigation: Только через lib/core/router/. Логика не знает о маршрутах.
  • Side Effects: Snackbar, Dialog, Toast — это Effect. Cubit эмитит Effect, UI слушает через BlocListener.

5. Error Handling & Data Flow

  • Data Layer: try-catch (Dio/Storage) → маппинг в Failure из `lib

スコア

総合スコア

50/100

リポジトリの品質指標に基づく評価

SKILL.md

SKILL.mdファイルが含まれている

+20
LICENSE

ライセンスが設定されている

0/10
説明文

100文字以上の説明がある

0/10
人気

GitHub Stars 100以上

0/15
最近の活動

3ヶ月以内に更新がある

0/10
フォーク

10回以上フォークされている

0/5
Issue管理

オープンIssueが50未満

+5
言語

プログラミング言語が設定されている

+5
タグ

1つ以上のタグが設定されている

0/5

レビュー

💬

レビュー機能は近日公開予定です