diff --git a/CONTRIBUTE.md b/CONTRIBUTE.md index 180f3d5..6cfdce8 100644 --- a/CONTRIBUTE.md +++ b/CONTRIBUTE.md @@ -9,6 +9,7 @@ Thank you for your interest in contributing to Monochrome! This guide will help - [Development Setup](#development-setup) - [Code Quality](#code-quality) - [Project Structure](#project-structure) +- [Before You Contribute](#before-you-contribute) - [Contributing Workflow](#contributing-workflow) - [Commit Message Guidelines](#commit-message-guidelines) - [Deployment](#deployment) @@ -126,6 +127,53 @@ monochrome/ --- +## Before You Contribute + +To ensure a smooth contribution process and avoid wasted effort, please adhere to the following guidelines before starting any major work. + +### Consult on Major Features + +If you're looking into contributing a big feature, please speak with us before starting work. You might be implementing something we are already working on, or a feature that could create more issues long-term. You can reach us via a [GitHub Issue](https://github.com/monochrome-music/monochrome/issues) or on our **[Discord](https://monochrome.tf/discord)**. + +### Open Draft PRs Early + +Whether you've spoken with us or not, we highly recommend opening **Draft Pull Requests** early. This allows us to catch potential issues before you spend too much time on them. Large PRs that appear suddenly are often difficult to review, and we may close them if they conflict with internal work we haven't pushed yet. + +### AI as a Tool + +**AS A TOOL**, AI is a great way to help you navigate our (admittedly messy) codebase or refactor logic. We actually encourage using it to speed up your workflow, but we have a zero-tolerance policy for Vibecoding. + +#### Permissible (and encouraged): + +* Using AI as a tutor to help you understand a specific module or issue. +* Using AI to help clean up your code or write clearer PR descriptions. +* Making sure you understand **every line** of code you submit. +* Mentioning in your PR if you used AI to help with a specific section. + +#### Prohibited (AI Slop): + +* **Vibecoding** the entire PR (letting AI write the code without human oversight). +* Submitting code you don't actually understand or haven't tested. +* Ignoring edge cases because the AI didn't suggest them. + +> :warning:: If we can verify that a Pull Request is just unvetted AI/Vibecoded Work, **it will be automatically closed without review.** If you can't explain your code, it doesn't belong in Monochrome. + +### No Hard Feelings + +If we end up closing your Pull Request, please don't feel bad about it! We **really appreciate** you taking the time to help out with Monochrome. + +There are a lot of reasons why we might close a PR, and most of them have nothing to do with you. It might be because: + +* We’re already working on the same thing behind the scenes. +* The feature doesn't quite fit where the project is headed right now. +* We’re still undecided on how a certain part of the app should work. +* It doesn't quite follow the guidelines we've set here. + +In short: we don't hate you, and we aren't trying to be mean. We know how much work goes into a PR, and we're grateful you chose to spend your time on our project. Even if a PR gets closed, we'd still love to have you around the community! + +--- + + ## Contributing Workflow ### 1. Create a Branch