# How to contribute to Meshcore Open Before submitting any pull requests (PR), please review the following information. Unsolicited PRs without previous discussion or open issues may be rejected. As may changes that are too broad (i.e. 100 files changed) or that cover too many separate changes. If the changes are clearly AI generated they may also be rejected. [See more](#ai-use) ## First Step Checklist ### **Did you find a bug?** * **Ensure the bug was not already reported** by searching on GitHub under [Issues](https://github.com/zjs81/meshcore-open/issues). * If you're unable to find an open issue addressing the problem, [open a new one](https://github.com/zjs81/meshcore-open/issues/new). Be sure to include a **title and clear description**, as much relevant information as possible, and a **code sample** or an **executable test case** demonstrating the expected behavior that is not occurring. You can also include screenshots or video. * DO NOT start work and submit a PR at this time, please discuss the issue and your implementation plan first. ### **Did you fix whitespace, format code, or make a purely cosmetic patch?** Changes that are cosmetic in nature and do not add anything substantial to the stability, functionality, or testability of the application will generally not be accepted. ### **Do you intend to add a new feature or change an existing one?** * Suggest your change in a new issue as a feature request. * DO NOT start work and submit a PR at this time, please discuss the change and your implementation plan first. * After it is generally decided that the feature or change fits the goals of the project you can start work or open a PR if you have already started. ## Submitting your patch * All changes should be based on the `dev` branch. When creating your PR please be sure to change the target to merge into dev, and when starting work on a new branch be sure to start on latest `dev`. * Ensure the PR description clearly describes the problem and solution. Include the relevant issue number if applicable. * The PR should contain **one commit** only, the commit message should have a clear title followed by a new line and then brief description if needed. PR with multiple commits will be squashed into one before merging if required. See [Git Mastery](https://git-mastery.org/lessons/commitMessage/) for more information on good commit messages. * **Before committing changes** on your branch, be sure to run both `dart format .` and `flutter analyze`. The continuous development checks will fail if issues here are not addressed before hand. ## AI-use Everyone loves some help, AI agents are a tool in many of our belts. The project is not anti-AI. There are some limits to acceptable use however. Generally: * All code generated by AI should be thoroughly reviewed by the contributor. * The changes should be tightly controlled to not change anything out of scope for the patch, bug fix, etc. * The contributor should have a good understanding of what the code does and how the application works in order to effectively be able to manage the agent.