audit-ui-thread-safety

Evite travas na interface e garanta uma experiência responsiva ao usuário, validando as regras de threading e migrando chamadas bloqueantes para fora da Event Dispatch Thread (EDT).

npx skills add https://github.com/flutter/flutter-intellij --skill audit-ui-thread-safety

Skill: UI Thread Safety & Responsiveness

You are tasked with preventing UI freezes and ensuring a responsive user experience by validating threading rules.

Objective

Prevent UI freezes and ensure a responsive user experience by validating threading rules.

Workflow Instructions

1. Baseline

  • Run ./gradlew test and ./gradlew verifyPlugin to ensure the project is in a good state before refactoring.

2. Audit EDT Usage

  • Search for usages of runInEdt, invokeLater, and invokeAndWait.

3. Identify Blocking Calls

  • Ensure no I/O operations (file access, network calls) or heavy computations occur within these UI blocks.

4. Migrate to Background

  • Refactor heavy tasks to run on background threads using Task.Backgroundable or ReadAction.nonBlocking.

5. Check Modality

  • Verify that modal dialogs do not block the UI thread unnecessarily.

6. Verify

  • Run ./gradlew testClasses to ensure safe refactoring.
  • Run ./gradlew test and ./gradlew verifyPlugin to ensure no regressions.
  • Run the plugin in a sandbox (./gradlew runIde) and perform key actions while monitoring for UI freezes.
  • Suggest manual test steps: Check the code changes made and write test steps for a user to execute that will trigger the code paths that have changed. If needed, add logging statements to verify that the code paths have successfully run.

7. Report & Review

  • Summarize the threading fixes.
  • Test Location: Explicitly state where in the IDE the user should go to test the changed functionality (e.g., "Go to Preferences > Languages & Frameworks > Flutter").
  • Action: Ask the user to review the changes closely to ensure no deadlocks or UI freezes are introduced.
  • Do not commit or push.
  • Provide a suggested Git commit message (e.g., "Fix UI freeze: Move heavy computation to background task").

Mais skills de flutter

dart-modern-features
flutter
Para encontrar candidatos para modernização:
flutter-fix-layout-issues
flutter
Corrige erros de layout do Flutter (overflow, restrições ilimitadas) usando ferramentas Dart e Flutter MCP. Use ao lidar com "RenderFlex overflowed", "Vertical…
adding-release-notes
flutter
Adiciona descrições de mudanças voltadas ao usuário nas notas de versão do DevTools. Use ao documentar melhorias, correções ou novos recursos no arquivo NEXT_RELEASE_NOTES.md.
reviewing-devtools-prs
flutter
Fluxo de revisão de PR específico do repositório DevTools, aplicando as diretrizes de estilo do DevTools e padrões comuns de revisão. Use ao revisar pull requests no…
dart-use-primary-constructors
flutter
Ajude os usuários a escrever construtores primários sintática e semanticamente corretos em Dart, e a migrar/usar a nova sintaxe de construtores, a sintaxe de corpo vazio com ponto e vírgula,…
code-documentation
flutter
Guia para escrever documentação de código eficaz, incluindo docstrings, JSDoc, dartdoc e comentários de implementação. Use esta skill ao escrever novo código, adicionar…
api-review
flutter
Revisa o código especificado em relação às diretrizes canônicas de Design de API. Use esta skill quando o usuário pedir uma revisão de API ou para verificar o código em relação ao design de API…
flutter-accessibility
flutter
Implementa os padrões de acessibilidade WCAG 2 e EN 301 549 e layouts adaptativos em aplicativos Flutter. Aplica anotações semânticas, tamanhos mínimos de alvo de toque (48x48 dp) e taxas de contraste de texto (4,5:1 para texto pequeno, 3:1 para texto grande) nas plataformas mobile, web e desktop. Inclui lógica de decisão para inicialização de semântica web, encapsulamento de widgets interativos, alternância de layout baseada no tamanho da tela e tratamento de entrada por teclado/mouse. Gerencia o percurso de foco via FocusTraversalGroup e...