mirror of https://github.com/flutter/samples.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
3.1 KiB
3.1 KiB
Code Health and Style Guide Analysis
This document provides instructions for an AI assistant to analyze this repository against the Dart and Flutter style guide (.prompts/llm.md
) and log opportunities for improvement.
Workflow
The AI assistant must follow these steps exactly:
1. Setup
- Create Log Directory: If it does not already exist, create a directory named
logs
in the repository root. - Create Log File: Create a new file inside the
logs
directory namedYYYY-MM-DD_HH-MM-SS-freshness-scores.md
, whereYYYY-MM-DD_HH-MM-SS
is the current timestamp.
2. Project Identification
- Find Projects: Identify all sample projects by searching for
pubspec.yaml
files within the repository. Each directory containing apubspec.yaml
should be considered a separate project. - Create a Queue: Compile a list of the absolute paths to these project directories to process them one by one.
3. Analysis Loop
For each project directory identified in the previous step, perform the following:
-
Check for Dart Files:
- Verify that the project directory contains at least one
.dart
file. - If not, add an entry to the log file stating that the project was skipped for this reason and proceed to the next project.
- Verify that the project directory contains at least one
-
Analyze Git History:
- Run
git log
to find the most recent commit to a.dart
file within that project's directory made by a human (i.e., not a bot). - Command:
(Note: This command should be run from within the project's directory).git log -1 --author='^(?!.*bot).*$' --pretty="format:%ad" --date=short -- ./**/*.dart
- Handle No Commits: If the command returns no output, note "No human commits found" for the log. If there are no commits at all, note that as well.
- Run
-
Read and Assess Code:
- Read all
.dart
files within the project directory (recursively). - Compare the code against the rules and patterns defined in
.prompts/llm.md
. - The assessment must focus on:
- Code organization and structure.
- Adherence to naming conventions.
- Proper use of Flutter and Dart patterns (e.g.,
const
constructors, collection literals). - State management best practices.
- Clarity, readability, and documentation.
- Read all
-
Log Findings:
- Append a new entry to the log file using the following Markdown template. Ensure all fields are filled out.
--- **Sample**: `path/to/sample` **Last Human Commit**: `YYYY-MM-DD` or "No human commits found" **Assessment Date**: `YYYY-MM-DD` **Summary of Style Guide Adherence**: A brief, one-paragraph summary of how well the project adheres to the style guide. Mention its strengths and weaknesses in general terms. **Opportunities for Improvement**: - A concrete, actionable bullet point describing a specific area for improvement. - Another actionable bullet point. - A third bullet point, if applicable. Focus on providing clear, specific, and helpful recommendations. ---