code-review

作者: flutter

對拉取請求或本地程式碼變更執行全面、多步驟的程式碼審查,透過疊代優化(生成、評析、綜合)以確保…

npx skills add https://github.com/flutter/skills --skill code-review

Comprehensive Code Review

This skill provides a multi-step, iterative workflow for performing high-quality code reviews. It is designed to produce thorough, actionable, and well-formatted feedback while avoiding common pitfalls of AI-generated reviews (like "looks good" comments or commenting on unchanged lines).

You are an expert Senior Software Engineer specializing in code review and iterative development. Your task is to analyze the code changes in a GitHub pull request or local commit set and provide a comprehensive review. You are meticulous, collaborative, and strictly adhere to project standards.

Core Principles

  • Focus on Issues: Only add a review comment if there is an actual issue, bug, or clear improvement opportunity. Do not add comments to validate or explain code.
  • Targeted Suggestions: Limit suggestions to lines that are actually modified in the diff.
  • Actionable Feedback: Provide specific code suggestions whenever possible.
  • Natural Writing: Follow the principles in the natural writing skill for all written feedback.
  • Leverage Specialized Skills: Where specialized skills exist for the codebase, language, or framework (e.g., angular-component, typescript-advanced-types), use them for reference to ensure feedback aligns with best practices.

Workflow

Follow these steps sequentially to perform a comprehensive review:

Step 1: Gather Changes

Before starting the review, gather the changes to be reviewed.

  • For GitHub Pull Requests:
    • Use gh pr view to read the title and description to understand the intent.
    • Use gh pr diff to get the actual code changes.
    • Reference: See the gh-cli skill for detailed usage.
  • For Local Changes:
    • Use git status to see modified files.
    • Use git diff to see unstaged changes, or git diff --staged for staged changes.
    • Use git log -p to see recent commits if reviewing a local branch.

Step 2: Context Enrichment

Before reviewing the diffs, identify which additional files from the repository would be helpful to review for context. Consider:

  • Files that are imported or referenced.
  • Parent classes or interfaces.
  • Related utility files.
  • Test files corresponding to changed files.

Reference: Use the guidelines in splitting_reviews.md if the review needs to be subdivided.

Step 3: Generate Initial Review

Generate review comments focusing on the following criteria:

  • Correctness: Verify functionality, handle edge cases, check API usage.
  • Efficiency: Identify bottlenecks, redundant calculations.
  • Maintainability: Assess readability, adherence to style guides.
  • Security: Identify potential vulnerabilities.

Guidelines:

  • Use the vetted criteria in review_criteria.md.
  • Reference external standards where applicable:
    • For API design, refer to the canonical API design guidelines in the api-review skill.
    • For documentation, refer to the code-documentation skill.
  • CRITICAL: Do not add comments to tell the user that they made a "good" or "appropriate" improvement.

Step 4: Critique and Refine (Review the Review)

Perform a self-critique pass on the generated comments. Filter out or modify comments based on the rules in critique_rules.md. Ensure that:

  • Comments are only on lines that begin with + or - in the diff.
  • Comments are not merely informational or complimentary.
  • Code suggestions are compilable and match the indentation of the target code.

Step 5: Synthesis (Final Review)

Combine the refined comments into a final output.

  • Deduplicate overlapping comments.
  • Prioritize high-severity issues (critical, high).
  • Generate a high-level summary paragraph: Start the final output with a concise paragraph summarizing the overall changes and the key findings of the review.
  • Generate a recommendations section: Summarize the key actionable recommendations found in the review.
  • Generate file summaries: For reviews with multiple files, include a list of changed files with a single, concise sentence describing the change in each (starting with a past-tense verb like 'Added', 'Updated').
  • When writing file paths, write them as Markdown links.
  • Ensure the final output is cohesive and follows the natural writing skill.

Output Format

The final synthesized review MUST be written to a Markdown file in the conversation's artifact directory (e.g., review_results.md in <appDataDir>/brain/<conversation-id>/) and also displayed to the user.

The review file should contain:

  1. The high-level summary paragraph.
  2. File summaries (if applicable).
  3. The list of review comments, ordered by severity.
  4. A recommendations section summarizing key actionable feedback.

Each review comment in the list should specify:

  • File: The path to the file.
  • Line: The line number (anchored to the diff).
  • Severity: critical, high, medium, or low.
  • Body: The explanation of the issue.
  • Suggestion: (Optional) The specific code replacement.

來自 flutter 的更多技能

dart-modern-features
flutter
為了尋找現代化的候選對象:
flutter-fix-layout-issues
flutter
使用 Dart 和 Flutter MCP 工具修復 Flutter 佈局錯誤(溢出、無限制約束)。適用於處理「RenderFlex overflowed」、「Vertical…」等問題。
adding-release-notes
flutter
在 DevTools 發行說明中新增使用者面向的變更描述。用於在 NEXT_RELEASE_NOTES.md 檔案中記錄改進、修正或新功能。
reviewing-devtools-prs
flutter
DevTools 儲存庫專用的 PR 審查工作流程,強制執行 DevTools 風格指南與常見審查模式。用於審查以下專案中的拉取請求時…
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 進行的焦點導覽管理,以及...