Equicord/CONTRIBUTING.md

85 lines
4.8 KiB
Markdown
Raw Permalink Normal View History

# Introduction
2022-10-01 03:24:55 +02:00
2025-10-16 14:41:45 -04:00
Equicord is a community project and welcomes any kind of contribution from anyone!
2022-10-01 03:24:55 +02:00
2025-03-30 12:33:52 -04:00
We have development documentation for new contributors, which can be found at <https://docs.equicord.org>.
2022-10-01 03:24:55 +02:00
2026-09-27 19:43:37 +02:00
## AI Policy
<!-- This section was mostly copied from Ghostty and adapted for Vencord, credits to Mitchell Hashimoto -->
Equicord has strict rules for AI usage:
2026-09-27 19:43:37 +02:00
- **AI slop will result in a block**. If code or text you submit is clearly generated by AI without human review and cleanup, you will be blocked from contributing to the project. Examples of slop include overly verbose text, unnecessary comments, overcomplicated code, failure to follow project conventions, and other signs of minimal human involvement.
- **All AI usage in any form must be disclosed.** You must state
the tool you used (e.g. Claude Code, Codex) along with
the extent that the work was AI-assisted.
- **The human-in-the-loop must fully understand all code.** If you
can't explain what your changes do and how they interact with the
greater system without the aid of AI tools, do not contribute
to this project.
- **Don't post AI generated texts in issues, discussions or PRs**. AI is very good at being overly verbose and including noise that distracts from the main point. You can use AI to assist you, but you must trim it down and ensure it is concise and relevant.
2022-10-01 03:24:55 +02:00
## How to contribute
2022-10-01 03:24:55 +02:00
Contributions are submitted through pull requests. If you are new to Git or GitHub, we recommend reading [this guide](https://opensource.com/article/19/7/create-pull-request-github).
2022-10-01 03:24:55 +02:00
Pull requests can be made either to the `main` or the `dev` branch. However, unless you're an advanced user, I recommend sticking to `main`.
This is because the dev branch might contain unstable changes and be force pushed frequently, which could cause conflicts in your pull request.
Before working on a major change, I highly recommend opening a feature request for it, making sure to check "I am willing to work on this myself",
so we can discuss before you invest time. Alternatively, you can also do so in our Discord server's development
channels. This saves you a lot of time in case your feature is considered too niche or rejected for any other reason.
2022-10-01 03:24:55 +02:00
## Writing a Plugin
2022-10-01 03:24:55 +02:00
Developing a plugin is the primary way to contribute.
2022-10-01 03:24:55 +02:00
Before starting your plugin:
2025-07-11 08:09:46 -04:00
- Consider if this plugin would be useful to a large portion of the userbase. We do not accept niche plugins
- Check existing pull requests to see if someone is already working on a similar plugin
- Familarise yourself with our plugin rules below to ensure your plugin is not banned
2022-10-01 03:24:55 +02:00
- Join our Discord server.
- Check existing pull requests to avoid duplicate work.
- Check the [plugin requests tracker](https://discord.com/channels/1173279886065029291/1419347113745059961) to see if your idea already exists or was rejected.
- If no request exists, open one and clearly state that you want to work on it yourself.
- Wait for feedback before starting development, as some ideas may not be accepted or may need adjustments.
- Familiarize yourself with the plugin rules below.
2022-10-01 03:24:55 +02:00
> [!WARNING]
> Skipping these steps may result in your plugin being rejected, even if it is technically correct.
2022-10-01 03:24:55 +02:00
## Plugin Rules
2022-10-01 03:24:55 +02:00
To keep Equicord stable, secure and maintainable, all plugins must follow these rules:
2022-10-01 03:24:55 +02:00
1. No simple slash-command plugins (e.g. `/cat`). If applicable, create a [user-installable Discord app](https://discord.com/developers/docs/change-log#userinstallable-apps-preview) instead.
2. No simple text replacement plugins (the built-in TextReplace plugin already covers this).
2026-06-27 11:05:54 -04:00
3. No raw DOM manipulation - always use proper patches and React.
4. No FakeDeafen or FakeMute functionality.
5. No StereoMic-related plugins.
6. No plugins that only hide or redesign UI elements (use CSS for that). This rule may be negotiable.
7. No plugins that interact with specific third-party Discord bots (official Discord apps are allowed).
8. No selfbots or API abuse (auto-replies, animated statuses, message pruning, Nitro snipers, etc.).
9. No untrusted third-party APIs (well-known services like Google or GitHub are acceptable).
10. No plugins that require users to provide their own API keys.
11. Do not introduce new dependencies unless they are strictly necessary and well justified.
2022-10-01 03:24:55 +02:00
**Plugins that violate any of these rules will not be accepted.**
2022-10-01 03:24:55 +02:00
## Improving Equicord Itself
2022-10-01 03:24:55 +02:00
If you want to improve Equicord beyond plugins, such as internal features or performance improvements, you are welcome to open a feature request so it can be discussed.
Bug fixes, refactors, and documentation improvements are also highly appreciated!
## Helping the Community
2022-10-08 00:44:12 +01:00
We have an open support channel in our [Discord community](https://equicord.org/discord).
Helping out users there is always appreciated! The more, the merrier.