You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Mastodon is a complex project, deployed at scale and across thousands of servers, used daily by hundreds of thousands of people worldwide. The complexity of the project includes database and server software, user-facing web and mobile clients, administration interfaces, and integration with other Fediverse software via ActivityPub and associated standards. It is important that the software has a high standard of quality and maintainability, with careful thought given to changes that affect production deployments.
4
+
5
+
Today, AI-assisted tools are being deployed in many coding environments. Some of the ”lower-end” features like keyword-driven completion can be useful aids, while others make it very easy to generate contributions without the submitter fully understanding either how the code works, or the consequences of specific implementation choices. These latter forms of AI assistance cause major overhead for project maintainers. There are a small number of people on the Mastodon core team, and we seek to use our time and resources effectively.
6
+
7
+
Our project is fundamentally about authentic human connection and communication. These values are reflected in our policy towards AI-generated code contributions (below), just as much as they are embodied in how we work together, and how Mastodon enables anyone to connect on the social web. We generally *do not encourage* AI-assisted contributions; we have adopted this policy to reinforce the importance of genuine human interaction in everything we work on.
8
+
9
+
## 1. Accountability
10
+
11
+
We recognise that some tools make it difficult to disable AI generated or assisted code, and that sometimes the output can be helpful. With that said, Mastodon is a human project.
12
+
13
+
**The human contributor is the sole party responsible for the contribution.**
14
+
15
+
If you submit a Pull Request that includes AI-generated code, documentation, or comments:
16
+
17
+
- You must fully understand every line of code in the submission.
18
+
- You must be able to explain the "why" behind the implementation during the review process.
19
+
20
+
"The AI generated it and it works for me" is never an acceptable answer to a reviewer's question. Copy-and-pasting to and from an AI chatbot during the process of code review is not acceptable (unless this is only for translation to and from English). If a maintainer suspects you do not understand your PR, it will be closed immediately.
21
+
22
+
Autonomous AI agents may not submit Pull Requests to Mastodon repositories. Humans will take time to review the code, and we expect a human contributor to make the same commitment in handling the submission themselves. Do not post comments on issues or PRs that are AI-generated. Discussions on the Mastodon repositories are for humans only.
23
+
24
+
## 2. Disclosure
25
+
26
+
If AI was used to generate a significant portion of your contribution (i.e. beyond simple autocomplete), we require you to **disclose it** in the Pull Request description. Note that you should not use AI to create the PR description itself (unless you’ve used it for translation) - as discussed above, we expect PRs to be submitted by humans.
27
+
28
+
Transparency helps maintainers calibrate their review focus. Please add a trailer to your commit message in the following format:
29
+
30
+
```text
31
+
Assisted-by: Name of AI
32
+
```
33
+
34
+
Examples:
35
+
36
+
```text
37
+
Assisted-by: ChatGPT 5.2
38
+
Assisted-by: Claude Opus 4.5
39
+
Assisted-by: Google Gemini
40
+
```
41
+
42
+
## 3. Intentionality
43
+
44
+
Mastodon is a project with code written by humans and interfaces designed by humans - for everyone. It is not a testing ground for AI experimentation.
45
+
46
+
We do not accept Pull Requests and Issues that result from running an AI tool over the codebase to find "improvements" without prior context or alignment with the project.
47
+
48
+
-**No "Shotgun" Refactoring:** Do not submit PRs that perform broad refactoring or cleanup suggested by AI unless a maintainer specifically requests it.
49
+
-**Design First:** For any non-trivial change, we strongly recommend opening an **Issue** or **Discussion** first. PRs that arrive out of the blue with significant AI-generated logic that doesn't align with our roadmap or architecture will be closed.
50
+
-**Quality over Quantity:** We value one thoughtful, manually crafted PR over ten AI-assisted "fixes" for nonexistent or trivial issues.
51
+
52
+
Note that these guidelines apply equally to human-created contributions. Please consider whether the change is meaningful and wanted by the project before submitting a PR.
53
+
54
+
## 4. Copyright & Legal
55
+
56
+
By submitting a contribution to Mastodon, you represent and warrant that:
57
+
58
+
1. You have the legal right to submit the contribution under the project's (or specific repository) licence.
59
+
2. The contribution does not violate the intellectual property rights of any third party.
60
+
3. If AI was used, the resulting code does not violate the terms of service of the AI provider and does not include "regurgitated" code from libraries with incompatible licences to the repository you’re submitting it to.
61
+
62
+
If you cannot guarantee the provenance and legal safety of the AI-generated code, **do not submit it.**
63
+
64
+
## 5. Prohibited Uses
65
+
66
+
The following are strictly prohibited and will result in immediate closure of a Pull Request or Issue and potentially a block from the organisation:
67
+
68
+
-**Automated PR Descriptions:** Using AI to write PR descriptions that are vague, overly flowery, or fail to accurately describe the technical changes. We want to hear from *you -* the developer -why this change matters (see points 1 & 2).
69
+
-**Unvetted Boilerplate:** Submitting large blocks of AI-generated boilerplate that hasn't been trimmed to what's actually necessary. If you don't understand what the code does, don't submit the PR.
70
+
-**Hallucinated Features:** Submitting PRs for features or bug fixes that don't exist, based on AI hallucinations about the project's capabilities.
71
+
72
+
## 6. Enforcement
73
+
74
+
Mastodon project maintainers reserve the right to close any Pull Request that appears to be a low-effort AI contribution without providing a detailed technical critique. We are a small team supporting a production project, and our time is best spent working with contributors who understand the project's technical requirements and the safety of our users' data.
75
+
76
+
Cases of repeated violations of these (or any of our other contributor guidelines) could result in a ban from our repositories.
77
+
78
+
### Acknowledgement
79
+
80
+
This policy was written by humans, based on the work in the [CloudNativePG AI Policy](https://github.com/cloudnative-pg/governance/blob/main/AI_POLICY.md), which in turn was inspired by the [Ghostty AI Policy](https://github.com/ghostty-org/ghostty/blob/main/AI_POLICY.md) and with acknowledgement to the Linux Foundation's [Generative AI Policy](https://www.linuxfoundation.org/legal/generative-ai).
@@ -21,28 +22,32 @@ Thank you for choosing to contribute to Mastodon! We are a social platform built
21
22
22
23
Our [Code of Conduct](https://github.com/mastodon/.github/blob/main/CODE_OF_CONDUCT.md) outlines the expectations for behavior within our community and in our GitHub repositories. Please make sure to read and understand it before contributing.
23
24
25
+
## AI Policy
26
+
27
+
Ensure that you have read and understood our [AI Policy](https://github.com/mastodon/.github/blob/main/AI_POLICY.md). We generally do not encourage AI-assisted contributions. Specifically: AI Agents may not directly open Pull Requests (PRs) on the Mastodon repositories - with the exception of automated dependency updates and workflows that are enabled by maintainers.
28
+
24
29
## Background
25
30
26
-
First of all, it is important to state: *We Appreciate Your Support* in every way you choose to contribute. Mastodon is a large project, and we are grateful for the time and effort you are willing to invest in helping us make it better.
31
+
First of all, it is important to state: *We Appreciate Your Support* in every way you choose to contribute. Mastodon is a complex project, and we are grateful for the time and effort you are willing to invest in helping us make it better.
27
32
28
33
### Understanding How We Work
29
34
30
-
There are a number of things to understand when thinking about contributing to Mastodon.
35
+
Here are a number of things to understand about contributing to Mastodon.
31
36
32
37
-**Small Core Team** The core development team for Mastodon is small. There is a large audience of users, instance operators, and others who are affected by changes and updates. The core team's top priorities are maintaining code quality and addressing critical issues, as well as adding features and guiding the project's overall direction.
33
38
-**Prioritized Contributions** To help us to manage our limited resources, we encourage starting with contributions in the areas of documentation, issue triage, and testing (see below). You can also check the relevant repository labels for issues that are marked as `help-welcome`.
34
39
-**Project Tooling** We use GitHub for development, but some of our team discussions happen in other tools, and not all of those are publicly available.
35
-
-**Communications channels**[GitHub Discussions](https://github.com/mastodon/mastodon/discussions) are available for general discussion and questions. Announcements are made via our [blog](https://blog.joinmastodon.org/), and also via [@Mastodon](https://mastodon.social/@Mastodon) and [@MastodonEngineering](https://mastodon.social/@MastodonEngineering) on Mastodon. Project sponsors can find also find us on Discord.
40
+
-**Communications channels**[GitHub Discussions](https://github.com/mastodon/mastodon/discussions) are available for general discussion and questions. Announcements are made via our [blog](https://blog.joinmastodon.org/), and also via [@Mastodon](https://mastodon.social/@Mastodon) and [@MastodonEngineering](https://mastodon.social/@MastodonEngineering) on Mastodon.
36
41
37
42
### Project-Specific Considerations
38
43
39
-
-**Limitations** Some repositories (specifically those for the iOS and Android apps) do not accept many direct outside contributions due to their complexity and dependencies. We appreciate your ideas, but probably will not take many pull requests externally. There are a range of third party client applications that may be more open to your feature requests if they are not available on the main apps.
40
-
-**Design Consistency** UI and visual design elements are overseen by our professional design team, to ensure a cohesive brand and user experience across Mastodon. We work with that team on visual and brand updates, so please do not submit pull requests for visual changes.
44
+
-**Limitations** Some repositories (specifically those for the iOS and Android apps) do not accept many direct outside contributions due to their complexity and dependencies. We appreciate your ideas, but probably will not take many pull requests externally. There are a range of third party client applications that may be more open to your feature requests, if what you need is not available on the main apps.
45
+
-**Design Consistency** UI and visual design elements are overseen by our professional designers, to ensure a cohesive brand and user experience across Mastodon. We work together on visual and brand updates, so please do not submit pull requests for visual changes.
41
46
-**API Changes and Additions** Please note that any changes or additions proposed to the core API must have an accompanying pull request on [our documentation repository](https://github.com/mastodon/documentation).
42
47
43
48
### Decision-Making Process
44
49
45
-
There is a team working on Mastodon, not a single individual. This core team discusses implementation choices, and maintains the final say on which changes make it into the platform and our own apps. We aim to make decisions transparently, considering community feedback and the overall project needs. We are always open to considering future improvements to our workflow and decision-making process.
50
+
The core team discusses implementation choices, and maintains the final say on which changes make it into the platform (and our own apps). We aim to make decisions transparently, considering community feedback and the overall project needs. We are always open to considering future improvements to our workflow and decision-making process.
46
51
47
52
Mastodon is an Open Source project, but it is not always possible to accept every contribution. We appreciate your understanding and patience if your contributions are not accepted.
48
53
@@ -55,24 +60,26 @@ For the [main code repository](https://github.com/mastodon/mastodon), [this Issu
55
60
Here are some other ideas:
56
61
57
62
-**Documentation** Improve existing [documentation](https://github.com/mastodon/documentation), or help to identify areas that need improvement.
58
-
-**Translations** Submit translations for the apps or main website [via CrowdIn](https://crowdin.com/projects?q=mastodon#advanced-search). We do not currently have plans for documentation translations as they can be complicated to maintain, but let us know if you have ideas on how we could improve here.
63
+
-**Translations** Submit translations for the apps or main website [via CrowdIn](https://crowdin.com/projects?q=mastodon#advanced-search). We do not currently have plans for documentation translations, as they can be complicated to maintain, but let us know if you have ideas on how we could improve here.
59
64
-**Issue Triage** Assist with categorizing new issues, reproduce reported bugs, test fixes, and find duplicates. A high-quality, validated issue list helps the core team stay on top of things.
60
65
-**Testing** Expand our test suite by writing new test cases and improving existing ones.
61
66
-**Code** Fix bugs, implement new features (see the sections below), and improve code quality. Take a look at our [good first issues list](https://github.com/mastodon/mastodon/labels/help%20welcome) which contains items marked `help-welcome` in the issue tracker.
62
-
-**Donate** The best and easiest way to support us is to [donate](https://joinmastodon.org/sponsors#donate) - this helps us to hire developers to work on new features, and support the existing codebase. Mastodon is a not-for-profit project, and we rely on donations to keep going.
67
+
-**Donate**Mastodon is a not-for-profit project, and we rely on donations to keep going. The best and easiest way to support us is to [donate](https://joinmastodon.org/sponsors#donate) - this helps us to hire developers to work full-time on new features, and support the existing codebase.
63
68
64
69
### Issues
65
70
66
-
Bug reports and feature suggestions must use descriptive and concise titles and be submitted via GitHub Issues. Please use the search function to make sure that you are not submitting duplicates, and that a similar report or request has not already been resolved or rejected.
71
+
Bug reports and feature suggestions must use descriptive and concise titles, and be submitted via GitHub Issues. Please use the search function to make sure that you are not submitting duplicates, and that a similar report or request has not already been resolved or rejected.
67
72
68
73
### Security Issues
69
74
70
75
If you are reporting a security issue, refer to the [SECURITY](https://github.com/mastodon/mastodon/blob/main/SECURITY.md) policy in the main Mastodon repository for instructions on how to proceed.
71
76
72
77
### Submitting Code Changes
73
78
74
-
-**Features** Please do not work on major features and ideas without first creating an issue for discussion. We are a small team, and are unlikely to be able to pick these up as quickly as you might prefer.
75
-
-**Smaller Fixes** If you are fixing a bug, please open a pull request (PR). Ensure that your changes include passing tests, adhere to our coding style, and that the PR references the issue it resolves.
79
+
-**Intentionality** Please consider whether a change is meaningful and likely to be wanted by the project before submitting a Pull Request (PR).
80
+
-**Design First:** For any non-trivial change, we strongly recommend opening an **Issue** or **Discussion** first. PRs that arrive out of the blue with significant logic that doesn't align with our roadmap or architecture will be closed.
81
+
-**Features** Please do not work on major features and ideas without first creating a discussion. We are a small team, and are unlikely to be able to pick these up as quickly as you might prefer.
82
+
-**Smaller Fixes** If you are fixing a bug, please open a Pull Request. Ensure that your changes include passing tests, adhere to our coding style, and that the PR references the issue it resolves.
76
83
-**Testing** New features should also ideally come with additional tests to ensure they work as expected, and don't break existing code.
77
84
-**Documentation** If a code change modifies the existing external API, or adds or removes user-facing settings or other elements, you must also share appropriate documentation by opening a matching pull request against the main documentation repository (per project-specific considerations above).
78
85
@@ -98,7 +105,9 @@ While it may not always be possible to phrase every change in this manner, pleas
98
105
99
106
## License
100
107
101
-
Mastodon is licensed under the GNU Affero General Public License v3.0. Please see the [LICENSE](https://github.com/mastodon/mastodon/blob/main/LICENSE) file for more information. Individual repositories outside of the main Mastodon repository may have different licenses.
108
+
The core Mastodon server is licensed under the GNU Affero General Public License v3.0. Please see the [LICENSE](https://github.com/mastodon/mastodon/blob/main/LICENSE) file for more information.
109
+
110
+
Individual repositories outside of the server code may have different licenses.
- We are building a human-centred social web, where authentic connections matter more than metrics.
6
+
- We prioritise genuine human interactions, champion user privacy, and make decisions that benefit people rather than profits.
7
+
8
+
## 2. We build bridges, not walls.
9
+
10
+
- We empower communities to connect, while maintaining their autonomy.
11
+
- Through decentralisation, we create pathways for diverse groups to interact on their own terms, fostering understanding across different perspectives and cultures.
12
+
13
+
## 3. We believe in open dialogue about our decisions, processes, and challenges.
14
+
15
+
- Our code is open source, our policies are public, and our decision-making welcomes community input.
16
+
- When we make mistakes, we acknowledge them and make things right.
17
+
18
+
## 4. We are transparent and trustworthy.
19
+
20
+
- We reject centralised control and corporate influence to create a platform that evolves according to community needs.
21
+
- Through community-driven funding and development, we demonstrate that social media can flourish without compromising its values.
22
+
23
+
## 5. We are part of a movement.
24
+
25
+
- We are part of a diverse ecosystem working toward a better internet.
26
+
- Our strength comes from collaboration, shared knowledge, and mutual support across the decentralised web movement.
0 commit comments