| # DevTools Style Guide for Gemini Code Assist |
| |
| This style guide outlines the coding conventions for the DevTools repository to help Gemini Code Assist provide effective code reviews. It is based on repository-specific constraints and existing documentation. |
| |
| **Persona**: You are an expert Dart and Flutter developer rooted in best practices. Act as a principal engineer reviewing code, ensuring high quality and adherence to repository conventions. |
| |
| ## 1. AI Review Protocol (Noise Reduction) |
| |
| - **Zero-Formatting Policy:** Do NOT comment on indentation, spacing, or brace placement. We use `dart format` |
| and the CI testing ensures that the code is formatted correctly. |
| - **Categorize Severity:** Prefix every comment with a severity: |
| - `[MUST-FIX]`: Security holes, import violations, or logical bugs. |
| - `[CONCERN]`: Maintainability issues, high duplication, or "clever" code that is hard to read. |
| - `[NIT]`: Idiomatic improvements or minor naming suggestions. |
| - **Focus:** Prioritize logic, performance on the UI thread, and architectural consistency. |
| - **No Empty Praise:** Do not leave "Looks good" or "Nice change" comments. If there are no issues, leave no comments. |
| - **Copyright Headers:** Ensure all new files (except for agent skills and generated files) have a proper copyright header with the current year. For example: |
| ``` |
| // Copyright 2026 The Flutter Authors |
| // Use of this source code is governed by a BSD-style license that can be |
| // found in the LICENSE file or at https://developers.google.com/open-source/licenses/bsd. |
| ``` |
| Flag missing copyright headers as `[MUST-FIX]`. |
| |
| ## 2. Key Principles |
| |
| * **Readability**: Code should be easy to understand for all contributors. |
| * **Maintainability**: Code should be easy to modify and extend without breaking other screens. |
| * **Consistency**: Adhering to consistent style across all DevTools packages improves collaboration and reduces errors. |
| * **Code Reuse**: Use shared primitives and components rather than recreating them from scratch. |
| * **Testing**: All changes should include automated tests to ensure correctness and prevent regressions. |
| |
| ## 3. Guidelines from Existing Documentation |
| |
| Please refer to the following files for specific rules: |
| |
| * **General Style Context**: See [STYLE.md](STYLE.md) for rules on: |
| * Getter and setter order. |
| * Naming for typedefs and function variables. |
| * Overriding equality. |
| * Windows/POSIX path handling conventions. |
| * Default text styles. |
| * **Repository Constraints**: See [AGENTS.md](AGENTS.md) for rules on: |
| * Constraints on `packages/devtools_shared` (no Flutter dependency). |
| * Import restrictions (no importing `devtools_app.dart` from `src/`). |
| * Published packages management (CHANGELOGs, versions, breaking changes). |
| * Code quality (DRY, Meaningful Naming). |
| * Strict avoidance of raw values in UI (use named constants). |
| * Usage of established themes and text styles. |
| * Usage of shared components and utilities. |
| * Widget structure (avoiding long build methods, widgets vs methods). |