-
Notifications
You must be signed in to change notification settings - Fork 666
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request #1485 from qodo-ai/tr/docs_best_practice
Tr/docs best practice
- Loading branch information
Showing
6 changed files
with
115 additions
and
4 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,64 @@ | ||
# Auto Best Practices 💎 | ||
`Supported Git Platforms: GitHub` | ||
|
||
## Overview | ||
|
||
### Finding Code Problems - Exploration Phase | ||
|
||
Qodo Merge `improve` tool identifies potential issues, problems and bugs in Pull Request (PR) code changes. | ||
Rather than focusing on generic concepts like code style, the tool intelligently analyzes code to detect meaningful problems. | ||
|
||
The analysis is intentionally broad to allow identifying a wide range of potential issues. | ||
This open-ended _exploration_ enables the tool to surface any relevant issues without being constrained to predefined categories. | ||
|
||
### Tracking Implemented Suggestions | ||
|
||
Qodo Merge features a novel [tracking system](https://qodo-merge-docs.qodo.ai/tools/improve/#suggestion-tracking) that automatically detects when PR authors implement AI-generated code suggestions. | ||
All accepted suggestions are aggregated in a repository-specific wiki page called [`.pr_agent_accepted_suggestions`](https://github.com/qodo-ai/pr-agent/wiki/.pr_agent_accepted_suggestions). | ||
|
||
### Learning and Applying Auto Best Practices | ||
|
||
Monthly, Qodo Merge analyzes the collection of accepted suggestions to generate repository-specific best practices, stored in [`.pr_agent_auto_best_practices`](https://github.com/qodo-ai/pr-agent/wiki/.pr_agent_auto_best_practices) wiki file. | ||
These best practices reflect recurring patterns in accepted code improvements. | ||
|
||
The `improve` tool will incorporate these best practices as an additional analysis layer, checking PR code changes against known patterns of previously accepted improvements. | ||
This creates a two-phase analysis: | ||
|
||
1. Open exploration for general code issues | ||
2. Targeted checking against established best practices - exploiting the knowledge gained from past suggestions | ||
|
||
By keeping these phases decoupled, the tool remains free to discover new or unseen issues and problems, while also learning from past experiences. | ||
|
||
When presenting the suggestions generated by the `improve` tool, Qodo Merge will add a dedicated label for each suggestion generated from the auto best practices - 'Learned Best Practice': | ||
|
||
![Auto best practice suggestion](https://www.qodo.ai/images/pr_agent/auto_best_practices.png){width=512} | ||
|
||
|
||
## Auto Best Practices vs Custom Best Practices | ||
|
||
Teams and companies can also manually define their own [custom best practices](https://qodo-merge-docs.qodo.ai/tools/improve/#best-practices) in Qodo Merge to evaluate PR code changes. | ||
|
||
When custom best practices exist, Qodo Merge will still generate an 'auto best practices' wiki file, though it won't use it in the `improve` tool analysis. | ||
However, this auto-generated file can still serve two valuable purposes: | ||
|
||
1. It can help enhance your custom best practices with additional insights derived from suggestions your team found valuable enough to implement | ||
2. It demonstrates effective patterns for writing AI-friendly best practices | ||
|
||
We recommend regularly reviewing the auto best practices file to refine your custom rules, even when using custom best practices. | ||
|
||
## Relevant configurations | ||
|
||
```toml | ||
[auto_best_practices] | ||
# Disable all auto best practices usage or generation | ||
enable_auto_best_practices = true | ||
|
||
# Disable usage of auto best practices file in the 'improve' tool | ||
utilize_auto_best_practices = true | ||
|
||
# Extra instructions to the auto best practices generation prompt | ||
extra_instructions = "" | ||
|
||
# Max number of patterns to be detected | ||
max_patterns = 5 | ||
``` |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters