reviewing-devtools-prs

作者: flutter

DevTools 仓库专属的PR审查工作流程,执行DevTools风格指南和常见审查模式。在审查……中的拉取请求时使用。

npx skills add https://github.com/flutter/devtools --skill reviewing-devtools-prs

Reviewing DevTools Pull Requests

Extends reviewing-prs for pull requests in flutter/devtools. Follow reviewing-prs for GitHub CLI data retrieval and the strict user approval workflow.

References & Style Guidelines

Read and enforce:

  • Style Guide: styleguide.md (severity tags [MUST-FIX], [CONCERN], [NIT], zero-formatting policy, copyright headers, DRY rules, magic values)
  • Repository Constraints: AGENTS.md
  • Code Style: STYLE.md

Common Review Patterns

  1. Listener & Resource Disposals:

    • Ensure controller and notifier listeners use addAutoDisposeListener(...).
  2. Helper Widgets over Helper Methods:

    • Prefer small composable Widget classes over helper methods returning Widget (_buildFoo()).
  3. Reuse Shared Components & Test Helpers:

    • Use standard shared widgets (e.g. CenteredMessage) and test mocks (e.g. mockConnectedApp) instead of re-creating them inline.
  4. TODO Formatting:

    • Link TODOs to a GitHub issue or LDAP: // TODO(https://github.com/flutter/devtools/issues/<issue_number>): <description>.
  5. Async & Unawaited Futures:

    • Audit unawaited futures and suggest unawaited(...) or safeUnawaited(...) where appropriate.
  6. Feature Flags:

    • Default feature flags to false with explicit test expectations in feature_flags_test.dart.
  7. Test File Structure & PR Scope:

    • Place test fakes/helpers below main().
    • Ask authors to revert unrelated file changes or commented-out test code.
  8. Constant Scoping:

    • Keep single-use constants local to the component, but extract user-facing UI strings into shared constants when used across multiple places.
  9. Release Notes Scope (NEXT_RELEASE_NOTES.md):

    • Release notes are strictly for end-user facing changes (e.g. Inspector, Memory UI/UX). Internal tools (dt / devtools_tool), CI, and refactors are NOT user-facing.
    • Request removing release notes added for developer tools like dt, or suggest a * <Description>. [#<PR_NUMBER>](https://github.com/flutter/devtools/pull/<PR_NUMBER>) entry via adding-release-notes if a user-facing PR lacks one.

来自 flutter 的更多技能

dart-modern-features
flutter
为了找到现代化的候选方案:
flutter-fix-layout-issues
flutter
使用Dart和Flutter MCP工具修复Flutter布局错误(溢出、无界约束)。适用于处理“RenderFlex溢出”、“垂直…
adding-release-notes
flutter
在 DevTools 发布说明中添加面向用户的变更描述。用于在 NEXT_RELEASE_NOTES.md 文件中记录改进、修复或新功能。
dart-use-primary-constructors
flutter
帮助用户在Dart中编写语法和语义正确的主构造函数,并迁移/使用新的构造函数语法、空体分号语法等。
code-documentation
flutter
编写有效代码文档的指南,包括docstrings、JSDoc、dartdoc和实现注释。在编写新代码、添加…时使用此技能。
api-review
flutter
对照规范的API设计指南审查指定代码。当用户要求进行API审查或根据API设计规范检查代码时,请使用此技能…
flutter-accessibility
flutter
在Flutter应用中实现WCAG 2和EN 301 549无障碍标准及自适应布局。在移动端、网页端和桌面端强制实施语义标注、点击目标尺寸(最小48x48 dp)和文本对比度(小文本4.5:1,大文本3:1)。提供网页语义初始化、交互式组件包裹、基于屏幕尺寸的布局切换以及键盘/鼠标输入处理的决策逻辑。包含通过FocusTraversalGroup实现的焦点遍历管理,以及...
flutter-accessibility-audit
flutter
通过widget_inspector触发无障碍扫描,并自动向源代码中添加Semantics组件或缺失的标签。